diff options
Diffstat (limited to 'src/glx/x11')
-rw-r--r-- | src/glx/x11/Makefile | 21 | ||||
-rw-r--r-- | src/glx/x11/dri2.c | 20 | ||||
-rw-r--r-- | src/glx/x11/glxclient.h | 5 | ||||
-rw-r--r-- | src/glx/x11/glxcurrent.c | 1 | ||||
-rw-r--r-- | src/glx/x11/glxext.c | 7 | ||||
-rw-r--r-- | src/glx/x11/indirect.c | 3 | ||||
-rw-r--r-- | src/glx/x11/indirect_size.c | 1 | ||||
-rw-r--r-- | src/glx/x11/single2.c | 3 | ||||
-rw-r--r-- | src/glx/x11/singlepix.c | 3 |
9 files changed, 39 insertions, 25 deletions
diff --git a/src/glx/x11/Makefile b/src/glx/x11/Makefile index 86d84d4b9f..e681be834f 100644 --- a/src/glx/x11/Makefile +++ b/src/glx/x11/Makefile @@ -1,7 +1,7 @@ TOP = ../../.. include $(TOP)/configs/current -EXTRA_DEFINES = -DXF86VIDMODE -D_REENTRANT -UIN_DRI_DRIVER \ +EXTRA_DEFINES = -DXF86VIDMODE -D_REENTRANT \ -DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" SOURCES = \ @@ -39,13 +39,9 @@ SOURCES = \ dri2_glx.c \ dri2.c -include $(TOP)/src/mesa/sources.mak +GLAPI_LIB = $(TOP)/src/mesa/libglapi.a -MESA_GLAPI_ASM_SOURCES = $(addprefix $(TOP)/src/mesa/, $(GLAPI_ASM_SOURCES)) -MESA_GLAPI_SOURCES = $(addprefix $(TOP)/src/mesa/, $(GLAPI_SOURCES)) -MESA_GLAPI_OBJECTS = $(addprefix $(TOP)/src/mesa/, $(GLAPI_OBJECTS)) - -OBJECTS = $(SOURCES:.c=.o) $(MESA_GLAPI_OBJECTS) +OBJECTS = $(SOURCES:.c=.o) INCLUDES = -I. \ -I$(TOP)/include \ @@ -70,18 +66,19 @@ INCLUDES = -I. \ default: depend $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) # Make libGL -$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): $(OBJECTS) Makefile +$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): $(OBJECTS) $(GLAPI_LIB) Makefile $(MKLIB) -o $(GL_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \ -major 1 -minor 2 $(MKLIB_OPTIONS) \ -install $(TOP)/$(LIB_DIR) -id $(INSTALL_LIB_DIR)/lib$(GL_LIB).1.dylib \ - $(GL_LIB_DEPS) $(OBJECTS) + $(GL_LIB_DEPS) $(OBJECTS) $(GLAPI_LIB) +$(GLAPI_LIB): + @$(MAKE) -C $(TOP)/src/mesa libglapi.a -depend: $(SOURCES) $(MESA_GLAPI_SOURCES) $(MESA_GLAPI_ASM_SOURCES) Makefile +depend: $(SOURCES) Makefile rm -f depend touch depend - $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(SOURCES) \ - $(MESA_GLAPI_SOURCES) $(MESA_GLAPI_ASM_SOURCES) + $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(SOURCES) # Emacs tags diff --git a/src/glx/x11/dri2.c b/src/glx/x11/dri2.c index 2cb5d3463a..832935a3ba 100644 --- a/src/glx/x11/dri2.c +++ b/src/glx/x11/dri2.c @@ -81,12 +81,15 @@ static XEXT_GENERATE_FIND_DISPLAY (DRI2FindDisplay, dri2Info, dri2ExtensionName, &dri2ExtensionHooks, - 0, NULL) + 1, NULL) static Bool DRI2WireToEvent(Display *dpy, XEvent *event, xEvent *wire) { XExtDisplayInfo *info = DRI2FindDisplay(dpy); + XExtDisplayInfo *glx_info = __glXFindDisplay(dpy); + static int glx_event_base; + static Bool found_glx_info = False; XextCheckExtension(dpy, info, dri2ExtensionName, False); @@ -95,21 +98,26 @@ DRI2WireToEvent(Display *dpy, XEvent *event, xEvent *wire) { GLXBufferSwapComplete *aevent = (GLXBufferSwapComplete *)event; xDRI2BufferSwapComplete *awire = (xDRI2BufferSwapComplete *)wire; - switch (awire->type) { + aevent->serial = _XSetLastRequestRead(dpy, (xGenericReply *) wire); + aevent->type = + (glx_info->codes->first_event + GLX_BufferSwapComplete) & 0x75; + aevent->send_event = (awire->type & 0x80) != 0; + aevent->display = dpy; + aevent->drawable = awire->drawable; + switch (awire->event_type) { case DRI2_EXCHANGE_COMPLETE: - aevent->event_type = GLX_EXCHANGE_COMPLETE; + aevent->event_type = GLX_EXCHANGE_COMPLETE_INTEL; break; case DRI2_BLIT_COMPLETE: - aevent->event_type = GLX_BLIT_COMPLETE; + aevent->event_type = GLX_BLIT_COMPLETE_INTEL; break; case DRI2_FLIP_COMPLETE: - aevent->event_type = GLX_FLIP_COMPLETE; + aevent->event_type = GLX_FLIP_COMPLETE_INTEL; break; default: /* unknown swap completion type */ return False; } - aevent->drawable = awire->drawable; aevent->ust = ((CARD64)awire->ust_hi << 32) | awire->ust_lo; aevent->msc = ((CARD64)awire->msc_hi << 32) | awire->msc_lo; aevent->sbc = ((CARD64)awire->sbc_hi << 32) | awire->sbc_lo; diff --git a/src/glx/x11/glxclient.h b/src/glx/x11/glxclient.h index ded4f5a434..e0b286b688 100644 --- a/src/glx/x11/glxclient.h +++ b/src/glx/x11/glxclient.h @@ -41,6 +41,7 @@ #define NEED_EVENTS #include <X11/Xproto.h> #include <X11/Xlibint.h> +#include <X11/extensions/extutil.h> #define GLX_GLXEXT_PROTOTYPES #include <GL/glx.h> #include <GL/glxext.h> @@ -793,6 +794,10 @@ extern GLboolean __glXGetMscRateOML(Display * dpy, GLXDrawable drawable, GLboolean __driGetMscRateOML(__DRIdrawable * draw, int32_t * numerator, int32_t * denominator, void *private); + +/* So that dri2.c:DRI2WireToEvent() can access + * glx_info->codes->first_event */ +XExtDisplayInfo *__glXFindDisplay (Display *dpy); #endif #endif /* !__GLX_client_h__ */ diff --git a/src/glx/x11/glxcurrent.c b/src/glx/x11/glxcurrent.c index fae1bd9fa6..50de7d612b 100644 --- a/src/glx/x11/glxcurrent.c +++ b/src/glx/x11/glxcurrent.c @@ -162,6 +162,7 @@ __glXSetCurrentContextNull(void) __glXSetCurrentContext(&dummyContext); #ifdef GLX_DIRECT_RENDERING _glapi_set_dispatch(NULL); /* no-op functions */ + _glapi_set_context(NULL); #endif } diff --git a/src/glx/x11/glxext.c b/src/glx/x11/glxext.c index fe65216c41..09bb850319 100644 --- a/src/glx/x11/glxext.c +++ b/src/glx/x11/glxext.c @@ -120,7 +120,6 @@ static /* const */ XExtensionHooks __glXExtensionHooks = { __glXErrorString, /* error_string */ }; -static XEXT_GENERATE_FIND_DISPLAY(__glXFindDisplay, __glXExtensionInfo, __glXExtensionName, &__glXExtensionHooks, __GLX_NUMBER_EVENTS, NULL) @@ -194,11 +193,11 @@ __glXEventToWire(Display *dpy, XEvent *event, xEvent *wire) break; case GLX_SAVED: break; - case GLX_EXCHANGE_COMPLETE: + case GLX_EXCHANGE_COMPLETE_INTEL: break; - case GLX_BLIT_COMPLETE: + case GLX_BLIT_COMPLETE_INTEL: break; - case GLX_FLIP_COMPLETE: + case GLX_FLIP_COMPLETE_INTEL: break; default: /* client doesn't support server event */ diff --git a/src/glx/x11/indirect.c b/src/glx/x11/indirect.c index 262637a947..48bae1478f 100644 --- a/src/glx/x11/indirect.c +++ b/src/glx/x11/indirect.c @@ -30,7 +30,8 @@ #include "indirect.h" #include "glxclient.h" #include "indirect_size.h" -#include "dispatch.h" +#include "glapitable.h" +#include "glapidispatch.h" #include "glapi.h" #include "glthread.h" #include <GL/glxproto.h> diff --git a/src/glx/x11/indirect_size.c b/src/glx/x11/indirect_size.c index f8541b5758..6356ddd49b 100644 --- a/src/glx/x11/indirect_size.c +++ b/src/glx/x11/indirect_size.c @@ -73,6 +73,7 @@ __glCallLists_size(GLenum e) case GL_SHORT: case GL_UNSIGNED_SHORT: case GL_2_BYTES: + case GL_HALF_FLOAT: return 2; case GL_3_BYTES: return 3; diff --git a/src/glx/x11/single2.c b/src/glx/x11/single2.c index d128ba2053..9ecf589fff 100644 --- a/src/glx/x11/single2.c +++ b/src/glx/x11/single2.c @@ -35,7 +35,8 @@ #include "glxextensions.h" #include "indirect.h" #include "indirect_vertex_array.h" -#include "dispatch.h" +#include "glapitable.h" +#include "glapidispatch.h" #include "glapi.h" #ifdef USE_XCB #include <xcb/xcb.h> diff --git a/src/glx/x11/singlepix.c b/src/glx/x11/singlepix.c index fa12ac3bbc..f5ebf4dfdb 100644 --- a/src/glx/x11/singlepix.c +++ b/src/glx/x11/singlepix.c @@ -30,7 +30,8 @@ #include "packsingle.h" #include "indirect.h" -#include "dispatch.h" +#include "glapitable.h" +#include "glapidispatch.h" #include "glapi.h" #include "glthread.h" #include "glapioffsets.h" |