From ad503c41557606d15b0420c824369456f6d20a8f Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 1 Apr 2010 11:01:31 -0700 Subject: apple: Initial import of libGL for OSX from AppleSGLX svn repository. Signed-off-by: Jeremy Huddleston --- src/glx/glxcmds.c | 184 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 170 insertions(+), 14 deletions(-) (limited to 'src/glx/glxcmds.c') diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index e2c47812d7..50802b7e1f 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -34,11 +34,17 @@ */ #include "glxclient.h" +#ifdef GLX_USE_APPLEGL +#include "apple_glx_context.h" +#include "apple_glx.h" +#include "glx_error.h" +#else #include "glapi.h" +#endif #include "glxextensions.h" #include "glcontextmodes.h" -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include #include "xf86dri.h" @@ -344,6 +350,12 @@ AllocateGLXContext(Display * dpy) bufSize = __GLX_MAX_RENDER_CMD_SIZE; } gc->maxSmallRenderCommandSize = bufSize; + +#ifdef GLX_USE_APPLEGL + gc->apple = NULL; + gc->do_destroy = False; +#endif + return gc; } @@ -368,7 +380,11 @@ CreateContext(Display * dpy, int generic_id, #ifdef GLX_DIRECT_RENDERING __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); #endif - +#ifdef GLX_USE_APPLEGL + int errorcode; + bool x11error; +#endif + if (dpy == NULL) return NULL; @@ -379,6 +395,7 @@ CreateContext(Display * dpy, int generic_id, if (!gc) return NULL; +#ifndef GLX_USE_APPLEGL #ifdef GLX_DIRECT_RENDERING if (allowDirect && psc->driScreen) { gc->driContext = psc->driScreen->createContext(psc, fbconfig, gc, @@ -455,9 +472,24 @@ CreateContext(Display * dpy, int generic_id, UnlockDisplay(dpy); SyncHandle(); +#endif gc->imported = GL_FALSE; +#ifdef GLX_USE_APPLEGL + if(apple_glx_create_context(&gc->apple, dpy, screen, fbconfig, + shareList ? shareList->apple : NULL, + &errorcode, &x11error)) { + __glXSendError(dpy, errorcode, 0, X_GLXCreateContext, x11error); + __glXFreeContext(gc); + return NULL; + } + + gc->currentContextTag = -1; + gc->mode = fbconfig; + gc->isDirect = allowDirect; +#else gc->renderType = renderType; +#endif return gc; } @@ -469,7 +501,7 @@ glXCreateContext(Display * dpy, XVisualInfo * vis, const __GLcontextModes *mode = NULL; int renderType = 0; -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) || defined(GLX_USE_APPLEGL) __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, vis->screen); mode = _gl_context_modes_find_visual(psc->visuals, vis->visualid); @@ -504,7 +536,9 @@ __glXFreeContext(__GLXcontext * gc) XFree((char *) gc->version); if (gc->extensions) XFree((char *) gc->extensions); +#ifndef GLX_USE_APPLEGL __glFreeAttributeState(gc); +#endif XFree((char *) gc->buf); Xfree((char *) gc->client_state_private); XFree((char *) gc); @@ -517,6 +551,7 @@ __glXFreeContext(__GLXcontext * gc) static void DestroyContext(Display * dpy, GLXContext gc) { +#ifndef GLX_USE_APPLEGL xGLXDestroyContextReq *req; GLXContextID xid; CARD8 opcode; @@ -552,17 +587,31 @@ DestroyContext(Display * dpy, GLXContext gc) #endif __glXFreeVertexArrayState(gc); +#else + __glXLock(); +#endif /* GLX_USE_APPLEGL */ if (gc->currentDpy) { +#ifdef GLX_USE_APPLEGL + /* + * Set the Bool that indicates that we should destroy this GLX context + * when the context is no longer current. + */ + gc->do_destroy = True; +#endif /* Have to free later cuz it's in use now */ __glXUnlock(); } else { /* Destroy the handle if not current to anybody */ __glXUnlock(); +#ifdef GLX_USE_APPLEGL + if(gc->apple) + apple_glx_destroy_context(&gc->apple, dpy); +#endif __glXFreeContext(gc); } - +#ifndef GLX_USE_APPLEGL if (!imported) { /* ** This dpy also created the server side part of the context. @@ -576,6 +625,7 @@ DestroyContext(Display * dpy, GLXContext gc) UnlockDisplay(dpy); SyncHandle(); } +#endif } PUBLIC void @@ -630,7 +680,9 @@ glXQueryExtension(Display * dpy, int *errorBase, int *eventBase) PUBLIC void glXWaitGL(void) { +#ifndef GLX_USE_APPLEGL xGLXWaitGLReq *req; +#endif GLXContext gc = __glXGetCurrentContext(); Display *dpy = gc->currentDpy; @@ -639,7 +691,9 @@ glXWaitGL(void) /* Flush any pending commands out */ __glXFlushRenderBuffer(gc, gc->pc); - +#ifdef GLX_USE_APPLEGL + glFinish(); +#else #ifdef GLX_DIRECT_RENDERING if (gc->driContext) { int screen; @@ -664,6 +718,7 @@ glXWaitGL(void) req->contextTag = gc->currentContextTag; UnlockDisplay(dpy); SyncHandle(); +#endif /* GLX_USE_APPLEGL */ } /* @@ -673,7 +728,9 @@ glXWaitGL(void) PUBLIC void glXWaitX(void) { +#ifndef GLX_USE_APPLEGL xGLXWaitXReq *req; +#endif GLXContext gc = __glXGetCurrentContext(); Display *dpy = gc->currentDpy; @@ -683,6 +740,9 @@ glXWaitX(void) /* Flush any pending commands out */ __glXFlushRenderBuffer(gc, gc->pc); +#ifdef GLX_USE_APPLEGL + apple_glx_waitx(dpy, gc->apple); +#else #ifdef GLX_DIRECT_RENDERING if (gc->driContext) { int screen; @@ -710,12 +770,15 @@ glXWaitX(void) req->contextTag = gc->currentContextTag; UnlockDisplay(dpy); SyncHandle(); +#endif /* GLX_USE_APPLEGL */ } PUBLIC void glXUseXFont(Font font, int first, int count, int listBase) { +#ifndef GLX_USE_APPLEGL xGLXUseXFontReq *req; +#endif GLXContext gc = __glXGetCurrentContext(); Display *dpy = gc->currentDpy; @@ -724,7 +787,9 @@ glXUseXFont(Font font, int first, int count, int listBase) /* Flush any pending commands out */ (void) __glXFlushRenderBuffer(gc, gc->pc); - +#ifdef GLX_USE_APPLEGL + DRI_glXUseXFont(font, first, count, listBase); +#else #ifdef GLX_DIRECT_RENDERING if (gc->driContext) { DRI_glXUseXFont(font, first, count, listBase); @@ -744,6 +809,7 @@ glXUseXFont(Font font, int first, int count, int listBase) req->listBase = listBase; UnlockDisplay(dpy); SyncHandle(); +#endif /* GLX_USE_APPLEGL */ } /************************************************************************/ @@ -756,6 +822,17 @@ PUBLIC void glXCopyContext(Display * dpy, GLXContext source, GLXContext dest, unsigned long mask) { +#ifdef GLX_USE_APPLEGL + GLXContext gc = __glXGetCurrentContext(); + int errorcode; + bool x11error; + + if(apple_glx_copy_context(gc->apple, source->apple, dest->apple, + mask, &errorcode, &x11error)) { + __glXSendError(dpy, errorcode, 0, X_GLXCopyContext, x11error); + } + +#else xGLXCopyContextReq *req; GLXContext gc = __glXGetCurrentContext(); GLXContextTag tag; @@ -794,9 +871,11 @@ glXCopyContext(Display * dpy, GLXContext source, req->contextTag = tag; UnlockDisplay(dpy); SyncHandle(); +#endif /* GLX_USE_APPLEGL */ } +#ifndef GLX_USE_APPLEGL /** * Determine if a context uses direct rendering. * @@ -844,6 +923,7 @@ __glXIsDirect(Display * dpy, GLXContextID contextID) return reply.isDirect; #endif /* USE_XCB */ } +#endif /* GLX_USE_APPLEGL */ /** * \todo @@ -854,6 +934,17 @@ __glXIsDirect(Display * dpy, GLXContextID contextID) PUBLIC Bool glXIsDirect(Display * dpy, GLXContext gc) { +#ifdef GLX_USE_APPLEGL + /* + * This isn't an ideal test. + * glXIsDirect should probably search a list of contexts. + */ + if(NULL == gc) { + __glXSendError(dpy, GLXBadContext, 0, X_GLXIsDirect, false); + return False; + } + return gc->isDirect; +#else if (!gc) { return GL_FALSE; } @@ -861,11 +952,24 @@ glXIsDirect(Display * dpy, GLXContext gc) return GL_TRUE; } return __glXIsDirect(dpy, gc->xid); +#endif /* GLX_USE_APPLEGL */ } PUBLIC GLXPixmap glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) { +#ifdef GLX_USE_APPLEGL + int screen = vis->screen; + __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); + const __GLcontextModes *modes; + + modes = _gl_context_modes_find_visual(psc->visuals, vis->visualid); + + if(apple_glx_pixmap_create(dpy, vis->screen, pixmap, modes)) + return None; + + return pixmap; +#else xGLXCreateGLXPixmapReq *req; GLXPixmap xid; CARD8 opcode; @@ -915,6 +1019,7 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) #endif return xid; +#endif } /* @@ -923,6 +1028,10 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) PUBLIC void glXDestroyGLXPixmap(Display * dpy, GLXPixmap glxpixmap) { +#ifdef GLX_USE_APPLEGL + if(apple_glx_pixmap_destroy(dpy, glxpixmap)) + __glXSendError(dpy, GLXBadPixmap, glxpixmap, X_GLXDestroyPixmap, false); +#else xGLXDestroyGLXPixmapReq *req; CARD8 opcode; @@ -953,11 +1062,20 @@ glXDestroyGLXPixmap(Display * dpy, GLXPixmap glxpixmap) } } #endif +#endif /* GLX_USE_APPLEGL */ } PUBLIC void glXSwapBuffers(Display * dpy, GLXDrawable drawable) { +#ifdef GLX_USE_APPLEGL + GLXContext gc = glXGetCurrentContext(); + if(gc && apple_glx_is_current_drawable(dpy, gc->apple, drawable)) { + apple_glx_swap_buffers(gc->apple); + } else { + __glXSendError(dpy, GLXBadCurrentWindow, 0, X_GLXSwapBuffers, false); + } +#else GLXContext gc; GLXContextTag tag; CARD8 opcode; @@ -1012,6 +1130,7 @@ glXSwapBuffers(Display * dpy, GLXDrawable drawable) SyncHandle(); XFlush(dpy); #endif /* USE_XCB */ +#endif /* GLX_USE_APPLEGL */ } @@ -1440,6 +1559,12 @@ glXChooseVisual(Display * dpy, int screen, int *attribList) } } +#ifdef GLX_USE_APPLEGL + if(visualList && getenv("LIBGL_DUMP_VISUALID")) { + printf("visualid 0x%lx\n", visualList[0].visualid); + } +#endif + return visualList; } @@ -1573,6 +1698,7 @@ PUBLIC GLX_ALIAS(Display *, glXGetCurrentDisplayEXT, (void), (), glXGetCurrentDisplay) +#ifndef GLX_USE_APPLEGL /** * Used internally by libGL to send \c xGLXQueryContextinfoExtReq requests * to the X-server. @@ -1684,9 +1810,12 @@ static int __glXQueryContextInfo(Display * dpy, GLXContext ctx) return retval; } +#endif + PUBLIC int glXQueryContext(Display * dpy, GLXContext ctx, int attribute, int *value) { +#ifndef GLX_USE_APPLEGL int retVal; /* get the information from the server if we don't have it already */ @@ -1699,13 +1828,17 @@ glXQueryContext(Display * dpy, GLXContext ctx, int attribute, int *value) if (Success != retVal) return retVal; } +#endif + switch (attribute) { - case GLX_SHARE_CONTEXT_EXT: +#ifndef GLX_USE_APPLEGL + case GLX_SHARE_CONTEXT_EXT: *value = (int) (ctx->share_xid); break; case GLX_VISUAL_ID_EXT: *value = ctx->mode ? ctx->mode->visualID : None; break; +#endif case GLX_SCREEN: *value = (int) (ctx->screen); break; @@ -1734,6 +1867,9 @@ PUBLIC GLXContextID glXGetContextIDEXT(const GLXContext ctx) PUBLIC GLXContext glXImportContextEXT(Display * dpy, GLXContextID contextID) { +#ifdef GLX_USE_APPLEGL + return NULL; +#else GLXContext ctx; if (contextID == None) { @@ -1754,6 +1890,7 @@ glXImportContextEXT(Display * dpy, GLXContextID contextID) } } return ctx; +#endif } PUBLIC void @@ -1881,7 +2018,7 @@ glXGetVisualFromFBConfig(Display * dpy, GLXFBConfig config) return XGetVisualInfo(dpy, VisualIDMask, &visualTemplate, &count); } - +#ifndef GLX_USE_APPLEGL /* ** GLX_SGI_swap_control */ @@ -2236,6 +2373,7 @@ __glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) return GLX_BAD_CONTEXT; } +#endif /* GLX_USE_APPLEGL */ /* ** GLX_SGIX_fbconfig @@ -2262,17 +2400,24 @@ glXCreateGLXPixmapWithConfigSGIX(Display * dpy, GLXFBConfigSGIX config, Pixmap pixmap) { +#ifndef GLX_USE_APPLEGL xGLXVendorPrivateWithReplyReq *vpreq; xGLXCreateGLXPixmapWithConfigSGIXReq *req; GLXPixmap xid = None; CARD8 opcode; - const __GLcontextModes *const fbconfig = (__GLcontextModes *) config; __GLXscreenConfigs *psc; +#endif + const __GLcontextModes *const fbconfig = (__GLcontextModes *) config; if ((dpy == NULL) || (config == NULL)) { return None; } +#ifdef GLX_USE_APPLEGL + if(apple_glx_pixmap_create(dpy, fbconfig->screen, pixmap, fbconfig)) + return None; + return pixmap; +#else psc = GetGLXScreenConfigs(dpy, fbconfig->screen); if ((psc != NULL) @@ -2300,6 +2445,7 @@ glXCreateGLXPixmapWithConfigSGIX(Display * dpy, } return xid; +#endif } PUBLIC GLXContext @@ -2345,7 +2491,7 @@ glXGetFBConfigFromVisualSGIX(Display * dpy, XVisualInfo * vis) return NULL; } - +#ifndef GLX_USE_APPLEGL /* ** GLX_SGIX_swap_group */ @@ -2963,6 +3109,8 @@ __glXReleaseTexImageEXT(Display * dpy, GLXDrawable drawable, int buffer) /*@}*/ +#endif /* GLX_USE_APPLEGL */ + /** * \c strdup is actually not a standard ANSI C or POSIX routine. * Irix will not define it if ANSI mode is in effect. @@ -3040,6 +3188,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION(glXQueryDrawable), GLX_FUNCTION(glXSelectEvent), +#ifndef GLX_USE_APPLEGL /*** GLX_SGI_swap_control ***/ GLX_FUNCTION2(glXSwapIntervalSGI, __glXSwapIntervalSGI), @@ -3057,6 +3206,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXGetCurrentDisplayEXT, glXGetCurrentDisplay), GLX_FUNCTION(glXImportContextEXT), GLX_FUNCTION2(glXQueryContextInfoEXT, glXQueryContext), +#endif /*** GLX_SGIX_fbconfig ***/ GLX_FUNCTION2(glXGetFBConfigAttribSGIX, glXGetFBConfigAttrib), @@ -3066,6 +3216,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXGetVisualFromFBConfigSGIX, glXGetVisualFromFBConfig), GLX_FUNCTION(glXGetFBConfigFromVisualSGIX), +#ifndef GLX_USE_APPLEGL /*** GLX_SGIX_pbuffer ***/ GLX_FUNCTION(glXCreateGLXPbufferSGIX), GLX_FUNCTION(glXDestroyGLXPbufferSGIX), @@ -3103,6 +3254,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXEndFrameTrackingMESA, __glXEndFrameTrackingMESA), GLX_FUNCTION2(glXGetFrameUsageMESA, __glXGetFrameUsageMESA), GLX_FUNCTION2(glXQueryFrameTrackingMESA, __glXQueryFrameTrackingMESA), +#endif /*** GLX_ARB_get_proc_address ***/ GLX_FUNCTION(glXGetProcAddressARB), @@ -3110,6 +3262,7 @@ static const struct name_address_pair GLX_functions[] = { /*** GLX 1.4 ***/ GLX_FUNCTION2(glXGetProcAddress, glXGetProcAddressARB), +#ifndef GLX_USE_APPLEGL /*** GLX_OML_sync_control ***/ GLX_FUNCTION2(glXWaitForSbcOML, __glXWaitForSbcOML), GLX_FUNCTION2(glXWaitForMscOML, __glXWaitForMscOML), @@ -3120,6 +3273,7 @@ static const struct name_address_pair GLX_functions[] = { /*** GLX_EXT_texture_from_pixmap ***/ GLX_FUNCTION2(glXBindTexImageEXT, __glXBindTexImageEXT), GLX_FUNCTION2(glXReleaseTexImageEXT, __glXReleaseTexImageEXT), +#endif #ifdef GLX_DIRECT_RENDERING /*** DRI configuration ***/ @@ -3130,7 +3284,7 @@ static const struct name_address_pair GLX_functions[] = { {NULL, NULL} /* end of list */ }; - +#ifndef GLX_USE_APPLEGL static const GLvoid * get_glx_proc_address(const char *funcName) { @@ -3144,7 +3298,7 @@ get_glx_proc_address(const char *funcName) return NULL; } - +#endif /** * Get the address of a named GL function. This is the pre-GLX 1.4 name for @@ -3167,13 +3321,15 @@ PUBLIC void (*glXGetProcAddressARB(const GLubyte * procName)) (void) * DRI based drivers from searching the core GL function table for * internal API functions. */ - +#ifdef GLX_USE_APPLEGL + f = (gl_function) apple_glx_get_proc_address(procName); +#else f = (gl_function) get_glx_proc_address((const char *) procName); if ((f == NULL) && (procName[0] == 'g') && (procName[1] == 'l') && (procName[2] != 'X')) { f = (gl_function) _glapi_get_proc_address((const char *) procName); } - +#endif return f; } -- cgit v1.2.3 From 80b280db883edc9550484dba03bd5c124b6a9bf9 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Fri, 2 Apr 2010 01:35:19 -0700 Subject: apple: Change ifdefs for DRI to be DRI && !APPLE Signed-off-by: Jeremy Huddleston --- src/glx/XF86dri.c | 2 +- src/glx/apple/Makefile | 4 +- src/glx/apple/apple_xgl_api_read.c | 6 +-- src/glx/apple/apple_xgl_api_stereo.c | 4 +- src/glx/apple/apple_xgl_api_viewport.c | 4 +- src/glx/dri2_glx.c | 2 +- src/glx/dri_common.c | 2 +- src/glx/dri_glx.c | 2 +- src/glx/drisw_glx.c | 2 +- src/glx/glx_pbuffer.c | 6 +-- src/glx/glxclient.h | 33 +++++------- src/glx/glxcmds.c | 97 ++++++++++++++++------------------ src/glx/glxcurrent.c | 20 +++---- src/glx/glxext.c | 10 ++-- src/glx/indirect.c | 30 +++++------ src/glx/singlepix.c | 2 +- src/glx/xfont.c | 2 +- 17 files changed, 108 insertions(+), 120 deletions(-) (limited to 'src/glx/glxcmds.c') diff --git a/src/glx/XF86dri.c b/src/glx/XF86dri.c index fdbdd43000..d0e88805bc 100644 --- a/src/glx/XF86dri.c +++ b/src/glx/XF86dri.c @@ -36,7 +36,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /* THIS IS NOT AN X CONSORTIUM STANDARD */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #define NEED_REPLIES #include diff --git a/src/glx/apple/Makefile b/src/glx/apple/Makefile index 314dd4d396..4c05013f3f 100644 --- a/src/glx/apple/Makefile +++ b/src/glx/apple/Makefile @@ -2,7 +2,7 @@ INSTALL_DIR = /usr/X11 X11_DIR = $(INSTALL_DIR) CC=gcc -GL_CFLAGS=-Wall -ggdb3 -Os -DPTHREADS -D_REENTRANT -DGLX_USE_APPLEGL -DGLX_ALIAS_UNSUPPORTED $(RC_CFLAGS) $(CFLAGS) +GL_CFLAGS=-Wall -ggdb3 -Os -DPTHREADS -D_REENTRANT -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL -DGLX_ALIAS_UNSUPPORTED $(RC_CFLAGS) $(CFLAGS) GL_LDFLAGS=-L$(INSTALL_DIR)/lib -L$(X11_DIR)/lib $(LDFLAGS) -Wl,-single_module TCLSH=tclsh8.5 @@ -12,7 +12,7 @@ INSTALL=install LN=ln RM=rm -INCLUDE=-I. -Iinclude -Iinclude/internal -I.. -I../../../include -I$(INSTALL_DIR)/include -I$(X11_DIR)/include +INCLUDE=-I. -Iinclude -Iinclude/internal -I.. -I../../../include -I../../../src/mesa -I../../../src/mesa/glapi -I$(INSTALL_DIR)/include -I$(X11_DIR)/include COMPILE=$(CC) $(INCLUDE) $(GL_CFLAGS) -c #The directory with the final binaries. diff --git a/src/glx/apple/apple_xgl_api_read.c b/src/glx/apple/apple_xgl_api_read.c index 3dcb31b71a..36357c7fc2 100644 --- a/src/glx/apple/apple_xgl_api_read.c +++ b/src/glx/apple/apple_xgl_api_read.c @@ -68,10 +68,10 @@ SetRead(struct apple_xgl_saved_state *saved) saved->swapped = true; - if (apple_glx_make_current_context(dpy, gc->apple, gc->apple, + if (apple_glx_make_current_context(dpy, gc->driContext, gc->driContext, gc->currentReadable)) { /* An error occurred, so try to restore the old context state. */ - (void) apple_glx_make_current_context(dpy, gc->apple, gc->apple, + (void) apple_glx_make_current_context(dpy, gc->driContext, gc->driContext, gc->currentDrawable); saved->swapped = false; } @@ -85,7 +85,7 @@ UnsetRead(struct apple_xgl_saved_state *saved) GLXContext gc = __glXGetCurrentContext(); Display *dpy = glXGetCurrentDisplay(); - if (apple_glx_make_current_context(dpy, gc->apple, gc->apple, + if (apple_glx_make_current_context(dpy, gc->driContext, gc->driContext, gc->currentDrawable)) { /* * An error occurred restoring the drawable. diff --git a/src/glx/apple/apple_xgl_api_stereo.c b/src/glx/apple/apple_xgl_api_stereo.c index b50e3119cd..7dd946f764 100644 --- a/src/glx/apple/apple_xgl_api_stereo.c +++ b/src/glx/apple/apple_xgl_api_stereo.c @@ -42,7 +42,7 @@ glDrawBuffer(GLenum mode) { GLXContext gc = glXGetCurrentContext(); - if (gc && apple_glx_context_uses_stereo(gc->apple)) { + if (gc && apple_glx_context_uses_stereo(gc->driContext)) { GLenum buf[2]; GLsizei n = 0; @@ -77,7 +77,7 @@ glDrawBuffers(GLsizei n, const GLenum * bufs) { GLXContext gc = glXGetCurrentContext(); - if (gc && apple_glx_context_uses_stereo(gc->apple)) { + if (gc && apple_glx_context_uses_stereo(gc->driContext)) { GLenum newbuf[n + 2]; GLsizei i, outi = 0; bool have_back = false; diff --git a/src/glx/apple/apple_xgl_api_viewport.c b/src/glx/apple/apple_xgl_api_viewport.c index d3fbc7c41e..f556eefa22 100644 --- a/src/glx/apple/apple_xgl_api_viewport.c +++ b/src/glx/apple/apple_xgl_api_viewport.c @@ -38,8 +38,8 @@ glViewport(GLint x, GLint y, GLsizei width, GLsizei height) GLXContext gc = __glXGetCurrentContext(); Display *dpy = glXGetCurrentDisplay(); - if (gc && gc->apple) - apple_glx_context_update(dpy, gc->apple); + if (gc && gc->driContext) + apple_glx_context_update(dpy, gc->driContext); __gl_api.Viewport(x, y, width, height); } diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index fa2b987853..86b0a27648 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -30,7 +30,7 @@ * Kristian Høgsberg (krh@redhat.com) */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c index e4034161bb..d6ce681d70 100644 --- a/src/glx/dri_common.c +++ b/src/glx/dri_common.c @@ -33,7 +33,7 @@ * Kristian Høgsberg (krh@redhat.com) */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include diff --git a/src/glx/dri_glx.c b/src/glx/dri_glx.c index e47db82b70..74afa60301 100644 --- a/src/glx/dri_glx.c +++ b/src/glx/dri_glx.c @@ -32,7 +32,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index 1b94a56fd1..d8027cc96d 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -21,7 +21,7 @@ * SOFTWARE. */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include "glxclient.h" diff --git a/src/glx/glx_pbuffer.c b/src/glx/glx_pbuffer.c index 143cf87766..6c34cda154 100644 --- a/src/glx/glx_pbuffer.c +++ b/src/glx/glx_pbuffer.c @@ -325,7 +325,7 @@ GetDrawableAttribute(Display * dpy, GLXDrawable drawable, } } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) { __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL); @@ -391,7 +391,7 @@ CreateDrawable(Display * dpy, const __GLcontextModes * fbconfig, UnlockDisplay(dpy); SyncHandle(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) do { /* FIXME: Maybe delay __DRIdrawable creation until the drawable * is actually bound to a context... */ @@ -455,7 +455,7 @@ DestroyDrawable(Display * dpy, GLXDrawable drawable, CARD32 glxCode) UnlockDisplay(dpy); SyncHandle(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) { int screen; __GLXdisplayPrivate *const priv = __glXInitialize(dpy); diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h index 3519c20a7f..958e1526c9 100644 --- a/src/glx/glxclient.h +++ b/src/glx/glxclient.h @@ -54,9 +54,7 @@ #include "GL/glxint.h" #include "GL/glxproto.h" #include "GL/internal/glcore.h" -#ifndef GLX_USE_APPLEGL #include "glapi/glapitable.h" -#endif #include "glxhash.h" #if defined( PTHREADS ) # include @@ -99,8 +97,13 @@ typedef struct _glapi_table __GLapi; #define containerOf(ptr, type, member) \ (type *)( (char *)ptr - offsetof(type,member) ) -#include +extern void DRI_glXUseXFont(Font font, int first, int count, int listbase); + +#endif + +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#include /** * Display dependent methods. This structure is initialized during the @@ -187,8 +190,6 @@ extern __GLXDRIdisplay *dri2CreateDisplay(Display * dpy); extern void dri2InvalidateBuffers(Display *dpy, XID drawable); -extern void DRI_glXUseXFont(Font font, int first, int count, int listbase); - /* ** Functions to obtain driver configuration information from a direct ** rendering client application @@ -199,10 +200,6 @@ extern const char *glXGetDriverConfig(const char *driverName); #endif -#ifdef GLX_USE_APPLEGL -extern void DRI_glXUseXFont( Font font, int first, int count, int listbase ); -#endif - /************************************************************************/ #define __GL_CLIENT_ATTRIB_STACK_DEPTH 16 @@ -411,8 +408,13 @@ struct __GLXcontextRec const __GLcontextModes *mode; #ifdef GLX_DIRECT_RENDERING +#ifdef GLX_USE_APPLEGL + void *driContext; + Bool do_destroy; +#else __GLXDRIcontext *driContext; __DRIcontext *__driContext; +#endif #endif /** @@ -455,11 +457,6 @@ struct __GLXcontextRec unsigned long thread_id; char gl_extension_bits[__GL_EXT_BYTES]; - -#ifdef GLX_USE_APPLEGL - void *apple; - Bool do_destroy; -#endif }; #define __glXSetError(gc,code) \ @@ -514,7 +511,7 @@ struct __GLXscreenConfigsRec */ char *effectiveGLXexts; -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /** * Per screen direct rendering interface functions and data. */ @@ -625,7 +622,7 @@ struct __GLXdisplayPrivateRec */ __GLXscreenConfigs *screenConfigs; -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /** * Per display direct rendering interface functions and data. */ @@ -638,14 +635,12 @@ struct __GLXdisplayPrivateRec extern GLubyte *__glXFlushRenderBuffer(__GLXcontext *, GLubyte *); -#ifndef GLX_USE_APPLEGL extern void __glXSendLargeChunk(__GLXcontext * gc, GLint requestNumber, GLint totalRequests, const GLvoid * data, GLint dataLen); extern void __glXSendLargeCommand(__GLXcontext *, const GLvoid *, GLint, const GLvoid *, GLint); -#endif /* Initialize the GLX extension for dpy */ extern __GLXdisplayPrivate *__glXInitialize(Display *); @@ -805,7 +800,7 @@ extern GLboolean __glXGetMscRateOML(Display * dpy, GLXDrawable drawable, int32_t * numerator, int32_t * denominator); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) GLboolean __driGetMscRateOML(__DRIdrawable * draw, int32_t * numerator, int32_t * denominator, void *private); diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index 50802b7e1f..e9ec4c88c6 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -34,21 +34,22 @@ */ #include "glxclient.h" +#include "glapi.h" +#include "glxextensions.h" +#include "glcontextmodes.h" + +#ifdef GLX_DIRECT_RENDERING #ifdef GLX_USE_APPLEGL #include "apple_glx_context.h" #include "apple_glx.h" #include "glx_error.h" +#define GC_IS_DIRECT(gc) ((gc)->isDirect) #else -#include "glapi.h" -#endif -#include "glxextensions.h" -#include "glcontextmodes.h" - -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include #include "xf86dri.h" #define GC_IS_DIRECT(gc) ((gc)->driContext != NULL) +#endif #else #define GC_IS_DIRECT(gc) (0) #endif @@ -65,7 +66,7 @@ static const char __glXGLXClientVersion[] = "1.4"; /****************************************************************************/ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) static Bool windowExistsFlag; static int @@ -352,7 +353,7 @@ AllocateGLXContext(Display * dpy) gc->maxSmallRenderCommandSize = bufSize; #ifdef GLX_USE_APPLEGL - gc->apple = NULL; + gc->driContext = NULL; gc->do_destroy = False; #endif @@ -378,11 +379,12 @@ CreateContext(Display * dpy, int generic_id, { GLXContext gc; #ifdef GLX_DIRECT_RENDERING +#ifdef GLX_USE_APPLEGL + int errorcode; + bool x11error; +#else __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); #endif -#ifdef GLX_USE_APPLEGL - int errorcode; - bool x11error; #endif if (dpy == NULL) @@ -395,7 +397,7 @@ CreateContext(Display * dpy, int generic_id, if (!gc) return NULL; -#ifndef GLX_USE_APPLEGL +#ifndef GLX_USE_APPLEGL /* TODO: darwin indirect */ #ifdef GLX_DIRECT_RENDERING if (allowDirect && psc->driScreen) { gc->driContext = psc->driScreen->createContext(psc, fbconfig, gc, @@ -475,9 +477,12 @@ CreateContext(Display * dpy, int generic_id, #endif gc->imported = GL_FALSE; + gc->renderType = renderType; + + /* TODO: darwin: Integrate with above to do indirect */ #ifdef GLX_USE_APPLEGL - if(apple_glx_create_context(&gc->apple, dpy, screen, fbconfig, - shareList ? shareList->apple : NULL, + if(apple_glx_create_context(&gc->driContext, dpy, screen, fbconfig, + shareList ? shareList->driContext : NULL, &errorcode, &x11error)) { __glXSendError(dpy, errorcode, 0, X_GLXCreateContext, x11error); __glXFreeContext(gc); @@ -487,8 +492,6 @@ CreateContext(Display * dpy, int generic_id, gc->currentContextTag = -1; gc->mode = fbconfig; gc->isDirect = allowDirect; -#else - gc->renderType = renderType; #endif return gc; @@ -536,7 +539,7 @@ __glXFreeContext(__GLXcontext * gc) XFree((char *) gc->version); if (gc->extensions) XFree((char *) gc->extensions); -#ifndef GLX_USE_APPLEGL +#ifndef GLX_USE_APPLEGL /* TODO: clientattrib */ __glFreeAttributeState(gc); #endif XFree((char *) gc->buf); @@ -551,7 +554,7 @@ __glXFreeContext(__GLXcontext * gc) static void DestroyContext(Display * dpy, GLXContext gc) { -#ifndef GLX_USE_APPLEGL +#ifndef GLX_USE_APPLEGL /* TODO: darwin: indirect */ xGLXDestroyContextReq *req; GLXContextID xid; CARD8 opcode; @@ -577,7 +580,7 @@ DestroyContext(Display * dpy, GLXContext gc) return; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /* Destroy the direct rendering context */ if (gc->driContext) { (*gc->driContext->destroyContext) (gc->driContext, gc->psc, dpy); @@ -606,8 +609,8 @@ DestroyContext(Display * dpy, GLXContext gc) /* Destroy the handle if not current to anybody */ __glXUnlock(); #ifdef GLX_USE_APPLEGL - if(gc->apple) - apple_glx_destroy_context(&gc->apple, dpy); + if(gc->driContext) + apple_glx_destroy_context(&gc->driContext, dpy); #endif __glXFreeContext(gc); } @@ -694,7 +697,7 @@ glXWaitGL(void) #ifdef GLX_USE_APPLEGL glFinish(); #else -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { int screen; __GLXDRIdrawable *pdraw = @@ -741,9 +744,9 @@ glXWaitX(void) __glXFlushRenderBuffer(gc, gc->pc); #ifdef GLX_USE_APPLEGL - apple_glx_waitx(dpy, gc->apple); + apple_glx_waitx(dpy, gc->driContext); #else -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { int screen; __GLXDRIdrawable *pdraw = @@ -790,7 +793,7 @@ glXUseXFont(Font font, int first, int count, int listBase) #ifdef GLX_USE_APPLEGL DRI_glXUseXFont(font, first, count, listBase); #else -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { DRI_glXUseXFont(font, first, count, listBase); return; @@ -827,7 +830,7 @@ glXCopyContext(Display * dpy, GLXContext source, int errorcode; bool x11error; - if(apple_glx_copy_context(gc->apple, source->apple, dest->apple, + if(apple_glx_copy_context(gc->driContext, source->driContext, dest->driContext, mask, &errorcode, &x11error)) { __glXSendError(dpy, errorcode, 0, X_GLXCopyContext, x11error); } @@ -843,7 +846,7 @@ glXCopyContext(Display * dpy, GLXContext source, return; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { /* NOT_DONE: This does not work yet */ } @@ -875,7 +878,6 @@ glXCopyContext(Display * dpy, GLXContext source, } -#ifndef GLX_USE_APPLEGL /** * Determine if a context uses direct rendering. * @@ -887,6 +889,9 @@ glXCopyContext(Display * dpy, GLXContext source, static Bool __glXIsDirect(Display * dpy, GLXContextID contextID) { +#ifndef GLX_USE_APPLEGL /* TODO: apple indirect */ + return GC_IS_DIRECT(gc); +#else #if !defined(USE_XCB) xGLXIsDirectReq *req; xGLXIsDirectReply reply; @@ -922,8 +927,8 @@ __glXIsDirect(Display * dpy, GLXContextID contextID) return reply.isDirect; #endif /* USE_XCB */ -} #endif /* GLX_USE_APPLEGL */ +} /** * \todo @@ -934,17 +939,6 @@ __glXIsDirect(Display * dpy, GLXContextID contextID) PUBLIC Bool glXIsDirect(Display * dpy, GLXContext gc) { -#ifdef GLX_USE_APPLEGL - /* - * This isn't an ideal test. - * glXIsDirect should probably search a list of contexts. - */ - if(NULL == gc) { - __glXSendError(dpy, GLXBadContext, 0, X_GLXIsDirect, false); - return False; - } - return gc->isDirect; -#else if (!gc) { return GL_FALSE; } @@ -952,7 +946,6 @@ glXIsDirect(Display * dpy, GLXContext gc) return GL_TRUE; } return __glXIsDirect(dpy, gc->xid); -#endif /* GLX_USE_APPLEGL */ } PUBLIC GLXPixmap @@ -991,7 +984,7 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) UnlockDisplay(dpy); SyncHandle(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) do { /* FIXME: Maybe delay __DRIdrawable creation until the drawable * is actually bound to a context... */ @@ -1049,7 +1042,7 @@ glXDestroyGLXPixmap(Display * dpy, GLXPixmap glxpixmap) UnlockDisplay(dpy); SyncHandle(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) { int screen; __GLXdisplayPrivate *const priv = __glXInitialize(dpy); @@ -1070,8 +1063,8 @@ glXSwapBuffers(Display * dpy, GLXDrawable drawable) { #ifdef GLX_USE_APPLEGL GLXContext gc = glXGetCurrentContext(); - if(gc && apple_glx_is_current_drawable(dpy, gc->apple, drawable)) { - apple_glx_swap_buffers(gc->apple); + if(gc && apple_glx_is_current_drawable(dpy, gc->driContext, drawable)) { + apple_glx_swap_buffers(gc->driContext); } else { __glXSendError(dpy, GLXBadCurrentWindow, 0, X_GLXSwapBuffers, false); } @@ -1085,7 +1078,7 @@ glXSwapBuffers(Display * dpy, GLXDrawable drawable) xGLXSwapBuffersReq *req; #endif -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL); if (pdraw != NULL) { @@ -1587,7 +1580,7 @@ glXQueryExtensionsString(Display * dpy, int screen) } __glXCalculateUsableExtensions(psc, -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) (psc->driScreen != NULL), #else GL_FALSE, @@ -1819,7 +1812,7 @@ glXQueryContext(Display * dpy, GLXContext ctx, int attribute, int *value) int retVal; /* get the information from the server if we don't have it already */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (!ctx->driContext && (ctx->mode == NULL)) { #else if (ctx->mode == NULL) { @@ -2566,7 +2559,7 @@ __glXGetSyncValuesOML(Display * dpy, GLXDrawable drawable, return False; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) _X_HIDDEN GLboolean __driGetMscRateOML(__DRIdrawable * draw, int32_t * numerator, int32_t * denominator, void *private) @@ -3019,7 +3012,7 @@ __glXBindTexImageEXT(Display * dpy, i++; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL); @@ -3275,7 +3268,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXReleaseTexImageEXT, __glXReleaseTexImageEXT), #endif -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /*** DRI configuration ***/ GLX_FUNCTION(glXGetScreenDriver), GLX_FUNCTION(glXGetDriverConfig), @@ -3352,7 +3345,7 @@ PUBLIC void (*glXGetProcAddress(const GLubyte * procName)) (void) #endif /* __GNUC__ */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /** * Get the unadjusted system time (UST). Currently, the UST is measured in * microseconds since Epoc. The actual resolution of the UST may vary from diff --git a/src/glx/glxcurrent.c b/src/glx/glxcurrent.c index 115fab4012..691e8dfadf 100644 --- a/src/glx/glxcurrent.c +++ b/src/glx/glxcurrent.c @@ -169,7 +169,7 @@ __glXSetCurrentContextNull(void) { __glXSetCurrentContext(&dummyContext); #ifndef GLX_USE_APPLEGL -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) _glapi_set_dispatch(NULL); /* no-op functions */ _glapi_set_context(NULL); #endif @@ -284,7 +284,7 @@ SendMakeCurrentRequest(Display * dpy, CARD8 opcode, } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) static __GLXDRIdrawable * FetchDRIDrawable(Display * dpy, GLXDrawable glxDrawable, GLXContext gc) { @@ -342,8 +342,8 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, const GLXContext oldGC = __glXGetCurrentContext(); #ifdef GLX_USE_APPLEGL bool error = apple_glx_make_current_context(dpy, - (oldGC && oldGC != &dummyContext) ? oldGC->apple : NULL, - gc ? gc->apple : NULL, draw); + (oldGC && oldGC != &dummyContext) ? oldGC->driContext : NULL, + gc ? gc->driContext : NULL, draw); apple_glx_diagnostic("%s: error %s\n", __func__, error ? "YES" : "NO"); if(error) @@ -386,7 +386,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, return False; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /* Bind the direct rendering context to the drawable */ if (gc && gc->driContext) { __GLXDRIdrawable *pdraw = FetchDRIDrawable(dpy, draw, gc); @@ -421,7 +421,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, return False; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if ((dpy != oldGC->currentDpy || (gc && gc->driContext)) && !oldGC->isDirect && oldGC != &dummyContext) { #else @@ -439,7 +439,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, oldGC->currentContextTag, None, None, &dummy_reply); } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) else if (oldGC->driContext && oldGC != gc) { oldGC->driContext->unbindContext(oldGC->driContext); } @@ -485,7 +485,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, * previously destroyed, so we need to free the memory * for the old handle. */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /* Destroy the old direct rendering context */ if (oldGC->driContext) { oldGC->driContext->destroyContext(oldGC->driContext, @@ -507,7 +507,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, #ifndef GLX_USE_APPLEGL gc->thread_id = _glthread_GetID(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (!gc->driContext) { #endif if (!IndirectAPI) @@ -522,7 +522,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, (void) glGetString(GL_VERSION); __glXInitVertexArrayState(gc); } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) } else { gc->currentContextTag = -1; diff --git a/src/glx/glxext.c b/src/glx/glxext.c index 9aa992487e..82d3a56f37 100644 --- a/src/glx/glxext.c +++ b/src/glx/glxext.c @@ -259,7 +259,7 @@ FreeScreenConfigs(__GLXdisplayPrivate * priv) } Xfree((char *) psc->serverGLXexts); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (psc->driver_configs) { unsigned int j; for (j = 0; psc->driver_configs[j]; j++) @@ -299,7 +299,7 @@ __glXFreeDisplayPrivate(XExtData * extension) priv->serverGLXversion = 0x0; /* to protect against double free's */ } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /* Free the direct rendering per display data */ if (priv->driswDisplay) (*priv->driswDisplay->destroyDisplay) (priv->driswDisplay); @@ -777,7 +777,7 @@ AllocAndFetchScreenConfigs(Display * dpy, __GLXdisplayPrivate * priv) getVisualConfigs(dpy, priv, i); getFBConfigs(dpy, priv, i); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) psc->scr = i; psc->dpy = dpy; psc->drawHash = __glxHashCreate(); @@ -817,7 +817,7 @@ __glXInitialize(Display * dpy) __GLXdisplayPrivate *dpyPriv; XEDataObject dataObj; int major, minor; -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) Bool glx_direct, glx_accel; #endif @@ -874,7 +874,7 @@ __glXInitialize(Display * dpy) dpyPriv->serverGLXvendor = 0x0; dpyPriv->serverGLXversion = 0x0; -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) glx_direct = (getenv("LIBGL_ALWAYS_INDIRECT") == NULL); glx_accel = (getenv("LIBGL_ALWAYS_SOFTWARE") == NULL); diff --git a/src/glx/indirect.c b/src/glx/indirect.c index 42a225f671..172727860e 100644 --- a/src/glx/indirect.c +++ b/src/glx/indirect.c @@ -5198,7 +5198,7 @@ glDeleteTexturesEXT(GLsizei n, const GLuint * textures) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_DeleteTextures(GET_DISPATCH(), (n, textures)); } else @@ -5269,7 +5269,7 @@ glGenTexturesEXT(GLsizei n, GLuint * textures) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GenTextures(GET_DISPATCH(), (n, textures)); } else @@ -5334,7 +5334,7 @@ glIsTextureEXT(GLuint texture) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { return CALL_IsTexture(GET_DISPATCH(), (texture)); } else @@ -5650,7 +5650,7 @@ glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid * table) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetColorTable(GET_DISPATCH(), (target, format, type, table)); } else @@ -5726,7 +5726,7 @@ glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetColorTableParameterfv(GET_DISPATCH(), (target, pname, params)); @@ -5799,7 +5799,7 @@ glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetColorTableParameteriv(GET_DISPATCH(), (target, pname, params)); @@ -6125,7 +6125,7 @@ gl_dispatch_stub_356(GLenum target, GLenum format, GLenum type, { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetConvolutionFilter(GET_DISPATCH(), (target, format, type, image)); @@ -6203,7 +6203,7 @@ gl_dispatch_stub_357(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetConvolutionParameterfv(GET_DISPATCH(), (target, pname, params)); @@ -6276,7 +6276,7 @@ gl_dispatch_stub_358(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetConvolutionParameteriv(GET_DISPATCH(), (target, pname, params)); @@ -6356,7 +6356,7 @@ gl_dispatch_stub_361(GLenum target, GLboolean reset, GLenum format, { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetHistogram(GET_DISPATCH(), (target, reset, format, type, values)); @@ -6433,7 +6433,7 @@ gl_dispatch_stub_362(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetHistogramParameterfv(GET_DISPATCH(), (target, pname, params)); } else @@ -6504,7 +6504,7 @@ gl_dispatch_stub_363(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetHistogramParameteriv(GET_DISPATCH(), (target, pname, params)); } else @@ -6579,7 +6579,7 @@ gl_dispatch_stub_364(GLenum target, GLboolean reset, GLenum format, { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetMinmax(GET_DISPATCH(), (target, reset, format, type, values)); } else @@ -6653,7 +6653,7 @@ gl_dispatch_stub_365(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetMinmaxParameterfv(GET_DISPATCH(), (target, pname, params)); } else @@ -6721,7 +6721,7 @@ gl_dispatch_stub_366(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetMinmaxParameteriv(GET_DISPATCH(), (target, pname, params)); } else diff --git a/src/glx/singlepix.c b/src/glx/singlepix.c index f5ebf4dfdb..c4010d79bd 100644 --- a/src/glx/singlepix.c +++ b/src/glx/singlepix.c @@ -119,7 +119,7 @@ void NAME(_gloffset_GetSeparableFilter) (GLenum target, GLenum format, { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetSeparableFilter(GET_DISPATCH(), (target, format, type, row, column, span)); diff --git a/src/glx/xfont.c b/src/glx/xfont.c index 6b55a6085b..797fd7a490 100644 --- a/src/glx/xfont.c +++ b/src/glx/xfont.c @@ -33,7 +33,7 @@ called by that routine when direct rendering is enabled. */ -#if defined(GLX_DIRECT_RENDERING) || defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING #include "glxclient.h" -- cgit v1.2.3 From 163901bc7f89dc3a5c65d66b960f18dd561631c1 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Fri, 2 Apr 2010 00:54:57 -0700 Subject: darwin: Use clientattrib Signed-off-by: Jeremy Huddleston --- src/glx/apple/Makefile | 2 +- src/glx/clientattrib.c | 2 ++ src/glx/glxcmds.c | 2 -- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/glx/glxcmds.c') diff --git a/src/glx/apple/Makefile b/src/glx/apple/Makefile index 4c05013f3f..a3ee888288 100644 --- a/src/glx/apple/Makefile +++ b/src/glx/apple/Makefile @@ -20,7 +20,7 @@ BUILD_DIR=builds all: $(BUILD_DIR)/libGL.1.2.dylib -OBJECTS=glxext.o glxcmds.o glx_pbuffer.o glx_query.o glxcurrent.o glxextensions.o \ +OBJECTS=clientattrib.o glxext.o glxcmds.o glx_pbuffer.o glx_query.o glxcurrent.o glxextensions.o \ appledri.o apple_glx_context.o apple_glx.o pixel.o \ compsize.o apple_visual.o apple_cgl.o glxreply.o glcontextmodes.o \ apple_xgl_api.o apple_glx_drawable.o xfont.o apple_glx_pbuffer.o \ diff --git a/src/glx/clientattrib.c b/src/glx/clientattrib.c index a7dfb53486..b26c17938d 100644 --- a/src/glx/clientattrib.c +++ b/src/glx/clientattrib.c @@ -35,6 +35,7 @@ /*****************************************************************************/ +#ifndef GLX_USE_APPLEGL static void do_enable_disable(GLenum array, GLboolean val) { @@ -123,6 +124,7 @@ __indirect_glPopClientAttrib(void) return; } } +#endif void __glFreeAttributeState(__GLXcontext * gc) diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index e9ec4c88c6..e74ae3472e 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -539,9 +539,7 @@ __glXFreeContext(__GLXcontext * gc) XFree((char *) gc->version); if (gc->extensions) XFree((char *) gc->extensions); -#ifndef GLX_USE_APPLEGL /* TODO: clientattrib */ __glFreeAttributeState(gc); -#endif XFree((char *) gc->buf); Xfree((char *) gc->client_state_private); XFree((char *) gc); -- cgit v1.2.3