From 4314b2ac28f7d4eebb6b44179b45b70ca3306cbd Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 3 Nov 2011 16:33:50 -0600 Subject: [PATCH] make OpenGL gears example report a good error on failure --- collects/sgl/examples/gears.rkt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/collects/sgl/examples/gears.rkt b/collects/sgl/examples/gears.rkt index 1e1bc2fbf2..70196b3ed9 100644 --- a/collects/sgl/examples/gears.rkt +++ b/collects/sgl/examples/gears.rkt @@ -45,7 +45,8 @@ (define gears-canvas% (class* canvas% () - (inherit refresh with-gl-context swap-gl-buffers get-parent) + (inherit refresh with-gl-context swap-gl-buffers get-parent + get-top-level-window) (define rotation 0.0) @@ -231,8 +232,18 @@ (gl-vertex (* r0 cos-angle) (* r0 sin-angle) half-width))) (gl-end))) + (define/private (report-no-gl) + (message-box "Gears" + (string-append + "There was an error initializing OpenGL. " + "Maybe OpenGL is not supported on the current platform.") + (get-top-level-window) + '(ok stop)) + (exit 1)) + (define/override (on-size width height) (with-gl-context + #:fail (lambda () (report-no-gl)) (lambda () (unless gear1 @@ -301,6 +312,7 @@ ;; TODO: Don't increment this infinitely. (set! rotation (+ 2.0 rotation))) (with-gl-context + #:fail (lambda () (report-no-gl)) (lambda () (gl-clear-color 0.0 0.0 0.0 0.0)