Hi there,
I am developing a monolithic raster printer driver, and I do
wish to save the time to build an entire graphics engine by punting my DDI
graphics function calls to the GDI.
What I do is simple, I have a top down Standard-DIB created by
EngCreateBitmap() which frame buffer I have allocated. The palette is a the
GDI’s default 24bpp palette created by EngCreatePalette() and the size is of
an A4 paper. I then save this bitmap into DDB which I associate to my PDEV
and return to the GDI.
Now GDI calls my DDI functions to draw on my surface. When I cannot
optimise any of the drawing I take out the DIB from the DDB surface I passed
to the GDI.
I lock the DIB using EngLockSurface() to get a SURFOBJ and punt it to GDI
using the equivalent Engxxx() drawing functions and using the same
parameters passed to me in the call.
The GDI should then populate my DIB, but this doesn’t happen no bits are
touched in the call. The GDI doesn’t log any error or return false from its
graphics function.
I would like to know if any of the graphics driver writer’s out there, that
have encountered this problem. Why is it happenening and what should I do
to make the GDI function correctly.
Thanks for any answers