More NULL checks. These ones are more useful than the last (which just made
debugging a bunch of problems easier), since you can implement less in the basic simplest case driver now (not that i'm lazy, mind :-p)
This commit is contained in:
parent
3c64b65d80
commit
af798d2774
|
@ -215,14 +215,15 @@ KdDisableScreen (ScreenPtr pScreen)
|
||||||
KdSetRootClip (pScreen, FALSE);
|
KdSetRootClip (pScreen, FALSE);
|
||||||
KdDisableColormap (pScreen);
|
KdDisableColormap (pScreen);
|
||||||
KdOffscreenSwapOut (pScreen);
|
KdOffscreenSwapOut (pScreen);
|
||||||
if (!pScreenPriv->screen->dumb)
|
if (!pScreenPriv->screen->dumb && pScreenPriv->card->cfuncs->disableAccel)
|
||||||
(*pScreenPriv->card->cfuncs->disableAccel) (pScreen);
|
(*pScreenPriv->card->cfuncs->disableAccel) (pScreen);
|
||||||
if (!pScreenPriv->screen->softCursor)
|
if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->disableCursor)
|
||||||
(*pScreenPriv->card->cfuncs->disableCursor) (pScreen);
|
(*pScreenPriv->card->cfuncs->disableCursor) (pScreen);
|
||||||
if (pScreenPriv->card->cfuncs->dpms)
|
if (pScreenPriv->card->cfuncs->dpms)
|
||||||
(*pScreenPriv->card->cfuncs->dpms) (pScreen, KD_DPMS_NORMAL);
|
(*pScreenPriv->card->cfuncs->dpms) (pScreen, KD_DPMS_NORMAL);
|
||||||
pScreenPriv->enabled = FALSE;
|
pScreenPriv->enabled = FALSE;
|
||||||
(*pScreenPriv->card->cfuncs->disable) (pScreen);
|
if(pScreenPriv->card->cfuncs->disable)
|
||||||
|
(*pScreenPriv->card->cfuncs->disable) (pScreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -283,13 +284,14 @@ KdEnableScreen (ScreenPtr pScreen)
|
||||||
|
|
||||||
if (pScreenPriv->enabled)
|
if (pScreenPriv->enabled)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
if (!(*pScreenPriv->card->cfuncs->enable) (pScreen))
|
if(pScreenPriv->card->cfuncs->enable)
|
||||||
return FALSE;
|
if (!(*pScreenPriv->card->cfuncs->enable) (pScreen))
|
||||||
|
return FALSE;
|
||||||
pScreenPriv->enabled = TRUE;
|
pScreenPriv->enabled = TRUE;
|
||||||
pScreenPriv->card->selected = pScreenPriv->screen->mynum;
|
pScreenPriv->card->selected = pScreenPriv->screen->mynum;
|
||||||
if (!pScreenPriv->screen->softCursor)
|
if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->enableCursor)
|
||||||
(*pScreenPriv->card->cfuncs->enableCursor) (pScreen);
|
(*pScreenPriv->card->cfuncs->enableCursor) (pScreen);
|
||||||
if (!pScreenPriv->screen->dumb)
|
if (!pScreenPriv->screen->dumb && pScreenPriv->card->cfuncs->enableAccel)
|
||||||
(*pScreenPriv->card->cfuncs->enableAccel) (pScreen);
|
(*pScreenPriv->card->cfuncs->enableAccel) (pScreen);
|
||||||
KdOffscreenSwapIn (pScreen);
|
KdOffscreenSwapIn (pScreen);
|
||||||
KdEnableColormap (pScreen);
|
KdEnableColormap (pScreen);
|
||||||
|
@ -310,7 +312,8 @@ KdResume (void)
|
||||||
KdDoSwitchCmd ("resume");
|
KdDoSwitchCmd ("resume");
|
||||||
for (card = kdCardInfo; card; card = card->next)
|
for (card = kdCardInfo; card; card = card->next)
|
||||||
{
|
{
|
||||||
(*card->cfuncs->preserve) (card);
|
if(card->cfuncs->preserve)
|
||||||
|
(*card->cfuncs->preserve) (card);
|
||||||
for (screen = card->screenList; screen; screen = screen->next)
|
for (screen = card->screenList; screen; screen = screen->next)
|
||||||
if (screen->mynum == card->selected && screen->pScreen)
|
if (screen->mynum == card->selected && screen->pScreen)
|
||||||
KdEnableScreen (screen->pScreen);
|
KdEnableScreen (screen->pScreen);
|
||||||
|
@ -843,7 +846,10 @@ KdCreateScreenResources (ScreenPtr pScreen)
|
||||||
Bool ret;
|
Bool ret;
|
||||||
|
|
||||||
pScreen->CreateScreenResources = pScreenPriv->CreateScreenResources;
|
pScreen->CreateScreenResources = pScreenPriv->CreateScreenResources;
|
||||||
ret = (*pScreen->CreateScreenResources) (pScreen);
|
if(pScreen->CreateScreenResources)
|
||||||
|
ret = (*pScreen->CreateScreenResources) (pScreen);
|
||||||
|
else
|
||||||
|
ret= -1;
|
||||||
pScreenPriv->CreateScreenResources = pScreen->CreateScreenResources;
|
pScreenPriv->CreateScreenResources = pScreen->CreateScreenResources;
|
||||||
pScreen->CreateScreenResources = KdCreateScreenResources;
|
pScreen->CreateScreenResources = KdCreateScreenResources;
|
||||||
if (ret && card->cfuncs->createRes)
|
if (ret && card->cfuncs->createRes)
|
||||||
|
@ -861,7 +867,10 @@ KdCloseScreen (int index, ScreenPtr pScreen)
|
||||||
|
|
||||||
pScreenPriv->closed = TRUE;
|
pScreenPriv->closed = TRUE;
|
||||||
pScreen->CloseScreen = pScreenPriv->CloseScreen;
|
pScreen->CloseScreen = pScreenPriv->CloseScreen;
|
||||||
ret = (*pScreen->CloseScreen) (index, pScreen);
|
if(pScreen->CloseScreen)
|
||||||
|
ret = (*pScreen->CloseScreen) (index, pScreen);
|
||||||
|
else
|
||||||
|
ret = TRUE;
|
||||||
|
|
||||||
if (screen->off_screen_base < screen->memory_size)
|
if (screen->off_screen_base < screen->memory_size)
|
||||||
KdOffscreenFini (pScreen);
|
KdOffscreenFini (pScreen);
|
||||||
|
@ -877,17 +886,18 @@ KdCloseScreen (int index, ScreenPtr pScreen)
|
||||||
*/
|
*/
|
||||||
if (screen == card->screenList)
|
if (screen == card->screenList)
|
||||||
{
|
{
|
||||||
if (kdEnabled)
|
if (kdEnabled && card->cfuncs->restore)
|
||||||
(*card->cfuncs->restore) (card);
|
(*card->cfuncs->restore) (card);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pScreenPriv->screen->dumb)
|
if (!pScreenPriv->screen->dumb && card->cfuncs->finiAccel)
|
||||||
(*card->cfuncs->finiAccel) (pScreen);
|
(*card->cfuncs->finiAccel) (pScreen);
|
||||||
|
|
||||||
if (!pScreenPriv->screen->softCursor)
|
if (!pScreenPriv->screen->softCursor && card->cfuncs->finiCursor)
|
||||||
(*card->cfuncs->finiCursor) (pScreen);
|
(*card->cfuncs->finiCursor) (pScreen);
|
||||||
|
|
||||||
(*card->cfuncs->scrfini) (screen);
|
if(card->cfuncs->scrfini)
|
||||||
|
(*card->cfuncs->scrfini) (screen);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clean up card when last screen is closed, DIX closes them in
|
* Clean up card when last screen is closed, DIX closes them in
|
||||||
|
@ -895,7 +905,8 @@ KdCloseScreen (int index, ScreenPtr pScreen)
|
||||||
*/
|
*/
|
||||||
if (screen == card->screenList)
|
if (screen == card->screenList)
|
||||||
{
|
{
|
||||||
(*card->cfuncs->cardfini) (card);
|
if(card->cfuncs->cardfini)
|
||||||
|
(*card->cfuncs->cardfini) (card);
|
||||||
/*
|
/*
|
||||||
* Clean up OS when last card is closed
|
* Clean up OS when last card is closed
|
||||||
*/
|
*/
|
||||||
|
@ -904,7 +915,8 @@ KdCloseScreen (int index, ScreenPtr pScreen)
|
||||||
if (kdEnabled)
|
if (kdEnabled)
|
||||||
{
|
{
|
||||||
kdEnabled = FALSE;
|
kdEnabled = FALSE;
|
||||||
(*kdOsFuncs->Disable) ();
|
if(kdOsFuncs->Disable)
|
||||||
|
(*kdOsFuncs->Disable) ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1230,19 +1242,22 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
|
||||||
if (!kdEnabled)
|
if (!kdEnabled)
|
||||||
{
|
{
|
||||||
kdEnabled = TRUE;
|
kdEnabled = TRUE;
|
||||||
(*kdOsFuncs->Enable) ();
|
if(kdOsFuncs->Enable)
|
||||||
|
(*kdOsFuncs->Enable) ();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (screen->mynum == card->selected)
|
if (screen->mynum == card->selected)
|
||||||
{
|
{
|
||||||
(*card->cfuncs->preserve) (card);
|
if(card->cfuncs->preserve)
|
||||||
if (!(*card->cfuncs->enable) (pScreen))
|
(*card->cfuncs->preserve) (card);
|
||||||
return FALSE;
|
if(card->cfuncs->enable)
|
||||||
|
if (!(*card->cfuncs->enable) (pScreen))
|
||||||
|
return FALSE;
|
||||||
pScreenPriv->enabled = TRUE;
|
pScreenPriv->enabled = TRUE;
|
||||||
if (!screen->softCursor)
|
if (!screen->softCursor && card->cfuncs->enableCursor)
|
||||||
(*card->cfuncs->enableCursor) (pScreen);
|
(*card->cfuncs->enableCursor) (pScreen);
|
||||||
KdEnableColormap (pScreen);
|
KdEnableColormap (pScreen);
|
||||||
if (!screen->dumb)
|
if (!screen->dumb && card->cfuncs->enableAccel)
|
||||||
(*card->cfuncs->enableAccel) (pScreen);
|
(*card->cfuncs->enableAccel) (pScreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1406,7 +1421,10 @@ KdInitOutput (ScreenInfo *pScreenInfo,
|
||||||
*/
|
*/
|
||||||
for (card = kdCardInfo; card; card = card->next)
|
for (card = kdCardInfo; card; card = card->next)
|
||||||
{
|
{
|
||||||
if ((*card->cfuncs->cardinit) (card))
|
int ret=1;
|
||||||
|
if(card->cfuncs->cardinit)
|
||||||
|
ret=(*card->cfuncs->cardinit) (card);
|
||||||
|
if (ret)
|
||||||
{
|
{
|
||||||
for (screen = card->screenList; screen; screen = screen->next)
|
for (screen = card->screenList; screen; screen = screen->next)
|
||||||
KdInitScreen (pScreenInfo, screen, argc, argv);
|
KdInitScreen (pScreenInfo, screen, argc, argv);
|
||||||
|
|
Loading…
Reference in New Issue