From 80734e8180656df3202d9ec58f7660cb508d5c1c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Wed, 24 Oct 2012 12:30:46 +0100 Subject: [PATCH] Handle visual creation errors. --- retrace/glretrace_ws.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/retrace/glretrace_ws.cpp b/retrace/glretrace_ws.cpp index c49b472..de9fe08 100644 --- a/retrace/glretrace_ws.cpp +++ b/retrace/glretrace_ws.cpp @@ -52,6 +52,10 @@ getVisual(glws::Profile profile) { glws::Visual * & visual = visuals[profile]; if (!visual) { visual = glws::createVisual(retrace::doubleBuffer, profile); + if (!visual) { + std::cerr << "error: failed to create OpenGL visual\n"; + exit(1); + } } return visual; } @@ -70,11 +74,11 @@ getDefaultProfile(void) static glws::Drawable * createDrawableHelper(glws::Profile profile, int width = 32, int height = 32, bool pbuffer = false) { - glws::Drawable *draw = glws::createDrawable(getVisual(profile), width, height, pbuffer); + glws::Visual *visual = getVisual(profile); + glws::Drawable *draw = glws::createDrawable(visual, width, height, pbuffer); if (!draw) { std::cerr << "error: failed to create OpenGL drawable\n"; exit(1); - return NULL; } return draw; @@ -101,8 +105,9 @@ createPbuffer(int width, int height) { Context * createContext(Context *shareContext, glws::Profile profile) { + glws::Visual *visual = getVisual(profile); glws::Context *shareWsContext = shareContext ? shareContext->wsContext : NULL; - glws::Context *ctx = glws::createContext(getVisual(profile), shareWsContext, profile, retrace::debug); + glws::Context *ctx = glws::createContext(visual, shareWsContext, profile, retrace::debug); if (!ctx) { std::cerr << "error: failed to create OpenGL context\n"; exit(1); -- 2.43.0