I test the banding in printer driver, I create the surface by EngCreateBitmap and then mark banding by EngMarkBandingSurface.
And provide DrvStartBanding and DrvNextBand.
I test it by an empty function(only debug print).
BOOL DrvStartBanding(IN SURFOBJ *pso, IN POINTL *pptl)
{
EngDebugPrint(“”, L"(%6d,%6d) (sizl(%6d:%6d) pvScan0(0x%08X)\n",
pptl->x, pptl->y, pso->sizlBitmap.cx, pso->sizlBitmap.cy, pso->pvScan0);
return TRUE;
}
BOOL DrvNextBand(IN SURFOBJ *pso, IN POINTL *pptl)
{
EngDebugPrint(“”, L"NextBand(%6d,%6d)\n", pptl->x, pptl->y);
if( (-1 == pptl->x) &&
(-1 == pptl->y) )
{
return FALSE;
}
return TRUE;
}
I get the follow debug output message,
StartBanding(-653914503,-1081224707) (sizl( 2480: 2104) pvScan0(0x00000000)
NextBand( 0,2147348480)
NextBand(-1082050212, 0)
NextBand( 0,2147348480)
NextBand(-1082050212, 0)
NextBand( 0,2147348480)
NextBand(-1082050212, 0)
NextBand( 0,2147348480)
NextBand(-1082050212, 0)
NextBand( 0,2147348480)
NextBand(-1082050212, 0)
NextBand( 0,2147348480)
…
Could you tell me what should I do in DrvStartBanding and DrvNextBand? Thank you.
Allen