summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2003-12-06 17:17:42 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2003-12-06 17:17:42 +0000
commitfde2b9750ea9f37b018aaa26c9bbb6454cd1c016 (patch)
tree376773026408d1f1cf124dd1258560eb672d94ee
parentfe54ba39522f6ebed447e083936d88b07b46189b (diff)
basic API work for FBConfigs & Pbuffers
-rw-r--r--include/GL/miniglx.h42
-rw-r--r--src/glx/mini/miniglx.c50
2 files changed, 89 insertions, 3 deletions
diff --git a/include/GL/miniglx.h b/include/GL/miniglx.h
index 7720d3536d..4416e587d6 100644
--- a/include/GL/miniglx.h
+++ b/include/GL/miniglx.h
@@ -1,4 +1,4 @@
-/* $Id: miniglx.h,v 1.1 2003/08/23 01:25:30 jonsmirl Exp $ */
+/* $Id: miniglx.h,v 1.2 2003/12/06 17:17:42 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -92,6 +92,15 @@ typedef struct MiniGLXXVisualInfoRec {
} XVisualInfo;
/**
+ * \brief GLX Frame Buffer Configuration (for pbuffers)
+ * \sa \ref datatypes.
+ */
+typedef struct MiniGLXFBConfigRec {
+ XVisualInfo *visInfo;
+} GLXFBConfig;
+
+
+/**
* \brief Display handle.
*
* Alias for the private ::MiniGLXDisplayRec structure.
@@ -133,6 +142,17 @@ typedef struct MiniGLXWindowRec *Drawable;
typedef struct MiniGLXWindowRec *GLXDrawable;
/**
+ * \brief GLX pbuffer.
+ *
+ * Alias for the private ::MiniGLXWindowRec structure.
+ *
+ * Same as #Drawable.
+ *
+ * \sa \ref datatypes.
+ */
+typedef struct MiniGLXWindowRec *GLXPbuffer;
+
+/**
* \brief GLX context.
*
* Alias for the private ::MiniGLXContext structure.
@@ -282,6 +302,8 @@ typedef union _XEvent {
/*@{*/
/** \brief Defined if version 1.0 of Mini GLX is supported. */
#define MINI_GLX_VERSION_1_0 1
+/** \brief Defined if version 1.1 of Mini GLX is supported. */
+#define MINI_GLX_VERSION_1_1 1
/*@}*/
@@ -355,7 +377,8 @@ extern void
XFree( void *data );
extern XVisualInfo *
-XGetVisualInfo( Display *display, long vinfo_mask, XVisualInfo *vinfo_template, int *nitems_return );
+XGetVisualInfo( Display *display, long vinfo_mask,
+ XVisualInfo *vinfo_template, int *nitems_return );
/*@}*/
@@ -394,6 +417,21 @@ glXGetProcAddress( const GLubyte *procname );
extern Bool
glXQueryVersion( Display *dpy, int *major, int *minor );
+
+/* Added in MiniGLX 1.1 */
+extern GLXPbuffer
+glXCreatePbuffer( Display *dpy, GLXFBConfig config, const int *attribList );
+
+extern void
+glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf );
+
+extern GLXFBConfig *
+glXChooseFBConfig( Display *dpy, int screen, const int *attribList,
+ int *nitems );
+
+extern XVisualInfo *
+glXGetVisualFromFBConfig( Display *dpy, GLXFBConfig config );
+
/*@}*/
diff --git a/src/glx/mini/miniglx.c b/src/glx/mini/miniglx.c
index 15563df3f3..5cec09c8aa 100644
--- a/src/glx/mini/miniglx.c
+++ b/src/glx/mini/miniglx.c
@@ -31,7 +31,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-/* $Id: miniglx.c,v 1.2 2003/10/21 06:05:40 jonsmirl Exp $ */
+/* $Id: miniglx.c,v 1.3 2003/12/06 17:18:09 brianp Exp $ */
/**
* \mainpage Mini GLX
@@ -1935,6 +1935,10 @@ glXGetProcAddress( const GLubyte *procName )
{ "XFreeColormap", (void *) XFreeColormap },
{ "XFree", (void *) XFree },
{ "XGetVisualinfo", (void *) XGetVisualInfo },
+ { "glXCreatePbuffer", (void *) glXCreatePbuffer },
+ { "glXDestroyPbuffer", (void *) glXDestroyPbuffer },
+ { "glXChooseFBConfig", (void *) glXChooseFBConfig },
+ { "glXGetVisualFromFBConfig", (void *) glXGetVisualFromFBConfig },
{ NULL, NULL }
};
const struct name_address *entry;
@@ -1972,4 +1976,48 @@ glXQueryVersion( Display *dpy, int *major, int *minor )
}
+/**
+ * \brief Create a new pbuffer.
+ */
+GLXPbuffer
+glXCreatePbuffer( Display *dpy, GLXFBConfig config, const int *attribList )
+{
+ return NULL;
+}
+
+
+void
+glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf )
+{
+ free(pbuf);
+}
+
+
+GLXFBConfig *
+glXChooseFBConfig( Display *dpy, int screen, const int *attribList,
+ int *nitems )
+{
+ GLXFBConfig *f = (GLXFBConfig *) malloc(sizeof(GLXFBConfig));
+ f->visInfo = glXChooseVisual( dpy, screen, (int *) attribList );
+ if (f->visInfo) {
+ *nitems = 1;
+ return f;
+ }
+ else {
+ *nitems = 0;
+ free(f);
+ return NULL;
+ }
+}
+
+
+XVisualInfo *
+glXGetVisualFromFBConfig( Display *dpy, GLXFBConfig config )
+{
+ /* XVisualInfo and GLXFBConfig are the same structure */
+ (void) dpy;
+ return config.visInfo;
+}
+
+
/*@}*/