From b7dd3d5d35573513ab28cd00c4d6b3557b57fd14 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 15 Jul 2009 13:53:57 -0500 Subject: [PATCH] report opengl function name in gl-errors --- basis/opengl/opengl.factor | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) mode change 100644 => 100755 basis/opengl/opengl.factor diff --git a/basis/opengl/opengl.factor b/basis/opengl/opengl.factor old mode 100644 new mode 100755 index 7884890ebf..196293adc9 --- a/basis/opengl/opengl.factor +++ b/basis/opengl/opengl.factor @@ -30,7 +30,7 @@ IN: opengl { HEX: 0506 "Invalid framebuffer operation" } } at "Unknown error" or ; -TUPLE: gl-error code string ; +TUPLE: gl-error function code string ; TUPLE: gl-error-log { function word initial: t } @@ -39,17 +39,20 @@ TUPLE: gl-error-log gl-error-log [ V{ } clone ] initialize -: ( code -- gl-error ) +: ( function code -- gl-error ) dup error>string \ gl-error boa ; inline : ( function code -- gl-error-log ) - now gl-error-log boa ; + [ dup ] dip now gl-error-log boa ; : gl-error-code ( -- code/f ) glGetError dup 0 = [ drop f ] when ; inline +: (gl-error) ( function -- ) + gl-error-code [ throw ] [ drop ] if* ; + : gl-error ( -- ) - gl-error-code [ throw ] [ ] if* ; + f (gl-error) ; inline : log-gl-error ( function -- ) gl-error-code [ gl-error-log get push ] [ drop ] if* ; @@ -72,7 +75,7 @@ gl-error-log [ V{ } clone ] initialize V{ } clone gl-error-log set ; : throw-gl-errors ( -- ) - [ drop '[ @ gl-error ] ] annotate-gl-functions ; + [ '[ @ _ (gl-error) ] ] annotate-gl-functions ; : log-gl-errors ( -- ) [ '[ @ _ log-gl-error ] ] annotate-gl-functions ;