From 9412fe82973d4fbf6f31fa9535cd0d8da306917d Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Sun, 28 Feb 2010 16:40:34 -0800 Subject: [PATCH] update GL-FUNCTION: to use new FUNCTION: factors --- basis/opengl/gl/extensions/extensions.factor | 27 +++++++++----------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/basis/opengl/gl/extensions/extensions.factor b/basis/opengl/gl/extensions/extensions.factor index 17813b8c82..530f3ada6c 100644 --- a/basis/opengl/gl/extensions/extensions.factor +++ b/basis/opengl/gl/extensions/extensions.factor @@ -11,11 +11,11 @@ ERROR: unknown-gl-platform ; [ unknown-gl-platform ] } cond use-vocab >> -SYMBOL: +gl-function-number-counter+ +SYMBOL: +gl-function-counter+ SYMBOL: +gl-function-pointers+ : reset-gl-function-number-counter ( -- ) - 0 +gl-function-number-counter+ set-global ; + 0 +gl-function-counter+ set-global ; : reset-gl-function-pointers ( -- ) 100 +gl-function-pointers+ set-global ; @@ -23,9 +23,9 @@ SYMBOL: +gl-function-pointers+ reset-gl-function-pointers reset-gl-function-number-counter -: gl-function-number ( -- n ) - +gl-function-number-counter+ get-global - dup 1 + +gl-function-number-counter+ set-global ; +: gl-function-counter ( -- n ) + +gl-function-counter+ get-global + dup 1 + +gl-function-counter+ set-global ; : gl-function-pointer ( names n -- funptr ) gl-function-context 2array dup +gl-function-pointers+ get-global at @@ -41,18 +41,15 @@ reset-gl-function-number-counter : indirect-quot ( function-ptr-quot return types abi -- quot ) '[ @ _ _ _ alien-indirect ] ; -:: define-indirect ( abi return function-ptr-quot function-name parameters -- ) +:: define-indirect ( abi return function-name function-ptr-quot types names -- ) function-name create-in dup reset-generic - function-ptr-quot return - parameters return parse-arglist [ abi indirect-quot ] dip + function-ptr-quot return types abi indirect-quot + names return function-effect define-declared ; SYNTAX: GL-FUNCTION: gl-function-calling-convention - scan-c-type - scan dup - scan drop "}" parse-tokens swap prefix - gl-function-number - [ gl-function-pointer ] 2curry swap - ";" parse-tokens [ "()" subseq? not ] filter - define-indirect ; + scan-function-name + "{" expect "}" parse-tokens over prefix + gl-function-counter '[ _ _ gl-function-pointer ] + ";" scan-c-args define-indirect ;