     [ 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 <hashtable> +gl-function-pointers+ set-global ;
     

: indirect-quot ( function-ptr-quot return types abi -- quot )
    '[ @  _ _ _ alien-indirect ] ;

:: define-indirect ( abi return function-ptr-quot function-name parameters -- )
    function-name create-in dup reset-generic
    function-ptr-quot return
    parameters return parse-arglist [ abi indirect-quot ] dip
    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 ;

reset-gl-function-pointers
reset-gl-function-number-counter

: 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
