]> Joshua Wise's Git repositories - netwatch.git/blobdiff - video/text.c
Fix compile on text.c.
[netwatch.git] / video / text.c
index 86cc3b67560caa991e7361a4ff3cfb230672e148..25fe245dec4a551cb9d144cac9eb09f9b751afb9 100644 (file)
@@ -5,6 +5,7 @@
 #include <stdint.h>
 #include <output.h>
 #include <smram.h>
+#include <crc32.h>
 
 static unsigned char _font[256 * 32];
 
@@ -42,8 +43,8 @@ void text_render(char *buf, int x, int y, int w, int h)
                cx = x;
                texty = cy / 14;
                textx = cx / 9;
-               ch = video[texty * 50 + textx * 2];
-               at = video[texty * 50 + textx * 2 + 1];
+               ch = video[texty * 160 + textx * 2];
+               at = video[texty * 160 + textx * 2 + 1];
                font = _font[ch * 32 + cy % 14];
                for (cx = x; cx < (x + w); cx++)
                {
@@ -51,8 +52,8 @@ void text_render(char *buf, int x, int y, int w, int h)
                        if (pos == 0)
                        {
                                textx = cx / 9;
-                               ch = video[texty * 50 + textx * 2];
-                               at = video[texty * 50 + textx * 2 + 1];
+                               ch = video[texty * 160 + textx * 2];
+                               at = video[texty * 160 + textx * 2 + 1];
                                font = _font[ch * 32 + cy % 14];
                        }
                        /* XXX always BGR888 */
@@ -80,7 +81,6 @@ uint32_t text_checksum(int x, int y, int w, int h)
        unsigned int textx = x / 9;
        unsigned int texty = y / 14;
        int cx, cy;
-       unsigned char ch, at;
        uint32_t cksm = 0;
        smram_state_t old_state = smram_save_state();
        
@@ -91,20 +91,7 @@ uint32_t text_checksum(int x, int y, int w, int h)
                cx = x;
                texty = cy / 14;
                textx = cx / 9;
-               ch = video[texty * 50 + textx * 2];
-               at = video[texty * 50 + textx * 2 + 1];
-               for (cx = x; cx < (x + w); cx++)
-               {
-                       unsigned int pos = cx % 9;
-                       if (pos == 0)
-                       {
-                               textx = cx / 9;
-                               ch = video[texty * 50 + textx * 2];
-                               at = video[texty * 50 + textx * 2 + 1];
-                       }
-                       
-                       cksm += ch + (at << 16);
-               }
+               cksm ^= crc32(video + texty * 160 + textx * 2, (w / 9 + 1) * 2);        /* Err on the side of 'too many'. */
        }
        
        smram_restore_state(old_state);
This page took 0.026249 seconds and 4 git commands to generate.