X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fglx%2Fglxclient.h;h=13cd939cd2a7301a4b402ebe38bd5a3f9b4f0ac8;hb=296fe21ae5be838268e51fdd9a4a3009ab961265;hp=fa2e2d360cadaf32ee9b7b9b38761ce75a85a68f;hpb=e903cc17bbf7152b3f7d64fe7fbb5ceebcc7452e;p=mesa.git diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h index fa2e2d360ca..13cd939cd2a 100644 --- a/src/glx/glxclient.h +++ b/src/glx/glxclient.h @@ -138,6 +138,7 @@ struct __GLXDRIdrawableRec GLenum textureTarget; GLenum textureFormat; /* EXT_texture_from_pixmap support */ unsigned long eventMask; + int refcount; }; /* @@ -223,12 +224,9 @@ struct glx_context_vtable { GLXDrawable drawable, int buffer, const int *attrib_list); void (*release_tex_image)(Display * dpy, GLXDrawable drawable, int buffer); - + void * (*get_proc_address)(const char *symbol); }; -extern void -glx_send_destroy_context(Display *dpy, XID xid); - /** * GLX state that needs to be kept on the client. One of these records * exist for each context that has been made current by this client. @@ -470,6 +468,14 @@ struct glx_screen_vtable { struct glx_config *config, struct glx_context *shareList, int renderType); + + struct glx_context *(*create_context_attribs)(struct glx_screen *psc, + struct glx_config *config, + struct glx_context *shareList, + unsigned num_attrib, + const uint32_t *attribs, + unsigned *error); + }; struct glx_screen @@ -566,6 +572,8 @@ struct glx_display */ struct glx_screen **screens; + __glxHashTable *glXDrawHash; + #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) __glxHashTable *drawHash; @@ -578,6 +586,14 @@ struct glx_display #endif }; +struct glx_drawable { + XID xDrawable; + XID drawable; + + uint32_t lastEventSbc; + int64_t eventSbcWrap; +}; + extern int glx_screen_init(struct glx_screen *psc, int screen, struct glx_display * priv); @@ -718,6 +734,9 @@ extern void __glXFreeVertexArrayState(struct glx_context *); */ extern void __glXClientInfo(Display * dpy, int opcode); +_X_HIDDEN void +__glX_send_client_info(struct glx_display *glx_dpy); + /************************************************************************/ /* @@ -770,6 +789,8 @@ extern __GLXDRIdrawable * GetGLXDRIDrawable(Display *dpy, GLXDrawable drawable); #endif +extern struct glx_screen *GetGLXScreenConfigs(Display * dpy, int scrn); + #ifdef GLX_USE_APPLEGL extern struct glx_screen * applegl_create_screen(int screen, struct glx_display * priv); @@ -783,6 +804,12 @@ extern int applegl_create_display(struct glx_display *display); #endif + +extern struct glx_drawable *GetGLXDrawable(Display *dpy, GLXDrawable drawable); +extern int InitGLXDrawable(Display *dpy, struct glx_drawable *glxDraw, + XID xDrawable, GLXDrawable drawable); +extern void DestroyGLXDrawable(Display *dpy, GLXDrawable drawable); + extern struct glx_context dummyContext; extern struct glx_screen *