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