vbe: print rgb masks/shifts to the log
authorJohn Tsiombikas <nuclear@member.fsf.org>
Sat, 22 May 2021 05:41:15 +0000 (08:41 +0300)
committerJohn Tsiombikas <nuclear@member.fsf.org>
Sat, 22 May 2021 05:41:15 +0000 (08:41 +0300)
src/dos/gfx.c
src/rbench.c

index ef05921..7e5db98 100644 (file)
@@ -203,8 +203,15 @@ void *set_video_mode(int idx, int nbuf)
        pgsize = vm->ysz * vm->pitch;
        fbsize = pgcount * pgsize;
 
+       if(vm->bpp > 8) {
+               printf("rgb mask: %x %x %x\n", (unsigned int)vm->rmask,
+                               (unsigned int)vm->gmask, (unsigned int)vm->bmask);
+               printf("rgb shift: %d %d %d\n", vm->rshift, vm->gshift, vm->bshift);
+       }
        printf("pgcount: %d, pgsize: %d, fbsize: %d\n", pgcount, pgsize, fbsize);
-       printf("phys addr: %p\n", (void*)vm->fb_addr);
+       if(vm->fb_addr) {
+               printf("phys addr: %p\n", (void*)vm->fb_addr);
+       }
        fflush(stdout);
 
        if(vm->fb_addr) {
index a506fe5..8836f67 100644 (file)
@@ -70,6 +70,15 @@ void cleanup(void)
 {
 }
 
+#ifdef NOZOOM
+#define XORRGB(x, y, dx, dy, zoom, r, g, b) \
+       do { \
+               int xor = (((x) - fb_width/2) + (dx)) ^ (((y) - fb_height/2) + (dy)); \
+               (r) = xor >> 2; \
+               (g) = xor >> 1; \
+               (b) = xor; \
+       } while(0)
+#else
 #define XORRGB(x, y, dx, dy, zoom, r, g, b) \
        do { \
                int xor = ((((x) - fb_width/2) * (zoom) >> 16) + (dx)) ^ ((((y) - fb_height/2) * (zoom) >> 16) + (dy)); \
@@ -77,17 +86,23 @@ void cleanup(void)
                (g) = xor >> 1; \
                (b) = xor; \
        } while(0)
+#endif
 
 void redraw(void)
 {
-       int i, j, r, g, b, xoffs, yoffs, zoom;
+       int i, j, r, g, b, xoffs, yoffs;
+#ifndef NOZOOM
+       int zoom;
+#endif
        unsigned char *fbptr;
        uint16_t *fbptr16;
        uint32_t *fbptr32;
 
        xoffs = COS(time_msec >> 2) * fb_width >> 14;
        yoffs = SIN(time_msec >> 1) * fb_height >> 15;
+#ifndef NOZOOM
        zoom = (SIN(time_msec >> 3) << 1) + 0x18000;
+#endif
 
        switch(fb_bpp) {
        case 15: