summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorleo2001-01-27 15:52:27 +0000
committerleo2001-01-27 15:52:27 +0000
commit807910891d43ec08f101425641894fe90063e11f (patch)
treeca2eccd4457717971f02d7ac61d15e17b8f57e97 /linux
parentfdaeae206f67ce36fcc58e72897a731489691768 (diff)
Check that the GL context was created
git-svn-id: http://svn.leocad.org/trunk@228 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'linux')
-rw-r--r--linux/glwindow.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/linux/glwindow.cpp b/linux/glwindow.cpp
index 29e0897..e647ec4 100644
--- a/linux/glwindow.cpp
+++ b/linux/glwindow.cpp
@@ -144,7 +144,7 @@ GLWindow::~GLWindow ()
g_free (m_pData);
}
-void GLWindow::Create (void *data)
+bool GLWindow::Create (void *data)
{
int attrlist[] = { GLX_RGBA, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 16, 0 };
GLWindowPrivate *prv = (GLWindowPrivate*)m_pData;
@@ -158,16 +158,25 @@ void GLWindow::Create (void *data)
printf ("OpenGL fatal error: GtkRadiant needs a display with at least 16 bit colors.\n");
if (dpy == NULL)
+ {
printf ("OpenGL fatal error: Cannot get display.\n");
+ return false;
+ }
prv->xdisplay = dpy;
vi = pfnglXChooseVisual (dpy, DefaultScreen (dpy), attrlist);
if (vi == NULL)
+ {
printf ("OpenGL fatal error: glXChooseVisual failed.\n");
+ return false;
+ }
visual = gdkx_visual_get (vi->visualid);
if (visual == NULL)
+ {
printf ("OpenGL fatal error: Cannot get visual.\n");
+ return false;
+ }
gtk_widget_push_colormap (gdk_colormap_new (visual, TRUE));
gtk_widget_push_visual (visual);
@@ -210,6 +219,8 @@ void GLWindow::Create (void *data)
GTK_SIGNAL_FUNC (realize_event), this);
*((GtkWidget**)data) = prv->widget;
+
+ return true;
}
void GLWindow::DestroyContext ()