From 3399a579d03f412cf57627aed56f0c195a2d1d4a Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Sat, 4 Oct 2008 16:33:51 -0700 Subject: [PATCH] call find-gl-context to ensure context is set during graft/ungraft in GL demos --- extra/bunny/bunny.factor | 5 ++++- extra/spheres/spheres.factor | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/extra/bunny/bunny.factor b/extra/bunny/bunny.factor index ed89f2a809..d0625e464f 100755 --- a/extra/bunny/bunny.factor +++ b/extra/bunny/bunny.factor @@ -1,6 +1,7 @@ USING: accessors arrays bunny.cel-shaded bunny.fixed-pipeline bunny.model bunny.outlined destructors kernel math opengl.demo-support -opengl.gl sequences ui ui.gadgets ui.gestures ui.render words ; +opengl.gl sequences ui ui.gadgets ui.gadgets.worlds ui.gestures +ui.render words ; IN: bunny TUPLE: bunny-gadget < demo-gadget model-triangles geom draw-seq draw-n ; @@ -18,6 +19,7 @@ TUPLE: bunny-gadget < demo-gadget model-triangles geom draw-seq draw-n ; >>draw-n relayout-1 ; M: bunny-gadget graft* ( gadget -- ) + dup find-gl-context GL_DEPTH_TEST glEnable dup model-triangles>> >>geom dup @@ -29,6 +31,7 @@ M: bunny-gadget graft* ( gadget -- ) drop ; M: bunny-gadget ungraft* ( gadget -- ) + dup find-gl-context [ geom>> [ dispose ] when* ] [ draw-seq>> [ [ dispose ] when* ] each ] bi ; diff --git a/extra/spheres/spheres.factor b/extra/spheres/spheres.factor index 0b7f1f95bb..f119956db6 100755 --- a/extra/spheres/spheres.factor +++ b/extra/spheres/spheres.factor @@ -1,6 +1,6 @@ USING: kernel opengl.demo-support opengl.gl opengl.shaders opengl.framebuffers opengl multiline ui.gadgets accessors sequences ui.render ui math locals -arrays generalizations combinators opengl.capabilities ; +arrays generalizations combinators opengl.capabilities ui.gadgets.worlds ; IN: spheres STRING: plane-vertex-shader @@ -162,6 +162,7 @@ M: spheres-gadget distance-step ( gadget -- dz ) 3array check-gl-program ; M: spheres-gadget graft* ( gadget -- ) + dup find-gl-context "2.0" { "GL_ARB_shader_objects" } require-gl-version-or-extensions { "GL_EXT_framebuffer_object" } require-gl-extensions (plane-program) >>plane-program @@ -173,6 +174,7 @@ M: spheres-gadget graft* ( gadget -- ) drop ; M: spheres-gadget ungraft* ( gadget -- ) + dup find-gl-context { [ reflection-framebuffer>> [ delete-framebuffer ] when* ] [ reflection-depthbuffer>> [ delete-renderbuffer ] when* ]