-/* $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
int bits_per_rgb; /**< \brief total bits per pixel */
} XVisualInfo;
+/**
+ * \brief GLX Frame Buffer Configuration (for pbuffers)
+ * \sa \ref datatypes.
+ */
+typedef struct MiniGLXFBConfigRec {
+ XVisualInfo *visInfo;
+} GLXFBConfig;
+
+
/**
* \brief Display handle.
*
*/
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.
*
/*@{*/
/** \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
/*@}*/
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 );
/*@}*/
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 );
+
/*@}*/
* 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
{ "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;
}
+/**
+ * \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;
+}
+
+
/*@}*/