Commit 3478af33 authored by Dave Airlie's avatar Dave Airlie

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's avatarKeith Packard <keithp@keithp.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent cf664713
......@@ -3724,29 +3724,13 @@ with its screen number, a pointer to its ScreenRec, argc, and argv.
*/
int
AddScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
int /*argc */ ,
char ** /*argv */
), int argc, char **argv)
static int init_screen(ScreenPtr pScreen, int i)
{
int i;
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);
if (!dixAllocatePrivates(&pScreen->devPrivates, PRIVATE_SCREEN)) {
free(pScreen);
return -1;
}
pScreen->myNum = i;
......@@ -3784,7 +3768,33 @@ AddScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
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
screen structure, call the hardware, whatever.
This is also where the default colormap should be allocated and
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment