screen: split out screen init code. (v2)
This is a precursor for reusing this code to init gpu screens. v2: fixup int check as per Keith's review. Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
cf66471353
commit
3478af3374
|
@ -3724,29 +3724,13 @@ with its screen number, a pointer to its ScreenRec, argc, and argv.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
static int init_screen(ScreenPtr pScreen, int i)
|
||||||
AddScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
|
|
||||||
int /*argc */ ,
|
|
||||||
char ** /*argv */
|
|
||||||
), int argc, char **argv)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
int i;
|
|
||||||
int scanlinepad, format, depth, bitsPerPixel, j, k;
|
int scanlinepad, format, depth, bitsPerPixel, j, k;
|
||||||
ScreenPtr pScreen;
|
|
||||||
|
|
||||||
i = screenInfo.numScreens;
|
|
||||||
if (i == MAXSCREENS)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
pScreen = (ScreenPtr) calloc(1, sizeof(ScreenRec));
|
|
||||||
if (!pScreen)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
dixInitScreenSpecificPrivates(pScreen);
|
dixInitScreenSpecificPrivates(pScreen);
|
||||||
|
|
||||||
if (!dixAllocatePrivates(&pScreen->devPrivates, PRIVATE_SCREEN)) {
|
if (!dixAllocatePrivates(&pScreen->devPrivates, PRIVATE_SCREEN)) {
|
||||||
free(pScreen);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
pScreen->myNum = i;
|
pScreen->myNum = i;
|
||||||
|
@ -3784,7 +3768,33 @@ AddScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
|
||||||
PixmapWidthPaddingInfo[depth].notPower2 = 0;
|
PixmapWidthPaddingInfo[depth].notPower2 = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
AddScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
|
||||||
|
int /*argc */ ,
|
||||||
|
char ** /*argv */
|
||||||
|
), int argc, char **argv)
|
||||||
|
{
|
||||||
|
|
||||||
|
int i;
|
||||||
|
ScreenPtr pScreen;
|
||||||
|
Bool ret;
|
||||||
|
|
||||||
|
i = screenInfo.numScreens;
|
||||||
|
if (i == MAXSCREENS)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
pScreen = (ScreenPtr) calloc(1, sizeof(ScreenRec));
|
||||||
|
if (!pScreen)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
ret = init_screen(pScreen, i);
|
||||||
|
if (ret != 0) {
|
||||||
|
free(pScreen);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
/* This is where screen specific stuff gets initialized. Load the
|
/* This is where screen specific stuff gets initialized. Load the
|
||||||
screen structure, call the hardware, whatever.
|
screen structure, call the hardware, whatever.
|
||||||
This is also where the default colormap should be allocated and
|
This is also where the default colormap should be allocated and
|
||||||
|
|
Loading…
Reference in New Issue