Extra checks in window creation
This commit is contained in:
parent
16e1d44cdb
commit
66a2676652
|
@ -90,8 +90,15 @@ static GLXFBConfig *chooseVisualGLX13(Display *disp, int screen, int bpp, int de
|
||||||
GLX_ALPHA_SIZE, alpha,
|
GLX_ALPHA_SIZE, alpha,
|
||||||
GLX_STENCIL_SIZE, stencil,
|
GLX_STENCIL_SIZE, stencil,
|
||||||
None};
|
None};
|
||||||
int num_formats;
|
int num_formats = 0;
|
||||||
return glXChooseFBConfig(disp, screen, attriblist, &num_formats);
|
GLXFBConfig* configs = glXChooseFBConfig(disp, screen, attriblist, &num_formats);
|
||||||
|
if (num_formats > 0)
|
||||||
|
return configs;
|
||||||
|
else {
|
||||||
|
if (configs != NULL)
|
||||||
|
XFree(configs);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static XVisualInfo *chooseVisual(Display *disp, int screen, int bpp, int depth, int alpha, int stencil) {
|
static XVisualInfo *chooseVisual(Display *disp, int screen, int bpp, int depth, int alpha, int stencil) {
|
||||||
|
@ -150,6 +157,12 @@ static bool initWindowGLX13(JNIEnv *env, Display *disp, int screen, jstring titl
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
XVisualInfo * vis_info = glXGetVisualFromFBConfig(disp, configs[0]);
|
XVisualInfo * vis_info = glXGetVisualFromFBConfig(disp, configs[0]);
|
||||||
|
if (vis_info == NULL) {
|
||||||
|
glXDestroyContext(disp, context);
|
||||||
|
XFree(configs);
|
||||||
|
throwException(env, "Could not create visual info from FB config");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
dumpVisualInfo(disp, vis_info);
|
dumpVisualInfo(disp, vis_info);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue