diff --git a/mi/miscrinit.c b/mi/miscrinit.c index f375d19fa..2030674a9 100644 --- a/mi/miscrinit.c +++ b/mi/miscrinit.c @@ -55,6 +55,8 @@ from The Open Group. typedef struct { void *pbits; /* pointer to framebuffer */ int width; /* delta to add to a framebuffer addr to move one row down */ + int xsize; + int ysize; } miScreenInitParmsRec, *miScreenInitParmsPtr; /* this plugs into pScreen->ModifyPixmapHeader */ @@ -166,8 +168,8 @@ miCreateScreenResources(ScreenPtr pScreen) if (!pPixmap) return FALSE; - if (!(*pScreen->ModifyPixmapHeader) (pPixmap, pScreen->width, - pScreen->height, + if (!(*pScreen->ModifyPixmapHeader) (pPixmap, pScrInitParms->xsize, + pScrInitParms->ysize, pScreen->rootDepth, BitsPerPixel(pScreen->rootDepth), PixmapBytePad(pScrInitParms->width, @@ -185,7 +187,7 @@ miCreateScreenResources(ScreenPtr pScreen) } static Bool -miScreenDevPrivateInit(ScreenPtr pScreen, int width, void *pbits) +miScreenDevPrivateInit(ScreenPtr pScreen, int width, void *pbits, int xsize, int ysize) { miScreenInitParmsPtr pScrInitParms; @@ -198,6 +200,8 @@ miScreenDevPrivateInit(ScreenPtr pScreen, int width, void *pbits) return FALSE; pScrInitParms->pbits = pbits; pScrInitParms->width = width; + pScrInitParms->xsize = xsize; + pScrInitParms->ysize = ysize; pScreen->devPrivate = (void *) pScrInitParms; return TRUE; } @@ -291,7 +295,7 @@ miScreenInit(ScreenPtr pScreen, void *pbits, /* pointer to screen bits */ miSetZeroLineBias(pScreen, DEFAULTZEROLINEBIAS); - return miScreenDevPrivateInit(pScreen, width, pbits); + return miScreenDevPrivateInit(pScreen, width, pbits, xsize, ysize); } DevPrivateKeyRec miZeroLineScreenKeyRec;