summaryrefslogtreecommitdiff
path: root/src/nsc_gx2_video.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nsc_gx2_video.c')
-rw-r--r--src/nsc_gx2_video.c79
1 files changed, 37 insertions, 42 deletions
diff --git a/src/nsc_gx2_video.c b/src/nsc_gx2_video.c
index 8d914ad..be2fceb 100644
--- a/src/nsc_gx2_video.c
+++ b/src/nsc_gx2_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx2_video.c,v 1.6 2003/04/23 21:51:42 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx2_video.c,v 1.6tsi Exp $ */
/*
* $Workfile: nsc_gx2_video.c $
* $Revision$
@@ -233,46 +233,42 @@ static Atom xvColorKey, xvColorKeyMode, xvFilter
void
GX2InitVideo(ScreenPtr pScreen)
{
- GeodePtr pGeode;
- ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
+ GeodePtr pGeode;
+ ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
+ XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL;
+ XF86VideoAdaptorPtr newAdaptor = NULL;
- pGeode = GEODEPTR(pScreenInfo);
+ int num_adaptors;
- if (!pGeode->NoAccel) {
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL;
- XF86VideoAdaptorPtr newAdaptor = NULL;
+ pGeode = GEODEPTR(pScreenInfo);
- int num_adaptors;
+ newAdaptor = GX2SetupImageVideo(pScreen);
+ GX2InitOffscreenImages(pScreen);
- newAdaptor = GX2SetupImageVideo(pScreen);
- GX2InitOffscreenImages(pScreen);
+ num_adaptors = xf86XVListGenericAdaptors(pScreenInfo, &adaptors);
- num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors);
-
- if (newAdaptor) {
- if (!num_adaptors) {
+ if (newAdaptor) {
+ if (!num_adaptors) {
num_adaptors = 1;
adaptors = &newAdaptor;
- } else {
+ } else {
newAdaptors = /* need to free this someplace */
- xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr *));
+ xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr *));
if (newAdaptors) {
- memcpy(newAdaptors, adaptors, num_adaptors *
- sizeof(XF86VideoAdaptorPtr));
- newAdaptors[num_adaptors] = newAdaptor;
- adaptors = newAdaptors;
- num_adaptors++;
+ memcpy(newAdaptors, adaptors, num_adaptors *
+ sizeof(XF86VideoAdaptorPtr));
+ newAdaptors[num_adaptors] = newAdaptor;
+ adaptors = newAdaptors;
+ num_adaptors++;
}
- }
- }
+ }
+ }
- if (num_adaptors)
- xf86XVScreenInit(pScreen, adaptors, num_adaptors);
+ if (num_adaptors)
+ xf86XVScreenInit(pScreen, adaptors, num_adaptors);
- if (newAdaptors)
- xfree(newAdaptors);
- }
+ if (newAdaptors)
+ xfree(newAdaptors);
}
/* client libraries expect an encoding */
@@ -416,16 +412,14 @@ GX2SetColorkey(ScrnInfoPtr pScrn, GeodePortPrivPtr pPriv)
void
GX2ResetVideo(ScrnInfoPtr pScrn)
{
- GeodePtr pGeode = GEODEPTR(pScrn);
+ GeodePtr pGeode = GEODEPTR(pScrn);
- if (!pGeode->NoAccel) {
- GeodePortPrivPtr pPriv = pGeode->adaptor->pPortPrivates[0].ptr;
+ GeodePortPrivPtr pPriv = pGeode->adaptor->pPortPrivates[0].ptr;
- GX2AccelSync(pScrn);
- GFX(set_video_palette(NULL));
- GX2SetColorkey(pScrn, pPriv);
- GFX(set_video_filter(pPriv->filter, pPriv->filter));
- }
+ if (!pGeode->NoAccel) GX2AccelSync(pScrn);
+ GFX(set_video_palette(NULL));
+ GX2SetColorkey(pScrn, pPriv);
+ GFX(set_video_filter(pPriv->filter, pPriv->filter));
}
/*----------------------------------------------------------------------------
@@ -493,7 +487,7 @@ GX2SetupImageVideo(ScreenPtr pScreen)
#endif
/* gotta uninit this someplace */
- REGION_INIT(pScreen, &pPriv->clip, NullBox, 0);
+ REGION_NULL(pScreen, &pPriv->clip);
pGeode->adaptor = adapt;
@@ -537,7 +531,7 @@ GX2StopVideo(ScrnInfoPtr pScrn, pointer data, Bool exit)
REGION_EMPTY(pScrn->pScreen, &pPriv->clip);
- GX2AccelSync(pScrn);
+ if (!pGeode->NoAccel) GX2AccelSync(pScrn);
if (exit) {
if (pPriv->videoStatus & CLIENT_VIDEO_ON) {
GFX(set_video_enable(0));
@@ -580,8 +574,9 @@ GX2SetPortAttribute(ScrnInfoPtr pScrn,
Atom attribute, INT32 value, pointer data)
{
GeodePortPrivPtr pPriv = (GeodePortPrivPtr) data;
+ GeodePtr pGeode = GEODEPTR(pScrn);
- GX2AccelSync(pScrn);
+ if (!pGeode->NoAccel) GX2AccelSync(pScrn);
if (attribute == xvColorKey) {
pPriv->colorKey = value;
GX2SetColorkey(pScrn, pPriv);
@@ -941,7 +936,7 @@ GX2DisplayVideo(ScrnInfoPtr pScrn,
{
GeodePtr pGeode = GEODEPTR(pScrn);
- GX2AccelSync(pScrn);
+ if (!pGeode->NoAccel) GX2AccelSync(pScrn);
GFX(set_video_enable(1));
@@ -1298,7 +1293,7 @@ GX2BlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask)
(*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
pScreen->BlockHandler = GX2BlockHandler;
- GX2AccelSync(pScrn);
+ if (!pGeode->NoAccel) GX2AccelSync(pScrn);
if (pPriv->videoStatus & TIMER_MASK) {
UpdateCurrentTime();
if (pPriv->videoStatus & OFF_TIMER) {