xserver: Branch 'master' - 2 commits

Kristian Høgsberg krh at kemper.freedesktop.org
Thu Jul 24 11:20:30 PDT 2008


 glx/glxcmds.c      |   25 +++++++------------
 glx/glxdrawable.h  |   10 -------
 glx/glxdri.c       |   10 -------
 glx/glxdri2.c      |   10 -------
 glx/glxdriswrast.c |   10 -------
 glx/glxscreens.c   |   49 --------------------------------------
 glx/glxscreens.h   |    1 
 glx/glxutil.c      |   68 -----------------------------------------------------
 8 files changed, 10 insertions(+), 173 deletions(-)

New commits:
commit dff1a609bb4c0171e2abb92b54c16e739aec9ca2
Author: Kristian Høgsberg <krh at redhat.com>
Date:   Mon Jul 21 18:29:08 2008 -0400

    Drop the glx resize hook and stop chaining PositionWindow.

diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index ea70ca4..f4fc031 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -639,15 +639,6 @@ DoMakeCurrent(__GLXclientState *cl,
 	    return __glXError(GLXBadContext);
 	}
 
-	/* resize the buffers */
-	if (!(*drawPriv->resize)(drawPriv)) {
-	    /* could not do initial resize.  make current failed */
-	    (*glxc->loseCurrent)(glxc);
-	    glxc->drawPriv = NULL;
-	    glxc->readPriv = NULL;
-	    return __glXError(GLXBadContext);
-	}
-
 	glxc->isCurrent = GL_TRUE;
 	__glXRefDrawable(glxc->drawPriv);
 	__glXRefDrawable(glxc->readPriv);
diff --git a/glx/glxdrawable.h b/glx/glxdrawable.h
index 5b43382..6cf2e50 100644
--- a/glx/glxdrawable.h
+++ b/glx/glxdrawable.h
@@ -51,7 +51,6 @@ enum {
 
 struct __GLXdrawable {
     void (*destroy)(__GLXdrawable *private);
-    GLboolean (*resize)(__GLXdrawable *private);
     GLboolean (*swapBuffers)(__GLXdrawable *);
     void      (*copySubBuffer)(__GLXdrawable *drawable,
 			       int x, int y, int w, int h);
diff --git a/glx/glxdri.c b/glx/glxdri.c
index a87ff13..41c47a8 100644
--- a/glx/glxdri.c
+++ b/glx/glxdri.c
@@ -240,15 +240,6 @@ __glXDRIdrawableDestroy(__GLXdrawable *drawable)
 }
 
 static GLboolean
-__glXDRIdrawableResize(__GLXdrawable *glxPriv)
-{
-    /* Nothing to do here, the DRI driver asks the server for drawable
-     * geometry when it sess the SAREA timestamps change.*/
-
-    return GL_TRUE;
-}
-
-static GLboolean
 __glXDRIdrawableSwapBuffers(__GLXdrawable *basePrivate)
 {
     __GLXDRIdrawable *private = (__GLXDRIdrawable *) basePrivate;
@@ -694,7 +685,6 @@ __glXDRIscreenCreateDrawable(__GLXscreen *screen,
     }
 
     private->base.destroy       = __glXDRIdrawableDestroy;
-    private->base.resize        = __glXDRIdrawableResize;
     private->base.swapBuffers   = __glXDRIdrawableSwapBuffers;
     private->base.copySubBuffer = __glXDRIdrawableCopySubBuffer;
 
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index 9a3bc1f..7c1f00e 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -104,15 +104,6 @@ __glXDRIdrawableDestroy(__GLXdrawable *drawable)
 }
 
 static GLboolean
-__glXDRIdrawableResize(__GLXdrawable *glxPriv)
-{
-    /* Nothing to do here, the DRI driver asks the server for drawable
-     * geometry when it sess the SAREA timestamps change.*/
-
-    return GL_TRUE;
-}
-
-static GLboolean
 __glXDRIdrawableSwapBuffers(__GLXdrawable *drawable)
 {
     __GLXDRIdrawable *private = (__GLXDRIdrawable *) drawable;
@@ -339,7 +330,6 @@ __glXDRIscreenCreateDrawable(__GLXscreen *screen,
     }
 
     private->base.destroy       = __glXDRIdrawableDestroy;
-    private->base.resize        = __glXDRIdrawableResize;
     private->base.swapBuffers   = __glXDRIdrawableSwapBuffers;
     private->base.copySubBuffer = __glXDRIdrawableCopySubBuffer;
 
diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c
index cf4827e..199f5f8 100644
--- a/glx/glxdriswrast.c
+++ b/glx/glxdriswrast.c
@@ -99,15 +99,6 @@ __glXDRIdrawableDestroy(__GLXdrawable *drawable)
 }
 
 static GLboolean
-__glXDRIdrawableResize(__GLXdrawable *drawable)
-{
-    /* Nothing to do here, the DRI driver asks the server for drawable
-     * geometry appropriately. */
-
-    return GL_TRUE;
-}
-
-static GLboolean
 __glXDRIdrawableSwapBuffers(__GLXdrawable *drawable)
 {
     __GLXDRIdrawable *private = (__GLXDRIdrawable *) drawable;
@@ -328,7 +319,6 @@ __glXDRIscreenCreateDrawable(__GLXscreen *screen,
     }
 
     private->base.destroy       = __glXDRIdrawableDestroy;
-    private->base.resize        = __glXDRIdrawableResize;
     private->base.swapBuffers   = __glXDRIdrawableSwapBuffers;
     private->base.copySubBuffer = __glXDRIdrawableCopySubBuffer;
 
diff --git a/glx/glxscreens.c b/glx/glxscreens.c
index cc7054a..505f797 100644
--- a/glx/glxscreens.c
+++ b/glx/glxscreens.c
@@ -185,51 +185,6 @@ static char GLXServerExtensions[] =
 			;
 
 /*
-** This hook gets called when a window moves or changes size.
-*/
-static Bool glxPositionWindow(WindowPtr pWin, int x, int y)
-{
-    ScreenPtr pScreen;
-    __GLXdrawable *glxPriv;
-    Bool ret;
-    __GLXscreen *pGlxScreen;
-
-    /*
-    ** Call wrapped position window routine
-    */
-    pScreen = pWin->drawable.pScreen;
-    pGlxScreen = glxGetScreen(pScreen);
-    pScreen->PositionWindow = pGlxScreen->PositionWindow;
-    ret = (*pScreen->PositionWindow)(pWin, x, y);
-    pScreen->PositionWindow = glxPositionWindow;
-
-    /*
-    ** Tell all contexts rendering into this window that the window size
-    ** has changed.
-    */
-    glxPriv = (__GLXdrawable *) LookupIDByType(pWin->drawable.id,
-					       __glXDrawableRes);
-    if (glxPriv == NULL) {
-	/*
-	** This window is not being used by the OpenGL.
-	*/
-	return ret;
-    }
-
-    /*
-    ** resize the drawable
-    */
-    /* first change the drawable size */
-    if (glxPriv->resize(glxPriv) == GL_FALSE) {
-	/* resize failed! */
-	/* XXX: what can we possibly do here? */
-	ret = False;
-    }
-
-    return ret;
-}
-
-/*
  * If your DDX driver wants to register support for swap barriers or hyperpipe
  * topology, it should call __glXHyperpipeInit() or __glXSwapBarrierInit()
  * with a dispatch table of functions to handle the requests.   In the XFree86
@@ -260,7 +215,6 @@ glxCloseScreen (int index, ScreenPtr pScreen)
     __GLXscreen *pGlxScreen = glxGetScreen(pScreen);
 
     pScreen->CloseScreen = pGlxScreen->CloseScreen;
-    pScreen->PositionWindow = pGlxScreen->PositionWindow;
 
     pGlxScreen->destroy(pGlxScreen);
 
@@ -558,9 +512,6 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen)
     pGlxScreen->GLXversion    = xstrdup(GLXServerVersion);
     pGlxScreen->GLXextensions = xstrdup(GLXServerExtensions);
 
-    pGlxScreen->PositionWindow = pScreen->PositionWindow;
-    pScreen->PositionWindow = glxPositionWindow;
- 
     pGlxScreen->CloseScreen = pScreen->CloseScreen;
     pScreen->CloseScreen = glxCloseScreen;
 
diff --git a/glx/glxscreens.h b/glx/glxscreens.h
index 39d162d..dfe7c9d 100644
--- a/glx/glxscreens.h
+++ b/glx/glxscreens.h
@@ -173,7 +173,6 @@ struct __GLXscreen {
     char *GLXversion;
     char *GLXextensions;
 
-    Bool (*PositionWindow)(WindowPtr pWin, int x, int y);
     Bool (*CloseScreen)(int index, ScreenPtr pScreen);
 };
 
commit 24dddcd0ef845f4120f8588dc63ec754338ffac8
Author: Kristian Høgsberg <krh at redhat.com>
Date:   Mon Jul 21 18:16:38 2008 -0400

    Drop unnecessary linked list of contexts from GLXDrawable.

diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index 0831135..ea70ca4 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -147,8 +147,10 @@ validGlxFBConfigForWindow(ClientPtr client, __GLXconfig *config,
 void
 __glXContextDestroy(__GLXcontext *context)
 {
-    if (!context->isDirect)
-	__glXDeassociateContext(context);
+    if (!context->isDirect) {
+	__glXUnrefDrawable(context->drawPriv);
+	__glXUnrefDrawable(context->readPriv);
+    }
     __glXFlushContextCache();
 }
 
@@ -618,7 +620,10 @@ DoMakeCurrent(__GLXclientState *cl,
 	    return __glXError(GLXBadContext);
 	}
 	__glXFlushContextCache();
-	__glXDeassociateContext(prevglxc);
+	if (!glxc->isDirect) {
+	    __glXUnrefDrawable(glxc->drawPriv);
+	    __glXUnrefDrawable(glxc->readPriv);
+	}
     }
 	
 
@@ -644,9 +649,8 @@ DoMakeCurrent(__GLXclientState *cl,
 	}
 
 	glxc->isCurrent = GL_TRUE;
-	__glXAssociateContext(glxc);
-	assert(drawPriv->drawGlxc == glxc);
-	assert(readPriv->readGlxc == glxc);
+	__glXRefDrawable(glxc->drawPriv);
+	__glXRefDrawable(glxc->readPriv);
     }
 
     if (prevglxc) {
diff --git a/glx/glxdrawable.h b/glx/glxdrawable.h
index 98e301b..5b43382 100644
--- a/glx/glxdrawable.h
+++ b/glx/glxdrawable.h
@@ -77,15 +77,6 @@ struct __GLXdrawable {
     __GLXconfig *config;
 
     /*
-    ** Lists of contexts bound to this drawable.  There are two lists here.
-    ** One list is of the contexts that have this drawable bound for drawing,
-    ** and the other is the list of contexts that have this drawable bound
-    ** for reading.
-    */
-    __GLXcontext *drawGlxc;
-    __GLXcontext *readGlxc;
-
-    /*
     ** reference count
     */
     int refCount;
diff --git a/glx/glxutil.c b/glx/glxutil.c
index fc73a02..f5b7414 100644
--- a/glx/glxutil.c
+++ b/glx/glxutil.c
@@ -44,74 +44,6 @@
 #include "glxserver.h"
 #include "glxutil.h"
 
-/************************************************************************/
-/* Context stuff */
-
-
-/*
-** associate a context with a drawable
-*/
-void
-__glXAssociateContext(__GLXcontext *glxc)
-{
-    glxc->nextDrawPriv = glxc->drawPriv->drawGlxc;
-    glxc->drawPriv->drawGlxc = glxc;
-
-    __glXRefDrawable(glxc->drawPriv);
-    
-
-    glxc->nextReadPriv = glxc->readPriv->readGlxc;
-    glxc->readPriv->readGlxc = glxc;
-
-    __glXRefDrawable(glxc->readPriv);
-}
-
-/*
-** Deassociate a context from a drawable
-*/
-void
-__glXDeassociateContext(__GLXcontext *glxc)
-{
-    __GLXcontext *curr, *prev;
-
-    prev = NULL;
-    if (glxc->drawPriv) {
-        for ( curr = glxc->drawPriv->drawGlxc; curr != NULL
-	      ; prev = curr, curr = curr->nextDrawPriv ) {
-	    if (curr == glxc) {
-	        /* found context.  Deassociate. */
-	        if (prev == NULL) {
-		    glxc->drawPriv->drawGlxc = curr->nextDrawPriv;
-	        } else {
-		    prev->nextDrawPriv = curr->nextDrawPriv;
-	        }
-	        curr->nextDrawPriv = NULL;
-	        __glXUnrefDrawable(glxc->drawPriv);
-	        break;
-	    }
-        }
-    }
-
-    prev = NULL;
-    if (glxc->readPriv) {
-        for ( curr = glxc->readPriv->readGlxc
-	      ; curr != NULL 
-	      ; prev = curr, curr = curr->nextReadPriv ) {
-	    if (curr == glxc) {
-	        /* found context.  Deassociate. */
-	        if (prev == NULL) {
-		    glxc->readPriv->readGlxc = curr->nextReadPriv;
-	        } else {
-		    prev->nextReadPriv = curr->nextReadPriv;
-	        }
-	        curr->nextReadPriv = NULL;
-	        __glXUnrefDrawable(glxc->readPriv);
-	       break;
-	   }
-       }
-    }
-}
-
 /*****************************************************************************/
 /* Drawable private stuff */
 


More information about the xorg-commit mailing list