summaryrefslogtreecommitdiff
path: root/glx/glxdriswrast.c
diff options
context:
space:
mode:
Diffstat (limited to 'glx/glxdriswrast.c')
-rw-r--r--glx/glxdriswrast.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c
index a0054515b..e6cb1eeb1 100644
--- a/glx/glxdriswrast.c
+++ b/glx/glxdriswrast.c
@@ -292,14 +292,6 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen,
return &context->base;
}
-static void
-glxChangeGC(GCPtr gc, BITS32 mask, CARD32 val)
-{
- CARD32 v[1];
- v[0] = val;
- dixChangeGC(NullClient, gc, mask, v, NULL);
-}
-
static __GLXdrawable *
__glXDRIscreenCreateDrawable(ClientPtr client,
__GLXscreen *screen,
@@ -309,6 +301,7 @@ __glXDRIscreenCreateDrawable(ClientPtr client,
XID glxDrawId,
__GLXconfig *glxConfig)
{
+ ChangeGCVal gcvals[2];
__GLXDRIscreen *driScreen = (__GLXDRIscreen *) screen;
__GLXDRIconfig *config = (__GLXDRIconfig *) glxConfig;
__GLXDRIdrawable *private;
@@ -333,9 +326,10 @@ __glXDRIscreenCreateDrawable(ClientPtr client,
private->gc = CreateScratchGC(pScreen, pDraw->depth);
private->swapgc = CreateScratchGC(pScreen, pDraw->depth);
- glxChangeGC(private->gc, GCFunction, GXcopy);
- glxChangeGC(private->swapgc, GCFunction, GXcopy);
- glxChangeGC(private->swapgc, GCGraphicsExposures, FALSE);
+ gcvals[0].val = GXcopy;
+ dixChangeGC(NullClient, private->gc, GCFunction, NULL, gcvals);
+ gcvals[1].val = FALSE;
+ dixChangeGC(NullClient, private->gc, GCFunction | GCGraphicsExposures, NULL, gcvals);
private->driDrawable =
(*driScreen->swrast->createNewDrawable)(driScreen->driScreen,