Hi all, could anyone please tell me, why the attached program does paint some lines on Linux X11 and nothing on Dos? I save the screen context, create a new context (as large as the screen), activate, paint and copy it to the screen with GrBitBlt. Works fine on Linux X11 but nothing happens on Dos. The new context does not get visible. (Using GRX 2.44 BCC 3.1 with memory model Large on a Win98 dos box) Thanks.
Regards Jan
Jan Menzel escribió:
Hi all, could anyone please tell me, why the attached program does paint some lines on Linux X11 and nothing on Dos? I save the screen context, create a new context (as large as the screen), activate, paint and copy it to the screen with GrBitBlt. Works fine on Linux X11 but nothing happens on Dos. The new context does not get visible. (Using GRX 2.44 BCC 3.1 with memory model Large on a Win98 dos box) Thanks.
Hey!!, you have found a very ugly bug in the dos vga driver.
Try if (!GrSetMode(GR_width_height_bpp_graphics,640,480,8)) instead if (!GrSetMode(GR_default_graphics))
and your test program will work as spected (tested with DJGPP). The bug seams to occur with the 4bpp color modes.
Regards, M.Alvarez
Mariano Alvarez Fernandez escribió:
Jan Menzel escribió:
Hi all, could anyone please tell me, why the attached program does paint some lines on Linux X11 and nothing on Dos? I save the screen context, create a new context (as large as the screen), activate, paint and copy it to the screen with GrBitBlt. Works fine on Linux X11 but nothing happens on Dos. The new context does not get visible. (Using GRX 2.44 BCC 3.1 with memory model Large on a Win98 dos box) Thanks.
Hey!!, you have found a very ugly bug in the dos vga driver.
Try if (!GrSetMode(GR_width_height_bpp_graphics,640,480,8)) instead if (!GrSetMode(GR_default_graphics))
and your test program will work as spected (tested with DJGPP). The bug seams to occur with the 4bpp color modes.
Very puzzled with this, because demogrx do some bitblts and it work in vga 4bpp I found a workarround:
GrSetContext(buffer_one); GrBitBlt(buffer_one, 0, 0, buffer_two, 0, 0, GrMaxX(), GrMaxY(), GrWRITE);
It don't know why it works only if the screen context is the actual context. I will investigate when I have the time.
Regards, M.Alvarez