mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 06:30:10 +01:00
added wrappers/helpers for creating/destroying rendering contexts
This commit is contained in:
parent
c3984fc015
commit
c61782958b
2 changed files with 45 additions and 1 deletions
|
|
@ -9,7 +9,6 @@
|
|||
* to the GLX_SGIX_fbconfig/pbuffer extensions.
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "pbutil.h"
|
||||
|
|
@ -293,6 +292,43 @@ PrintFBConfigInfo(Display *dpy, int screen, FBCONFIG config, Bool horizFormat)
|
|||
|
||||
|
||||
|
||||
GLXContext
|
||||
CreateContext(Display *dpy, int screen, FBCONFIG config)
|
||||
{
|
||||
int pbSupport = QueryPbuffers(dpy, screen);
|
||||
#if defined(GLX_VERSION_1_3)
|
||||
if (pbSupport == 1) {
|
||||
/* GLX 1.3 */
|
||||
GLXContext c;
|
||||
c = glXCreateNewContext(dpy, config, GLX_RGBA_TYPE, NULL, True);
|
||||
if (!c) {
|
||||
/* try indirect */
|
||||
c = glXCreateNewContext(dpy, config, GLX_RGBA_TYPE, NULL, False);
|
||||
}
|
||||
return c;
|
||||
}
|
||||
#endif
|
||||
#if defined(GLX_SGIX_fbconfig) && defined(GLX_SGIX_pbuffer)
|
||||
if (pbSupport == 2) {
|
||||
GLXContext c;
|
||||
c = glXCreateContextWithConfigSGIX(dpy, config, GLX_RGBA_TYPE_SGIX, NULL, True);
|
||||
if (!c) {
|
||||
c = glXCreateContextWithConfigSGIX(dpy, config, GLX_RGBA_TYPE_SGIX, NULL, False);
|
||||
}
|
||||
return c;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
DestroyContext(Display *dpy, GLXContext ctx)
|
||||
{
|
||||
glXDestroyContext(dpy, ctx);
|
||||
}
|
||||
|
||||
|
||||
/* This is only used by CreatePbuffer() */
|
||||
static int XErrorFlag = 0;
|
||||
static int HandleXError(Display *dpy, XErrorEvent *event)
|
||||
|
|
|
|||
|
|
@ -46,6 +46,14 @@ extern XVisualInfo *
|
|||
GetVisualFromFBConfig(Display *dpy, int screen, FBCONFIG config);
|
||||
|
||||
|
||||
extern GLXContext
|
||||
CreateContext(Display *dpy, int screen, FBCONFIG config);
|
||||
|
||||
|
||||
extern void
|
||||
DestroyContext(Display *dpy, GLXContext ctx);
|
||||
|
||||
|
||||
extern PBUFFER
|
||||
CreatePbuffer(Display *dpy, int screen, FBCONFIG config,
|
||||
int width, int height, Bool preserve, Bool largest);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue