xmesa: export xmesa functions used by xfree86.
authorGeorge Sapountzis <gsap7@yahoo.gr>
Fri, 13 Apr 2007 15:12:37 +0000 (18:12 +0300)
committerGeorge Sapountzis <gsap7@yahoo.gr>
Fri, 13 Apr 2007 15:12:37 +0000 (18:12 +0300)
This uses xmesa.h as the GLcore interface and avoids adding an explicit GLcore
inteface which would not be a proper interface anyway.

It puts the declarations of the three functions specific for XMesa/XFree86 in
xmesa.h, we can push them down to xmesa_xf86.h if hiding behind XFree86Server
ifdef's is not enough.

include/GL/xmesa.h
src/mesa/drivers/x11/xm_api.c
src/mesa/drivers/x11/xmesaP.h

index ab813b23baa6442934f9a4052dae96d746ffb0d8..f185a15cdb8500fd219d086dad1d42c3df7f8e8e 100644 (file)
@@ -180,6 +180,21 @@ extern XMesaContext XMesaCreateContext( XMesaVisual v,
 extern void XMesaDestroyContext( XMesaContext c );
 
 
+#ifdef XFree86Server
+/*
+ * These are the extra routines required for integration with XFree86.
+ * None of these routines should be user visible. -KEM
+ */
+extern GLboolean XMesaForceCurrent( XMesaContext c );
+
+extern GLboolean XMesaLoseCurrent( XMesaContext c );
+
+extern GLboolean XMesaCopyContext( XMesaContext src,
+                                  XMesaContext dst,
+                                  GLuint mask );
+#endif /* XFree86Server */
+
+
 /*
  * Create an XMesaBuffer from an X window.
  */
index 24028a44ba71dce3cd3f10f8efbec926024db2ed..6439d13fa5f43d4ca79be158fcdddc7be676b335 100644 (file)
@@ -1308,6 +1308,7 @@ xmesa_convert_from_x_visual_type( int visualType )
  *         visualCaveat - ala the GLX extension, usually GLX_NONE
  * Return;  a new XMesaVisual or 0 if error.
  */
+PUBLIC
 XMesaVisual XMesaCreateVisual( XMesaDisplay *display,
                                XMesaVisualInfo visinfo,
                                GLboolean rgb_flag,
@@ -1450,6 +1451,7 @@ XMesaVisual XMesaCreateVisual( XMesaDisplay *display,
 }
 
 
+PUBLIC
 void XMesaDestroyVisual( XMesaVisual v )
 {
 #ifndef XFree86Server
@@ -1467,6 +1469,7 @@ void XMesaDestroyVisual( XMesaVisual v )
  *                    lists or NULL if no sharing is wanted.
  * \return an XMesaContext or NULL if error.
  */
+PUBLIC
 XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
 {
    static GLboolean firstTime = GL_TRUE;
@@ -1550,6 +1553,7 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
 
 
 
+PUBLIC
 void XMesaDestroyContext( XMesaContext c )
 {
    GLcontext *mesaCtx = &c->mesa;
@@ -1721,7 +1725,7 @@ XMesaCreateWindowBuffer2(XMesaVisual v, XMesaWindow w, XMesaContext c)
 }
 
 
-XMesaBuffer
+PUBLIC XMesaBuffer
 XMesaCreateWindowBuffer(XMesaVisual v, XMesaWindow w)
 {
    return XMesaCreateWindowBuffer2( v, w, NULL );
@@ -1737,7 +1741,7 @@ XMesaCreateWindowBuffer(XMesaVisual v, XMesaWindow w)
  *             \c GLX_DIRECT_COLOR visual for the pixmap
  * \returns new XMesaBuffer or NULL if error
  */
-XMesaBuffer
+PUBLIC XMesaBuffer
 XMesaCreatePixmapBuffer(XMesaVisual v, XMesaPixmap p, XMesaColormap cmap)
 {
    int client = 0;
@@ -1802,7 +1806,7 @@ XMesaCreatePBuffer(XMesaVisual v, XMesaColormap cmap,
 /*
  * Deallocate an XMesaBuffer structure and all related info.
  */
-void
+PUBLIC void
 XMesaDestroyBuffer(XMesaBuffer b)
 {
    xmesa_free_buffer(b);
@@ -1845,6 +1849,7 @@ GLboolean XMesaMakeCurrent( XMesaContext c, XMesaBuffer b )
 /*
  * Bind buffer b to context c and make c the current rendering context.
  */
+PUBLIC
 GLboolean XMesaMakeCurrent2( XMesaContext c, XMesaBuffer drawBuffer,
                              XMesaBuffer readBuffer )
 {
@@ -1958,6 +1963,8 @@ XMesaBuffer XMesaGetCurrentReadBuffer( void )
 }
 
 
+#ifdef XFree86Server
+PUBLIC
 GLboolean XMesaForceCurrent(XMesaContext c)
 {
    if (c) {
@@ -1976,6 +1983,7 @@ GLboolean XMesaForceCurrent(XMesaContext c)
 }
 
 
+PUBLIC
 GLboolean XMesaLoseCurrent(XMesaContext c)
 {
    (void) c;
@@ -1984,11 +1992,13 @@ GLboolean XMesaLoseCurrent(XMesaContext c)
 }
 
 
+PUBLIC
 GLboolean XMesaCopyContext( XMesaContext xm_src, XMesaContext xm_dst, GLuint mask )
 {
    _mesa_copy_context(&xm_src->mesa, &xm_dst->mesa, mask);
    return GL_TRUE;
 }
+#endif /* XFree86Server */
 
 
 /*
@@ -2135,6 +2145,7 @@ static void FXgetImage( XMesaBuffer b )
  * Copy the back buffer to the front buffer.  If there's no back buffer
  * this is a no-op.
  */
+PUBLIC
 void XMesaSwapBuffers( XMesaBuffer b )
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -2475,7 +2486,7 @@ unsigned long XMesaDitherColor( XMesaContext xmesa, GLint x, GLint y,
  * This is typically called when the window size changes and we need
  * to reallocate the buffer's back/depth/stencil/accum buffers.
  */
-void
+PUBLIC void
 XMesaResizeBuffers( XMesaBuffer b )
 {
    GET_CURRENT_CONTEXT(ctx);
index bd5dce14172f344cdf5b5b1aeae77aa7357bc661..98d03ccf62fcb45f83f95d77e470372b09d70775 100644 (file)
@@ -573,16 +573,6 @@ extern XMesaBuffer XMesaCreateWindowBuffer2( XMesaVisual v,
                                             XMesaWindow w,
                                             XMesaContext c );
 
-/*
- * These are the extra routines required for integration with XFree86.
- * None of these routines should be user visible. -KEM
- */
-extern GLboolean XMesaForceCurrent(XMesaContext c);
-extern GLboolean XMesaLoseCurrent(XMesaContext c);
-extern GLboolean XMesaCopyContext( XMesaContext src,
-                                  XMesaContext dst,
-                                  GLuint mask );
-
 
 #define ENABLE_EXT_texure_compression_s3tc 0 /* SW texture compression */