]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/modex16/16render.c
ww
[16.git] / src / lib / modex16 / 16render.c
index 89ba13dcd153e03375c64b27c692314ca2907d5c..b70c7f19cdae73dbb29ccb53d7c0b9d6faf0c984 100755 (executable)
@@ -97,12 +97,13 @@ modexDrawPBuf(page_t *page, int x, int y, planar_buf_t *p, boolean sprite)
                for(; y < py+p->height; y++) {\r
                        //for(px=0; px < p->width; px++) {\r
                                //printf("%02X ", (int) p->plane[plane][i++]);\r
-//                             _fmemcpy(buff, &(p->plane[plane][i+=p->pwidth]), p->pwidth);\r
-//                             printf("buff %u==%s\n", y, *buff);\r
-//                             _fmemcpy(page->data + (((page->width/4) * (y+page->dy)) + ((x+page->dx) / 4)), buff, p->pwidth);\r
+//                             _fmemcpy(buff, &(p->plane[plane][i+=p->pwidth]), p->pwidth);\r
+//                             printf("buff %u==%s\n", y, *buff);\r
+//                             _fmemcpy(page->data + (((page->width/4) * (y+page->dy)) + ((x+page->dx) / 4)), buff, p->pwidth);\r
                                _fmemcpy(page->data + (((page->width/4) * y) + (x / 4)), &(p->plane[plane][i+=p->pwidth]), p->pwidth);\r
                        //}\r
                }\r
+//getch();\r
                x=px;\r
                y=py;\r
        }\r
@@ -287,10 +288,10 @@ void
 modexDrawBmpPBufRegion(page_t *page, int x, int y,\r
                   int rx, int ry, int rw, int rh, planar_buf_t *bmp) {\r
        word poffset = (word) page->data  + y*(page->width/4) + x/4;\r
-       byte *data = *bmp->plane;//+bmp->offset;\r
+       byte *data = bmp->plane[0];\r
        word bmpOffset = (word) data + ry * bmp->width + rx;\r
-       word width = rw/4;\r
-       word height = rh/4;\r
+       word width = rw;\r
+       word height = rh;\r
        byte plane = 1 << ((byte) x & 0x03);\r
        word scanCount = width/4 + (width%4 ? 1 :0);\r
        word nextPageRow = page->width/4 - scanCount;\r
@@ -319,7 +320,17 @@ modexDrawBmpPBufRegion(page_t *page, int x, int y,
        ROW_LOOP:\r
                MOV CX, width      ; count the columns\r
        SCAN_LOOP:\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
                MOVSB              ; copy the pixel\r
+\r
                SUB CX, 3              ; we skip the next 3\r
                ADD SI, 3              ; skip the bmp pixels\r
                LOOP SCAN_LOOP    ; finish the scan\r
@@ -332,6 +343,7 @@ modexDrawBmpPBufRegion(page_t *page, int x, int y,
                DEC rowCounter\r
                JNZ ROW_LOOP        ; do all the rows\r
                ;-- end plane painting\r
+\r
                MOV AL, plane      ; advance to the next plane\r
                SHL AL, 1              ;\r
                AND AL, 0x0f        ; mask the plane properly\r
@@ -354,10 +366,10 @@ void
 modexDrawSpritePBufRegion(page_t *page, int x, int y,\r
                      int rx, int ry, int rw, int rh, planar_buf_t *bmp) {\r
        word poffset = (word)page->data + y*(page->width/4) + x/4;\r
-       byte *data = *bmp->plane;//+bmp->offset;\r
+       byte *data = bmp->plane[0];\r
        word bmpOffset = (word) data + ry * bmp->width + rx;\r
-       word width = rw/4;\r
-       word height = rh/4;\r
+       word width = rw;\r
+       word height = rh;\r
        byte plane = 1 << ((byte) x & 0x03);\r
        word scanCount = width/4 + (width%4 ? 1 :0);\r
        word nextPageRow = page->width/4 - scanCount;\r