From 4c61bf84b11e26e6f22648668c95ea760a379163 Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 11 Jun 2010 12:14:52 +0000 Subject: xserver git update 11/6/2010 --- xorg-server/glx/glxcmds.c | 3 +- xorg-server/glx/glxdri.c | 12 +- xorg-server/glx/glxdri2.c | 6 +- xorg-server/glx/glxdriswrast.c | 2 +- xorg-server/glx/glxext.c | 18 +- xorg-server/glx/glxscreens.c | 7 +- xorg-server/glx/single2.c | 6 +- xorg-server/glx/singlesize.c | 386 ++++++++++++++++++++--------------------- xorg-server/glx/xfont.c | 4 +- 9 files changed, 221 insertions(+), 223 deletions(-) (limited to 'xorg-server/glx') diff --git a/xorg-server/glx/glxcmds.c b/xorg-server/glx/glxcmds.c index 7ce1f4fcf..1b67a9ac0 100644 --- a/xorg-server/glx/glxcmds.c +++ b/xorg-server/glx/glxcmds.c @@ -2431,8 +2431,7 @@ int __glXDisp_ClientInfo(__GLXclientState *cl, GLbyte *pc) cl->GLClientmajorVersion = req->major; cl->GLClientminorVersion = req->minor; - if (cl->GLClientextensions) - free(cl->GLClientextensions); + free(cl->GLClientextensions); buf = (const char *)(req+1); cl->GLClientextensions = xstrdup(buf); diff --git a/xorg-server/glx/glxdri.c b/xorg-server/glx/glxdri.c index d92115bc0..642382998 100644 --- a/xorg-server/glx/glxdri.c +++ b/xorg-server/glx/glxdri.c @@ -468,7 +468,7 @@ nooverride: pRegion = NULL; } else { pRegion = DamageRegion(driDraw->pDamage); - if (REGION_NIL(pRegion)) + if (RegionNil(pRegion)) return Success; } @@ -531,8 +531,8 @@ nooverride: int i, numRects; BoxPtr p; - numRects = REGION_NUM_RECTS (pRegion); - p = REGION_RECTS (pRegion); + numRects = RegionNumRects (pRegion); + p = RegionRects (pRegion); CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, 0) ); CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, 0) ); @@ -832,12 +832,12 @@ static void __glXReportDamage(__DRIdrawable *driDraw, __glXenterServer(GL_FALSE); - REGION_INIT(pDraw->pScreen, ®ion, (BoxPtr) rects, num_rects); - REGION_TRANSLATE(pScreen, ®ion, pDraw->x, pDraw->y); + RegionInit(®ion, (BoxPtr) rects, num_rects); + RegionTranslate(®ion, pDraw->x, pDraw->y); DamageRegionAppend(pDraw, ®ion); /* This is wrong, this needs a seperate function. */ DamageRegionProcessPending(pDraw); - REGION_UNINIT(pDraw->pScreen, ®ion); + RegionUninit(®ion); __glXleaveServer(GL_FALSE); } diff --git a/xorg-server/glx/glxdri2.c b/xorg-server/glx/glxdri2.c index 1faefb002..f4cb76383 100644 --- a/xorg-server/glx/glxdri2.c +++ b/xorg-server/glx/glxdri2.c @@ -122,7 +122,7 @@ __glXDRIdrawableCopySubBuffer(__GLXdrawable *drawable, box.y1 = private->height - y - h; box.x2 = x + w; box.y2 = private->height - y; - REGION_INIT(drawable->pDraw->pScreen, ®ion, &box, 0); + RegionInit(®ion, &box, 0); DRI2CopyRegion(drawable->pDraw, ®ion, DRI2BufferFrontLeft, DRI2BufferBackLeft); @@ -139,7 +139,7 @@ __glXDRIdrawableWaitX(__GLXdrawable *drawable) box.y1 = 0; box.x2 = private->width; box.y2 = private->height; - REGION_INIT(drawable->pDraw->pScreen, ®ion, &box, 0); + RegionInit(®ion, &box, 0); DRI2CopyRegion(drawable->pDraw, ®ion, DRI2BufferFakeFrontLeft, DRI2BufferFrontLeft); @@ -156,7 +156,7 @@ __glXDRIdrawableWaitGL(__GLXdrawable *drawable) box.y1 = 0; box.x2 = private->width; box.y2 = private->height; - REGION_INIT(drawable->pDraw->pScreen, ®ion, &box, 0); + RegionInit(®ion, &box, 0); DRI2CopyRegion(drawable->pDraw, ®ion, DRI2BufferFrontLeft, DRI2BufferFakeFrontLeft); diff --git a/xorg-server/glx/glxdriswrast.c b/xorg-server/glx/glxdriswrast.c index acdcc645c..fbda3cda5 100644 --- a/xorg-server/glx/glxdriswrast.c +++ b/xorg-server/glx/glxdriswrast.c @@ -329,7 +329,7 @@ __glXDRIscreenCreateDrawable(ClientPtr client, gcvals[0].val = GXcopy; ChangeGC(NullClient, private->gc, GCFunction, gcvals); gcvals[1].val = FALSE; - ChangeGC(NullClient, private->gc, GCFunction | GCGraphicsExposures, gcvals); + ChangeGC(NullClient, private->swapgc, GCFunction | GCGraphicsExposures, gcvals); private->driDrawable = (*driScreen->swrast->createNewDrawable)(driScreen->driScreen, diff --git a/xorg-server/glx/glxext.c b/xorg-server/glx/glxext.c index 349b0f983..9c99a5879 100644 --- a/xorg-server/glx/glxext.c +++ b/xorg-server/glx/glxext.c @@ -65,8 +65,8 @@ RESTYPE __glXSwapBarrierRes; */ xGLXSingleReply __glXReply; -static int glxClientPrivateKeyIndex; -static DevPrivateKey glxClientPrivateKey = &glxClientPrivateKeyIndex; +static DevPrivateKeyRec glxClientPrivateKeyRec; +#define glxClientPrivateKey (&glxClientPrivateKeyRec) /* ** Client that called into GLX dispatch. @@ -205,8 +205,8 @@ GLboolean __glXFreeContext(__GLXcontext *cx) { if (cx->idExists || cx->isCurrent) return GL_FALSE; - if (cx->feedbackBuf) free(cx->feedbackBuf); - if (cx->selectBuf) free(cx->selectBuf); + free(cx->feedbackBuf); + free(cx->selectBuf); if (cx == __glXLastContext) { __glXFlushContextCache(); } @@ -323,10 +323,10 @@ glxClientCallback (CallbackListPtr *list, } } - if (cl->returnBuf) free(cl->returnBuf); - if (cl->largeCmdBuf) free(cl->largeCmdBuf); - if (cl->currentContexts) free(cl->currentContexts); - if (cl->GLClientextensions) free(cl->GLClientextensions); + free(cl->returnBuf); + free(cl->largeCmdBuf); + free(cl->currentContexts); + free(cl->GLClientextensions); break; default: @@ -364,7 +364,7 @@ void GlxExtensionInit(void) if (!__glXContextRes || !__glXDrawableRes || !__glXSwapBarrierRes) return; - if (!dixRequestPrivate(glxClientPrivateKey, sizeof (__GLXclientState))) + if (!dixRegisterPrivateKey(&glxClientPrivateKeyRec, PRIVATE_CLIENT, sizeof (__GLXclientState))) return; if (!AddCallback (&ClientStateCallback, glxClientCallback, 0)) return; diff --git a/xorg-server/glx/glxscreens.c b/xorg-server/glx/glxscreens.c index 4bd2eed5e..e3993bded 100644 --- a/xorg-server/glx/glxscreens.c +++ b/xorg-server/glx/glxscreens.c @@ -44,8 +44,8 @@ #include "glxext.h" #include "protocol-versions.h" -static int glxScreenPrivateKeyIndex; -static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKeyIndex; +static DevPrivateKeyRec glxScreenPrivateKeyRec; +#define glxScreenPrivateKey (&glxScreenPrivateKeyRec) const char GLServerVersion[] = "1.4"; static const char GLServerExtensions[] = @@ -352,6 +352,9 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen) __GLXconfig *config; int i; + if (!dixRegisterPrivateKey(&glxScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) + return; + pGlxScreen->pScreen = pScreen; pGlxScreen->GLextensions = xstrdup(GLServerExtensions); pGlxScreen->GLXvendor = xstrdup(GLXServerVendorName); diff --git a/xorg-server/glx/single2.c b/xorg-server/glx/single2.c index 754cc0b86..ee6e64f07 100644 --- a/xorg-server/glx/single2.c +++ b/xorg-server/glx/single2.c @@ -272,10 +272,8 @@ char *__glXcombine_strings(const char *cext_string, const char *sext_string) s2 = sext_string; } if (!combo_string || !s1) { - if (combo_string) - free(combo_string); - if (s1) - free(s1); + free(combo_string); + free(s1); return NULL; } combo_string[0] = '\0'; diff --git a/xorg-server/glx/singlesize.c b/xorg-server/glx/singlesize.c index 9e95dd3d3..d338886b4 100644 --- a/xorg-server/glx/singlesize.c +++ b/xorg-server/glx/singlesize.c @@ -1,193 +1,193 @@ -/* - * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) - * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice including the dates of first publication and - * either this permission notice or a reference to - * http://oss.sgi.com/projects/FreeB/ - * shall be included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF - * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Except as contained in this notice, the name of Silicon Graphics, Inc. - * shall not be used in advertising or otherwise to promote the sale, use or - * other dealings in this Software without prior written authorization from - * Silicon Graphics, Inc. - */ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#include -#include "glxserver.h" -#include "singlesize.h" -#include "indirect_size_get.h" -#include "glapitable.h" -#include "glapi.h" -#include "glthread.h" -#include "dispatch.h" - -/* -** These routines compute the size of variable-size returned parameters. -** Unlike the similar routines that do the same thing for variable-size -** incoming parameters, the samplegl library itself doesn't use these routines. -** Hence, they are located here, in the GLX extension library. -*/ - -GLint __glReadPixels_size(GLenum format, GLenum type, GLint w, GLint h) -{ - return __glXImageSize( format, type, 0, w, h, 1, 0, 0, 0, 0, 4 ); -} - -GLint __glGetMap_size(GLenum target, GLenum query) -{ - GLint k, order=0, majorMinor[2]; - - /* - ** Assume target and query are both valid. - */ - switch (target) { - case GL_MAP1_COLOR_4: - case GL_MAP1_NORMAL: - case GL_MAP1_INDEX: - case GL_MAP1_TEXTURE_COORD_1: - case GL_MAP1_TEXTURE_COORD_2: - case GL_MAP1_TEXTURE_COORD_3: - case GL_MAP1_TEXTURE_COORD_4: - case GL_MAP1_VERTEX_3: - case GL_MAP1_VERTEX_4: - switch (query) { - case GL_COEFF: - k = __glMap1d_size(target); - CALL_GetMapiv( GET_DISPATCH(), (target, GL_ORDER, &order) ); - /* - ** The query above might fail, but then order will be zero anyway. - */ - return (order * k); - case GL_DOMAIN: - return 2; - case GL_ORDER: - return 1; - } - break; - case GL_MAP2_COLOR_4: - case GL_MAP2_NORMAL: - case GL_MAP2_INDEX: - case GL_MAP2_TEXTURE_COORD_1: - case GL_MAP2_TEXTURE_COORD_2: - case GL_MAP2_TEXTURE_COORD_3: - case GL_MAP2_TEXTURE_COORD_4: - case GL_MAP2_VERTEX_3: - case GL_MAP2_VERTEX_4: - switch (query) { - case GL_COEFF: - k = __glMap2d_size(target); - majorMinor[0] = majorMinor[1] = 0; - CALL_GetMapiv( GET_DISPATCH(), (target, GL_ORDER, majorMinor) ); - /* - ** The query above might fail, but then majorMinor will be zeroes - */ - return (majorMinor[0] * majorMinor[1] * k); - case GL_DOMAIN: - return 4; - case GL_ORDER: - return 2; - } - break; - } - return -1; -} - -GLint __glGetMapdv_size(GLenum target, GLenum query) -{ - return __glGetMap_size(target, query); -} - -GLint __glGetMapfv_size(GLenum target, GLenum query) -{ - return __glGetMap_size(target, query); -} - -GLint __glGetMapiv_size(GLenum target, GLenum query) -{ - return __glGetMap_size(target, query); -} - -GLint __glGetPixelMap_size(GLenum map) -{ - GLint size; - GLenum query; - - switch (map) { - case GL_PIXEL_MAP_I_TO_I: - query = GL_PIXEL_MAP_I_TO_I_SIZE; - break; - case GL_PIXEL_MAP_S_TO_S: - query = GL_PIXEL_MAP_S_TO_S_SIZE; - break; - case GL_PIXEL_MAP_I_TO_R: - query = GL_PIXEL_MAP_I_TO_R_SIZE; - break; - case GL_PIXEL_MAP_I_TO_G: - query = GL_PIXEL_MAP_I_TO_G_SIZE; - break; - case GL_PIXEL_MAP_I_TO_B: - query = GL_PIXEL_MAP_I_TO_B_SIZE; - break; - case GL_PIXEL_MAP_I_TO_A: - query = GL_PIXEL_MAP_I_TO_A_SIZE; - break; - case GL_PIXEL_MAP_R_TO_R: - query = GL_PIXEL_MAP_R_TO_R_SIZE; - break; - case GL_PIXEL_MAP_G_TO_G: - query = GL_PIXEL_MAP_G_TO_G_SIZE; - break; - case GL_PIXEL_MAP_B_TO_B: - query = GL_PIXEL_MAP_B_TO_B_SIZE; - break; - case GL_PIXEL_MAP_A_TO_A: - query = GL_PIXEL_MAP_A_TO_A_SIZE; - break; - default: - return -1; - } - CALL_GetIntegerv( GET_DISPATCH(), (query, &size) ); - return size; -} - -GLint __glGetPixelMapfv_size(GLenum map) -{ - return __glGetPixelMap_size(map); -} - -GLint __glGetPixelMapuiv_size(GLenum map) -{ - return __glGetPixelMap_size(map); -} - -GLint __glGetPixelMapusv_size(GLenum map) -{ - return __glGetPixelMap_size(map); -} - -GLint __glGetTexImage_size(GLenum target, GLint level, GLenum format, - GLenum type, GLint width, GLint height, GLint depth) -{ - return __glXImageSize( format, type, target, width, height, depth, - 0, 0, 0, 0, 4 ); -} +/* + * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) + * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice including the dates of first publication and + * either this permission notice or a reference to + * http://oss.sgi.com/projects/FreeB/ + * shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of Silicon Graphics, Inc. + * shall not be used in advertising or otherwise to promote the sale, use or + * other dealings in this Software without prior written authorization from + * Silicon Graphics, Inc. + */ + +#ifdef HAVE_DIX_CONFIG_H +#include +#endif + +#include +#include "glxserver.h" +#include "singlesize.h" +#include "indirect_size_get.h" +#include "glapitable.h" +#include "glapi.h" +#include "glthread.h" +#include "dispatch.h" + +/* +** These routines compute the size of variable-size returned parameters. +** Unlike the similar routines that do the same thing for variable-size +** incoming parameters, the samplegl library itself doesn't use these routines. +** Hence, they are located here, in the GLX extension library. +*/ + +GLint __glReadPixels_size(GLenum format, GLenum type, GLint w, GLint h) +{ + return __glXImageSize( format, type, 0, w, h, 1, 0, 0, 0, 0, 4 ); +} + +GLint __glGetMap_size(GLenum target, GLenum query) +{ + GLint k, order=0, majorMinor[2]; + + /* + ** Assume target and query are both valid. + */ + switch (target) { + case GL_MAP1_COLOR_4: + case GL_MAP1_NORMAL: + case GL_MAP1_INDEX: + case GL_MAP1_TEXTURE_COORD_1: + case GL_MAP1_TEXTURE_COORD_2: + case GL_MAP1_TEXTURE_COORD_3: + case GL_MAP1_TEXTURE_COORD_4: + case GL_MAP1_VERTEX_3: + case GL_MAP1_VERTEX_4: + switch (query) { + case GL_COEFF: + k = __glMap1d_size(target); + CALL_GetMapiv( GET_DISPATCH(), (target, GL_ORDER, &order) ); + /* + ** The query above might fail, but then order will be zero anyway. + */ + return order * k; + case GL_DOMAIN: + return 2; + case GL_ORDER: + return 1; + } + break; + case GL_MAP2_COLOR_4: + case GL_MAP2_NORMAL: + case GL_MAP2_INDEX: + case GL_MAP2_TEXTURE_COORD_1: + case GL_MAP2_TEXTURE_COORD_2: + case GL_MAP2_TEXTURE_COORD_3: + case GL_MAP2_TEXTURE_COORD_4: + case GL_MAP2_VERTEX_3: + case GL_MAP2_VERTEX_4: + switch (query) { + case GL_COEFF: + k = __glMap2d_size(target); + majorMinor[0] = majorMinor[1] = 0; + CALL_GetMapiv( GET_DISPATCH(), (target, GL_ORDER, majorMinor) ); + /* + ** The query above might fail, but then majorMinor will be zeroes + */ + return majorMinor[0] * majorMinor[1] * k; + case GL_DOMAIN: + return 4; + case GL_ORDER: + return 2; + } + break; + } + return -1; +} + +GLint __glGetMapdv_size(GLenum target, GLenum query) +{ + return __glGetMap_size(target, query); +} + +GLint __glGetMapfv_size(GLenum target, GLenum query) +{ + return __glGetMap_size(target, query); +} + +GLint __glGetMapiv_size(GLenum target, GLenum query) +{ + return __glGetMap_size(target, query); +} + +GLint __glGetPixelMap_size(GLenum map) +{ + GLint size; + GLenum query; + + switch (map) { + case GL_PIXEL_MAP_I_TO_I: + query = GL_PIXEL_MAP_I_TO_I_SIZE; + break; + case GL_PIXEL_MAP_S_TO_S: + query = GL_PIXEL_MAP_S_TO_S_SIZE; + break; + case GL_PIXEL_MAP_I_TO_R: + query = GL_PIXEL_MAP_I_TO_R_SIZE; + break; + case GL_PIXEL_MAP_I_TO_G: + query = GL_PIXEL_MAP_I_TO_G_SIZE; + break; + case GL_PIXEL_MAP_I_TO_B: + query = GL_PIXEL_MAP_I_TO_B_SIZE; + break; + case GL_PIXEL_MAP_I_TO_A: + query = GL_PIXEL_MAP_I_TO_A_SIZE; + break; + case GL_PIXEL_MAP_R_TO_R: + query = GL_PIXEL_MAP_R_TO_R_SIZE; + break; + case GL_PIXEL_MAP_G_TO_G: + query = GL_PIXEL_MAP_G_TO_G_SIZE; + break; + case GL_PIXEL_MAP_B_TO_B: + query = GL_PIXEL_MAP_B_TO_B_SIZE; + break; + case GL_PIXEL_MAP_A_TO_A: + query = GL_PIXEL_MAP_A_TO_A_SIZE; + break; + default: + return -1; + } + CALL_GetIntegerv( GET_DISPATCH(), (query, &size) ); + return size; +} + +GLint __glGetPixelMapfv_size(GLenum map) +{ + return __glGetPixelMap_size(map); +} + +GLint __glGetPixelMapuiv_size(GLenum map) +{ + return __glGetPixelMap_size(map); +} + +GLint __glGetPixelMapusv_size(GLenum map) +{ + return __glGetPixelMap_size(map); +} + +GLint __glGetTexImage_size(GLenum target, GLint level, GLenum format, + GLenum type, GLint width, GLint height, GLint depth) +{ + return __glXImageSize( format, type, target, width, height, depth, + 0, 0, 0, 0, 4 ); +} diff --git a/xorg-server/glx/xfont.c b/xorg-server/glx/xfont.c index abcad1240..73b546d0e 100644 --- a/xorg-server/glx/xfont.c +++ b/xorg-server/glx/xfont.c @@ -97,9 +97,7 @@ static int __glXMakeBitmapFromGlyph(FontPtr font, CharInfoPtr pci) pci->metrics.characterWidth, 0, allocbuf ? allocbuf : buf) ); - if (allocbuf) { - free(allocbuf); - } + free(allocbuf); return Success; #undef __GL_CHAR_BUF_SIZE } -- cgit v1.2.3