]> 4ch.mooo.com Git - 16.git/blobdiff - src/pcxtest2.c
update tesuto.c to latest VRL demo code. sprite drawing just got a bit faster.
[16.git] / src / pcxtest2.c
index b5fbbdad420aa60dfc95107827a5f8353b022893..f5efc3c7fbd77096a09f075b64a501912236d416 100755 (executable)
@@ -27,7 +27,7 @@
 #include "src/lib/bitmap.h"\r
 #include "src/lib/planar.h"\r
 \r
-word far* clockw= (word far*) 0x046C; /* 18.2hz clock */\r
+global_game_variables_t gvar;\r
 \r
 /*\r
 void\r
@@ -58,26 +58,30 @@ void main() {
        bitmap_t bmp;\r
        planar_buf_t *p;\r
        int i;\r
-       page_t page;\r
        word start;\r
        int plane;\r
        float t1, t2;\r
 \r
-       page=modexDefaultPage();\r
-       page.width+=32;\r
-       page.height+=32;\r
 //0000 bmp = bitmapLoadPcx("data/koishi~~.pcx");\r
 //     bmp = bitmapLoadPcx("data/chikyuu.pcx");\r
        bmp = bitmapLoadPcx("data/koishi^^.pcx");\r
 //     bmp = bitmapLoadPcx("16/PCX_LIB/chikyuu.pcx");\r
        p = planar_buf_from_bitmap(&bmp);\r
-       modexEnter();\r
+       VGAmodeX(1, &gvar);\r
+       gvar.video.page[0]=modexDefaultPage(&gvar.video.page[0]);\r
+       gvar.video.page[0].sw+=32;\r
+       gvar.video.page[0].sh+=32;\r
 \r
        /* fix up the palette and everything */\r
        modexPalUpdate1(bmp.palette);\r
 \r
        /* clear and draw one sprite and one bitmap */\r
-       modexClearRegion(&page, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 1);\r
+       modexClearRegion(&gvar.video.page[0], 0, 0, gvar.video.page[0].sw, gvar.video.page[0].sh, 1);\r
+\r
+       /* update display~*/\r
+       gvar.video.page[0].dx+=16;\r
+       gvar.video.page[0].dy+=16;\r
+       modexShowPage(&gvar.video.page[0]);\r
 \r
        /* non sprite comparison */\r
        start = *clockw;\r
@@ -87,15 +91,15 @@ void main() {
 \r
        start = *clockw;\r
        //for(i=0; i<100 ;i++) {\r
-//0000         modexDrawBmp(&page, 20, 20, &bmp);\r
-               modexDrawBmp(&page, 160, 120, &bmp);\r
+//0000         modexDrawBmp(&gvar.video.page[0], 20, 20, &bmp);\r
+               modexDrawBmp(&gvar.video.page[0], 160, 120, &bmp);\r
        //}\r
        t1 = (*clockw-start) /18.2;\r
 \r
        start = *clockw;\r
        //for(i=0; i<100; i++) {\r
-//0000         modexCopyPageRegion(&page, &page, 20, 20, 128, 20, 64, 64);\r
-               modexCopyPageRegion(&page, &page, 0, 0, 0, 0, 320, 240);\r
+//0000         modexCopyPageRegion(&gvar.video.page[0], &gvar.video.page[0], 20, 20, 128, 20, 64, 64);\r
+               modexCopyPageRegion(&gvar.video.page[0], &gvar.video.page[0], 0, 0, 0, 0, 320, 240);\r
        //}\r
        t2 = (*clockw-start)/18.2;\r
 \r
@@ -108,16 +112,16 @@ void main() {
 \r
        start = *clockw;\r
        //for(i=0; i<100 ;i++) {\r
-//0000         modexDrawSprite(&page, 20, 20, &bmp);\r
-               modexDrawSprite(&page, 160, 120, &bmp);\r
+//0000         modexDrawSprite(&gvar.video.page[0], 20, 20, &bmp);\r
+               modexDrawSprite(&gvar.video.page[0], 160, 120, &bmp);\r
        //}\r
-       //_fmemset(MK_FP(0xA000, 0), (int)p->plane, SCREEN_WIDTH*(SCREEN_HEIGHT*2));\r
-       //modexDrawBmp(&page, 0, 0, &bmp);\r
+       //_fmemset(MK_FP(0xA000, 0), (int)p->plane, gvar.video.page[0].sw*(gvar.video.page[0].sh*2));\r
+       //modexDrawBmp(&gvar.video.page[0], 0, 0, &bmp);\r
        while(!kbhit())\r
        {\r
-               //DrawPBuf(&page, 0, 0, p, 0);\r
+               //DrawPBuf(&gvar.video.page[0], 0, 0, p, 0);\r
        }\r
-       modexLeave();\r
+       VGAmodeX(0, &gvar);\r
        /*printf("\nmain=%Fp\n\n", &i);\r
        printf("bmp.data=%Fp\n", bmp.data);\r
        printf("*bmp.data=%Fp\n", *(bmp.data));\r
@@ -133,7 +137,7 @@ void main() {
        }*/\r
        printf("CPU to VGA: %f\n", t1);\r
        printf("VGA to VGA: %f\n", t2);\r
-       printf("page.width: %u\n", page.width);\r
-       printf("page.height: %u\n", page.height);\r
+       printf("gvar.video.page[0].width: %u\n", gvar.video.page[0].width);\r
+       printf("gvar.video.page[0].height: %u\n", gvar.video.page[0].height);\r
        return;\r
 }\r