+ if(!doublebuf) {
+ if(winleft <= 0) {
+ winpos += vm->win_step;
+ vid_setwin(0, winpos);
+ winleft = winsz;
+ fb24 = vmem;
+ fb16 = vmem;
+ fb32 = vmem;
+ }
+ winleft -= (vm->bpp + 7) >> 3;
+ }
+ r = (i ^ j) >> 1;
+ g = i ^ j;
+ b = (i ^ j) << 1;
+ vm->ops.pack(&pcol, r, g, b);
+
+ switch(vm->bpp) {
+ case 15:
+ case 16:
+ *fb16++ = pcol;
+ break;
+
+ case 24:
+ fb24[0] = r;
+ fb24[1] = g;
+ fb24[2] = b;
+ fb24 += 3;
+ break;
+
+ case 32:
+ *fb32++ = pcol;
+ break;