From c051665efba0edf7392064770b965cb44abbee93 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 23 Jun 2009 20:01:53 -0500 Subject: [PATCH 01/13] throw in image component-orders for some more opengl formats --- basis/images/images.factor | 13 ++++++++++--- basis/opengl/gl/gl.factor | 11 +++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/basis/images/images.factor b/basis/images/images.factor index f74233c515..ecf3de26e8 100755 --- a/basis/images/images.factor +++ b/basis/images/images.factor @@ -4,7 +4,8 @@ USING: combinators kernel accessors sequences math arrays ; IN: images SINGLETONS: - L LA BGR RGB BGRA RGBA ABGR ARGB RGBX XRGB BGRX XBGR + A L LA BGR RGB BGRA RGBA ABGR ARGB RGBX XRGB BGRX XBGR + INTENSITY DEPTH R RG ubyte-components ushort-components half-components float-components byte-integer-components ubyte-integer-components @@ -12,7 +13,8 @@ SINGLETONS: int-integer-components uint-integer-components ; UNION: component-order - L LA BGR RGB BGRA RGBA ABGR ARGB RGBX XRGB BGRX XBGR ; + A L LA BGR RGB BGRA RGBA ABGR ARGB RGBX XRGB BGRX XBGR + INTENSITY DEPTH R RG ; UNION: component-type ubyte-components ushort-components @@ -26,7 +28,7 @@ UNION: unnormalized-integer-components short-integer-components ushort-integer-components int-integer-components uint-integer-components ; -UNION: alpha-channel BGRA RGBA ABGR ARGB ; +UNION: alpha-channel BGRA RGBA ABGR ARGB LA A INTENSITY ; TUPLE: image dim component-order component-type upside-down? bitmap ; @@ -56,6 +58,7 @@ DEFER: bytes-per-pixel : component-count ( component-order -- n ) { + { A [ 1 ] } { L [ 1 ] } { LA [ 2 ] } { BGR [ 3 ] } @@ -68,6 +71,10 @@ DEFER: bytes-per-pixel { XRGB [ 4 ] } { BGRX [ 4 ] } { XBGR [ 4 ] } + { INTENSITY [ 1 ] } + { DEPTH [ 1 ] } + { R [ 1 ] } + { RG [ 2 ] } } case ; : pixel@ ( x y image -- start end bitmap ) diff --git a/basis/opengl/gl/gl.factor b/basis/opengl/gl/gl.factor index fb3b10354b..382ff06dd4 100644 --- a/basis/opengl/gl/gl.factor +++ b/basis/opengl/gl/gl.factor @@ -1906,6 +1906,17 @@ CONSTANT: GL_MIN_PROGRAM_TEXEL_OFFSET_EXT HEX: 8904 CONSTANT: GL_MAX_PROGRAM_TEXEL_OFFSET_EXT HEX: 8905 +! GL_ARB_texture_rectangle + + +CONSTANT: GL_TEXTURE_RECTANGLE_ARB HEX: 84F5 +CONSTANT: GL_TEXTURE_BINDING_RECTANGLE_ARB HEX: 84F6 +CONSTANT: GL_PROXY_TEXTURE_RECTANGLE_ARB HEX: 84F7 +CONSTANT: GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB HEX: 84F8 +CONSTANT: GL_SAMPLER_2D_RECT_ARB HEX: 8B63 +CONSTANT: GL_SAMPLER_2D_RECT_SHADOW_ARB HEX: 8B64 + + ! GL_EXT_geometry_shader4 From c53aca6016316583b790171c7ad9a690de77c3fa Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Tue, 23 Jun 2009 21:32:51 -0500 Subject: [PATCH 02/13] compiler.cfg.linear-scan: fix coalescing to take lifetime holes into account --- .../linear-scan/allocation/allocation.factor | 39 ++++++------------- .../allocation/coalescing/coalescing.factor | 14 ++++++- .../live-intervals/live-intervals.factor | 22 +++++++++++ 3 files changed, 45 insertions(+), 30 deletions(-) diff --git a/basis/compiler/cfg/linear-scan/allocation/allocation.factor b/basis/compiler/cfg/linear-scan/allocation/allocation.factor index 3dcc925d7c..4425050d4b 100644 --- a/basis/compiler/cfg/linear-scan/allocation/allocation.factor +++ b/basis/compiler/cfg/linear-scan/allocation/allocation.factor @@ -2,44 +2,27 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors assocs heaps kernel namespaces sequences fry math combinators arrays sorting compiler.utilities +compiler.cfg.linear-scan.live-intervals compiler.cfg.linear-scan.allocation.coalescing compiler.cfg.linear-scan.allocation.spilling compiler.cfg.linear-scan.allocation.splitting compiler.cfg.linear-scan.allocation.state ; IN: compiler.cfg.linear-scan.allocation -: relevant-ranges ( new inactive -- new' inactive' ) - ! Slice off all ranges of 'inactive' that precede the start of 'new' - [ [ ranges>> ] bi@ ] [ nip start>> ] 2bi '[ to>> _ >= ] filter ; +: free-positions ( new -- assoc ) + vreg>> reg-class>> registers get at [ 1/0. ] H{ } map>assoc ; -: intersect-live-range ( range1 range2 -- n/f ) - 2dup [ from>> ] bi@ > [ swap ] when - 2dup [ to>> ] [ from>> ] bi* >= [ nip from>> ] [ 2drop f ] if ; +: active-positions ( new -- assoc ) + vreg>> active-intervals-for [ reg>> 0 ] H{ } map>assoc ; -: intersect-live-ranges ( ranges1 ranges2 -- n ) - { - { [ over empty? ] [ 2drop 1/0. ] } - { [ dup empty? ] [ 2drop 1/0. ] } - [ - 2dup [ first ] bi@ intersect-live-range dup [ 2nip ] [ - drop - 2dup [ first from>> ] bi@ < - [ [ rest-slice ] dip ] [ rest-slice ] if - intersect-live-ranges - ] if - ] - } cond ; - -: intersect-inactive ( new inactive -- n ) - relevant-ranges intersect-live-ranges ; +: inactive-positions ( new -- assoc ) + dup vreg>> inactive-intervals-for + [ [ reg>> swap ] keep relevant-ranges intersect-live-ranges ] + with H{ } map>assoc ; : compute-free-pos ( new -- free-pos ) - dup vreg>> - [ nip reg-class>> registers get at [ 1/0. ] H{ } map>assoc ] - [ inactive-intervals-for [ [ reg>> swap ] keep intersect-inactive ] with H{ } map>assoc ] - [ nip active-intervals-for [ reg>> 0 ] H{ } map>assoc ] - 2tri 3array assoc-combine - >alist alist-max ; + [ free-positions ] [ inactive-positions ] [ active-positions ] tri + 3array assoc-combine >alist alist-max ; : no-free-registers? ( result -- ? ) second 0 = ; inline diff --git a/basis/compiler/cfg/linear-scan/allocation/coalescing/coalescing.factor b/basis/compiler/cfg/linear-scan/allocation/coalescing/coalescing.factor index 99ed75dcbc..b2b9202204 100644 --- a/basis/compiler/cfg/linear-scan/allocation/coalescing/coalescing.factor +++ b/basis/compiler/cfg/linear-scan/allocation/coalescing/coalescing.factor @@ -1,18 +1,28 @@ ! Copyright (C) 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors kernel sequences +combinators.short-circuit +compiler.cfg.linear-scan.live-intervals compiler.cfg.linear-scan.allocation.state ; IN: compiler.cfg.linear-scan.allocation.coalescing : active-interval ( vreg -- live-interval ) dup [ dup active-intervals-for [ vreg>> = ] with find nip ] when ; +: intersects-inactive-intervals? ( live-interval -- ? ) + dup vreg>> inactive-intervals-for + [ relevant-ranges intersect-live-ranges 1/0. = ] with all? ; + : coalesce? ( live-interval -- ? ) - [ start>> ] [ copy-from>> active-interval ] bi - dup [ end>> = ] [ 2drop f ] if ; + { + [ copy-from>> active-interval ] + [ [ start>> ] [ copy-from>> active-interval end>> ] bi = ] + [ intersects-inactive-intervals? ] + } 1&& ; : coalesce ( live-interval -- ) dup copy-from>> active-interval [ [ add-active ] [ [ delete-active ] [ add-handled ] bi ] bi* ] [ reg>> >>reg drop ] 2bi ; + \ No newline at end of file diff --git a/basis/compiler/cfg/linear-scan/live-intervals/live-intervals.factor b/basis/compiler/cfg/linear-scan/live-intervals/live-intervals.factor index c88f7fd21b..c67a7bb021 100644 --- a/basis/compiler/cfg/linear-scan/live-intervals/live-intervals.factor +++ b/basis/compiler/cfg/linear-scan/live-intervals/live-intervals.factor @@ -144,3 +144,25 @@ M: ##copy-float compute-live-intervals* live-intervals set [ compute-live-intervals-step ] each ] keep values dup finish-live-intervals ; + +: relevant-ranges ( new inactive -- new' inactive' ) + ! Slice off all ranges of 'inactive' that precede the start of 'new' + [ [ ranges>> ] bi@ ] [ nip start>> ] 2bi '[ to>> _ >= ] filter ; + +: intersect-live-range ( range1 range2 -- n/f ) + 2dup [ from>> ] bi@ > [ swap ] when + 2dup [ to>> ] [ from>> ] bi* >= [ nip from>> ] [ 2drop f ] if ; + +: intersect-live-ranges ( ranges1 ranges2 -- n ) + { + { [ over empty? ] [ 2drop 1/0. ] } + { [ dup empty? ] [ 2drop 1/0. ] } + [ + 2dup [ first ] bi@ intersect-live-range dup [ 2nip ] [ + drop + 2dup [ first from>> ] bi@ < + [ [ rest-slice ] dip ] [ rest-slice ] if + intersect-live-ranges + ] if + ] + } cond ; From 41d804ddbd00b7041b97f98894a6b385a9ea6d3c Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Wed, 24 Jun 2009 13:04:20 +0200 Subject: [PATCH 03/13] Pack primes numbers by slices of 30 In any given 30 successive integers greater than 5, there are at most 8 prime numbers. Use this to tightly pack the result of the Eratostene sieve. This lets us store more prime numbers than before in less space. --- basis/math/primes/erato/erato-docs.factor | 10 ++--- basis/math/primes/erato/erato-tests.factor | 11 +++++- basis/math/primes/erato/erato.factor | 46 +++++++++++++++------- basis/math/primes/primes-tests.factor | 3 ++ basis/math/primes/primes.factor | 18 ++++----- 5 files changed, 56 insertions(+), 32 deletions(-) diff --git a/basis/math/primes/erato/erato-docs.factor b/basis/math/primes/erato/erato-docs.factor index b12ea45052..1e32818fe3 100644 --- a/basis/math/primes/erato/erato-docs.factor +++ b/basis/math/primes/erato/erato-docs.factor @@ -3,10 +3,8 @@ IN: math.primes.erato HELP: sieve { $values { "n" "the greatest odd number to consider" } { "arr" "a bit array" } } -{ $description "Return a bit array containing a primality bit for every odd number between 3 and " { $snippet "n" } " (inclusive). " { $snippet ">index" } " can be used to retrieve the index of an odd number to be tested." } ; +{ $description "Apply Eratostene sieve up to " { $snippet "n" } ". Primality can then be tested using " { $link sieve } "." } ; -HELP: >index -{ $values { "n" "an odd number" } { "i" "the corresponding index" } } -{ $description "Retrieve the index corresponding to the odd number on the stack." } ; - -{ sieve >index } related-words +HELP: marked-prime? +{ $values { "n" "an integer" } { "arr" "a byte array returned by " { $link sieve } } { "?" "a boolean" } } +{ $description "Check whether a number between 3 and the limit given to " { $link sieve } " has been marked as a prime number."} ; diff --git a/basis/math/primes/erato/erato-tests.factor b/basis/math/primes/erato/erato-tests.factor index 917824c9c1..e78e5210f9 100644 --- a/basis/math/primes/erato/erato-tests.factor +++ b/basis/math/primes/erato/erato-tests.factor @@ -1,3 +1,10 @@ -USING: bit-arrays math.primes.erato tools.test ; +USING: byte-arrays math math.bitwise math.primes.erato sequences tools.test ; -[ ?{ t t t f t t f t t f t f f t } ] [ 29 sieve ] unit-test +[ B{ 255 251 247 126 } ] [ 100 sieve ] unit-test +[ 1 100 sieve marked-prime? ] [ bounds-error? ] must-fail-with +[ 120 100 sieve marked-prime? ] [ bounds-error? ] must-fail-with +[ f ] [ 119 100 sieve marked-prime? ] unit-test +[ t ] [ 113 100 sieve marked-prime? ] unit-test + +! There are 25997 primes below 300000. 1 must be removed and 3 5 7 added. +[ 25997 ] [ 299999 sieve [ bit-count ] sigma 2 + ] unit-test \ No newline at end of file diff --git a/basis/math/primes/erato/erato.factor b/basis/math/primes/erato/erato.factor index 70a9c10ff5..673f9c97cd 100644 --- a/basis/math/primes/erato/erato.factor +++ b/basis/math/primes/erato/erato.factor @@ -1,25 +1,41 @@ ! Copyright (C) 2009 Samuel Tardieu. ! See http://factorcode.org/license.txt for BSD license. -USING: bit-arrays kernel math math.functions math.ranges sequences ; +USING: arrays byte-arrays kernel math math.bitwise math.functions math.order +math.ranges sequences sequences.private ; IN: math.primes.erato -: >index ( n -- i ) - 3 - 2 /i ; inline + ( i -- n ) - 2 * 3 + ; inline +CONSTANT: masks B{ 0 128 0 0 0 0 0 64 0 0 0 32 0 16 0 0 0 8 0 4 0 0 0 2 0 0 0 0 0 1 } -: mark-multiples ( i arr -- ) - [ index> [ sq >index ] keep ] dip - [ length 1 - swap f swap ] keep - [ set-nth ] curry with each ; +: bit-pos ( n -- byte/f mask/f ) + 30 /mod masks nth-unsafe dup zero? [ 2drop f f ] when ; -: maybe-mark-multiples ( i arr -- ) - 2dup nth [ mark-multiples ] [ 2drop ] if ; +: marked-unsafe? ( n arr -- ? ) + [ bit-pos ] dip swap [ [ nth-unsafe ] [ bitand zero? not ] bi* ] [ 2drop f ] if* ; -: init-sieve ( n -- arr ) - >index 1 + dup set-bits ; +: unmark ( n arr -- ) + [ bit-pos swap ] dip + over [ [ swap unmask ] change-nth-unsafe ] [ 3drop ] if ; + +: upper-bound ( arr -- n ) length 30 * 1 - ; + +: unmark-multiples ( i arr -- ) + 2dup marked-unsafe? [ + [ [ dup sq ] [ upper-bound ] bi* rot ] keep + [ unmark ] curry each + ] [ + 2drop + ] if ; + +: init-sieve ( n -- arr ) 29 + 30 /i 255 >byte-array ; + +PRIVATE> : sieve ( n -- arr ) - [ init-sieve ] [ sqrt >index [0,b] ] bi - over [ maybe-mark-multiples ] curry each ; foldable + init-sieve [ 2 swap upper-bound sqrt [a,b] ] keep + [ [ unmark-multiples ] curry each ] keep ; + +: marked-prime? ( n arr -- ? ) + 2dup upper-bound 2 swap between? [ bounds-error ] unless + over { 2 3 5 } member? [ 2drop t ] [ marked-unsafe? ] if ; \ No newline at end of file diff --git a/basis/math/primes/primes-tests.factor b/basis/math/primes/primes-tests.factor index 6580f0780e..a950395bf4 100644 --- a/basis/math/primes/primes-tests.factor +++ b/basis/math/primes/primes-tests.factor @@ -10,6 +10,9 @@ IN: math.primes.tests { { 4999963 4999999 5000011 5000077 5000081 } } [ 4999962 5000082 primes-between >array ] unit-test +{ { 8999981 8999993 9000011 9000041 } } +[ 8999980 9000045 primes-between >array ] unit-test + [ 2 ] [ 1 next-prime ] unit-test [ 3 ] [ 2 next-prime ] unit-test [ 5 ] [ 3 next-prime ] unit-test diff --git a/basis/math/primes/primes.factor b/basis/math/primes/primes.factor index e3985fc600..ea8c60508d 100644 --- a/basis/math/primes/primes.factor +++ b/basis/math/primes/primes.factor @@ -1,31 +1,31 @@ ! Copyright (C) 2007-2009 Samuel Tardieu. ! See http://factorcode.org/license.txt for BSD license. USING: combinators kernel math math.bitwise math.functions -math.order math.primes.erato math.primes.miller-rabin -math.ranges random sequences sets fry ; +math.order math.primes.erato math.primes.erato.private +math.primes.miller-rabin math.ranges literals random sequences sets ; IN: math.primes index 4999999 sieve nth ; +: look-in-bitmap ( n -- ? ) $[ 8999999 sieve ] marked-unsafe? ; inline -: really-prime? ( n -- ? ) - dup 5000000 < [ look-in-bitmap ] [ miller-rabin ] if ; foldable +: (prime?) ( n -- ? ) + dup 8999999 <= [ look-in-bitmap ] [ miller-rabin ] if ; PRIVATE> : prime? ( n -- ? ) { - { [ dup 2 < ] [ drop f ] } + { [ dup 7 < ] [ { 2 3 5 } member? ] } { [ dup even? ] [ 2 = ] } - [ really-prime? ] + [ (prime?) ] } cond ; foldable : next-prime ( n -- p ) dup 2 < [ drop 2 ] [ - next-odd [ dup really-prime? ] [ 2 + ] until + next-odd [ dup prime? ] [ 2 + ] until ] if ; foldable : primes-between ( low high -- seq ) @@ -65,5 +65,5 @@ ERROR: too-few-primes n numbits ; : unique-primes ( n numbits -- seq ) 2dup 2^ estimated-primes > [ too-few-primes ] when - 2dup '[ _ random-prime ] replicate + 2dup [ random-prime ] curry replicate dup all-unique? [ 2nip ] [ drop unique-primes ] if ; From 29b5a1dff59f61811ff2d0beb8598732e37ab1e8 Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Wed, 24 Jun 2009 13:13:10 +0200 Subject: [PATCH 04/13] Add extra tests for math.primes --- basis/math/primes/primes-tests.factor | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/basis/math/primes/primes-tests.factor b/basis/math/primes/primes-tests.factor index a950395bf4..3d21a3e7d6 100644 --- a/basis/math/primes/primes-tests.factor +++ b/basis/math/primes/primes-tests.factor @@ -1,5 +1,5 @@ -USING: arrays math math.primes math.primes.miller-rabin -tools.test ; +USING: arrays kernel math math.primes math.primes.miller-rabin +sequences tools.test ; IN: math.primes.tests { 1237 } [ 1234 next-prime ] unit-test @@ -21,3 +21,8 @@ IN: math.primes.tests [ 100000000000031 ] [ 100000000000000 next-prime ] unit-test [ 49 ] [ 50 random-prime log2 ] unit-test + +[ t ] [ 5000077 dup find-relative-prime coprime? ] unit-test + +[ 5 t { 14 14 14 14 14 } ] +[ 5 15 unique-primes [ length ] [ [ prime? ] all? ] [ [ log2 ] map ] tri ] unit-test From eaddd1fdd4f6e70b32b4b52cae5afe2ff0973c7a Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 24 Jun 2009 08:26:30 -0500 Subject: [PATCH 05/13] provide image component-orders and component-types for all GPU texture formats --- basis/images/images.factor | 59 ++++- basis/opengl/gl/gl.factor | 54 ++++ basis/opengl/textures/textures-tests.factor | 27 +- basis/opengl/textures/textures.factor | 270 ++++++++++++++++---- 4 files changed, 351 insertions(+), 59 deletions(-) diff --git a/basis/images/images.factor b/basis/images/images.factor index ecf3de26e8..9519968eb8 100755 --- a/basis/images/images.factor +++ b/basis/images/images.factor @@ -5,31 +5,50 @@ IN: images SINGLETONS: A L LA BGR RGB BGRA RGBA ABGR ARGB RGBX XRGB BGRX XBGR - INTENSITY DEPTH R RG - ubyte-components ushort-components + INTENSITY DEPTH DEPTH-STENCIL R RG + ubyte-components ushort-components uint-components half-components float-components byte-integer-components ubyte-integer-components short-integer-components ushort-integer-components - int-integer-components uint-integer-components ; + int-integer-components uint-integer-components + u-5-5-5-1-components u-5-6-5-components + u-10-10-10-2-components + u-24-components u-24-8-components + u-9-9-9-e5-components + float-11-11-10-components ; UNION: component-order A L LA BGR RGB BGRA RGBA ABGR ARGB RGBX XRGB BGRX XBGR - INTENSITY DEPTH R RG ; + INTENSITY DEPTH DEPTH-STENCIL R RG ; UNION: component-type ubyte-components ushort-components half-components float-components byte-integer-components ubyte-integer-components short-integer-components ushort-integer-components - int-integer-components uint-integer-components ; + int-integer-components uint-integer-components + u-5-5-5-1-components u-5-6-5-components + u-10-10-10-2-components + u-24-components u-24-8-components + u-9-9-9-e5-components + float-11-11-10-components ; UNION: unnormalized-integer-components byte-integer-components ubyte-integer-components short-integer-components ushort-integer-components int-integer-components uint-integer-components ; +UNION: packed-components + u-5-5-5-1-components u-5-6-5-components + u-10-10-10-2-components + u-24-components u-24-8-components + u-9-9-9-e5-components + float-11-11-10-components ; + UNION: alpha-channel BGRA RGBA ABGR ARGB LA A INTENSITY ; +UNION: alpha-channel-precedes-colors ABGR ARGB XBGR XRGB ; + TUPLE: image dim component-order component-type upside-down? bitmap ; : ( -- image ) image new ; inline @@ -38,14 +57,11 @@ TUPLE: image dim component-order component-type upside-down? bitmap ; GENERIC: load-image* ( path class -- image ) -DEFER: bytes-per-pixel - -> packed-components? + [ component-type>> bytes-per-packed-pixel ] [ + [ component-order>> component-count ] + [ component-type>> bytes-per-component ] bi * + ] if ; + +> first * + ] [ bytes-per-pixel [ * dup ] keep + ] @@ -87,10 +124,6 @@ DEFER: bytes-per-pixel PRIVATE> -: bytes-per-pixel ( image -- n ) - [ component-order>> component-count ] - [ component-type>> bytes-per-component ] bi * ; - : pixel-at ( x y image -- pixel ) pixel@ subseq ; diff --git a/basis/opengl/gl/gl.factor b/basis/opengl/gl/gl.factor index 382ff06dd4..60464af458 100644 --- a/basis/opengl/gl/gl.factor +++ b/basis/opengl/gl/gl.factor @@ -1803,6 +1803,35 @@ CONSTANT: GL_MAX_SAMPLES_EXT HEX: 8D57 CONSTANT: GL_HALF_FLOAT_ARB HEX: 140B +! GL_ARB_texture_rg + + +CONSTANT: GL_R8 HEX: 8229 +CONSTANT: GL_R16 HEX: 822A +CONSTANT: GL_RG8 HEX: 822B +CONSTANT: GL_RG16 HEX: 822C +CONSTANT: GL_R16F HEX: 822D +CONSTANT: GL_R32F HEX: 822E +CONSTANT: GL_RG16F HEX: 822F +CONSTANT: GL_RG32F HEX: 8230 +CONSTANT: GL_R8I HEX: 8231 +CONSTANT: GL_R8UI HEX: 8232 +CONSTANT: GL_R16I HEX: 8233 +CONSTANT: GL_R16UI HEX: 8234 +CONSTANT: GL_R32I HEX: 8235 +CONSTANT: GL_R32UI HEX: 8236 +CONSTANT: GL_RG8I HEX: 8237 +CONSTANT: GL_RG8UI HEX: 8238 +CONSTANT: GL_RG16I HEX: 8239 +CONSTANT: GL_RG16UI HEX: 823A +CONSTANT: GL_RG32I HEX: 823B +CONSTANT: GL_RG32UI HEX: 823C +CONSTANT: GL_RG HEX: 8227 +CONSTANT: GL_COMPRESSED_RED HEX: 8225 +CONSTANT: GL_COMPRESSED_RG HEX: 8226 +CONSTANT: GL_RG_INTEGER HEX: 8228 + + ! GL_ARB_texture_float @@ -1917,6 +1946,31 @@ CONSTANT: GL_SAMPLER_2D_RECT_ARB HEX: 8B63 CONSTANT: GL_SAMPLER_2D_RECT_SHADOW_ARB HEX: 8B64 +! GL_EXT_packed_depth_stencil + + +CONSTANT: GL_DEPTH_STENCIL_EXT HEX: 84F9 +CONSTANT: GL_UNSIGNED_INT_24_8_EXT HEX: 84FA +CONSTANT: GL_DEPTH24_STENCIL8_EXT HEX: 88F0 +CONSTANT: GL_TEXTURE_STENCIL_SIZE_EXT HEX: 88F1 + + +! GL_EXT_texture_shared_exponent + + +CONSTANT: GL_RGB9_E5_EXT HEX: 8C3D +CONSTANT: GL_UNSIGNED_INT_5_9_9_9_REV_EXT HEX: 8C3E +CONSTANT: GL_TEXTURE_SHARED_SIZE_EXT HEX: 8C3F + + +! GL_EXT_packed_float + + +CONSTANT: GL_R11F_G11F_B10F_EXT HEX: 8C3A +CONSTANT: GL_UNSIGNED_INT_10F_11F_11F_REV_EXT HEX: 8C3B +CONSTANT: GL_RGBA_SIGNED_COMPONENTS_EXT HEX: 8C3C + + ! GL_EXT_geometry_shader4 diff --git a/basis/opengl/textures/textures-tests.factor b/basis/opengl/textures/textures-tests.factor index 24f43c52ac..220d2e8e87 100644 --- a/basis/opengl/textures/textures-tests.factor +++ b/basis/opengl/textures/textures-tests.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: tools.test opengl.textures opengl.textures.private -images kernel namespaces accessors sequences ; +USING: tools.test opengl.gl opengl.textures opengl.textures.private +images kernel namespaces accessors sequences literals ; IN: opengl.textures.tests [ @@ -15,4 +15,25 @@ IN: opengl.textures.tests { { 10 30 } { 30 300 } } } [ [ image new swap >>dim ] map ] map image-locs -] unit-test \ No newline at end of file +] unit-test + +${ GL_RGBA8 GL_RGBA GL_UNSIGNED_BYTE } +[ RGBA ubyte-components (image-format) ] unit-test + +${ GL_RGBA8 GL_BGRA GL_UNSIGNED_BYTE } +[ BGRA ubyte-components (image-format) ] unit-test + +${ GL_RGBA8 GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV } +[ ARGB ubyte-components (image-format) ] unit-test + +${ GL_RGBA32F_ARB GL_RGBA GL_FLOAT } +[ RGBA float-components (image-format) ] unit-test + +${ GL_RGBA32UI_EXT GL_BGRA_INTEGER_EXT GL_UNSIGNED_INT } +[ BGRA uint-integer-components (image-format) ] unit-test + +${ GL_RGB9_E5_EXT GL_RGB GL_UNSIGNED_INT_5_9_9_9_REV_EXT } +[ BGR u-9-9-9-e5-components (image-format) ] unit-test + +${ GL_R11F_G11F_B10F_EXT GL_RGB GL_UNSIGNED_INT_10F_11F_11F_REV_EXT } +[ BGR float-11-11-10-components (image-format) ] unit-test diff --git a/basis/opengl/textures/textures.factor b/basis/opengl/textures/textures.factor index c2fa02ac5e..25ef6ee2d3 100755 --- a/basis/opengl/textures/textures.factor +++ b/basis/opengl/textures/textures.factor @@ -4,7 +4,7 @@ USING: accessors assocs cache colors.constants destructors kernel opengl opengl.gl opengl.capabilities combinators images images.tesselation grouping specialized-arrays.float sequences math math.vectors math.matrices generalizations fry arrays namespaces -system locals ; +system locals literals ; IN: opengl.textures SYMBOL: non-power-of-2-textures? @@ -22,46 +22,233 @@ SYMBOL: non-power-of-2-textures? : delete-texture ( id -- ) [ glDeleteTextures ] (delete-gl-object) ; -GENERIC: component-type>type ( component-type -- internal-format type ) -GENERIC: component-order>format ( type component-order -- type format ) -GENERIC: component-order>integer-format ( type component-order -- type format ) +ERROR: unsupported-component-order component-order component-type ; -ERROR: unsupported-component-order component-order ; +CONSTANT: image-internal-formats H{ + { { A ubyte-components } $ GL_ALPHA8 } + { { A ushort-components } $ GL_ALPHA16 } + { { A half-components } $ GL_ALPHA16F_ARB } + { { A float-components } $ GL_ALPHA32F_ARB } + { { A byte-integer-components } $ GL_ALPHA8I_EXT } + { { A ubyte-integer-components } $ GL_ALPHA8UI_EXT } + { { A short-integer-components } $ GL_ALPHA16I_EXT } + { { A ushort-integer-components } $ GL_ALPHA16UI_EXT } + { { A int-integer-components } $ GL_ALPHA32I_EXT } + { { A uint-integer-components } $ GL_ALPHA32UI_EXT } -M: ubyte-components component-type>type drop GL_RGBA8 GL_UNSIGNED_BYTE ; -M: ushort-components component-type>type drop GL_RGBA16 GL_UNSIGNED_SHORT ; -M: half-components component-type>type drop GL_RGBA16F_ARB GL_HALF_FLOAT_ARB ; -M: float-components component-type>type drop GL_RGBA32F_ARB GL_FLOAT ; -M: byte-integer-components component-type>type drop GL_RGBA8I_EXT GL_BYTE ; -M: short-integer-components component-type>type drop GL_RGBA16I_EXT GL_SHORT ; -M: int-integer-components component-type>type drop GL_RGBA32I_EXT GL_INT ; -M: ubyte-integer-components component-type>type drop GL_RGBA8I_EXT GL_UNSIGNED_BYTE ; -M: ushort-integer-components component-type>type drop GL_RGBA16I_EXT GL_UNSIGNED_SHORT ; -M: uint-integer-components component-type>type drop GL_RGBA32I_EXT GL_UNSIGNED_INT ; + { { L ubyte-components } $ GL_LUMINANCE8 } + { { L ushort-components } $ GL_LUMINANCE16 } + { { L half-components } $ GL_LUMINANCE16F_ARB } + { { L float-components } $ GL_LUMINANCE32F_ARB } + { { L byte-integer-components } $ GL_LUMINANCE8I_EXT } + { { L ubyte-integer-components } $ GL_LUMINANCE8UI_EXT } + { { L short-integer-components } $ GL_LUMINANCE16I_EXT } + { { L ushort-integer-components } $ GL_LUMINANCE16UI_EXT } + { { L int-integer-components } $ GL_LUMINANCE32I_EXT } + { { L uint-integer-components } $ GL_LUMINANCE32UI_EXT } -M: RGB component-order>format drop GL_RGB ; -M: BGR component-order>format drop GL_BGR ; -M: RGBA component-order>format drop GL_RGBA ; -M: ARGB component-order>format - swap GL_UNSIGNED_BYTE = - [ drop GL_UNSIGNED_INT_8_8_8_8_REV GL_BGRA ] + { { R ubyte-components } $ GL_R8 } + { { R ushort-components } $ GL_R16 } + { { R half-components } $ GL_R16F } + { { R float-components } $ GL_R32F } + { { R byte-integer-components } $ GL_R8I } + { { R ubyte-integer-components } $ GL_R8UI } + { { R short-integer-components } $ GL_R16I } + { { R ushort-integer-components } $ GL_R16UI } + { { R int-integer-components } $ GL_R32I } + { { R uint-integer-components } $ GL_R32UI } + + { { INTENSITY ubyte-components } $ GL_INTENSITY8 } + { { INTENSITY ushort-components } $ GL_INTENSITY16 } + { { INTENSITY half-components } $ GL_INTENSITY16F_ARB } + { { INTENSITY float-components } $ GL_INTENSITY32F_ARB } + { { INTENSITY byte-integer-components } $ GL_INTENSITY8I_EXT } + { { INTENSITY ubyte-integer-components } $ GL_INTENSITY8UI_EXT } + { { INTENSITY short-integer-components } $ GL_INTENSITY16I_EXT } + { { INTENSITY ushort-integer-components } $ GL_INTENSITY16UI_EXT } + { { INTENSITY int-integer-components } $ GL_INTENSITY32I_EXT } + { { INTENSITY uint-integer-components } $ GL_INTENSITY32UI_EXT } + + { { DEPTH ushort-components } $ GL_DEPTH_COMPONENT16 } + { { DEPTH u-24-components } $ GL_DEPTH_COMPONENT24 } + { { DEPTH uint-components } $ GL_DEPTH_COMPONENT32 } + + { { LA ubyte-components } $ GL_LUMINANCE8_ALPHA8 } + { { LA ushort-components } $ GL_LUMINANCE16_ALPHA16 } + { { LA half-components } $ GL_LUMINANCE_ALPHA16F_ARB } + { { LA float-components } $ GL_LUMINANCE_ALPHA32F_ARB } + { { LA byte-integer-components } $ GL_LUMINANCE_ALPHA8I_EXT } + { { LA ubyte-integer-components } $ GL_LUMINANCE_ALPHA8UI_EXT } + { { LA short-integer-components } $ GL_LUMINANCE_ALPHA16I_EXT } + { { LA ushort-integer-components } $ GL_LUMINANCE_ALPHA16UI_EXT } + { { LA int-integer-components } $ GL_LUMINANCE_ALPHA32I_EXT } + { { LA uint-integer-components } $ GL_LUMINANCE_ALPHA32UI_EXT } + + { { RG ubyte-components } $ GL_RG8 } + { { RG ushort-components } $ GL_RG16 } + { { RG half-components } $ GL_RG16F } + { { RG float-components } $ GL_RG32F } + { { RG byte-integer-components } $ GL_RG8I } + { { RG ubyte-integer-components } $ GL_RG8UI } + { { RG short-integer-components } $ GL_RG16I } + { { RG ushort-integer-components } $ GL_RG16UI } + { { RG int-integer-components } $ GL_RG32I } + { { RG uint-integer-components } $ GL_RG32UI } + + { { DEPTH-STENCIL u-24-8-components } $ GL_DEPTH24_STENCIL8_EXT } + + { { RGB ubyte-components } $ GL_RGB8 } + { { RGB ushort-components } $ GL_RGB16 } + { { RGB half-components } $ GL_RGB16F_ARB } + { { RGB float-components } $ GL_RGB32F_ARB } + { { RGB byte-integer-components } $ GL_RGB8I_EXT } + { { RGB ubyte-integer-components } $ GL_RGB8UI_EXT } + { { RGB byte-integer-components } $ GL_RGB8I_EXT } + { { RGB ubyte-integer-components } $ GL_RGB8UI_EXT } + { { RGB short-integer-components } $ GL_RGB16I_EXT } + { { RGB ushort-integer-components } $ GL_RGB16UI_EXT } + { { RGB int-integer-components } $ GL_RGB32I_EXT } + { { RGB uint-integer-components } $ GL_RGB32UI_EXT } + { { RGB u-5-6-5-components } $ GL_RGB5 } + { { RGB u-9-9-9-e5-components } $ GL_RGB9_E5_EXT } + { { RGB float-11-11-10-components } $ GL_R11F_G11F_B10F_EXT } + + { { RGBA ubyte-components } $ GL_RGBA8 } + { { RGBA ushort-components } $ GL_RGBA16 } + { { RGBA half-components } $ GL_RGBA16F_ARB } + { { RGBA float-components } $ GL_RGBA32F_ARB } + { { RGBA byte-integer-components } $ GL_RGBA8I_EXT } + { { RGBA ubyte-integer-components } $ GL_RGBA8UI_EXT } + { { RGBA byte-integer-components } $ GL_RGBA8I_EXT } + { { RGBA ubyte-integer-components } $ GL_RGBA8UI_EXT } + { { RGBA short-integer-components } $ GL_RGBA16I_EXT } + { { RGBA ushort-integer-components } $ GL_RGBA16UI_EXT } + { { RGBA int-integer-components } $ GL_RGBA32I_EXT } + { { RGBA uint-integer-components } $ GL_RGBA32UI_EXT } + { { RGBA u-5-5-5-1-components } $ GL_RGB5_A1 } + { { RGBA u-10-10-10-2-components } $ GL_RGB10_A2 } +} + +GENERIC: fix-internal-component-order ( order -- order' ) + +M: object fix-internal-component-order ; +M: BGR fix-internal-component-order drop RGB ; +M: BGRA fix-internal-component-order drop RGBA ; +M: ARGB fix-internal-component-order drop RGBA ; +M: ABGR fix-internal-component-order drop RGBA ; +M: RGBX fix-internal-component-order drop RGBA ; +M: BGRX fix-internal-component-order drop RGBA ; +M: XRGB fix-internal-component-order drop RGBA ; +M: XBGR fix-internal-component-order drop RGBA ; + +: image-internal-format ( component-order component-type -- internal-format ) + 2dup + [ fix-internal-component-order ] dip 2array image-internal-formats at + [ 2nip ] [ unsupported-component-order ] if* ; + +: reversed-type? ( component-type -- ? ) + { u-9-9-9-e5-components float-11-11-10-components } member? ; + +: (component-order>format) ( component-order component-type -- gl-format ) + dup unnormalized-integer-components? [ + swap { + { A [ drop GL_ALPHA_INTEGER_EXT ] } + { L [ drop GL_LUMINANCE_INTEGER_EXT ] } + { R [ drop GL_RED_INTEGER_EXT ] } + { LA [ drop GL_LUMINANCE_ALPHA_INTEGER_EXT ] } + { RG [ drop GL_RG_INTEGER ] } + { BGR [ drop GL_BGR_INTEGER_EXT ] } + { RGB [ drop GL_RGB_INTEGER_EXT ] } + { BGRA [ drop GL_BGRA_INTEGER_EXT ] } + { RGBA [ drop GL_RGBA_INTEGER_EXT ] } + { BGRX [ drop GL_BGRA_INTEGER_EXT ] } + { RGBX [ drop GL_RGBA_INTEGER_EXT ] } + [ swap unsupported-component-order ] + } case + ] [ + swap { + { A [ drop GL_ALPHA ] } + { L [ drop GL_LUMINANCE ] } + { R [ drop GL_RED ] } + { LA [ drop GL_LUMINANCE_ALPHA ] } + { RG [ drop GL_RG ] } + { BGR [ reversed-type? GL_RGB GL_BGR ? ] } + { RGB [ reversed-type? GL_BGR GL_RGB ? ] } + { BGRA [ drop GL_BGRA ] } + { RGBA [ drop GL_RGBA ] } + { ARGB [ drop GL_BGRA ] } + { ABGR [ drop GL_RGBA ] } + { BGRX [ drop GL_BGRA ] } + { RGBX [ drop GL_RGBA ] } + { XRGB [ drop GL_BGRA ] } + { XBGR [ drop GL_RGBA ] } + { INTENSITY [ drop GL_INTENSITY ] } + { DEPTH [ drop GL_DEPTH_COMPONENT ] } + { DEPTH-STENCIL [ drop GL_DEPTH_STENCIL_EXT ] } + [ swap unsupported-component-order ] + } case + ] if ; + +GENERIC: (component-type>type) ( component-order component-type -- gl-type ) + +M: object (component-type>type) unsupported-component-order ; + +: four-channel-alpha-first? ( component-order component-type -- ? ) + over component-count 4 = + [ drop alpha-channel-precedes-colors? ] [ unsupported-component-order ] if ; -M: BGRA component-order>format drop GL_BGRA ; -M: BGRX component-order>format drop GL_BGRA ; -M: LA component-order>format drop GL_LUMINANCE_ALPHA ; -M: L component-order>format drop GL_LUMINANCE ; -M: object component-order>format unsupported-component-order ; +: not-alpha-first ( component-order component-type -- ) + over alpha-channel-precedes-colors? + [ unsupported-component-order ] + [ 2drop ] if ; -M: RGB component-order>integer-format drop GL_RGB_INTEGER_EXT ; -M: BGR component-order>integer-format drop GL_BGR_INTEGER_EXT ; -M: RGBA component-order>integer-format drop GL_RGBA_INTEGER_EXT ; -M: BGRA component-order>integer-format drop GL_BGRA_INTEGER_EXT ; -M: BGRX component-order>integer-format drop GL_BGRA_INTEGER_EXT ; -M: LA component-order>integer-format drop GL_LUMINANCE_ALPHA_INTEGER_EXT ; -M: L component-order>integer-format drop GL_LUMINANCE_INTEGER_EXT ; +M: ubyte-components (component-type>type) + drop alpha-channel-precedes-colors? + [ GL_UNSIGNED_INT_8_8_8_8_REV ] + [ GL_UNSIGNED_BYTE ] if ; -M: object component-order>integer-format unsupported-component-order ; +M: ushort-components (component-type>type) not-alpha-first GL_UNSIGNED_SHORT ; +M: uint-components (component-type>type) not-alpha-first GL_UNSIGNED_INT ; +M: half-components (component-type>type) not-alpha-first GL_HALF_FLOAT_ARB ; +M: float-components (component-type>type) not-alpha-first GL_FLOAT ; +M: byte-integer-components (component-type>type) not-alpha-first GL_BYTE ; +M: ubyte-integer-components (component-type>type) not-alpha-first GL_UNSIGNED_BYTE ; +M: short-integer-components (component-type>type) not-alpha-first GL_SHORT ; +M: ushort-integer-components (component-type>type) not-alpha-first GL_UNSIGNED_SHORT ; +M: int-integer-components (component-type>type) not-alpha-first GL_INT ; +M: uint-integer-components (component-type>type) not-alpha-first GL_UNSIGNED_INT ; + +M: u-5-5-5-1-components (component-type>type) + four-channel-alpha-first? + [ GL_UNSIGNED_SHORT_1_5_5_5_REV ] + [ GL_UNSIGNED_SHORT_5_5_5_1 ] if ; + +M: u-5-6-5-components (component-type>type) 2drop GL_UNSIGNED_SHORT_5_6_5 ; + +M: u-10-10-10-2-components (component-type>type) + four-channel-alpha-first? + [ GL_UNSIGNED_INT_2_10_10_10_REV ] + [ GL_UNSIGNED_INT_10_10_10_2 ] if ; + +M: u-24-components (component-type>type) + over DEPTH = + [ 2drop GL_UNSIGNED_INT ] [ unsupported-component-order ] if ; + +M: u-24-8-components (component-type>type) + over DEPTH-STENCIL = + [ 2drop GL_UNSIGNED_INT_24_8_EXT ] [ unsupported-component-order ] if ; + +M: u-9-9-9-e5-components (component-type>type) + over BGR = + [ 2drop GL_UNSIGNED_INT_5_9_9_9_REV_EXT ] [ unsupported-component-order ] if ; + +M: float-11-11-10-components (component-type>type) + over BGR = + [ 2drop GL_UNSIGNED_INT_10F_11F_11F_REV_EXT ] [ unsupported-component-order ] if ; + +: image-data-format ( component-order component-type -- gl-format gl-type ) + [ (component-order>format) ] [ (component-type>type) ] 2bi ; SLOT: display-list @@ -71,6 +258,12 @@ GENERIC: draw-scaled-texture ( dim texture -- ) DEFER: make-texture +: (image-format) ( component-order component-type -- internal-format format type ) + [ image-internal-format ] [ image-data-format ] 2bi ; + +: image-format ( image -- internal-format format type ) + [ component-order>> ] [ component-type>> ] bi (image-format) ; + > - [ nip component-type>type ] - [ - unnormalized-integer-components? - [ component-order>> component-order>integer-format ] - [ component-order>> component-order>format ] if - ] 2bi swap ; - :: tex-image ( image bitmap -- ) image image-format :> type :> format :> internal-format GL_TEXTURE_2D 0 internal-format From 50191588e43c8930bb960f0d9f1d6cfa89c9c8e7 Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Wed, 24 Jun 2009 15:27:58 +0200 Subject: [PATCH 06/13] Get rid of vector reallocation by preallocating it --- basis/math/primes/primes.factor | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/basis/math/primes/primes.factor b/basis/math/primes/primes.factor index ea8c60508d..5dc6a51334 100644 --- a/basis/math/primes/primes.factor +++ b/basis/math/primes/primes.factor @@ -1,8 +1,9 @@ ! Copyright (C) 2007-2009 Samuel Tardieu. ! See http://factorcode.org/license.txt for BSD license. -USING: combinators kernel math math.bitwise math.functions +USING: combinators fry kernel math math.bitwise math.functions math.order math.primes.erato math.primes.erato.private -math.primes.miller-rabin math.ranges literals random sequences sets ; +math.primes.miller-rabin math.ranges literals random sequences sets +vectors ; IN: math.primes 598. Under this limit, we know that there are at most 108 primes. +: upper-pi ( x -- y ) + dup log [ / ] [ 1.2762 swap / 1 + ] bi * ceiling ; + +: lower-pi ( x -- y ) + dup log [ / ] [ 0.992 swap / 1 + ] bi * floor ; + +: ( low high -- vector ) + swap [ [ upper-pi ] [ lower-pi ] bi* - >integer + 108 max 10000 min ] keep + 3 < [ [ 2 swap push ] keep ] when ; + PRIVATE> : prime? ( n -- ? ) @@ -29,9 +45,9 @@ PRIVATE> ] if ; foldable : primes-between ( low high -- seq ) - [ dup 3 max dup even? [ 1 + ] when ] dip - 2 [ prime? ] filter - swap 3 < [ 2 prefix ] when ; + [ [ 3 max dup even? [ 1 + ] when ] dip 2 ] + [ ] 2bi + [ '[ [ prime? ] _ push-if ] each ] keep clone ; : primes-upto ( n -- seq ) 2 swap primes-between ; From 094c82c50b266fd037611a71b9a772869e9758fa Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Wed, 24 Jun 2009 15:36:45 +0200 Subject: [PATCH 07/13] Short circuit trivial composites --- basis/math/primes/primes.factor | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/basis/math/primes/primes.factor b/basis/math/primes/primes.factor index 5dc6a51334..7e877a03ce 100644 --- a/basis/math/primes/primes.factor +++ b/basis/math/primes/primes.factor @@ -1,9 +1,9 @@ ! Copyright (C) 2007-2009 Samuel Tardieu. ! See http://factorcode.org/license.txt for BSD license. -USING: combinators fry kernel math math.bitwise math.functions -math.order math.primes.erato math.primes.erato.private -math.primes.miller-rabin math.ranges literals random sequences sets -vectors ; +USING: combinators combinators.short-circuit fry kernel math +math.bitwise math.functions math.order math.primes.erato +math.primes.erato.private math.primes.miller-rabin math.ranges +literals random sequences sets vectors ; IN: math.primes ] keep 3 < [ [ 2 swap push ] keep ] when ; +: simple? ( n -- ? ) { [ even? ] [ 3 mod 0 = ] [ 5 mod 0 = ] } 1|| ; + PRIVATE> : prime? ( n -- ? ) { { [ dup 7 < ] [ { 2 3 5 } member? ] } - { [ dup even? ] [ 2 = ] } + { [ dup simple? ] [ drop f ] } [ (prime?) ] } cond ; foldable From f3cf8fad2b56ef079647a730c9e7ea24f6522130 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Wed, 24 Jun 2009 13:54:12 -0500 Subject: [PATCH 08/13] compiler.cfg.linear-scan: fix unit tests --- basis/compiler/cfg/linear-scan/linear-scan-tests.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/compiler/cfg/linear-scan/linear-scan-tests.factor b/basis/compiler/cfg/linear-scan/linear-scan-tests.factor index 1f8112a893..60dfbd83bc 100644 --- a/basis/compiler/cfg/linear-scan/linear-scan-tests.factor +++ b/basis/compiler/cfg/linear-scan/linear-scan-tests.factor @@ -1414,7 +1414,7 @@ USING: math.private ; { uses { 5 10 } } { ranges V{ T{ live-range f 5 10 } } } } - intersect-inactive + relevant-ranges intersect-live-ranges ] unit-test ! Bug in live spill slots calculation From 22fa524db1d14af155693f90f0e58104c9d5e216 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Wed, 24 Jun 2009 13:54:43 -0500 Subject: [PATCH 09/13] compiler.cfg.stack-analysis: split up into three vocabs --- .../cfg/stack-analysis/merge/merge.factor | 85 ++++++++++ .../cfg/stack-analysis/stack-analysis.factor | 150 +++--------------- .../cfg/stack-analysis/state/state.factor | 43 +++++ 3 files changed, 148 insertions(+), 130 deletions(-) create mode 100644 basis/compiler/cfg/stack-analysis/merge/merge.factor create mode 100644 basis/compiler/cfg/stack-analysis/state/state.factor diff --git a/basis/compiler/cfg/stack-analysis/merge/merge.factor b/basis/compiler/cfg/stack-analysis/merge/merge.factor new file mode 100644 index 0000000000..9db6d595bf --- /dev/null +++ b/basis/compiler/cfg/stack-analysis/merge/merge.factor @@ -0,0 +1,85 @@ +! Copyright (C) 2009 Slava Pestov. +! See http://factorcode.org/license.txt for BSD license. +USING: kernel assocs sequences accessors fry combinators grouping +sets compiler.cfg compiler.cfg.hats +compiler.cfg.stack-analysis.state ; +IN: compiler.cfg.stack-analysis.merge + +: initial-state ( bb states -- state ) 2drop ; + +: single-predecessor ( bb states -- state ) nip first clone ; + +ERROR: must-equal-failed seq ; + +: must-equal ( seq -- elt ) + dup all-equal? [ first ] [ must-equal-failed ] if ; + +: merge-heights ( state predecessors states -- state ) + nip + [ [ ds-height>> ] map must-equal >>ds-height ] + [ [ rs-height>> ] map must-equal >>rs-height ] bi ; + +: insert-peek ( predecessor loc -- vreg ) + ! XXX critical edges + '[ _ ^^peek ] add-instructions ; + +: merge-loc ( predecessors locs>vregs loc -- vreg ) + ! Insert a ##phi in the current block where the input + ! is the vreg storing loc from each predecessor block + [ '[ [ _ ] dip at ] map ] keep + '[ [ ] [ _ insert-peek ] ?if ] 2map + dup all-equal? [ first ] [ ^^phi ] if ; + +: (merge-locs) ( predecessors assocs -- assoc ) + dup [ keys ] map concat prune + [ [ 2nip ] [ merge-loc ] 3bi ] with with + H{ } map>assoc ; + +: merge-locs ( state predecessors states -- state ) + [ locs>vregs>> ] map (merge-locs) >>locs>vregs ; + +: merge-actual-loc ( locs>vregs loc -- vreg ) + '[ [ _ ] dip at ] map + dup all-equal? [ first ] [ drop f ] if ; + +: merge-actual-locs ( state predecessors states -- state ) + nip + [ actual-locs>vregs>> ] map + dup [ keys ] map concat prune + [ [ nip ] [ merge-actual-loc ] 2bi ] with + H{ } map>assoc + [ nip ] assoc-filter + >>actual-locs>vregs ; + +: merge-changed-locs ( state predecessors states -- state ) + nip [ changed-locs>> ] map assoc-combine >>changed-locs ; + +ERROR: cannot-merge-poisoned states ; + +: multiple-predecessors ( bb states -- state ) + dup [ not ] any? [ + [ ] 2dip + sift merge-heights + ] [ + dup [ poisoned?>> ] any? [ + cannot-merge-poisoned + ] [ + [ state new ] 2dip + [ predecessors>> ] dip + { + [ merge-locs ] + [ merge-actual-locs ] + [ merge-heights ] + [ merge-changed-locs ] + } 2cleave + ] if + ] if ; + +: merge-states ( bb states -- state ) + ! If any states are poisoned, save all registers + ! to the stack in each branch + dup length { + { 0 [ initial-state ] } + { 1 [ single-predecessor ] } + [ drop multiple-predecessors ] + } case ; \ No newline at end of file diff --git a/basis/compiler/cfg/stack-analysis/stack-analysis.factor b/basis/compiler/cfg/stack-analysis/stack-analysis.factor index 4ebdf7012f..3946e0b897 100644 --- a/basis/compiler/cfg/stack-analysis/stack-analysis.factor +++ b/basis/compiler/cfg/stack-analysis/stack-analysis.factor @@ -1,42 +1,19 @@ ! Copyright (C) 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors assocs kernel namespaces math sequences fry grouping -sets make combinators compiler.cfg.copy-prop compiler.cfg.def-use -compiler.cfg.instructions compiler.cfg.registers compiler.cfg.rpo -compiler.cfg.hats compiler.cfg ; +sets make combinators +compiler.cfg +compiler.cfg.copy-prop +compiler.cfg.def-use +compiler.cfg.instructions +compiler.cfg.registers +compiler.cfg.rpo +compiler.cfg.hats +compiler.cfg.stack-analysis.state +compiler.cfg.stack-analysis.merge ; IN: compiler.cfg.stack-analysis ! Convert stack operations to register operations - -! If 'poisoned' is set, disregard height information. This is set if we don't have -! height change information for an instruction. -TUPLE: state locs>vregs actual-locs>vregs changed-locs ds-height rs-height poisoned? ; - -: ( -- state ) - state new - H{ } clone >>locs>vregs - H{ } clone >>actual-locs>vregs - H{ } clone >>changed-locs - 0 >>ds-height - 0 >>rs-height ; - -M: state clone - call-next-method - [ clone ] change-locs>vregs - [ clone ] change-actual-locs>vregs - [ clone ] change-changed-locs ; - -: loc>vreg ( loc -- vreg ) state get locs>vregs>> at ; - -: record-peek ( dst loc -- ) - state get [ locs>vregs>> set-at ] [ actual-locs>vregs>> set-at ] 3bi ; - -: changed-loc ( loc -- ) - state get changed-locs>> conjoin ; - -: record-replace ( src loc -- ) - dup changed-loc state get locs>vregs>> set-at ; - GENERIC: height-for ( loc -- n ) M: ds-loc height-for drop state get ds-height>> ; @@ -64,12 +41,6 @@ M: rs-loc untranslate-loc (translate-loc) + ; [ 2drop ] [ untranslate-loc ##replace ] if ] assoc-each ; -: clear-state ( state -- ) - [ locs>vregs>> clear-assoc ] - [ actual-locs>vregs>> clear-assoc ] - [ changed-locs>> clear-assoc ] - tri ; - ERROR: poisoned-state state ; : sync-state ( -- ) @@ -84,6 +55,14 @@ ERROR: poisoned-state state ; ! Abstract interpretation GENERIC: visit ( insn -- ) +: adjust-ds ( n -- ) state get [ + ] change-ds-height drop ; + +M: ##inc-d visit [ , ] [ n>> adjust-ds ] bi ; + +: adjust-rs ( n -- ) state get [ + ] change-rs-height drop ; + +M: ##inc-r visit [ , ] [ n>> adjust-rs ] bi ; + ! Instructions which don't have any effect on the stack UNION: neutral-insn ##flushable @@ -113,14 +92,6 @@ t local-only? set-global M: sync-if-back-edge visit sync-state? [ sync-state ] when , ; -: adjust-d ( n -- ) state get [ + ] change-ds-height drop ; - -M: ##inc-d visit [ , ] [ n>> adjust-d ] bi ; - -: adjust-r ( n -- ) state get [ + ] change-rs-height drop ; - -M: ##inc-r visit [ , ] [ n>> adjust-r ] bi ; - : eliminate-peek ( dst src -- ) ! the requested stack location is already in 'src' [ ##copy ] [ swap copies get set-at ] 2bi ; @@ -138,7 +109,7 @@ M: ##copy visit [ call-next-method ] [ record-copy ] bi ; M: ##call visit - [ call-next-method ] [ height>> adjust-d ] bi ; + [ call-next-method ] [ height>> adjust-ds ] bi ; ! Instructions that poison the stack state UNION: poison-insn @@ -167,7 +138,7 @@ UNION: kill-vreg-insn M: kill-vreg-insn visit sync-state , ; : visit-alien-node ( node -- ) - params>> [ out-d>> length ] [ in-d>> length ] bi - adjust-d ; + params>> [ out-d>> length ] [ in-d>> length ] bi - adjust-ds ; M: ##alien-invoke visit [ call-next-method ] [ visit-alien-node ] bi ; @@ -180,87 +151,6 @@ M: ##alien-callback visit , ; ! Maps basic-blocks to states SYMBOLS: state-in state-out ; -: initial-state ( bb states -- state ) 2drop ; - -: single-predecessor ( bb states -- state ) nip first clone ; - -ERROR: must-equal-failed seq ; - -: must-equal ( seq -- elt ) - dup all-equal? [ first ] [ must-equal-failed ] if ; - -: merge-heights ( state predecessors states -- state ) - nip - [ [ ds-height>> ] map must-equal >>ds-height ] - [ [ rs-height>> ] map must-equal >>rs-height ] bi ; - -: insert-peek ( predecessor loc -- vreg ) - ! XXX critical edges - '[ _ ^^peek ] add-instructions ; - -: merge-loc ( predecessors locs>vregs loc -- vreg ) - ! Insert a ##phi in the current block where the input - ! is the vreg storing loc from each predecessor block - [ '[ [ _ ] dip at ] map ] keep - '[ [ ] [ _ insert-peek ] ?if ] 2map - dup all-equal? [ first ] [ ^^phi ] if ; - -: (merge-locs) ( predecessors assocs -- assoc ) - dup [ keys ] map concat prune - [ [ 2nip ] [ merge-loc ] 3bi ] with with - H{ } map>assoc ; - -: merge-locs ( state predecessors states -- state ) - [ locs>vregs>> ] map (merge-locs) >>locs>vregs ; - -: merge-loc' ( locs>vregs loc -- vreg ) - ! Insert a ##phi in the current block where the input - ! is the vreg storing loc from each predecessor block - '[ [ _ ] dip at ] map - dup all-equal? [ first ] [ drop f ] if ; - -: merge-actual-locs ( state predecessors states -- state ) - nip - [ actual-locs>vregs>> ] map - dup [ keys ] map concat prune - [ [ nip ] [ merge-loc' ] 2bi ] with - H{ } map>assoc - [ nip ] assoc-filter - >>actual-locs>vregs ; - -: merge-changed-locs ( state predecessors states -- state ) - nip [ changed-locs>> ] map assoc-combine >>changed-locs ; - -ERROR: cannot-merge-poisoned states ; - -: multiple-predecessors ( bb states -- state ) - dup [ not ] any? [ - [ ] 2dip - sift merge-heights - ] [ - dup [ poisoned?>> ] any? [ - cannot-merge-poisoned - ] [ - [ state new ] 2dip - [ predecessors>> ] dip - { - [ merge-locs ] - [ merge-actual-locs ] - [ merge-heights ] - [ merge-changed-locs ] - } 2cleave - ] if - ] if ; - -: merge-states ( bb states -- state ) - ! If any states are poisoned, save all registers - ! to the stack in each branch - dup length { - { 0 [ initial-state ] } - { 1 [ single-predecessor ] } - [ drop multiple-predecessors ] - } case ; - : block-in-state ( bb -- states ) dup predecessors>> state-out get '[ _ at ] map merge-states ; diff --git a/basis/compiler/cfg/stack-analysis/state/state.factor b/basis/compiler/cfg/stack-analysis/state/state.factor new file mode 100644 index 0000000000..d8cec0183f --- /dev/null +++ b/basis/compiler/cfg/stack-analysis/state/state.factor @@ -0,0 +1,43 @@ +! Copyright (C) 2009 Slava Pestov. +! See http://factorcode.org/license.txt for BSD license. +USING: kernel accessors namespaces assocs sets math ; +IN: compiler.cfg.stack-analysis.state + +TUPLE: state +locs>vregs actual-locs>vregs changed-locs +ds-height rs-height poisoned? ; + +: ( -- state ) + state new + H{ } clone >>locs>vregs + H{ } clone >>actual-locs>vregs + H{ } clone >>changed-locs + 0 >>ds-height + 0 >>rs-height ; + +M: state clone + call-next-method + [ clone ] change-locs>vregs + [ clone ] change-actual-locs>vregs + [ clone ] change-changed-locs ; + +: loc>vreg ( loc -- vreg ) state get locs>vregs>> at ; + +: record-peek ( dst loc -- ) + state get [ locs>vregs>> set-at ] [ actual-locs>vregs>> set-at ] 3bi ; + +: changed-loc ( loc -- ) + state get changed-locs>> conjoin ; + +: record-replace ( src loc -- ) + dup changed-loc state get locs>vregs>> set-at ; + +: clear-state ( state -- ) + [ locs>vregs>> clear-assoc ] + [ actual-locs>vregs>> clear-assoc ] + [ changed-locs>> clear-assoc ] + tri ; + +: adjust-ds ( n -- ) state get [ + ] change-ds-height drop ; + +: adjust-rs ( n -- ) state get [ + ] change-rs-height drop ; From ab8b99d4fd03b99fcc106c67e620f037b46a7c47 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 24 Jun 2009 17:28:37 -0500 Subject: [PATCH 10/13] opengl 3.1 --- basis/images/images.factor | 4 + basis/opengl/gl/gl.factor | 721 +++++++++++++++----------- basis/opengl/textures/textures.factor | 78 +-- 3 files changed, 464 insertions(+), 339 deletions(-) diff --git a/basis/images/images.factor b/basis/images/images.factor index 9519968eb8..e1b1daa75c 100755 --- a/basis/images/images.factor +++ b/basis/images/images.factor @@ -14,6 +14,7 @@ SINGLETONS: u-5-5-5-1-components u-5-6-5-components u-10-10-10-2-components u-24-components u-24-8-components + float-32-u-8-components u-9-9-9-e5-components float-11-11-10-components ; @@ -30,6 +31,7 @@ UNION: component-type u-5-5-5-1-components u-5-6-5-components u-10-10-10-2-components u-24-components u-24-8-components + float-32-u-8-components u-9-9-9-e5-components float-11-11-10-components ; @@ -42,6 +44,7 @@ UNION: packed-components u-5-5-5-1-components u-5-6-5-components u-10-10-10-2-components u-24-components u-24-8-components + float-32-u-8-components u-9-9-9-e5-components float-11-11-10-components ; @@ -81,6 +84,7 @@ GENERIC: load-image* ( path class -- image ) { u-24-8-components [ 4 ] } { u-9-9-9-e5-components [ 4 ] } { float-11-11-10-components [ 4 ] } + { float-32-u-8-components [ 8 ] } } case ; : component-count ( component-order -- n ) diff --git a/basis/opengl/gl/gl.factor b/basis/opengl/gl/gl.factor index 60464af458..ca0276320b 100644 --- a/basis/opengl/gl/gl.factor +++ b/basis/opengl/gl/gl.factor @@ -1696,115 +1696,55 @@ GL-FUNCTION: void glUniformMatrix4x2fv { } ( GLint location, GLsizei count, GLbo GL-FUNCTION: void glUniformMatrix4x3fv { } ( GLint location, GLsizei count, GLboolean transpose, GLfloat* value ) ; -! GL_EXT_framebuffer_object +! OpenGL 3.0 -CONSTANT: GL_INVALID_FRAMEBUFFER_OPERATION_EXT HEX: 0506 -CONSTANT: GL_MAX_RENDERBUFFER_SIZE_EXT HEX: 84E8 -CONSTANT: GL_FRAMEBUFFER_BINDING_EXT HEX: 8CA6 -CONSTANT: GL_RENDERBUFFER_BINDING_EXT HEX: 8CA7 -CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT HEX: 8CD0 -CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT HEX: 8CD1 -CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT HEX: 8CD2 -CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT HEX: 8CD3 -CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT HEX: 8CD4 -CONSTANT: GL_FRAMEBUFFER_COMPLETE_EXT HEX: 8CD5 -CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT HEX: 8CD6 -CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT HEX: 8CD7 -CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT HEX: 8CD9 -CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT HEX: 8CDA -CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT HEX: 8CDB -CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT HEX: 8CDC -CONSTANT: GL_FRAMEBUFFER_UNSUPPORTED_EXT HEX: 8CDD -CONSTANT: GL_MAX_COLOR_ATTACHMENTS_EXT HEX: 8CDF -CONSTANT: GL_COLOR_ATTACHMENT0_EXT HEX: 8CE0 -CONSTANT: GL_COLOR_ATTACHMENT1_EXT HEX: 8CE1 -CONSTANT: GL_COLOR_ATTACHMENT2_EXT HEX: 8CE2 -CONSTANT: GL_COLOR_ATTACHMENT3_EXT HEX: 8CE3 -CONSTANT: GL_COLOR_ATTACHMENT4_EXT HEX: 8CE4 -CONSTANT: GL_COLOR_ATTACHMENT5_EXT HEX: 8CE5 -CONSTANT: GL_COLOR_ATTACHMENT6_EXT HEX: 8CE6 -CONSTANT: GL_COLOR_ATTACHMENT7_EXT HEX: 8CE7 -CONSTANT: GL_COLOR_ATTACHMENT8_EXT HEX: 8CE8 -CONSTANT: GL_COLOR_ATTACHMENT9_EXT HEX: 8CE9 -CONSTANT: GL_COLOR_ATTACHMENT10_EXT HEX: 8CEA -CONSTANT: GL_COLOR_ATTACHMENT11_EXT HEX: 8CEB -CONSTANT: GL_COLOR_ATTACHMENT12_EXT HEX: 8CEC -CONSTANT: GL_COLOR_ATTACHMENT13_EXT HEX: 8CED -CONSTANT: GL_COLOR_ATTACHMENT14_EXT HEX: 8CEE -CONSTANT: GL_COLOR_ATTACHMENT15_EXT HEX: 8CEF -CONSTANT: GL_DEPTH_ATTACHMENT_EXT HEX: 8D00 -CONSTANT: GL_STENCIL_ATTACHMENT_EXT HEX: 8D20 -CONSTANT: GL_FRAMEBUFFER_EXT HEX: 8D40 -CONSTANT: GL_RENDERBUFFER_EXT HEX: 8D41 -CONSTANT: GL_RENDERBUFFER_WIDTH_EXT HEX: 8D42 -CONSTANT: GL_RENDERBUFFER_HEIGHT_EXT HEX: 8D43 -CONSTANT: GL_RENDERBUFFER_INTERNAL_FORMAT_EXT HEX: 8D44 -CONSTANT: GL_STENCIL_INDEX1_EXT HEX: 8D46 -CONSTANT: GL_STENCIL_INDEX4_EXT HEX: 8D47 -CONSTANT: GL_STENCIL_INDEX8_EXT HEX: 8D48 -CONSTANT: GL_STENCIL_INDEX16_EXT HEX: 8D49 -CONSTANT: GL_RENDERBUFFER_RED_SIZE_EXT HEX: 8D50 -CONSTANT: GL_RENDERBUFFER_GREEN_SIZE_EXT HEX: 8D51 -CONSTANT: GL_RENDERBUFFER_BLUE_SIZE_EXT HEX: 8D52 -CONSTANT: GL_RENDERBUFFER_ALPHA_SIZE_EXT HEX: 8D53 -CONSTANT: GL_RENDERBUFFER_DEPTH_SIZE_EXT HEX: 8D54 -CONSTANT: GL_RENDERBUFFER_STENCIL_SIZE_EXT HEX: 8D55 +CONSTANT: GL_VERTEX_ATTRIB_ARRAY_INTEGER HEX: 88FD +CONSTANT: GL_SAMPLER_CUBE_SHADOW HEX: 8DC5 +CONSTANT: GL_UNSIGNED_INT_VEC2 HEX: 8DC6 +CONSTANT: GL_UNSIGNED_INT_VEC3 HEX: 8DC7 +CONSTANT: GL_UNSIGNED_INT_VEC4 HEX: 8DC8 +CONSTANT: GL_INT_SAMPLER_1D HEX: 8DC9 +CONSTANT: GL_INT_SAMPLER_2D HEX: 8DCA +CONSTANT: GL_INT_SAMPLER_3D HEX: 8DCB +CONSTANT: GL_INT_SAMPLER_CUBE HEX: 8DCC +CONSTANT: GL_INT_SAMPLER_2D_RECT HEX: 8DCD +CONSTANT: GL_INT_SAMPLER_1D_ARRAY HEX: 8DCE +CONSTANT: GL_INT_SAMPLER_2D_ARRAY HEX: 8DCF +CONSTANT: GL_UNSIGNED_INT_SAMPLER_1D HEX: 8DD1 +CONSTANT: GL_UNSIGNED_INT_SAMPLER_2D HEX: 8DD2 +CONSTANT: GL_UNSIGNED_INT_SAMPLER_3D HEX: 8DD3 +CONSTANT: GL_UNSIGNED_INT_SAMPLER_CUBE HEX: 8DD4 +CONSTANT: GL_UNSIGNED_INT_SAMPLER_2D_RECT HEX: 8DD5 +CONSTANT: GL_UNSIGNED_INT_SAMPLER_1D_ARRAY HEX: 8DD6 +CONSTANT: GL_UNSIGNED_INT_SAMPLER_2D_ARRAY HEX: 8DD7 +CONSTANT: GL_MIN_PROGRAM_TEXEL_OFFSET HEX: 8904 +CONSTANT: GL_MAX_PROGRAM_TEXEL_OFFSET HEX: 8905 -GL-FUNCTION: void glBindFramebufferEXT { } ( GLenum target, GLuint framebuffer ) ; -GL-FUNCTION: void glBindRenderbufferEXT { } ( GLenum target, GLuint renderbuffer ) ; -GL-FUNCTION: GLenum glCheckFramebufferStatusEXT { } ( GLenum target ) ; -GL-FUNCTION: void glDeleteFramebuffersEXT { } ( GLsizei n, GLuint* framebuffers ) ; -GL-FUNCTION: void glDeleteRenderbuffersEXT { } ( GLsizei n, GLuint* renderbuffers ) ; -GL-FUNCTION: void glFramebufferRenderbufferEXT { } ( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) ; -GL-FUNCTION: void glFramebufferTexture1DEXT { } ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) ; -GL-FUNCTION: void glFramebufferTexture2DEXT { } ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) ; -GL-FUNCTION: void glFramebufferTexture3DEXT { } ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset ) ; -GL-FUNCTION: void glGenFramebuffersEXT { } ( GLsizei n, GLuint* framebuffers ) ; -GL-FUNCTION: void glGenRenderbuffersEXT { } ( GLsizei n, GLuint* renderbuffers ) ; -GL-FUNCTION: void glGenerateMipmapEXT { } ( GLenum target ) ; -GL-FUNCTION: void glGetFramebufferAttachmentParameterivEXT { } ( GLenum target, GLenum attachment, GLenum pname, GLint* params ) ; -GL-FUNCTION: void glGetRenderbufferParameterivEXT { } ( GLenum target, GLenum pname, GLint* params ) ; -GL-FUNCTION: GLboolean glIsFramebufferEXT { } ( GLuint framebuffer ) ; -GL-FUNCTION: GLboolean glIsRenderbufferEXT { } ( GLuint renderbuffer ) ; -GL-FUNCTION: void glRenderbufferStorageEXT { } ( GLenum target, GLenum internalformat, GLsizei width, GLsizei height ) ; +CONSTANT: GL_RGBA32F HEX: 8814 +CONSTANT: GL_RGB32F HEX: 8815 +CONSTANT: GL_RGBA16F HEX: 881A +CONSTANT: GL_RGB16F HEX: 881B +CONSTANT: GL_TEXTURE_RED_TYPE HEX: 8C10 +CONSTANT: GL_TEXTURE_GREEN_TYPE HEX: 8C11 +CONSTANT: GL_TEXTURE_BLUE_TYPE HEX: 8C12 +CONSTANT: GL_TEXTURE_ALPHA_TYPE HEX: 8C13 +CONSTANT: GL_TEXTURE_DEPTH_TYPE HEX: 8C16 +CONSTANT: GL_UNSIGNED_NORMALIZED HEX: 8C17 +CONSTANT: GL_QUERY_WAIT HEX: 8E13 +CONSTANT: GL_QUERY_NO_WAIT HEX: 8E14 +CONSTANT: GL_QUERY_BY_REGION_WAIT HEX: 8E15 +CONSTANT: GL_QUERY_BY_REGION_NO_WAIT HEX: 8E16 -! GL_EXT_framebuffer_blit - - -GL-FUNCTION: void glBlitFramebufferEXT { } ( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, - GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, - GLbitfield mask, GLenum filter ) ; - -CONSTANT: GL_READ_FRAMEBUFFER_EXT HEX: 8CA8 -CONSTANT: GL_DRAW_FRAMEBUFFER_EXT HEX: 8CA9 - -ALIAS: GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT -CONSTANT: GL_READ_FRAMEBUFFER_BINDING_EXT HEX: 8CAA - - -! GL_EXT_framebuffer_multisample - - -GL-FUNCTION: void glRenderbufferStorageMultisampleEXT { } ( - GLenum target, GLsizei samples, - GLenum internalformat, - GLsizei width, GLsizei height ) ; - -CONSTANT: GL_RENDERBUFFER_SAMPLES_EXT HEX: 8CAB -CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT HEX: 8D56 -CONSTANT: GL_MAX_SAMPLES_EXT HEX: 8D57 - - -! GL_ARB_half_float_pixel, GL_ARB_half_float_vertex - - -CONSTANT: GL_HALF_FLOAT_ARB HEX: 140B - - -! GL_ARB_texture_rg +CONSTANT: GL_HALF_FLOAT HEX: 140B +CONSTANT: GL_MAP_READ_BIT HEX: 0001 +CONSTANT: GL_MAP_WRITE_BIT HEX: 0002 +CONSTANT: GL_MAP_INVALIDATE_RANGE_BIT HEX: 0004 +CONSTANT: GL_MAP_INVALIDATE_BUFFER_BIT HEX: 0008 +CONSTANT: GL_MAP_FLUSH_EXPLICIT_BIT HEX: 0010 +CONSTANT: GL_MAP_UNSYNCHRONIZED_BIT HEX: 0020 CONSTANT: GL_R8 HEX: 8229 CONSTANT: GL_R16 HEX: 822A @@ -1831,144 +1771,375 @@ CONSTANT: GL_COMPRESSED_RED HEX: 8225 CONSTANT: GL_COMPRESSED_RG HEX: 8226 CONSTANT: GL_RG_INTEGER HEX: 8228 +CONSTANT: GL_VERTEX_ARRAY_BINDING HEX: 85B5 -! GL_ARB_texture_float +CONSTANT: GL_CLAMP_READ_COLOR HEX: 891C +CONSTANT: GL_FIXED_ONLY HEX: 891D + +CONSTANT: GL_DEPTH_COMPONENT32F HEX: 8CAC +CONSTANT: GL_DEPTH32F_STENCIL8 HEX: 8CAD + +CONSTANT: GL_RGB9_E5 HEX: 8C3D +CONSTANT: GL_UNSIGNED_INT_5_9_9_9_REV HEX: 8C3E +CONSTANT: GL_TEXTURE_SHARED_SIZE HEX: 8C3F + +CONSTANT: GL_R11F_G11F_B10F HEX: 8C3A +CONSTANT: GL_UNSIGNED_INT_10F_11F_11F_REV HEX: 8C3B + +CONSTANT: GL_INVALID_FRAMEBUFFER_OPERATION HEX: 0506 +CONSTANT: GL_MAX_RENDERBUFFER_SIZE HEX: 84E8 +CONSTANT: GL_FRAMEBUFFER_BINDING HEX: 8CA6 +CONSTANT: GL_RENDERBUFFER_BINDING HEX: 8CA7 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE HEX: 8CD0 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME HEX: 8CD1 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL HEX: 8CD2 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE HEX: 8CD3 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING HEX: 8210 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE HEX: 8211 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE HEX: 8212 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE HEX: 8213 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE HEX: 8214 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE HEX: 8215 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE HEX: 8216 +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE HEX: 8217 +CONSTANT: GL_FRAMEBUFFER_DEFAULT HEX: 8218 +CONSTANT: GL_FRAMEBUFFER_UNDEFINED HEX: 8219 +CONSTANT: GL_DEPTH_STENCIL_ATTACHMENT HEX: 821A +CONSTANT: GL_FRAMEBUFFER_COMPLETE HEX: 8CD5 +CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT HEX: 8CD6 +CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT HEX: 8CD7 +CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER HEX: 8CDB +CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER HEX: 8CDC +CONSTANT: GL_FRAMEBUFFER_UNSUPPORTED HEX: 8CDD +CONSTANT: GL_MAX_COLOR_ATTACHMENTS HEX: 8CDF +CONSTANT: GL_COLOR_ATTACHMENT0 HEX: 8CE0 +CONSTANT: GL_COLOR_ATTACHMENT1 HEX: 8CE1 +CONSTANT: GL_COLOR_ATTACHMENT2 HEX: 8CE2 +CONSTANT: GL_COLOR_ATTACHMENT3 HEX: 8CE3 +CONSTANT: GL_COLOR_ATTACHMENT4 HEX: 8CE4 +CONSTANT: GL_COLOR_ATTACHMENT5 HEX: 8CE5 +CONSTANT: GL_COLOR_ATTACHMENT6 HEX: 8CE6 +CONSTANT: GL_COLOR_ATTACHMENT7 HEX: 8CE7 +CONSTANT: GL_COLOR_ATTACHMENT8 HEX: 8CE8 +CONSTANT: GL_COLOR_ATTACHMENT9 HEX: 8CE9 +CONSTANT: GL_COLOR_ATTACHMENT10 HEX: 8CEA +CONSTANT: GL_COLOR_ATTACHMENT11 HEX: 8CEB +CONSTANT: GL_COLOR_ATTACHMENT12 HEX: 8CEC +CONSTANT: GL_COLOR_ATTACHMENT13 HEX: 8CED +CONSTANT: GL_COLOR_ATTACHMENT14 HEX: 8CEE +CONSTANT: GL_COLOR_ATTACHMENT15 HEX: 8CEF +CONSTANT: GL_DEPTH_ATTACHMENT HEX: 8D00 +CONSTANT: GL_STENCIL_ATTACHMENT HEX: 8D20 +CONSTANT: GL_FRAMEBUFFER HEX: 8D40 +CONSTANT: GL_RENDERBUFFER HEX: 8D41 +CONSTANT: GL_RENDERBUFFER_WIDTH HEX: 8D42 +CONSTANT: GL_RENDERBUFFER_HEIGHT HEX: 8D43 +CONSTANT: GL_RENDERBUFFER_INTERNAL_FORMAT HEX: 8D44 +CONSTANT: GL_STENCIL_INDEX1 HEX: 8D46 +CONSTANT: GL_STENCIL_INDEX4 HEX: 8D47 +CONSTANT: GL_STENCIL_INDEX8 HEX: 8D48 +CONSTANT: GL_STENCIL_INDEX16 HEX: 8D49 +CONSTANT: GL_RENDERBUFFER_RED_SIZE HEX: 8D50 +CONSTANT: GL_RENDERBUFFER_GREEN_SIZE HEX: 8D51 +CONSTANT: GL_RENDERBUFFER_BLUE_SIZE HEX: 8D52 +CONSTANT: GL_RENDERBUFFER_ALPHA_SIZE HEX: 8D53 +CONSTANT: GL_RENDERBUFFER_DEPTH_SIZE HEX: 8D54 +CONSTANT: GL_RENDERBUFFER_STENCIL_SIZE HEX: 8D55 + +CONSTANT: GL_READ_FRAMEBUFFER HEX: 8CA8 +CONSTANT: GL_DRAW_FRAMEBUFFER HEX: 8CA9 + +ALIAS: GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING +CONSTANT: GL_READ_FRAMEBUFFER_BINDING HEX: 8CAA + +CONSTANT: GL_RENDERBUFFER_SAMPLES HEX: 8CAB +CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE HEX: 8D56 +CONSTANT: GL_MAX_SAMPLES HEX: 8D57 + +CONSTANT: GL_DEPTH_STENCIL HEX: 84F9 +CONSTANT: GL_UNSIGNED_INT_24_8 HEX: 84FA +CONSTANT: GL_DEPTH24_STENCIL8 HEX: 88F0 +CONSTANT: GL_TEXTURE_STENCIL_SIZE HEX: 88F1 + +CONSTANT: GL_RGBA32UI HEX: 8D70 +CONSTANT: GL_RGB32UI HEX: 8D71 + +CONSTANT: GL_RGBA16UI HEX: 8D76 +CONSTANT: GL_RGB16UI HEX: 8D77 + +CONSTANT: GL_RGBA8UI HEX: 8D7C +CONSTANT: GL_RGB8UI HEX: 8D7D + +CONSTANT: GL_RGBA32I HEX: 8D82 +CONSTANT: GL_RGB32I HEX: 8D83 + +CONSTANT: GL_RGBA16I HEX: 8D88 +CONSTANT: GL_RGB16I HEX: 8D89 + +CONSTANT: GL_RGBA8I HEX: 8D8E +CONSTANT: GL_RGB8I HEX: 8D8F + +CONSTANT: GL_RED_INTEGER HEX: 8D94 +CONSTANT: GL_GREEN_INTEGER HEX: 8D95 +CONSTANT: GL_BLUE_INTEGER HEX: 8D96 +CONSTANT: GL_RGB_INTEGER HEX: 8D98 +CONSTANT: GL_RGBA_INTEGER HEX: 8D99 +CONSTANT: GL_BGR_INTEGER HEX: 8D9A +CONSTANT: GL_BGRA_INTEGER HEX: 8D9B + +CONSTANT: GL_FLOAT_32_UNSIGNED_INT_24_8_REV HEX: 8DAD + +CONSTANT: GL_TEXTURE_1D_ARRAY HEX: 8C18 +CONSTANT: GL_TEXTURE_2D_ARRAY HEX: 8C1A + +CONSTANT: GL_PROXY_TEXTURE_2D_ARRAY HEX: 8C1B + +CONSTANT: GL_PROXY_TEXTURE_1D_ARRAY HEX: 8C19 + +CONSTANT: GL_TEXTURE_BINDING_1D_ARRAY HEX: 8C1C +CONSTANT: GL_TEXTURE_BINDING_2D_ARRAY HEX: 8C1D +CONSTANT: GL_MAX_ARRAY_TEXTURE_LAYERS HEX: 88FF + +CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER HEX: 8CD4 + +CONSTANT: GL_SAMPLER_1D_ARRAY HEX: 8DC0 +CONSTANT: GL_SAMPLER_2D_ARRAY HEX: 8DC1 +CONSTANT: GL_SAMPLER_1D_ARRAY_SHADOW HEX: 8DC3 +CONSTANT: GL_SAMPLER_2D_ARRAY_SHADOW HEX: 8DC4 + +CONSTANT: GL_COMPRESSED_RED_RGTC1 HEX: 8DBB +CONSTANT: GL_COMPRESSED_SIGNED_RED_RGTC1 HEX: 8DBC +CONSTANT: GL_COMPRESSED_RG_RGTC2 HEX: 8DBD +CONSTANT: GL_COMPRESSED_SIGNED_RG_RGTC2 HEX: 8DBE + +CONSTANT: GL_TRANSFORM_FEEDBACK_BUFFER HEX: 8C8E +CONSTANT: GL_TRANSFORM_FEEDBACK_BUFFER_START HEX: 8C84 +CONSTANT: GL_TRANSFORM_FEEDBACK_BUFFER_SIZE HEX: 8C85 +CONSTANT: GL_TRANSFORM_FEEDBACK_BUFFER_BINDING HEX: 8C8F +CONSTANT: GL_INTERLEAVED_ATTRIBS HEX: 8C8C +CONSTANT: GL_SEPARATE_ATTRIBS HEX: 8C8D +CONSTANT: GL_PRIMITIVES_GENERATED HEX: 8C87 +CONSTANT: GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN HEX: 8C88 +CONSTANT: GL_RASTERIZER_DISCARD HEX: 8C89 +CONSTANT: GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS HEX: 8C8A +CONSTANT: GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS HEX: 8C8B +CONSTANT: GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS HEX: 8C80 +CONSTANT: GL_TRANSFORM_FEEDBACK_VARYINGS HEX: 8C83 +CONSTANT: GL_TRANSFORM_FEEDBACK_BUFFER_MODE HEX: 8C7F +CONSTANT: GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH HEX: 8C76 + +CONSTANT: GL_FRAMEBUFFER_SRGB HEX: 8DB9 + +CONSTANT: GL_MAJOR_VERSION HEX: 821B +CONSTANT: GL_MINOR_VERSION HEX: 821C +CONSTANT: GL_NUM_EXTENSIONS HEX: 821D +CONSTANT: GL_CONTEXT_FLAGS HEX: 821E +CONSTANT: GL_INDEX HEX: 8222 +CONSTANT: GL_DEPTH_BUFFER HEX: 8223 +CONSTANT: GL_STENCIL_BUFFER HEX: 8224 +CONSTANT: GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT HEX: 0001 + +ALIAS: GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE +ALIAS: GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS +ALIAS: GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES +ALIAS: GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 +ALIAS: GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 +ALIAS: GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 +ALIAS: GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 +ALIAS: GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 +ALIAS: GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 + +GL-FUNCTION: void glVertexAttribIPointer { glVertexAttribIPointerEXT } ( GLuint index, GLint size, GLenum type, GLsizei stride, void* pointer ) ; + +GL-FUNCTION: void glGetVertexAttribIiv { glGetVertexAttribIivEXT } ( GLuint index, GLenum pname, GLint* params ) ; +GL-FUNCTION: void glGetVertexAttribIuiv { glGetVertexAttribIuivEXT } ( GLuint index, GLenum pname, GLuint* params ) ; + +GL-FUNCTION: void glUniform1ui { glUniform1uiEXT } ( GLint location, GLuint v0 ) ; +GL-FUNCTION: void glUniform2ui { glUniform2uiEXT } ( GLint location, GLuint v0, GLuint v1 ) ; +GL-FUNCTION: void glUniform3ui { glUniform3uiEXT } ( GLint location, GLuint v0, GLuint v1, GLuint v2 ) ; +GL-FUNCTION: void glUniform4ui { glUniform4uiEXT } ( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ) ; + +GL-FUNCTION: void glUniform1uiv { glUniform1uivEXT } ( GLint location, GLsizei count, GLuint* value ) ; +GL-FUNCTION: void glUniform2uiv { glUniform2uivEXT } ( GLint location, GLsizei count, GLuint* value ) ; +GL-FUNCTION: void glUniform3uiv { glUniform3uivEXT } ( GLint location, GLsizei count, GLuint* value ) ; +GL-FUNCTION: void glUniform4uiv { glUniform4uivEXT } ( GLint location, GLsizei count, GLuint* value ) ; + +GL-FUNCTION: void glGetUniformuiv { glGetUniformuivEXT } ( GLuint program, GLint location, GLuint* params ) ; + +GL-FUNCTION: void glBindFragDataLocation { glBindFragDataLocationEXT } ( GLuint program, GLuint colorNumber, GLchar* name ) ; +GL-FUNCTION: GLint glGetFragDataLocation { glGetFragDataLocationEXT } ( GLuint program, GLchar* name ) ; + +GL-FUNCTION: void glBeginConditionalRender { glBeginConditionalRenderNV } ( GLuint id, GLenum mode ) ; +GL-FUNCTION: void glEndConditionalRender { glEndConditionalRenderNV } ( ) ; + +GL-FUNCTION: void glBindVertexArray { glBindVertexArrayAPPLE } ( GLuint array ) ; +GL-FUNCTION: void glDeleteVertexArrays { glDeleteVertexArraysAPPLE } ( GLsizei n, GLuint* arrays ) ; +GL-FUNCTION: void glGenVertexArrays { glGenVertexArraysAPPLE } ( GLsizei n, GLuint* arrays ) ; +GL-FUNCTION: GLboolean glIsVertexArray { glIsVertexArrayAPPLE } ( GLuint array ) ; + +GL-FUNCTION: void glClampColor { glClampColorARB } ( GLenum target, GLenum clamp ) ; + +GL-FUNCTION: void glBindFramebuffer { glBindFramebufferEXT } ( GLenum target, GLuint framebuffer ) ; +GL-FUNCTION: void glBindRenderbuffer { glBindRenderbufferEXT } ( GLenum target, GLuint renderbuffer ) ; +GL-FUNCTION: GLenum glCheckFramebufferStatus { glCheckFramebufferStatusEXT } ( GLenum target ) ; +GL-FUNCTION: void glDeleteFramebuffers { glDeleteFramebuffersEXT } ( GLsizei n, GLuint* framebuffers ) ; +GL-FUNCTION: void glDeleteRenderbuffers { glDeleteRenderbuffersEXT } ( GLsizei n, GLuint* renderbuffers ) ; +GL-FUNCTION: void glFramebufferRenderbuffer { glFramebufferRenderbufferEXT } ( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) ; +GL-FUNCTION: void glFramebufferTexture1D { glFramebufferTexture1DEXT } ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) ; +GL-FUNCTION: void glFramebufferTexture2D { glFramebufferTexture2DEXT } ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) ; +GL-FUNCTION: void glFramebufferTexture3D { glFramebufferTexture3DEXT } ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset ) ; +GL-FUNCTION: void glFramebufferTextureLayer { glFramebufferTextureLayerEXT } + ( GLenum target, GLenum attachment, + GLuint texture, GLint level, GLint layer ) ; +GL-FUNCTION: void glGenFramebuffers { glGenFramebuffersEXT } ( GLsizei n, GLuint* framebuffers ) ; +GL-FUNCTION: void glGenRenderbuffers { glGenRenderbuffersEXT } ( GLsizei n, GLuint* renderbuffers ) ; +GL-FUNCTION: void glGenerateMipmap { glGenerateMipmapEXT } ( GLenum target ) ; +GL-FUNCTION: void glGetFramebufferAttachmentParameteriv { glGetFramebufferAttachmentParameterivEXT } ( GLenum target, GLenum attachment, GLenum pname, GLint* params ) ; +GL-FUNCTION: void glGetRenderbufferParameteriv { glGetRenderbufferParameterivEXT } ( GLenum target, GLenum pname, GLint* params ) ; +GL-FUNCTION: GLboolean glIsFramebuffer { glIsFramebufferEXT } ( GLuint framebuffer ) ; +GL-FUNCTION: GLboolean glIsRenderbuffer { glIsRenderbufferEXT } ( GLuint renderbuffer ) ; +GL-FUNCTION: void glRenderbufferStorage { glRenderbufferStorageEXT } ( GLenum target, GLenum internalformat, GLsizei width, GLsizei height ) ; + +GL-FUNCTION: void glBlitFramebuffer { glBlitFramebufferEXT } + ( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, + GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, + GLbitfield mask, GLenum filter ) ; + +GL-FUNCTION: void glRenderbufferStorageMultisample { glRenderbufferStorageMultisampleEXT } ( + GLenum target, GLsizei samples, + GLenum internalformat, + GLsizei width, GLsizei height ) ; + +GL-FUNCTION: void glTexParameterIiv { glTexParameterIivEXT } ( GLenum target, GLenum pname, GLint* params ) ; +GL-FUNCTION: void glTexParameterIuiv { glTexParameterIuivEXT } ( GLenum target, GLenum pname, GLuint* params ) ; +GL-FUNCTION: void glGetTexParameterIiv { glGetTexParameterIivEXT } ( GLenum target, GLenum pname, GLint* params ) ; +GL-FUNCTION: void glGetTexParameterIuiv { glGetTexParameterIuivEXT } ( GLenum target, GLenum pname, GLuint* params ) ; + +GL-FUNCTION: void glColorMaski { glColorMaskIndexedEXT } + ( GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) ; + +GL-FUNCTION: void glGetBooleani_v { glGetBooleanIndexedvEXT } ( GLenum value, GLuint index, GLboolean* data ) ; + +GL-FUNCTION: void glGetIntegeri_v { glGetIntegerIndexedvEXT } ( GLenum value, GLuint index, GLint* data ) ; + +GL-FUNCTION: void glEnablei { glEnableIndexedEXT } ( GLenum target, GLuint index ) ; + +GL-FUNCTION: void glDisablei { glDisableIndexedEXT } ( GLenum target, GLuint index ) ; + +GL-FUNCTION: GLboolean glIsEnabledi { glIsEnabledIndexedEXT } ( GLenum target, GLuint index ) ; + +GL-FUNCTION: void glBindBufferRange { glBindBufferRangeEXT } ( GLenum target, GLuint index, GLuint buffer, + GLintptr offset, GLsizeiptr size ) ; +GL-FUNCTION: void glBindBufferBase { glBindBufferBaseEXT } ( GLenum target, GLuint index, GLuint buffer ) ; + +GL-FUNCTION: void glBeginTransformFeedback { glBeginTransformFeedbackEXT } ( GLenum primitiveMode ) ; +GL-FUNCTION: void glEndTransformFeedback { glEndTransformFeedbackEXT } ( ) ; + +GL-FUNCTION: void glTransformFeedbackVaryings { glTransformFeedbackVaryingsEXT } ( GLuint program, GLsizei count, + GLchar** varyings, GLenum bufferMode ) ; +GL-FUNCTION: void glGetTransformFeedbackVarying { glGetTransformFeedbackVaryingEXT } ( GLuint program, GLuint index, + GLsizei bufSize, GLsizei* length, + GLsizei* size, GLenum* type, GLchar* name ) ; + +GL-FUNCTION: void glClearBufferiv { } ( GLenum buffer, GLint drawbuffer, GLint* value ) ; +GL-FUNCTION: void glClearBufferuiv { } ( GLenum buffer, GLint drawbuffer, GLuint* value ) ; +GL-FUNCTION: void glClearBufferfv { } ( GLenum buffer, GLint drawbuffer, GLfloat* value ) ; +GL-FUNCTION: void glClearBufferfi { } ( GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil ) ; + +GL-FUNCTION: GLubyte* glGetStringi { } ( GLenum value, GLuint index ) ; + +GL-FUNCTION: GLvoid* glMapBufferRange { } ( GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access ) ; +GL-FUNCTION: void glFlushMappedBufferRange { glFlushMappedBufferRangeAPPLE } ( GLenum target, GLintptr offset, GLsizeiptr size ) ; -CONSTANT: GL_RGBA32F_ARB HEX: 8814 -CONSTANT: GL_RGB32F_ARB HEX: 8815 -CONSTANT: GL_ALPHA32F_ARB HEX: 8816 -CONSTANT: GL_INTENSITY32F_ARB HEX: 8817 -CONSTANT: GL_LUMINANCE32F_ARB HEX: 8818 -CONSTANT: GL_LUMINANCE_ALPHA32F_ARB HEX: 8819 -CONSTANT: GL_RGBA16F_ARB HEX: 881A -CONSTANT: GL_RGB16F_ARB HEX: 881B -CONSTANT: GL_ALPHA16F_ARB HEX: 881C -CONSTANT: GL_INTENSITY16F_ARB HEX: 881D -CONSTANT: GL_LUMINANCE16F_ARB HEX: 881E -CONSTANT: GL_LUMINANCE_ALPHA16F_ARB HEX: 881F -CONSTANT: GL_TEXTURE_RED_TYPE_ARB HEX: 8C10 -CONSTANT: GL_TEXTURE_GREEN_TYPE_ARB HEX: 8C11 -CONSTANT: GL_TEXTURE_BLUE_TYPE_ARB HEX: 8C12 -CONSTANT: GL_TEXTURE_ALPHA_TYPE_ARB HEX: 8C13 -CONSTANT: GL_TEXTURE_LUMINANCE_TYPE_ARB HEX: 8C14 -CONSTANT: GL_TEXTURE_INTENSITY_TYPE_ARB HEX: 8C15 -CONSTANT: GL_TEXTURE_DEPTH_TYPE_ARB HEX: 8C16 -CONSTANT: GL_UNSIGNED_NORMALIZED_ARB HEX: 8C17 +! OpenGL 3.1 +CONSTANT: GL_RED_SNORM HEX: 8F90 +CONSTANT: GL_RG_SNORM HEX: 8F91 +CONSTANT: GL_RGB_SNORM HEX: 8F92 +CONSTANT: GL_RGBA_SNORM HEX: 8F93 +CONSTANT: GL_R8_SNORM HEX: 8F94 +CONSTANT: GL_RG8_SNORM HEX: 8F95 +CONSTANT: GL_RGB8_SNORM HEX: 8F96 +CONSTANT: GL_RGBA8_SNORM HEX: 8F97 +CONSTANT: GL_R16_SNORM HEX: 8F98 +CONSTANT: GL_RG16_SNORM HEX: 8F99 +CONSTANT: GL_RGB16_SNORM HEX: 8F9A +CONSTANT: GL_RGBA16_SNORM HEX: 8F9B +CONSTANT: GL_SIGNED_NORMALIZED HEX: 8F9C -! GL_EXT_gpu_shader4 +CONSTANT: GL_PRIMITIVE_RESTART HEX: 8F9D +CONSTANT: GL_PRIMITIVE_RESTART_INDEX HEX: 8F9E +CONSTANT: GL_COPY_READ_BUFFER HEX: 8F36 +CONSTANT: GL_COPY_WRITE_BUFFER HEX: 8F37 -GL-FUNCTION: void glVertexAttribI1iEXT { } ( GLuint index, GLint x ) ; -GL-FUNCTION: void glVertexAttribI2iEXT { } ( GLuint index, GLint x, GLint y ) ; -GL-FUNCTION: void glVertexAttribI3iEXT { } ( GLuint index, GLint x, GLint y, GLint z ) ; -GL-FUNCTION: void glVertexAttribI4iEXT { } ( GLuint index, GLint x, GLint y, GLint z, GLint w ) ; +CONSTANT: GL_UNIFORM_BUFFER HEX: 8A11 +CONSTANT: GL_UNIFORM_BUFFER_BINDING HEX: 8A28 +CONSTANT: GL_UNIFORM_BUFFER_START HEX: 8A29 +CONSTANT: GL_UNIFORM_BUFFER_SIZE HEX: 8A2A +CONSTANT: GL_MAX_VERTEX_UNIFORM_BLOCKS HEX: 8A2B +CONSTANT: GL_MAX_GEOMETRY_UNIFORM_BLOCKS HEX: 8A2C +CONSTANT: GL_MAX_FRAGMENT_UNIFORM_BLOCKS HEX: 8A2D +CONSTANT: GL_MAX_COMBINED_UNIFORM_BLOCKS HEX: 8A2E +CONSTANT: GL_MAX_UNIFORM_BUFFER_BINDINGS HEX: 8A2F +CONSTANT: GL_MAX_UNIFORM_BLOCK_SIZE HEX: 8A30 +CONSTANT: GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS HEX: 8A31 +CONSTANT: GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS HEX: 8A32 +CONSTANT: GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS HEX: 8A33 +CONSTANT: GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT HEX: 8A34 +CONSTANT: GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH HEX: 8A35 +CONSTANT: GL_ACTIVE_UNIFORM_BLOCKS HEX: 8A36 +CONSTANT: GL_UNIFORM_TYPE HEX: 8A37 +CONSTANT: GL_UNIFORM_SIZE HEX: 8A38 +CONSTANT: GL_UNIFORM_NAME_LENGTH HEX: 8A39 +CONSTANT: GL_UNIFORM_BLOCK_INDEX HEX: 8A3A +CONSTANT: GL_UNIFORM_OFFSET HEX: 8A3B +CONSTANT: GL_UNIFORM_ARRAY_STRIDE HEX: 8A3C +CONSTANT: GL_UNIFORM_MATRIX_STRIDE HEX: 8A3D +CONSTANT: GL_UNIFORM_IS_ROW_MAJOR HEX: 8A3E +CONSTANT: GL_UNIFORM_BLOCK_BINDING HEX: 8A3F +CONSTANT: GL_UNIFORM_BLOCK_DATA_SIZE HEX: 8A40 +CONSTANT: GL_UNIFORM_BLOCK_NAME_LENGTH HEX: 8A41 +CONSTANT: GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS HEX: 8A42 +CONSTANT: GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES HEX: 8A43 +CONSTANT: GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER HEX: 8A44 +CONSTANT: GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER HEX: 8A45 +CONSTANT: GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER HEX: 8A46 +CONSTANT: GL_INVALID_INDEX HEX: FFFFFFFF -GL-FUNCTION: void glVertexAttribI1uiEXT { } ( GLuint index, GLuint x ) ; -GL-FUNCTION: void glVertexAttribI2uiEXT { } ( GLuint index, GLuint x, GLuint y ) ; -GL-FUNCTION: void glVertexAttribI3uiEXT { } ( GLuint index, GLuint x, GLuint y, GLuint z ) ; -GL-FUNCTION: void glVertexAttribI4uiEXT { } ( GLuint index, GLuint x, GLuint y, GLuint z, GLuint w ) ; +CONSTANT: GL_TEXTURE_RECTANGLE HEX: 84F5 +CONSTANT: GL_TEXTURE_BINDING_RECTANGLE HEX: 84F6 +CONSTANT: GL_PROXY_TEXTURE_RECTANGLE HEX: 84F7 +CONSTANT: GL_MAX_RECTANGLE_TEXTURE_SIZE HEX: 84F8 +CONSTANT: GL_SAMPLER_2D_RECT HEX: 8B63 +CONSTANT: GL_SAMPLER_2D_RECT_SHADOW HEX: 8B64 -GL-FUNCTION: void glVertexAttribI1ivEXT { } ( GLuint index, GLint* v ) ; -GL-FUNCTION: void glVertexAttribI2ivEXT { } ( GLuint index, GLint* v ) ; -GL-FUNCTION: void glVertexAttribI3ivEXT { } ( GLuint index, GLint* v ) ; -GL-FUNCTION: void glVertexAttribI4ivEXT { } ( GLuint index, GLint* v ) ; +CONSTANT: GL_SAMPLER_BUFFER HEX: 8DC2 +CONSTANT: GL_INT_SAMPLER_BUFFER HEX: 8DD0 +CONSTANT: GL_UNSIGNED_INT_SAMPLER_BUFFER HEX: 8DD8 -GL-FUNCTION: void glVertexAttribI1uivEXT { } ( GLuint index, GLuint* v ) ; -GL-FUNCTION: void glVertexAttribI2uivEXT { } ( GLuint index, GLuint* v ) ; -GL-FUNCTION: void glVertexAttribI3uivEXT { } ( GLuint index, GLuint* v ) ; -GL-FUNCTION: void glVertexAttribI4uivEXT { } ( GLuint index, GLuint* v ) ; +CONSTANT: GL_TEXTURE_BUFFER HEX: 8C2A -GL-FUNCTION: void glVertexAttribI4bvEXT { } ( GLuint index, GLbyte* v ) ; -GL-FUNCTION: void glVertexAttribI4svEXT { } ( GLuint index, GLshort* v ) ; -GL-FUNCTION: void glVertexAttribI4ubvEXT { } ( GLuint index, GLubyte* v ) ; -GL-FUNCTION: void glVertexAttribI4usvEXT { } ( GLuint index, GLushort* v ) ; +CONSTANT: GL_MAX_TEXTURE_BUFFER_SIZE HEX: 8C2B +CONSTANT: GL_TEXTURE_BINDING_BUFFER HEX: 8C2C +CONSTANT: GL_TEXTURE_BUFFER_DATA_STORE_BINDING HEX: 8C2D +CONSTANT: GL_TEXTURE_BUFFER_FORMAT HEX: 8C2E -GL-FUNCTION: void glVertexAttribIPointerEXT { } ( GLuint index, GLint size, GLenum type, GLsizei stride, void* pointer ) ; +GL-FUNCTION: void glDrawArraysInstanced { glDrawArraysInstancedARB } ( GLenum mode, GLint first, GLsizei count, GLsizei primcount ) ; +GL-FUNCTION: void glDrawElementsInstanced { glDrawElementsInstancedARB } ( GLenum mode, GLsizei count, GLenum type, GLvoid* indices, GLsizei primcount ) ; +GL-FUNCTION: void glTexBuffer { glTexBufferEXT } ( GLenum target, GLenum internalformat, GLuint buffer ) ; +GL-FUNCTION: void glPrimitiveRestartIndex { } ( GLuint index ) ; -GL-FUNCTION: void glGetVertexAttribIivEXT { } ( GLuint index, GLenum pname, GLint* params ) ; -GL-FUNCTION: void glGetVertexAttribIuivEXT { } ( GLuint index, GLenum pname, GLuint* params ) ; +GL-FUNCTION: void glGetUniformIndices { } ( GLuint program, GLsizei uniformCount, GLchar** uniformNames, GLuint* uniformIndices ) ; +GL-FUNCTION: void glGetActiveUniformsiv { } ( GLuint program, GLsizei uniformCount, GLuint* uniformIndices, GLenum pname, GLint* params ) ; +GL-FUNCTION: void glGetActiveUniformName { } ( GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName ) ; +GL-FUNCTION: GLuint glGetUniformBlockIndex { } ( GLuint program, GLchar* uniformBlockName ) ; +GL-FUNCTION: void glGetActiveUniformBlockiv { } ( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params ) ; +GL-FUNCTION: void glGetActiveUniformBlockName { } ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName ) ; +GL-FUNCTION: void glUniformBlockBinding { } ( GLuint buffer, GLuint uniformBlockIndex, GLuint uniformBlockBinding ) ; -GL-FUNCTION: void glUniform1uiEXT { } ( GLint location, GLuint v0 ) ; -GL-FUNCTION: void glUniform2uiEXT { } ( GLint location, GLuint v0, GLuint v1 ) ; -GL-FUNCTION: void glUniform3uiEXT { } ( GLint location, GLuint v0, GLuint v1, GLuint v2 ) ; -GL-FUNCTION: void glUniform4uiEXT { } ( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ) ; - -GL-FUNCTION: void glUniform1uivEXT { } ( GLint location, GLsizei count, GLuint* value ) ; -GL-FUNCTION: void glUniform2uivEXT { } ( GLint location, GLsizei count, GLuint* value ) ; -GL-FUNCTION: void glUniform3uivEXT { } ( GLint location, GLsizei count, GLuint* value ) ; -GL-FUNCTION: void glUniform4uivEXT { } ( GLint location, GLsizei count, GLuint* value ) ; - -GL-FUNCTION: void glGetUniformuivEXT { } ( GLuint program, GLint location, GLuint* params ) ; - -GL-FUNCTION: void glBindFragDataLocationEXT { } ( GLuint program, GLuint colorNumber, GLchar* name ) ; -GL-FUNCTION: GLint glGetFragDataLocationEXT { } ( GLuint program, GLchar* name ) ; - -CONSTANT: GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT HEX: 88FD -CONSTANT: GL_SAMPLER_1D_ARRAY_EXT HEX: 8DC0 -CONSTANT: GL_SAMPLER_2D_ARRAY_EXT HEX: 8DC1 -CONSTANT: GL_SAMPLER_BUFFER_EXT HEX: 8DC2 -CONSTANT: GL_SAMPLER_1D_ARRAY_SHADOW_EXT HEX: 8DC3 -CONSTANT: GL_SAMPLER_2D_ARRAY_SHADOW_EXT HEX: 8DC4 -CONSTANT: GL_SAMPLER_CUBE_SHADOW_EXT HEX: 8DC5 -CONSTANT: GL_UNSIGNED_INT_VEC2_EXT HEX: 8DC6 -CONSTANT: GL_UNSIGNED_INT_VEC3_EXT HEX: 8DC7 -CONSTANT: GL_UNSIGNED_INT_VEC4_EXT HEX: 8DC8 -CONSTANT: GL_INT_SAMPLER_1D_EXT HEX: 8DC9 -CONSTANT: GL_INT_SAMPLER_2D_EXT HEX: 8DCA -CONSTANT: GL_INT_SAMPLER_3D_EXT HEX: 8DCB -CONSTANT: GL_INT_SAMPLER_CUBE_EXT HEX: 8DCC -CONSTANT: GL_INT_SAMPLER_2D_RECT_EXT HEX: 8DCD -CONSTANT: GL_INT_SAMPLER_1D_ARRAY_EXT HEX: 8DCE -CONSTANT: GL_INT_SAMPLER_2D_ARRAY_EXT HEX: 8DCF -CONSTANT: GL_INT_SAMPLER_BUFFER_EXT HEX: 8DD0 -CONSTANT: GL_UNSIGNED_INT_SAMPLER_1D_EXT HEX: 8DD1 -CONSTANT: GL_UNSIGNED_INT_SAMPLER_2D_EXT HEX: 8DD2 -CONSTANT: GL_UNSIGNED_INT_SAMPLER_3D_EXT HEX: 8DD3 -CONSTANT: GL_UNSIGNED_INT_SAMPLER_CUBE_EXT HEX: 8DD4 -CONSTANT: GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT HEX: 8DD5 -CONSTANT: GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT HEX: 8DD6 -CONSTANT: GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT HEX: 8DD7 -CONSTANT: GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT HEX: 8DD8 -CONSTANT: GL_MIN_PROGRAM_TEXEL_OFFSET_EXT HEX: 8904 -CONSTANT: GL_MAX_PROGRAM_TEXEL_OFFSET_EXT HEX: 8905 - - -! GL_ARB_texture_rectangle - - -CONSTANT: GL_TEXTURE_RECTANGLE_ARB HEX: 84F5 -CONSTANT: GL_TEXTURE_BINDING_RECTANGLE_ARB HEX: 84F6 -CONSTANT: GL_PROXY_TEXTURE_RECTANGLE_ARB HEX: 84F7 -CONSTANT: GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB HEX: 84F8 -CONSTANT: GL_SAMPLER_2D_RECT_ARB HEX: 8B63 -CONSTANT: GL_SAMPLER_2D_RECT_SHADOW_ARB HEX: 8B64 - - -! GL_EXT_packed_depth_stencil - - -CONSTANT: GL_DEPTH_STENCIL_EXT HEX: 84F9 -CONSTANT: GL_UNSIGNED_INT_24_8_EXT HEX: 84FA -CONSTANT: GL_DEPTH24_STENCIL8_EXT HEX: 88F0 -CONSTANT: GL_TEXTURE_STENCIL_SIZE_EXT HEX: 88F1 - - -! GL_EXT_texture_shared_exponent - - -CONSTANT: GL_RGB9_E5_EXT HEX: 8C3D -CONSTANT: GL_UNSIGNED_INT_5_9_9_9_REV_EXT HEX: 8C3E -CONSTANT: GL_TEXTURE_SHARED_SIZE_EXT HEX: 8C3F - - -! GL_EXT_packed_float - - -CONSTANT: GL_R11F_G11F_B10F_EXT HEX: 8C3A -CONSTANT: GL_UNSIGNED_INT_10F_11F_11F_REV_EXT HEX: 8C3B -CONSTANT: GL_RGBA_SIGNED_COMPONENTS_EXT HEX: 8C3C +GL-FUNCTION: void glCopyBufferSubData { glCopyBufferSubDataEXT } ( GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size ) ; ! GL_EXT_geometry_shader4 @@ -1977,10 +2148,6 @@ CONSTANT: GL_RGBA_SIGNED_COMPONENTS_EXT HEX: 8C3C GL-FUNCTION: void glProgramParameteriEXT { } ( GLuint program, GLenum pname, GLint value ) ; GL-FUNCTION: void glFramebufferTextureEXT { } ( GLenum target, GLenum attachment, GLuint texture, GLint level ) ; -GL-FUNCTION: void glFramebufferTextureLayerEXT { } ( GLenum target, GLenum attachment, - GLuint texture, GLint level, GLint layer ) ; -GL-FUNCTION: void glFramebufferTextureFaceEXT { } ( GLenum target, GLenum attachment, - GLuint texture, GLint level, GLenum face ) ; CONSTANT: GL_GEOMETRY_SHADER_EXT HEX: 8DD9 CONSTANT: GL_GEOMETRY_VERTICES_OUT_EXT HEX: 8DDA @@ -1989,7 +2156,6 @@ CONSTANT: GL_GEOMETRY_OUTPUT_TYPE_EXT HEX: 8DDC CONSTANT: GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT HEX: 8C29 CONSTANT: GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT HEX: 8DDD CONSTANT: GL_MAX_VERTEX_VARYING_COMPONENTS_EXT HEX: 8DDE -CONSTANT: GL_MAX_VARYING_COMPONENTS_EXT HEX: 8B4B CONSTANT: GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT HEX: 8DDF CONSTANT: GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT HEX: 8DE0 CONSTANT: GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT HEX: 8DE1 @@ -2000,110 +2166,63 @@ CONSTANT: GL_TRIANGLE_STRIP_ADJACENCY_EXT HEX: D CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT HEX: 8DA8 CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT HEX: 8DA9 CONSTANT: GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT HEX: 8DA7 -ALIAS: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT CONSTANT: GL_PROGRAM_POINT_SIZE_EXT HEX: 8642 +! GL_EXT_framebuffer_object + +CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT HEX: 8CD9 +CONSTANT: GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT HEX: 8CDA + +! GL_ARB_texture_float + +CONSTANT: GL_ALPHA32F_ARB HEX: 8816 +CONSTANT: GL_INTENSITY32F_ARB HEX: 8817 +CONSTANT: GL_LUMINANCE32F_ARB HEX: 8818 +CONSTANT: GL_LUMINANCE_ALPHA32F_ARB HEX: 8819 +CONSTANT: GL_ALPHA16F_ARB HEX: 881C +CONSTANT: GL_INTENSITY16F_ARB HEX: 881D +CONSTANT: GL_LUMINANCE16F_ARB HEX: 881E +CONSTANT: GL_LUMINANCE_ALPHA16F_ARB HEX: 881F +CONSTANT: GL_TEXTURE_LUMINANCE_TYPE_ARB HEX: 8C14 +CONSTANT: GL_TEXTURE_INTENSITY_TYPE_ARB HEX: 8C15 + ! GL_EXT_texture_integer - -GL-FUNCTION: void glClearColorIiEXT { } ( GLint r, GLint g, GLint b, GLint a ) ; -GL-FUNCTION: void glClearColorIuiEXT { } ( GLuint r, GLuint g, GLuint b, GLuint a ) ; -GL-FUNCTION: void glTexParameterIivEXT { } ( GLenum target, GLenum pname, GLint* params ) ; -GL-FUNCTION: void glTexParameterIuivEXT { } ( GLenum target, GLenum pname, GLuint* params ) ; -GL-FUNCTION: void glGetTexParameterIivEXT { } ( GLenum target, GLenum pname, GLint* params ) ; -GL-FUNCTION: void glGetTexParameterIuivEXT { } ( GLenum target, GLenum pname, GLuint* params ) ; - -CONSTANT: GL_RGBA_INTEGER_MODE_EXT HEX: 8D9E - -CONSTANT: GL_RGBA32UI_EXT HEX: 8D70 -CONSTANT: GL_RGB32UI_EXT HEX: 8D71 CONSTANT: GL_ALPHA32UI_EXT HEX: 8D72 CONSTANT: GL_INTENSITY32UI_EXT HEX: 8D73 CONSTANT: GL_LUMINANCE32UI_EXT HEX: 8D74 CONSTANT: GL_LUMINANCE_ALPHA32UI_EXT HEX: 8D75 -CONSTANT: GL_RGBA16UI_EXT HEX: 8D76 -CONSTANT: GL_RGB16UI_EXT HEX: 8D77 CONSTANT: GL_ALPHA16UI_EXT HEX: 8D78 CONSTANT: GL_INTENSITY16UI_EXT HEX: 8D79 CONSTANT: GL_LUMINANCE16UI_EXT HEX: 8D7A CONSTANT: GL_LUMINANCE_ALPHA16UI_EXT HEX: 8D7B -CONSTANT: GL_RGBA8UI_EXT HEX: 8D7C -CONSTANT: GL_RGB8UI_EXT HEX: 8D7D CONSTANT: GL_ALPHA8UI_EXT HEX: 8D7E CONSTANT: GL_INTENSITY8UI_EXT HEX: 8D7F CONSTANT: GL_LUMINANCE8UI_EXT HEX: 8D80 CONSTANT: GL_LUMINANCE_ALPHA8UI_EXT HEX: 8D81 -CONSTANT: GL_RGBA32I_EXT HEX: 8D82 -CONSTANT: GL_RGB32I_EXT HEX: 8D83 CONSTANT: GL_ALPHA32I_EXT HEX: 8D84 CONSTANT: GL_INTENSITY32I_EXT HEX: 8D85 CONSTANT: GL_LUMINANCE32I_EXT HEX: 8D86 CONSTANT: GL_LUMINANCE_ALPHA32I_EXT HEX: 8D87 -CONSTANT: GL_RGBA16I_EXT HEX: 8D88 -CONSTANT: GL_RGB16I_EXT HEX: 8D89 CONSTANT: GL_ALPHA16I_EXT HEX: 8D8A CONSTANT: GL_INTENSITY16I_EXT HEX: 8D8B CONSTANT: GL_LUMINANCE16I_EXT HEX: 8D8C CONSTANT: GL_LUMINANCE_ALPHA16I_EXT HEX: 8D8D -CONSTANT: GL_RGBA8I_EXT HEX: 8D8E -CONSTANT: GL_RGB8I_EXT HEX: 8D8F CONSTANT: GL_ALPHA8I_EXT HEX: 8D90 CONSTANT: GL_INTENSITY8I_EXT HEX: 8D91 CONSTANT: GL_LUMINANCE8I_EXT HEX: 8D92 CONSTANT: GL_LUMINANCE_ALPHA8I_EXT HEX: 8D93 -CONSTANT: GL_RED_INTEGER_EXT HEX: 8D94 -CONSTANT: GL_GREEN_INTEGER_EXT HEX: 8D95 -CONSTANT: GL_BLUE_INTEGER_EXT HEX: 8D96 CONSTANT: GL_ALPHA_INTEGER_EXT HEX: 8D97 -CONSTANT: GL_RGB_INTEGER_EXT HEX: 8D98 -CONSTANT: GL_RGBA_INTEGER_EXT HEX: 8D99 -CONSTANT: GL_BGR_INTEGER_EXT HEX: 8D9A -CONSTANT: GL_BGRA_INTEGER_EXT HEX: 8D9B -CONSTANT: GL_LUMINANCE_INTEGER_EXT HEX: 8D9C -CONSTANT: GL_LUMINANCE_ALPHA_INTEGER_EXT HEX: 8D9D +CONSTANT: GL_LUMINANCE_INTEGER_EXT HEX: 8D9C +CONSTANT: GL_LUMINANCE_ALPHA_INTEGER_EXT HEX: 8D9D - -! GL_EXT_transform_feedback - - -GL-FUNCTION: void glBindBufferRangeEXT { } ( GLenum target, GLuint index, GLuint buffer, - GLintptr offset, GLsizeiptr size ) ; -GL-FUNCTION: void glBindBufferOffsetEXT { } ( GLenum target, GLuint index, GLuint buffer, - GLintptr offset ) ; -GL-FUNCTION: void glBindBufferBaseEXT { } ( GLenum target, GLuint index, GLuint buffer ) ; - -GL-FUNCTION: void glBeginTransformFeedbackEXT { } ( GLenum primitiveMode ) ; -GL-FUNCTION: void glEndTransformFeedbackEXT { } ( ) ; - -GL-FUNCTION: void glTransformFeedbackVaryingsEXT { } ( GLuint program, GLsizei count, - GLchar** varyings, GLenum bufferMode ) ; -GL-FUNCTION: void glGetTransformFeedbackVaryingEXT { } ( GLuint program, GLuint index, - GLsizei bufSize, GLsizei* length, - GLsizei* size, GLenum* type, GLchar* name ) ; - -GL-FUNCTION: void glGetIntegerIndexedvEXT { } ( GLenum param, GLuint index, GLint* values ) ; -GL-FUNCTION: void glGetBooleanIndexedvEXT { } ( GLenum param, GLuint index, GLboolean* values ) ; - -CONSTANT: GL_TRANSFORM_FEEDBACK_BUFFER_EXT HEX: 8C8E -CONSTANT: GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT HEX: 8C84 -CONSTANT: GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT HEX: 8C85 -CONSTANT: GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT HEX: 8C8F -CONSTANT: GL_INTERLEAVED_ATTRIBS_EXT HEX: 8C8C -CONSTANT: GL_SEPARATE_ATTRIBS_EXT HEX: 8C8D -CONSTANT: GL_PRIMITIVES_GENERATED_EXT HEX: 8C87 -CONSTANT: GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT HEX: 8C88 -CONSTANT: GL_RASTERIZER_DISCARD_EXT HEX: 8C89 -CONSTANT: GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT HEX: 8C8A -CONSTANT: GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT HEX: 8C8B -CONSTANT: GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT HEX: 8C80 -CONSTANT: GL_TRANSFORM_FEEDBACK_VARYINGS_EXT HEX: 8C83 -CONSTANT: GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT HEX: 8C7F -CONSTANT: GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT HEX: 8C76 +GL-FUNCTION: void glClearColorIiEXT { } ( GLint r, GLint g, GLint b, GLint a ) ; +GL-FUNCTION: void glClearColorIuiEXT { } ( GLuint r, GLuint g, GLuint b, GLuint a ) ; diff --git a/basis/opengl/textures/textures.factor b/basis/opengl/textures/textures.factor index 25ef6ee2d3..34cb14a442 100755 --- a/basis/opengl/textures/textures.factor +++ b/basis/opengl/textures/textures.factor @@ -69,9 +69,10 @@ CONSTANT: image-internal-formats H{ { { INTENSITY int-integer-components } $ GL_INTENSITY32I_EXT } { { INTENSITY uint-integer-components } $ GL_INTENSITY32UI_EXT } - { { DEPTH ushort-components } $ GL_DEPTH_COMPONENT16 } - { { DEPTH u-24-components } $ GL_DEPTH_COMPONENT24 } - { { DEPTH uint-components } $ GL_DEPTH_COMPONENT32 } + { { DEPTH ushort-components } $ GL_DEPTH_COMPONENT16 } + { { DEPTH u-24-components } $ GL_DEPTH_COMPONENT24 } + { { DEPTH uint-components } $ GL_DEPTH_COMPONENT32 } + { { DEPTH float-components } $ GL_DEPTH_COMPONENT32F } { { LA ubyte-components } $ GL_LUMINANCE8_ALPHA8 } { { LA ushort-components } $ GL_LUMINANCE16_ALPHA16 } @@ -95,36 +96,37 @@ CONSTANT: image-internal-formats H{ { { RG int-integer-components } $ GL_RG32I } { { RG uint-integer-components } $ GL_RG32UI } - { { DEPTH-STENCIL u-24-8-components } $ GL_DEPTH24_STENCIL8_EXT } + { { DEPTH-STENCIL u-24-8-components } $ GL_DEPTH24_STENCIL8 } + { { DEPTH-STENCIL float-32-u-8-components } $ GL_DEPTH32F_STENCIL8 } { { RGB ubyte-components } $ GL_RGB8 } { { RGB ushort-components } $ GL_RGB16 } - { { RGB half-components } $ GL_RGB16F_ARB } - { { RGB float-components } $ GL_RGB32F_ARB } - { { RGB byte-integer-components } $ GL_RGB8I_EXT } - { { RGB ubyte-integer-components } $ GL_RGB8UI_EXT } - { { RGB byte-integer-components } $ GL_RGB8I_EXT } - { { RGB ubyte-integer-components } $ GL_RGB8UI_EXT } - { { RGB short-integer-components } $ GL_RGB16I_EXT } - { { RGB ushort-integer-components } $ GL_RGB16UI_EXT } - { { RGB int-integer-components } $ GL_RGB32I_EXT } - { { RGB uint-integer-components } $ GL_RGB32UI_EXT } + { { RGB half-components } $ GL_RGB16F } + { { RGB float-components } $ GL_RGB32F } + { { RGB byte-integer-components } $ GL_RGB8I } + { { RGB ubyte-integer-components } $ GL_RGB8UI } + { { RGB byte-integer-components } $ GL_RGB8I } + { { RGB ubyte-integer-components } $ GL_RGB8UI } + { { RGB short-integer-components } $ GL_RGB16I } + { { RGB ushort-integer-components } $ GL_RGB16UI } + { { RGB int-integer-components } $ GL_RGB32I } + { { RGB uint-integer-components } $ GL_RGB32UI } { { RGB u-5-6-5-components } $ GL_RGB5 } - { { RGB u-9-9-9-e5-components } $ GL_RGB9_E5_EXT } - { { RGB float-11-11-10-components } $ GL_R11F_G11F_B10F_EXT } + { { RGB u-9-9-9-e5-components } $ GL_RGB9_E5 } + { { RGB float-11-11-10-components } $ GL_R11F_G11F_B10F } { { RGBA ubyte-components } $ GL_RGBA8 } { { RGBA ushort-components } $ GL_RGBA16 } - { { RGBA half-components } $ GL_RGBA16F_ARB } - { { RGBA float-components } $ GL_RGBA32F_ARB } - { { RGBA byte-integer-components } $ GL_RGBA8I_EXT } - { { RGBA ubyte-integer-components } $ GL_RGBA8UI_EXT } - { { RGBA byte-integer-components } $ GL_RGBA8I_EXT } - { { RGBA ubyte-integer-components } $ GL_RGBA8UI_EXT } - { { RGBA short-integer-components } $ GL_RGBA16I_EXT } - { { RGBA ushort-integer-components } $ GL_RGBA16UI_EXT } - { { RGBA int-integer-components } $ GL_RGBA32I_EXT } - { { RGBA uint-integer-components } $ GL_RGBA32UI_EXT } + { { RGBA half-components } $ GL_RGBA16F } + { { RGBA float-components } $ GL_RGBA32F } + { { RGBA byte-integer-components } $ GL_RGBA8I } + { { RGBA ubyte-integer-components } $ GL_RGBA8UI } + { { RGBA byte-integer-components } $ GL_RGBA8I } + { { RGBA ubyte-integer-components } $ GL_RGBA8UI } + { { RGBA short-integer-components } $ GL_RGBA16I } + { { RGBA ushort-integer-components } $ GL_RGBA16UI } + { { RGBA int-integer-components } $ GL_RGBA32I } + { { RGBA uint-integer-components } $ GL_RGBA32UI } { { RGBA u-5-5-5-1-components } $ GL_RGB5_A1 } { { RGBA u-10-10-10-2-components } $ GL_RGB10_A2 } } @@ -154,15 +156,15 @@ M: XBGR fix-internal-component-order drop RGBA ; swap { { A [ drop GL_ALPHA_INTEGER_EXT ] } { L [ drop GL_LUMINANCE_INTEGER_EXT ] } - { R [ drop GL_RED_INTEGER_EXT ] } + { R [ drop GL_RED_INTEGER ] } { LA [ drop GL_LUMINANCE_ALPHA_INTEGER_EXT ] } { RG [ drop GL_RG_INTEGER ] } - { BGR [ drop GL_BGR_INTEGER_EXT ] } - { RGB [ drop GL_RGB_INTEGER_EXT ] } - { BGRA [ drop GL_BGRA_INTEGER_EXT ] } - { RGBA [ drop GL_RGBA_INTEGER_EXT ] } - { BGRX [ drop GL_BGRA_INTEGER_EXT ] } - { RGBX [ drop GL_RGBA_INTEGER_EXT ] } + { BGR [ drop GL_BGR_INTEGER ] } + { RGB [ drop GL_RGB_INTEGER ] } + { BGRA [ drop GL_BGRA_INTEGER ] } + { RGBA [ drop GL_RGBA_INTEGER ] } + { BGRX [ drop GL_BGRA_INTEGER ] } + { RGBX [ drop GL_RGBA_INTEGER ] } [ swap unsupported-component-order ] } case ] [ @@ -184,7 +186,7 @@ M: XBGR fix-internal-component-order drop RGBA ; { XBGR [ drop GL_RGBA ] } { INTENSITY [ drop GL_INTENSITY ] } { DEPTH [ drop GL_DEPTH_COMPONENT ] } - { DEPTH-STENCIL [ drop GL_DEPTH_STENCIL_EXT ] } + { DEPTH-STENCIL [ drop GL_DEPTH_STENCIL ] } [ swap unsupported-component-order ] } case ] if ; @@ -210,7 +212,7 @@ M: ubyte-components (component-type>type) M: ushort-components (component-type>type) not-alpha-first GL_UNSIGNED_SHORT ; M: uint-components (component-type>type) not-alpha-first GL_UNSIGNED_INT ; -M: half-components (component-type>type) not-alpha-first GL_HALF_FLOAT_ARB ; +M: half-components (component-type>type) not-alpha-first GL_HALF_FLOAT ; M: float-components (component-type>type) not-alpha-first GL_FLOAT ; M: byte-integer-components (component-type>type) not-alpha-first GL_BYTE ; M: ubyte-integer-components (component-type>type) not-alpha-first GL_UNSIGNED_BYTE ; @@ -237,15 +239,15 @@ M: u-24-components (component-type>type) M: u-24-8-components (component-type>type) over DEPTH-STENCIL = - [ 2drop GL_UNSIGNED_INT_24_8_EXT ] [ unsupported-component-order ] if ; + [ 2drop GL_UNSIGNED_INT_24_8 ] [ unsupported-component-order ] if ; M: u-9-9-9-e5-components (component-type>type) over BGR = - [ 2drop GL_UNSIGNED_INT_5_9_9_9_REV_EXT ] [ unsupported-component-order ] if ; + [ 2drop GL_UNSIGNED_INT_5_9_9_9_REV ] [ unsupported-component-order ] if ; M: float-11-11-10-components (component-type>type) over BGR = - [ 2drop GL_UNSIGNED_INT_10F_11F_11F_REV_EXT ] [ unsupported-component-order ] if ; + [ 2drop GL_UNSIGNED_INT_10F_11F_11F_REV ] [ unsupported-component-order ] if ; : image-data-format ( component-order component-type -- gl-format gl-type ) [ (component-order>format) ] [ (component-type>type) ] 2bi ; From 845e9532baf16bba5f81459724b9e715c4390c05 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 24 Jun 2009 17:59:25 -0500 Subject: [PATCH 11/13] update demos using GL_EXT_framebuffer_object and GL_ARB_texture_float to use suffixless opengl 3 symbol names --- .../framebuffers/framebuffers-docs.factor | 16 +++---- basis/opengl/framebuffers/framebuffers.factor | 42 +++++++++---------- basis/opengl/opengl-docs.factor | 2 +- basis/opengl/shaders/shaders.factor | 2 +- basis/opengl/textures/textures-tests.factor | 8 ++-- extra/bunny/outlined/outlined.factor | 23 +++++----- extra/spheres/spheres.factor | 14 +++---- 7 files changed, 53 insertions(+), 54 deletions(-) diff --git a/basis/opengl/framebuffers/framebuffers-docs.factor b/basis/opengl/framebuffers/framebuffers-docs.factor index c5507dcce1..6efa63d04e 100644 --- a/basis/opengl/framebuffers/framebuffers-docs.factor +++ b/basis/opengl/framebuffers/framebuffers-docs.factor @@ -4,32 +4,32 @@ IN: opengl.framebuffers HELP: gen-framebuffer { $values { "id" integer } } -{ $description "Wrapper for " { $link glGenFramebuffersEXT } " to handle the common case of generating a single framebuffer ID." } ; +{ $description "Wrapper for " { $link glGenFramebuffers } " to handle the common case of generating a single framebuffer ID." } ; HELP: gen-renderbuffer { $values { "id" integer } } -{ $description "Wrapper for " { $link glGenRenderbuffersEXT } " to handle the common case of generating a single render buffer ID." } ; +{ $description "Wrapper for " { $link glGenRenderbuffers } " to handle the common case of generating a single render buffer ID." } ; HELP: delete-framebuffer { $values { "id" integer } } -{ $description "Wrapper for " { $link glDeleteFramebuffersEXT } " to handle the common case of deleting a single framebuffer ID." } ; +{ $description "Wrapper for " { $link glDeleteFramebuffers } " to handle the common case of deleting a single framebuffer ID." } ; HELP: delete-renderbuffer { $values { "id" integer } } -{ $description "Wrapper for " { $link glDeleteRenderbuffersEXT } " to handle the common case of deleting a single render buffer ID." } ; +{ $description "Wrapper for " { $link glDeleteRenderbuffers } " to handle the common case of deleting a single render buffer ID." } ; { gen-framebuffer delete-framebuffer } related-words { gen-renderbuffer delete-renderbuffer } related-words HELP: framebuffer-incomplete? { $values { "status/f" "The framebuffer error code, or " { $snippet "f" } " if the framebuffer is render-complete." } } -{ $description "Checks the framebuffer currently bound by " { $link glBindFramebufferEXT } " or " { $link with-framebuffer } " to see if it is incomplete, i.e., it is not ready to be rendered to." } ; +{ $description "Checks the framebuffer currently bound by " { $link glBindFramebuffer } " or " { $link with-framebuffer } " to see if it is incomplete, i.e., it is not ready to be rendered to." } ; HELP: check-framebuffer -{ $description "Checks the framebuffer currently bound by " { $link glBindFramebufferEXT } " or " { $link with-framebuffer } " with " { $link framebuffer-incomplete? } ", and throws a descriptive error if the framebuffer is incomplete." } ; +{ $description "Checks the framebuffer currently bound by " { $link glBindFramebuffer } " or " { $link with-framebuffer } " with " { $link framebuffer-incomplete? } ", and throws a descriptive error if the framebuffer is incomplete." } ; HELP: with-framebuffer { $values { "id" "The id of a framebuffer object." } { "quot" "a quotation" } } -{ $description "Binds framebuffer " { $snippet "id" } " in the dynamic extent of " { $snippet "quot" } ", restoring the window framebuffer when finished." } ; +{ $description "Binds framebuffer " { $snippet "id" } " for drawing in the dynamic extent of " { $snippet "quot" } ", restoring the window framebuffer when finished." } ; -ABOUT: "gl-utilities" \ No newline at end of file +ABOUT: "gl-utilities" diff --git a/basis/opengl/framebuffers/framebuffers.factor b/basis/opengl/framebuffers/framebuffers.factor index f3ed8d320d..d3e6d7e25a 100644 --- a/basis/opengl/framebuffers/framebuffers.factor +++ b/basis/opengl/framebuffers/framebuffers.factor @@ -5,30 +5,30 @@ alien.c-types ; IN: opengl.framebuffers : gen-framebuffer ( -- id ) - [ glGenFramebuffersEXT ] (gen-gl-object) ; + [ glGenFramebuffers ] (gen-gl-object) ; : gen-renderbuffer ( -- id ) - [ glGenRenderbuffersEXT ] (gen-gl-object) ; + [ glGenRenderbuffers ] (gen-gl-object) ; : delete-framebuffer ( id -- ) - [ glDeleteFramebuffersEXT ] (delete-gl-object) ; + [ glDeleteFramebuffers ] (delete-gl-object) ; : delete-renderbuffer ( id -- ) - [ glDeleteRenderbuffersEXT ] (delete-gl-object) ; + [ glDeleteRenderbuffers ] (delete-gl-object) ; : framebuffer-incomplete? ( -- status/f ) - GL_FRAMEBUFFER_EXT glCheckFramebufferStatusEXT - dup GL_FRAMEBUFFER_COMPLETE_EXT = f rot ? ; + GL_DRAW_FRAMEBUFFER glCheckFramebufferStatus + dup GL_FRAMEBUFFER_COMPLETE = f rot ? ; : framebuffer-error ( status -- * ) { - { GL_FRAMEBUFFER_COMPLETE_EXT [ "framebuffer complete" ] } - { GL_FRAMEBUFFER_UNSUPPORTED_EXT [ "framebuffer configuration unsupported" ] } - { GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT [ "framebuffer incomplete (incomplete attachment)" ] } - { GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT [ "framebuffer incomplete (missing attachment)" ] } + { GL_FRAMEBUFFER_COMPLETE [ "framebuffer complete" ] } + { GL_FRAMEBUFFER_UNSUPPORTED [ "framebuffer configuration unsupported" ] } + { GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT [ "framebuffer incomplete (incomplete attachment)" ] } + { GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT [ "framebuffer incomplete (missing attachment)" ] } { GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT [ "framebuffer incomplete (dimension mismatch)" ] } { GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT [ "framebuffer incomplete (format mismatch)" ] } - { GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT [ "framebuffer incomplete (draw buffer(s) have no attachment)" ] } - { GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT [ "framebuffer incomplete (read buffer has no attachment)" ] } - { GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT [ "framebuffer incomplete (multisample counts don't match)" ] } + { GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER [ "framebuffer incomplete (draw buffer(s) have no attachment)" ] } + { GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER [ "framebuffer incomplete (read buffer has no attachment)" ] } + { GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE [ "framebuffer incomplete (multisample counts don't match)" ] } [ drop gl-error "unknown framebuffer error" ] } case throw ; @@ -36,19 +36,19 @@ IN: opengl.framebuffers framebuffer-incomplete? [ framebuffer-error ] when* ; : with-framebuffer ( id quot -- ) - [ GL_FRAMEBUFFER_EXT swap glBindFramebufferEXT ] dip - [ GL_FRAMEBUFFER_EXT 0 glBindFramebufferEXT ] [ ] cleanup ; inline + [ GL_DRAW_FRAMEBUFFER swap glBindFramebuffer ] dip + [ GL_DRAW_FRAMEBUFFER 0 glBindFramebuffer ] [ ] cleanup ; inline : with-draw-read-framebuffers ( draw-id read-id quot -- ) [ - [ GL_DRAW_FRAMEBUFFER_EXT swap glBindFramebufferEXT ] - [ GL_READ_FRAMEBUFFER_EXT swap glBindFramebufferEXT ] bi* + [ GL_DRAW_FRAMEBUFFER swap glBindFramebuffer ] + [ GL_READ_FRAMEBUFFER swap glBindFramebuffer ] bi* ] dip [ - GL_DRAW_FRAMEBUFFER_EXT 0 glBindFramebufferEXT - GL_READ_FRAMEBUFFER_EXT 0 glBindFramebufferEXT + GL_DRAW_FRAMEBUFFER 0 glBindFramebuffer + GL_READ_FRAMEBUFFER 0 glBindFramebuffer ] [ ] cleanup ; inline : framebuffer-attachment ( attachment -- id ) - GL_FRAMEBUFFER_EXT swap GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT - 0 [ glGetFramebufferAttachmentParameterivEXT ] keep *uint ; + GL_FRAMEBUFFER swap GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME + 0 [ glGetFramebufferAttachmentParameteriv ] keep *uint ; diff --git a/basis/opengl/opengl-docs.factor b/basis/opengl/opengl-docs.factor index b773833280..1e4112d5d4 100644 --- a/basis/opengl/opengl-docs.factor +++ b/basis/opengl/opengl-docs.factor @@ -45,7 +45,7 @@ HELP: bind-texture-unit { $description "Binds texture " { $snippet "id" } " to texture target " { $snippet "target" } " of texture unit " { $snippet "unit" } ". Equivalent to " { $snippet "unit glActiveTexture target id glBindTexture" } "." } ; HELP: set-draw-buffers -{ $values { "buffers" "A sequence of buffer words (e.g. " { $snippet "GL_BACK" } ", " { $snippet "GL_COLOR_ATTACHMENT0_EXT" } ")"} } +{ $values { "buffers" "A sequence of buffer words (e.g. " { $snippet "GL_BACK" } ", " { $snippet "GL_COLOR_ATTACHMENT0" } ")"} } { $description "Wrapper for " { $link glDrawBuffers } ". Sets up the buffers named in the sequence for simultaneous drawing." } ; HELP: do-attribs diff --git a/basis/opengl/shaders/shaders.factor b/basis/opengl/shaders/shaders.factor index a946fd16f4..1561138522 100755 --- a/basis/opengl/shaders/shaders.factor +++ b/basis/opengl/shaders/shaders.factor @@ -65,7 +65,7 @@ PREDICATE: fragment-shader < gl-shader (fragment-shader?) ; glCreateProgram [ [ swap [ glAttachShader ] with each ] - [ swap [ first2 swap glBindFragDataLocationEXT ] with each ] bi-curry bi* + [ swap [ first2 swap glBindFragDataLocation ] with each ] bi-curry bi* ] [ glLinkProgram ] [ ] tri diff --git a/basis/opengl/textures/textures-tests.factor b/basis/opengl/textures/textures-tests.factor index 220d2e8e87..895298fe54 100644 --- a/basis/opengl/textures/textures-tests.factor +++ b/basis/opengl/textures/textures-tests.factor @@ -26,14 +26,14 @@ ${ GL_RGBA8 GL_BGRA GL_UNSIGNED_BYTE } ${ GL_RGBA8 GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV } [ ARGB ubyte-components (image-format) ] unit-test -${ GL_RGBA32F_ARB GL_RGBA GL_FLOAT } +${ GL_RGBA32F GL_RGBA GL_FLOAT } [ RGBA float-components (image-format) ] unit-test -${ GL_RGBA32UI_EXT GL_BGRA_INTEGER_EXT GL_UNSIGNED_INT } +${ GL_RGBA32UI GL_BGRA_INTEGER GL_UNSIGNED_INT } [ BGRA uint-integer-components (image-format) ] unit-test -${ GL_RGB9_E5_EXT GL_RGB GL_UNSIGNED_INT_5_9_9_9_REV_EXT } +${ GL_RGB9_E5 GL_RGB GL_UNSIGNED_INT_5_9_9_9_REV } [ BGR u-9-9-9-e5-components (image-format) ] unit-test -${ GL_R11F_G11F_B10F_EXT GL_RGB GL_UNSIGNED_INT_10F_11F_11F_REV_EXT } +${ GL_R11F_G11F_B10F GL_RGB GL_UNSIGNED_INT_10F_11F_11F_REV } [ BGR float-11-11-10-components (image-format) ] unit-test diff --git a/extra/bunny/outlined/outlined.factor b/extra/bunny/outlined/outlined.factor index 8856032488..858689738f 100755 --- a/extra/bunny/outlined/outlined.factor +++ b/extra/bunny/outlined/outlined.factor @@ -120,14 +120,13 @@ TUPLE: bunny-outlined framebuffer framebuffer-dim ; : outlining-supported? ( -- ? ) - "2.0" { + "3.0" { "GL_ARB_shader_objects" "GL_ARB_draw_buffers" "GL_ARB_multitexture" - } has-gl-version-or-extensions? { "GL_EXT_framebuffer_object" "GL_ARB_texture_float" - } has-gl-extensions? and ; + } has-gl-version-or-extensions? ; : pass1-program ( -- program ) vertex-shader-source check-gl-shader @@ -154,14 +153,14 @@ TUPLE: bunny-outlined GL_TEXTURE_2D 0 iformat dim first2 0 xformat GL_UNSIGNED_BYTE f glTexImage2D ; :: (attach-framebuffer-texture) ( texture attachment -- ) - GL_FRAMEBUFFER_EXT attachment GL_TEXTURE_2D texture 0 glFramebufferTexture2DEXT + GL_DRAW_FRAMEBUFFER attachment GL_TEXTURE_2D texture 0 glFramebufferTexture2D gl-error ; : (make-framebuffer) ( color-texture normal-texture depth-texture -- framebuffer ) 3array gen-framebuffer dup [ - swap GL_COLOR_ATTACHMENT0_EXT - GL_COLOR_ATTACHMENT1_EXT - GL_DEPTH_ATTACHMENT_EXT 3array [ (attach-framebuffer-texture) ] 2each + swap GL_COLOR_ATTACHMENT0 + GL_COLOR_ATTACHMENT1 + GL_DEPTH_ATTACHMENT 3array [ (attach-framebuffer-texture) ] 2each check-framebuffer ] with-framebuffer ; @@ -182,8 +181,8 @@ MACRO: (framebuffer-texture>>draw) ( iformat xformat setter -- ) : (make-framebuffer-textures) ( draw dim -- draw color normal depth ) { [ drop ] - [ GL_RGBA16F_ARB GL_RGBA [ >>color-texture ] (framebuffer-texture>>draw) ] - [ GL_RGBA16F_ARB GL_RGBA [ >>normal-texture ] (framebuffer-texture>>draw) ] + [ GL_RGBA16F GL_RGBA [ >>color-texture ] (framebuffer-texture>>draw) ] + [ GL_RGBA16F GL_RGBA [ >>normal-texture ] (framebuffer-texture>>draw) ] [ GL_DEPTH_COMPONENT32 GL_DEPTH_COMPONENT [ >>depth-texture ] (framebuffer-texture>>draw) @@ -202,17 +201,17 @@ MACRO: (framebuffer-texture>>draw) ( iformat xformat setter -- ) [ drop ] [ remake-framebuffer ] if ; : clear-framebuffer ( -- ) - GL_COLOR_ATTACHMENT0_EXT glDrawBuffer + GL_COLOR_ATTACHMENT0 glDrawBuffer 0.15 0.15 0.15 1.0 glClearColor GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor glClear - GL_COLOR_ATTACHMENT1_EXT glDrawBuffer + GL_COLOR_ATTACHMENT1 glDrawBuffer 0.0 0.0 0.0 0.0 glClearColor GL_COLOR_BUFFER_BIT glClear ; : (pass1) ( geom draw -- ) dup framebuffer>> [ clear-framebuffer - { GL_COLOR_ATTACHMENT0_EXT GL_COLOR_ATTACHMENT1_EXT } set-draw-buffers + { GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT1 } set-draw-buffers pass1-program>> (draw-cel-shaded-bunny) ] with-framebuffer ; diff --git a/extra/spheres/spheres.factor b/extra/spheres/spheres.factor index b07b7a5ad1..b7431caef8 100755 --- a/extra/spheres/spheres.factor +++ b/extra/spheres/spheres.factor @@ -148,14 +148,14 @@ M: spheres-world distance-step : (make-reflection-depthbuffer) ( -- depthbuffer ) gen-renderbuffer [ - GL_RENDERBUFFER_EXT swap glBindRenderbufferEXT - GL_RENDERBUFFER_EXT GL_DEPTH_COMPONENT32 (reflection-dim) glRenderbufferStorageEXT + GL_RENDERBUFFER swap glBindRenderbuffer + GL_RENDERBUFFER GL_DEPTH_COMPONENT32 (reflection-dim) glRenderbufferStorage ] keep ; : (make-reflection-framebuffer) ( depthbuffer -- framebuffer ) gen-framebuffer dup [ - swap [ GL_FRAMEBUFFER_EXT GL_DEPTH_ATTACHMENT_EXT GL_RENDERBUFFER_EXT ] dip - glFramebufferRenderbufferEXT + swap [ GL_DRAW_FRAMEBUFFER GL_DEPTH_ATTACHMENT GL_RENDERBUFFER ] dip + glFramebufferRenderbuffer ] with-framebuffer ; : (plane-program) ( -- program ) @@ -244,9 +244,9 @@ M: spheres-world pref-dim* : (reflection-face) ( gadget face -- ) swap reflection-texture>> [ - GL_FRAMEBUFFER_EXT - GL_COLOR_ATTACHMENT0_EXT - ] 2dip 0 glFramebufferTexture2DEXT + GL_DRAW_FRAMEBUFFER + GL_COLOR_ATTACHMENT0 + ] 2dip 0 glFramebufferTexture2D check-framebuffer ; : (draw-reflection-texture) ( gadget -- ) From 327311b7a2a94b58dbb4336b4c12e2b3f4f7037b Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 24 Jun 2009 18:27:54 -0500 Subject: [PATCH 12/13] opengl.gl3 vocab containing only forward-compatible symbols. fill in some holes in opengl.gl --- basis/opengl/gl/gl.factor | 29 +- basis/opengl/gl3/authors.txt | 1 + basis/opengl/gl3/gl3.factor | 1007 ++++++++++++++++++++++++++++++++++ basis/opengl/gl3/summary.txt | 1 + 4 files changed, 1036 insertions(+), 2 deletions(-) create mode 100644 basis/opengl/gl3/authors.txt create mode 100644 basis/opengl/gl3/gl3.factor create mode 100644 basis/opengl/gl3/summary.txt diff --git a/basis/opengl/gl/gl.factor b/basis/opengl/gl/gl.factor index ca0276320b..32c3ca4b82 100644 --- a/basis/opengl/gl/gl.factor +++ b/basis/opengl/gl/gl.factor @@ -322,7 +322,7 @@ CONSTANT: GL_DECR HEX: 1E03 CONSTANT: GL_NONE HEX: 0 CONSTANT: GL_LEFT HEX: 0406 CONSTANT: GL_RIGHT HEX: 0407 - +CONSTANT: GL_FRONT_LEFT HEX: 0400 CONSTANT: GL_FRONT_RIGHT HEX: 0401 CONSTANT: GL_BACK_LEFT HEX: 0402 CONSTANT: GL_BACK_RIGHT HEX: 0403 @@ -1167,6 +1167,22 @@ GL-FUNCTION: void glTexImage3D { glTexImage3DEXT } ( GLenum target, GLint level, GL-FUNCTION: void glTexSubImage3D { glTexSubImage3DEXT } ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* pixels ) ; +! GL_ARB_imaging + + +CONSTANT: GL_CONSTANT_COLOR HEX: 8001 +CONSTANT: GL_ONE_MINUS_CONSTANT_COLOR HEX: 8002 +CONSTANT: GL_CONSTANT_ALPHA HEX: 8003 +CONSTANT: GL_ONE_MINUS_CONSTANT_ALPHA HEX: 8004 +CONSTANT: GL_BLEND_COLOR HEX: 8005 +CONSTANT: GL_FUNC_ADD HEX: 8006 +CONSTANT: GL_MIN HEX: 8007 +CONSTANT: GL_MAX HEX: 8008 +CONSTANT: GL_BLEND_EQUATION HEX: 8009 +CONSTANT: GL_FUNC_SUBTRACT HEX: 800A +CONSTANT: GL_FUNC_REVERSE_SUBTRACT HEX: 800B + + ! OpenGL 1.3 @@ -1370,6 +1386,8 @@ GL-FUNCTION: void glMultiDrawArrays { glMultiDrawArraysEXT } ( GLenum mode, GLin GL-FUNCTION: void glMultiDrawElements { glMultiDrawElementsEXT } ( GLenum mode, GLsizei* count, GLenum type, GLvoid** indices, GLsizei primcount ) ; GL-FUNCTION: void glPointParameterf { glPointParameterfARB } ( GLenum pname, GLfloat param ) ; GL-FUNCTION: void glPointParameterfv { glPointParameterfvARB } ( GLenum pname, GLfloat* params ) ; +GL-FUNCTION: void glPointParameteri { glPointParameteriARB } ( GLenum pname, GLint param ) ; +GL-FUNCTION: void glPointParameteriv { glPointParameterivARB } ( GLenum pname, GLint* params ) ; GL-FUNCTION: void glSecondaryColor3b { glSecondaryColor3bEXT } ( GLbyte red, GLbyte green, GLbyte blue ) ; GL-FUNCTION: void glSecondaryColor3bv { glSecondaryColor3bvEXT } ( GLbyte* v ) ; GL-FUNCTION: void glSecondaryColor3d { glSecondaryColor3dEXT } ( GLdouble red, GLdouble green, GLdouble blue ) ; @@ -1567,7 +1585,6 @@ CONSTANT: GL_UPPER_LEFT HEX: 8CA2 CONSTANT: GL_STENCIL_BACK_REF HEX: 8CA3 CONSTANT: GL_STENCIL_BACK_VALUE_MASK HEX: 8CA4 CONSTANT: GL_STENCIL_BACK_WRITEMASK HEX: 8CA5 -CONSTANT: GL_BLEND_EQUATION HEX: 8009 ALIAS: GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION TYPEDEF: char GLchar @@ -1687,6 +1704,12 @@ CONSTANT: GL_COMPRESSED_SRGB HEX: 8C48 CONSTANT: GL_COMPRESSED_SRGB_ALPHA HEX: 8C49 CONSTANT: GL_COMPRESSED_SLUMINANCE HEX: 8C4A CONSTANT: GL_COMPRESSED_SLUMINANCE_ALPHA HEX: 8C4B +CONSTANT: GL_FLOAT_MAT2x3 HEX: 8B65 +CONSTANT: GL_FLOAT_MAT2x4 HEX: 8B66 +CONSTANT: GL_FLOAT_MAT3x2 HEX: 8B67 +CONSTANT: GL_FLOAT_MAT3x4 HEX: 8B68 +CONSTANT: GL_FLOAT_MAT4x2 HEX: 8B69 +CONSTANT: GL_FLOAT_MAT4x3 HEX: 8B6A GL-FUNCTION: void glUniformMatrix2x3fv { } ( GLint location, GLsizei count, GLboolean transpose, GLfloat* value ) ; GL-FUNCTION: void glUniformMatrix2x4fv { } ( GLint location, GLsizei count, GLboolean transpose, GLfloat* value ) ; @@ -1699,6 +1722,8 @@ GL-FUNCTION: void glUniformMatrix4x3fv { } ( GLint location, GLsizei count, GLbo ! OpenGL 3.0 +TYPEDEF: ushort GLhalf + CONSTANT: GL_VERTEX_ATTRIB_ARRAY_INTEGER HEX: 88FD CONSTANT: GL_SAMPLER_CUBE_SHADOW HEX: 8DC5 CONSTANT: GL_UNSIGNED_INT_VEC2 HEX: 8DC6 diff --git a/basis/opengl/gl3/authors.txt b/basis/opengl/gl3/authors.txt new file mode 100644 index 0000000000..f13c9c1e77 --- /dev/null +++ b/basis/opengl/gl3/authors.txt @@ -0,0 +1 @@ +Joe Groff diff --git a/basis/opengl/gl3/gl3.factor b/basis/opengl/gl3/gl3.factor new file mode 100644 index 0000000000..2c10e639e5 --- /dev/null +++ b/basis/opengl/gl3/gl3.factor @@ -0,0 +1,1007 @@ +! (c)2009 Joe Groff bsd license +! This vocab only exports forward-compatible OpenGL 3.x symbols. +! For legacy OpenGL and extensions, use opengl.gl + +QUALIFIED-WITH: opengl.gl gl +IN: opengl.gl3 + +ALIAS: GL_DEPTH_BUFFER_BIT gl:GL_DEPTH_BUFFER_BIT +ALIAS: GL_STENCIL_BUFFER_BIT gl:GL_STENCIL_BUFFER_BIT +ALIAS: GL_COLOR_BUFFER_BIT gl:GL_COLOR_BUFFER_BIT +ALIAS: GL_FALSE gl:GL_FALSE +ALIAS: GL_TRUE gl:GL_TRUE +ALIAS: GL_POINTS gl:GL_POINTS +ALIAS: GL_LINES gl:GL_LINES +ALIAS: GL_LINE_LOOP gl:GL_LINE_LOOP +ALIAS: GL_LINE_STRIP gl:GL_LINE_STRIP +ALIAS: GL_TRIANGLES gl:GL_TRIANGLES +ALIAS: GL_TRIANGLE_STRIP gl:GL_TRIANGLE_STRIP +ALIAS: GL_TRIANGLE_FAN gl:GL_TRIANGLE_FAN +ALIAS: GL_NEVER gl:GL_NEVER +ALIAS: GL_LESS gl:GL_LESS +ALIAS: GL_EQUAL gl:GL_EQUAL +ALIAS: GL_LEQUAL gl:GL_LEQUAL +ALIAS: GL_GREATER gl:GL_GREATER +ALIAS: GL_NOTEQUAL gl:GL_NOTEQUAL +ALIAS: GL_GEQUAL gl:GL_GEQUAL +ALIAS: GL_ALWAYS gl:GL_ALWAYS +ALIAS: GL_ZERO gl:GL_ZERO +ALIAS: GL_ONE gl:GL_ONE +ALIAS: GL_SRC_COLOR gl:GL_SRC_COLOR +ALIAS: GL_ONE_MINUS_SRC_COLOR gl:GL_ONE_MINUS_SRC_COLOR +ALIAS: GL_SRC_ALPHA gl:GL_SRC_ALPHA +ALIAS: GL_ONE_MINUS_SRC_ALPHA gl:GL_ONE_MINUS_SRC_ALPHA +ALIAS: GL_DST_ALPHA gl:GL_DST_ALPHA +ALIAS: GL_ONE_MINUS_DST_ALPHA gl:GL_ONE_MINUS_DST_ALPHA +ALIAS: GL_DST_COLOR gl:GL_DST_COLOR +ALIAS: GL_ONE_MINUS_DST_COLOR gl:GL_ONE_MINUS_DST_COLOR +ALIAS: GL_SRC_ALPHA_SATURATE gl:GL_SRC_ALPHA_SATURATE +ALIAS: GL_NONE gl:GL_NONE +ALIAS: GL_FRONT_LEFT gl:GL_FRONT_LEFT +ALIAS: GL_FRONT_RIGHT gl:GL_FRONT_RIGHT +ALIAS: GL_BACK_LEFT gl:GL_BACK_LEFT +ALIAS: GL_BACK_RIGHT gl:GL_BACK_RIGHT +ALIAS: GL_FRONT gl:GL_FRONT +ALIAS: GL_BACK gl:GL_BACK +ALIAS: GL_LEFT gl:GL_LEFT +ALIAS: GL_RIGHT gl:GL_RIGHT +ALIAS: GL_FRONT_AND_BACK gl:GL_FRONT_AND_BACK +ALIAS: GL_NO_ERROR gl:GL_NO_ERROR +ALIAS: GL_INVALID_ENUM gl:GL_INVALID_ENUM +ALIAS: GL_INVALID_VALUE gl:GL_INVALID_VALUE +ALIAS: GL_INVALID_OPERATION gl:GL_INVALID_OPERATION +ALIAS: GL_OUT_OF_MEMORY gl:GL_OUT_OF_MEMORY +ALIAS: GL_CW gl:GL_CW +ALIAS: GL_CCW gl:GL_CCW +ALIAS: GL_POINT_SIZE gl:GL_POINT_SIZE +ALIAS: GL_POINT_SIZE_RANGE gl:GL_POINT_SIZE_RANGE +ALIAS: GL_POINT_SIZE_GRANULARITY gl:GL_POINT_SIZE_GRANULARITY +ALIAS: GL_LINE_SMOOTH gl:GL_LINE_SMOOTH +ALIAS: GL_LINE_WIDTH gl:GL_LINE_WIDTH +ALIAS: GL_LINE_WIDTH_RANGE gl:GL_LINE_WIDTH_RANGE +ALIAS: GL_LINE_WIDTH_GRANULARITY gl:GL_LINE_WIDTH_GRANULARITY +ALIAS: GL_POLYGON_SMOOTH gl:GL_POLYGON_SMOOTH +ALIAS: GL_CULL_FACE gl:GL_CULL_FACE +ALIAS: GL_CULL_FACE_MODE gl:GL_CULL_FACE_MODE +ALIAS: GL_FRONT_FACE gl:GL_FRONT_FACE +ALIAS: GL_DEPTH_RANGE gl:GL_DEPTH_RANGE +ALIAS: GL_DEPTH_TEST gl:GL_DEPTH_TEST +ALIAS: GL_DEPTH_WRITEMASK gl:GL_DEPTH_WRITEMASK +ALIAS: GL_DEPTH_CLEAR_VALUE gl:GL_DEPTH_CLEAR_VALUE +ALIAS: GL_DEPTH_FUNC gl:GL_DEPTH_FUNC +ALIAS: GL_STENCIL_TEST gl:GL_STENCIL_TEST +ALIAS: GL_STENCIL_CLEAR_VALUE gl:GL_STENCIL_CLEAR_VALUE +ALIAS: GL_STENCIL_FUNC gl:GL_STENCIL_FUNC +ALIAS: GL_STENCIL_VALUE_MASK gl:GL_STENCIL_VALUE_MASK +ALIAS: GL_STENCIL_FAIL gl:GL_STENCIL_FAIL +ALIAS: GL_STENCIL_PASS_DEPTH_FAIL gl:GL_STENCIL_PASS_DEPTH_FAIL +ALIAS: GL_STENCIL_PASS_DEPTH_PASS gl:GL_STENCIL_PASS_DEPTH_PASS +ALIAS: GL_STENCIL_REF gl:GL_STENCIL_REF +ALIAS: GL_STENCIL_WRITEMASK gl:GL_STENCIL_WRITEMASK +ALIAS: GL_VIEWPORT gl:GL_VIEWPORT +ALIAS: GL_DITHER gl:GL_DITHER +ALIAS: GL_BLEND_DST gl:GL_BLEND_DST +ALIAS: GL_BLEND_SRC gl:GL_BLEND_SRC +ALIAS: GL_BLEND gl:GL_BLEND +ALIAS: GL_LOGIC_OP_MODE gl:GL_LOGIC_OP_MODE +ALIAS: GL_COLOR_LOGIC_OP gl:GL_COLOR_LOGIC_OP +ALIAS: GL_DRAW_BUFFER gl:GL_DRAW_BUFFER +ALIAS: GL_READ_BUFFER gl:GL_READ_BUFFER +ALIAS: GL_SCISSOR_BOX gl:GL_SCISSOR_BOX +ALIAS: GL_SCISSOR_TEST gl:GL_SCISSOR_TEST +ALIAS: GL_COLOR_CLEAR_VALUE gl:GL_COLOR_CLEAR_VALUE +ALIAS: GL_COLOR_WRITEMASK gl:GL_COLOR_WRITEMASK +ALIAS: GL_DOUBLEBUFFER gl:GL_DOUBLEBUFFER +ALIAS: GL_STEREO gl:GL_STEREO +ALIAS: GL_LINE_SMOOTH_HINT gl:GL_LINE_SMOOTH_HINT +ALIAS: GL_POLYGON_SMOOTH_HINT gl:GL_POLYGON_SMOOTH_HINT +ALIAS: GL_UNPACK_SWAP_BYTES gl:GL_UNPACK_SWAP_BYTES +ALIAS: GL_UNPACK_LSB_FIRST gl:GL_UNPACK_LSB_FIRST +ALIAS: GL_UNPACK_ROW_LENGTH gl:GL_UNPACK_ROW_LENGTH +ALIAS: GL_UNPACK_SKIP_ROWS gl:GL_UNPACK_SKIP_ROWS +ALIAS: GL_UNPACK_SKIP_PIXELS gl:GL_UNPACK_SKIP_PIXELS +ALIAS: GL_UNPACK_ALIGNMENT gl:GL_UNPACK_ALIGNMENT +ALIAS: GL_PACK_SWAP_BYTES gl:GL_PACK_SWAP_BYTES +ALIAS: GL_PACK_LSB_FIRST gl:GL_PACK_LSB_FIRST +ALIAS: GL_PACK_ROW_LENGTH gl:GL_PACK_ROW_LENGTH +ALIAS: GL_PACK_SKIP_ROWS gl:GL_PACK_SKIP_ROWS +ALIAS: GL_PACK_SKIP_PIXELS gl:GL_PACK_SKIP_PIXELS +ALIAS: GL_PACK_ALIGNMENT gl:GL_PACK_ALIGNMENT +ALIAS: GL_MAX_TEXTURE_SIZE gl:GL_MAX_TEXTURE_SIZE +ALIAS: GL_MAX_VIEWPORT_DIMS gl:GL_MAX_VIEWPORT_DIMS +ALIAS: GL_SUBPIXEL_BITS gl:GL_SUBPIXEL_BITS +ALIAS: GL_TEXTURE_1D gl:GL_TEXTURE_1D +ALIAS: GL_TEXTURE_2D gl:GL_TEXTURE_2D +ALIAS: GL_POLYGON_OFFSET_UNITS gl:GL_POLYGON_OFFSET_UNITS +ALIAS: GL_POLYGON_OFFSET_POINT gl:GL_POLYGON_OFFSET_POINT +ALIAS: GL_POLYGON_OFFSET_LINE gl:GL_POLYGON_OFFSET_LINE +ALIAS: GL_POLYGON_OFFSET_FILL gl:GL_POLYGON_OFFSET_FILL +ALIAS: GL_POLYGON_OFFSET_FACTOR gl:GL_POLYGON_OFFSET_FACTOR +ALIAS: GL_TEXTURE_BINDING_1D gl:GL_TEXTURE_BINDING_1D +ALIAS: GL_TEXTURE_BINDING_2D gl:GL_TEXTURE_BINDING_2D +ALIAS: GL_TEXTURE_WIDTH gl:GL_TEXTURE_WIDTH +ALIAS: GL_TEXTURE_HEIGHT gl:GL_TEXTURE_HEIGHT +ALIAS: GL_TEXTURE_INTERNAL_FORMAT gl:GL_TEXTURE_INTERNAL_FORMAT +ALIAS: GL_TEXTURE_BORDER_COLOR gl:GL_TEXTURE_BORDER_COLOR +ALIAS: GL_TEXTURE_BORDER gl:GL_TEXTURE_BORDER +ALIAS: GL_TEXTURE_RED_SIZE gl:GL_TEXTURE_RED_SIZE +ALIAS: GL_TEXTURE_GREEN_SIZE gl:GL_TEXTURE_GREEN_SIZE +ALIAS: GL_TEXTURE_BLUE_SIZE gl:GL_TEXTURE_BLUE_SIZE +ALIAS: GL_TEXTURE_ALPHA_SIZE gl:GL_TEXTURE_ALPHA_SIZE +ALIAS: GL_DONT_CARE gl:GL_DONT_CARE +ALIAS: GL_FASTEST gl:GL_FASTEST +ALIAS: GL_NICEST gl:GL_NICEST +ALIAS: GL_BYTE gl:GL_BYTE +ALIAS: GL_UNSIGNED_BYTE gl:GL_UNSIGNED_BYTE +ALIAS: GL_SHORT gl:GL_SHORT +ALIAS: GL_UNSIGNED_SHORT gl:GL_UNSIGNED_SHORT +ALIAS: GL_INT gl:GL_INT +ALIAS: GL_UNSIGNED_INT gl:GL_UNSIGNED_INT +ALIAS: GL_FLOAT gl:GL_FLOAT +ALIAS: GL_DOUBLE gl:GL_DOUBLE +ALIAS: GL_CLEAR gl:GL_CLEAR +ALIAS: GL_AND gl:GL_AND +ALIAS: GL_AND_REVERSE gl:GL_AND_REVERSE +ALIAS: GL_COPY gl:GL_COPY +ALIAS: GL_AND_INVERTED gl:GL_AND_INVERTED +ALIAS: GL_NOOP gl:GL_NOOP +ALIAS: GL_XOR gl:GL_XOR +ALIAS: GL_OR gl:GL_OR +ALIAS: GL_NOR gl:GL_NOR +ALIAS: GL_EQUIV gl:GL_EQUIV +ALIAS: GL_INVERT gl:GL_INVERT +ALIAS: GL_OR_REVERSE gl:GL_OR_REVERSE +ALIAS: GL_COPY_INVERTED gl:GL_COPY_INVERTED +ALIAS: GL_OR_INVERTED gl:GL_OR_INVERTED +ALIAS: GL_NAND gl:GL_NAND +ALIAS: GL_SET gl:GL_SET +ALIAS: GL_TEXTURE gl:GL_TEXTURE +ALIAS: GL_COLOR gl:GL_COLOR +ALIAS: GL_DEPTH gl:GL_DEPTH +ALIAS: GL_STENCIL gl:GL_STENCIL +ALIAS: GL_STENCIL_INDEX gl:GL_STENCIL_INDEX +ALIAS: GL_DEPTH_COMPONENT gl:GL_DEPTH_COMPONENT +ALIAS: GL_RED gl:GL_RED +ALIAS: GL_GREEN gl:GL_GREEN +ALIAS: GL_BLUE gl:GL_BLUE +ALIAS: GL_ALPHA gl:GL_ALPHA +ALIAS: GL_RGB gl:GL_RGB +ALIAS: GL_RGBA gl:GL_RGBA +ALIAS: GL_POINT gl:GL_POINT +ALIAS: GL_LINE gl:GL_LINE +ALIAS: GL_FILL gl:GL_FILL +ALIAS: GL_KEEP gl:GL_KEEP +ALIAS: GL_REPLACE gl:GL_REPLACE +ALIAS: GL_INCR gl:GL_INCR +ALIAS: GL_DECR gl:GL_DECR +ALIAS: GL_VENDOR gl:GL_VENDOR +ALIAS: GL_RENDERER gl:GL_RENDERER +ALIAS: GL_VERSION gl:GL_VERSION +ALIAS: GL_EXTENSIONS gl:GL_EXTENSIONS +ALIAS: GL_NEAREST gl:GL_NEAREST +ALIAS: GL_LINEAR gl:GL_LINEAR +ALIAS: GL_NEAREST_MIPMAP_NEAREST gl:GL_NEAREST_MIPMAP_NEAREST +ALIAS: GL_LINEAR_MIPMAP_NEAREST gl:GL_LINEAR_MIPMAP_NEAREST +ALIAS: GL_NEAREST_MIPMAP_LINEAR gl:GL_NEAREST_MIPMAP_LINEAR +ALIAS: GL_LINEAR_MIPMAP_LINEAR gl:GL_LINEAR_MIPMAP_LINEAR +ALIAS: GL_TEXTURE_MAG_FILTER gl:GL_TEXTURE_MAG_FILTER +ALIAS: GL_TEXTURE_MIN_FILTER gl:GL_TEXTURE_MIN_FILTER +ALIAS: GL_TEXTURE_WRAP_S gl:GL_TEXTURE_WRAP_S +ALIAS: GL_TEXTURE_WRAP_T gl:GL_TEXTURE_WRAP_T +ALIAS: GL_PROXY_TEXTURE_1D gl:GL_PROXY_TEXTURE_1D +ALIAS: GL_PROXY_TEXTURE_2D gl:GL_PROXY_TEXTURE_2D +ALIAS: GL_REPEAT gl:GL_REPEAT +ALIAS: GL_R3_G3_B2 gl:GL_R3_G3_B2 +ALIAS: GL_RGB4 gl:GL_RGB4 +ALIAS: GL_RGB5 gl:GL_RGB5 +ALIAS: GL_RGB8 gl:GL_RGB8 +ALIAS: GL_RGB10 gl:GL_RGB10 +ALIAS: GL_RGB12 gl:GL_RGB12 +ALIAS: GL_RGB16 gl:GL_RGB16 +ALIAS: GL_RGBA2 gl:GL_RGBA2 +ALIAS: GL_RGBA4 gl:GL_RGBA4 +ALIAS: GL_RGB5_A1 gl:GL_RGB5_A1 +ALIAS: GL_RGBA8 gl:GL_RGBA8 +ALIAS: GL_RGB10_A2 gl:GL_RGB10_A2 +ALIAS: GL_RGBA12 gl:GL_RGBA12 +ALIAS: GL_RGBA16 gl:GL_RGBA16 +ALIAS: GL_UNSIGNED_BYTE_3_3_2 gl:GL_UNSIGNED_BYTE_3_3_2 +ALIAS: GL_UNSIGNED_SHORT_4_4_4_4 gl:GL_UNSIGNED_SHORT_4_4_4_4 +ALIAS: GL_UNSIGNED_SHORT_5_5_5_1 gl:GL_UNSIGNED_SHORT_5_5_5_1 +ALIAS: GL_UNSIGNED_INT_8_8_8_8 gl:GL_UNSIGNED_INT_8_8_8_8 +ALIAS: GL_UNSIGNED_INT_10_10_10_2 gl:GL_UNSIGNED_INT_10_10_10_2 +ALIAS: GL_TEXTURE_BINDING_3D gl:GL_TEXTURE_BINDING_3D +ALIAS: GL_PACK_SKIP_IMAGES gl:GL_PACK_SKIP_IMAGES +ALIAS: GL_PACK_IMAGE_HEIGHT gl:GL_PACK_IMAGE_HEIGHT +ALIAS: GL_UNPACK_SKIP_IMAGES gl:GL_UNPACK_SKIP_IMAGES +ALIAS: GL_UNPACK_IMAGE_HEIGHT gl:GL_UNPACK_IMAGE_HEIGHT +ALIAS: GL_TEXTURE_3D gl:GL_TEXTURE_3D +ALIAS: GL_PROXY_TEXTURE_3D gl:GL_PROXY_TEXTURE_3D +ALIAS: GL_TEXTURE_DEPTH gl:GL_TEXTURE_DEPTH +ALIAS: GL_TEXTURE_WRAP_R gl:GL_TEXTURE_WRAP_R +ALIAS: GL_MAX_3D_TEXTURE_SIZE gl:GL_MAX_3D_TEXTURE_SIZE +ALIAS: GL_UNSIGNED_BYTE_2_3_3_REV gl:GL_UNSIGNED_BYTE_2_3_3_REV +ALIAS: GL_UNSIGNED_SHORT_5_6_5 gl:GL_UNSIGNED_SHORT_5_6_5 +ALIAS: GL_UNSIGNED_SHORT_5_6_5_REV gl:GL_UNSIGNED_SHORT_5_6_5_REV +ALIAS: GL_UNSIGNED_SHORT_4_4_4_4_REV gl:GL_UNSIGNED_SHORT_4_4_4_4_REV +ALIAS: GL_UNSIGNED_SHORT_1_5_5_5_REV gl:GL_UNSIGNED_SHORT_1_5_5_5_REV +ALIAS: GL_UNSIGNED_INT_8_8_8_8_REV gl:GL_UNSIGNED_INT_8_8_8_8_REV +ALIAS: GL_UNSIGNED_INT_2_10_10_10_REV gl:GL_UNSIGNED_INT_2_10_10_10_REV +ALIAS: GL_BGR gl:GL_BGR +ALIAS: GL_BGRA gl:GL_BGRA +ALIAS: GL_MAX_ELEMENTS_VERTICES gl:GL_MAX_ELEMENTS_VERTICES +ALIAS: GL_MAX_ELEMENTS_INDICES gl:GL_MAX_ELEMENTS_INDICES +ALIAS: GL_CLAMP_TO_EDGE gl:GL_CLAMP_TO_EDGE +ALIAS: GL_TEXTURE_MIN_LOD gl:GL_TEXTURE_MIN_LOD +ALIAS: GL_TEXTURE_MAX_LOD gl:GL_TEXTURE_MAX_LOD +ALIAS: GL_TEXTURE_BASE_LEVEL gl:GL_TEXTURE_BASE_LEVEL +ALIAS: GL_TEXTURE_MAX_LEVEL gl:GL_TEXTURE_MAX_LEVEL +ALIAS: GL_SMOOTH_POINT_SIZE_RANGE gl:GL_SMOOTH_POINT_SIZE_RANGE +ALIAS: GL_SMOOTH_POINT_SIZE_GRANULARITY gl:GL_SMOOTH_POINT_SIZE_GRANULARITY +ALIAS: GL_SMOOTH_LINE_WIDTH_RANGE gl:GL_SMOOTH_LINE_WIDTH_RANGE +ALIAS: GL_SMOOTH_LINE_WIDTH_GRANULARITY gl:GL_SMOOTH_LINE_WIDTH_GRANULARITY +ALIAS: GL_ALIASED_LINE_WIDTH_RANGE gl:GL_ALIASED_LINE_WIDTH_RANGE +ALIAS: GL_CONSTANT_COLOR gl:GL_CONSTANT_COLOR +ALIAS: GL_ONE_MINUS_CONSTANT_COLOR gl:GL_ONE_MINUS_CONSTANT_COLOR +ALIAS: GL_CONSTANT_ALPHA gl:GL_CONSTANT_ALPHA +ALIAS: GL_ONE_MINUS_CONSTANT_ALPHA gl:GL_ONE_MINUS_CONSTANT_ALPHA +ALIAS: GL_BLEND_COLOR gl:GL_BLEND_COLOR +ALIAS: GL_FUNC_ADD gl:GL_FUNC_ADD +ALIAS: GL_MIN gl:GL_MIN +ALIAS: GL_MAX gl:GL_MAX +ALIAS: GL_BLEND_EQUATION gl:GL_BLEND_EQUATION +ALIAS: GL_FUNC_SUBTRACT gl:GL_FUNC_SUBTRACT +ALIAS: GL_FUNC_REVERSE_SUBTRACT gl:GL_FUNC_REVERSE_SUBTRACT +ALIAS: GL_TEXTURE0 gl:GL_TEXTURE0 +ALIAS: GL_TEXTURE1 gl:GL_TEXTURE1 +ALIAS: GL_TEXTURE2 gl:GL_TEXTURE2 +ALIAS: GL_TEXTURE3 gl:GL_TEXTURE3 +ALIAS: GL_TEXTURE4 gl:GL_TEXTURE4 +ALIAS: GL_TEXTURE5 gl:GL_TEXTURE5 +ALIAS: GL_TEXTURE6 gl:GL_TEXTURE6 +ALIAS: GL_TEXTURE7 gl:GL_TEXTURE7 +ALIAS: GL_TEXTURE8 gl:GL_TEXTURE8 +ALIAS: GL_TEXTURE9 gl:GL_TEXTURE9 +ALIAS: GL_TEXTURE10 gl:GL_TEXTURE10 +ALIAS: GL_TEXTURE11 gl:GL_TEXTURE11 +ALIAS: GL_TEXTURE12 gl:GL_TEXTURE12 +ALIAS: GL_TEXTURE13 gl:GL_TEXTURE13 +ALIAS: GL_TEXTURE14 gl:GL_TEXTURE14 +ALIAS: GL_TEXTURE15 gl:GL_TEXTURE15 +ALIAS: GL_TEXTURE16 gl:GL_TEXTURE16 +ALIAS: GL_TEXTURE17 gl:GL_TEXTURE17 +ALIAS: GL_TEXTURE18 gl:GL_TEXTURE18 +ALIAS: GL_TEXTURE19 gl:GL_TEXTURE19 +ALIAS: GL_TEXTURE20 gl:GL_TEXTURE20 +ALIAS: GL_TEXTURE21 gl:GL_TEXTURE21 +ALIAS: GL_TEXTURE22 gl:GL_TEXTURE22 +ALIAS: GL_TEXTURE23 gl:GL_TEXTURE23 +ALIAS: GL_TEXTURE24 gl:GL_TEXTURE24 +ALIAS: GL_TEXTURE25 gl:GL_TEXTURE25 +ALIAS: GL_TEXTURE26 gl:GL_TEXTURE26 +ALIAS: GL_TEXTURE27 gl:GL_TEXTURE27 +ALIAS: GL_TEXTURE28 gl:GL_TEXTURE28 +ALIAS: GL_TEXTURE29 gl:GL_TEXTURE29 +ALIAS: GL_TEXTURE30 gl:GL_TEXTURE30 +ALIAS: GL_TEXTURE31 gl:GL_TEXTURE31 +ALIAS: GL_ACTIVE_TEXTURE gl:GL_ACTIVE_TEXTURE +ALIAS: GL_MULTISAMPLE gl:GL_MULTISAMPLE +ALIAS: GL_SAMPLE_ALPHA_TO_COVERAGE gl:GL_SAMPLE_ALPHA_TO_COVERAGE +ALIAS: GL_SAMPLE_ALPHA_TO_ONE gl:GL_SAMPLE_ALPHA_TO_ONE +ALIAS: GL_SAMPLE_COVERAGE gl:GL_SAMPLE_COVERAGE +ALIAS: GL_SAMPLE_BUFFERS gl:GL_SAMPLE_BUFFERS +ALIAS: GL_SAMPLES gl:GL_SAMPLES +ALIAS: GL_SAMPLE_COVERAGE_VALUE gl:GL_SAMPLE_COVERAGE_VALUE +ALIAS: GL_SAMPLE_COVERAGE_INVERT gl:GL_SAMPLE_COVERAGE_INVERT +ALIAS: GL_TEXTURE_CUBE_MAP gl:GL_TEXTURE_CUBE_MAP +ALIAS: GL_TEXTURE_BINDING_CUBE_MAP gl:GL_TEXTURE_BINDING_CUBE_MAP +ALIAS: GL_TEXTURE_CUBE_MAP_POSITIVE_X gl:GL_TEXTURE_CUBE_MAP_POSITIVE_X +ALIAS: GL_TEXTURE_CUBE_MAP_NEGATIVE_X gl:GL_TEXTURE_CUBE_MAP_NEGATIVE_X +ALIAS: GL_TEXTURE_CUBE_MAP_POSITIVE_Y gl:GL_TEXTURE_CUBE_MAP_POSITIVE_Y +ALIAS: GL_TEXTURE_CUBE_MAP_NEGATIVE_Y gl:GL_TEXTURE_CUBE_MAP_NEGATIVE_Y +ALIAS: GL_TEXTURE_CUBE_MAP_POSITIVE_Z gl:GL_TEXTURE_CUBE_MAP_POSITIVE_Z +ALIAS: GL_TEXTURE_CUBE_MAP_NEGATIVE_Z gl:GL_TEXTURE_CUBE_MAP_NEGATIVE_Z +ALIAS: GL_PROXY_TEXTURE_CUBE_MAP gl:GL_PROXY_TEXTURE_CUBE_MAP +ALIAS: GL_MAX_CUBE_MAP_TEXTURE_SIZE gl:GL_MAX_CUBE_MAP_TEXTURE_SIZE +ALIAS: GL_COMPRESSED_RGB gl:GL_COMPRESSED_RGB +ALIAS: GL_COMPRESSED_RGBA gl:GL_COMPRESSED_RGBA +ALIAS: GL_TEXTURE_COMPRESSION_HINT gl:GL_TEXTURE_COMPRESSION_HINT +ALIAS: GL_TEXTURE_COMPRESSED_IMAGE_SIZE gl:GL_TEXTURE_COMPRESSED_IMAGE_SIZE +ALIAS: GL_TEXTURE_COMPRESSED gl:GL_TEXTURE_COMPRESSED +ALIAS: GL_NUM_COMPRESSED_TEXTURE_FORMATS gl:GL_NUM_COMPRESSED_TEXTURE_FORMATS +ALIAS: GL_COMPRESSED_TEXTURE_FORMATS gl:GL_COMPRESSED_TEXTURE_FORMATS +ALIAS: GL_CLAMP_TO_BORDER gl:GL_CLAMP_TO_BORDER +ALIAS: GL_BLEND_DST_RGB gl:GL_BLEND_DST_RGB +ALIAS: GL_BLEND_SRC_RGB gl:GL_BLEND_SRC_RGB +ALIAS: GL_BLEND_DST_ALPHA gl:GL_BLEND_DST_ALPHA +ALIAS: GL_BLEND_SRC_ALPHA gl:GL_BLEND_SRC_ALPHA +ALIAS: GL_POINT_FADE_THRESHOLD_SIZE gl:GL_POINT_FADE_THRESHOLD_SIZE +ALIAS: GL_DEPTH_COMPONENT16 gl:GL_DEPTH_COMPONENT16 +ALIAS: GL_DEPTH_COMPONENT24 gl:GL_DEPTH_COMPONENT24 +ALIAS: GL_DEPTH_COMPONENT32 gl:GL_DEPTH_COMPONENT32 +ALIAS: GL_MIRRORED_REPEAT gl:GL_MIRRORED_REPEAT +ALIAS: GL_MAX_TEXTURE_LOD_BIAS gl:GL_MAX_TEXTURE_LOD_BIAS +ALIAS: GL_TEXTURE_LOD_BIAS gl:GL_TEXTURE_LOD_BIAS +ALIAS: GL_INCR_WRAP gl:GL_INCR_WRAP +ALIAS: GL_DECR_WRAP gl:GL_DECR_WRAP +ALIAS: GL_TEXTURE_DEPTH_SIZE gl:GL_TEXTURE_DEPTH_SIZE +ALIAS: GL_TEXTURE_COMPARE_MODE gl:GL_TEXTURE_COMPARE_MODE +ALIAS: GL_TEXTURE_COMPARE_FUNC gl:GL_TEXTURE_COMPARE_FUNC +ALIAS: GL_BUFFER_SIZE gl:GL_BUFFER_SIZE +ALIAS: GL_BUFFER_USAGE gl:GL_BUFFER_USAGE +ALIAS: GL_QUERY_COUNTER_BITS gl:GL_QUERY_COUNTER_BITS +ALIAS: GL_CURRENT_QUERY gl:GL_CURRENT_QUERY +ALIAS: GL_QUERY_RESULT gl:GL_QUERY_RESULT +ALIAS: GL_QUERY_RESULT_AVAILABLE gl:GL_QUERY_RESULT_AVAILABLE +ALIAS: GL_ARRAY_BUFFER gl:GL_ARRAY_BUFFER +ALIAS: GL_ELEMENT_ARRAY_BUFFER gl:GL_ELEMENT_ARRAY_BUFFER +ALIAS: GL_ARRAY_BUFFER_BINDING gl:GL_ARRAY_BUFFER_BINDING +ALIAS: GL_ELEMENT_ARRAY_BUFFER_BINDING gl:GL_ELEMENT_ARRAY_BUFFER_BINDING +ALIAS: GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING gl:GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING +ALIAS: GL_READ_ONLY gl:GL_READ_ONLY +ALIAS: GL_WRITE_ONLY gl:GL_WRITE_ONLY +ALIAS: GL_READ_WRITE gl:GL_READ_WRITE +ALIAS: GL_BUFFER_ACCESS gl:GL_BUFFER_ACCESS +ALIAS: GL_BUFFER_MAPPED gl:GL_BUFFER_MAPPED +ALIAS: GL_BUFFER_MAP_POINTER gl:GL_BUFFER_MAP_POINTER +ALIAS: GL_STREAM_DRAW gl:GL_STREAM_DRAW +ALIAS: GL_STREAM_READ gl:GL_STREAM_READ +ALIAS: GL_STREAM_COPY gl:GL_STREAM_COPY +ALIAS: GL_STATIC_DRAW gl:GL_STATIC_DRAW +ALIAS: GL_STATIC_READ gl:GL_STATIC_READ +ALIAS: GL_STATIC_COPY gl:GL_STATIC_COPY +ALIAS: GL_DYNAMIC_DRAW gl:GL_DYNAMIC_DRAW +ALIAS: GL_DYNAMIC_READ gl:GL_DYNAMIC_READ +ALIAS: GL_DYNAMIC_COPY gl:GL_DYNAMIC_COPY +ALIAS: GL_SAMPLES_PASSED gl:GL_SAMPLES_PASSED +ALIAS: GL_BLEND_EQUATION_RGB gl:GL_BLEND_EQUATION_RGB +ALIAS: GL_VERTEX_ATTRIB_ARRAY_ENABLED gl:GL_VERTEX_ATTRIB_ARRAY_ENABLED +ALIAS: GL_VERTEX_ATTRIB_ARRAY_SIZE gl:GL_VERTEX_ATTRIB_ARRAY_SIZE +ALIAS: GL_VERTEX_ATTRIB_ARRAY_STRIDE gl:GL_VERTEX_ATTRIB_ARRAY_STRIDE +ALIAS: GL_VERTEX_ATTRIB_ARRAY_TYPE gl:GL_VERTEX_ATTRIB_ARRAY_TYPE +ALIAS: GL_CURRENT_VERTEX_ATTRIB gl:GL_CURRENT_VERTEX_ATTRIB +ALIAS: GL_VERTEX_PROGRAM_POINT_SIZE gl:GL_VERTEX_PROGRAM_POINT_SIZE +ALIAS: GL_VERTEX_ATTRIB_ARRAY_POINTER gl:GL_VERTEX_ATTRIB_ARRAY_POINTER +ALIAS: GL_STENCIL_BACK_FUNC gl:GL_STENCIL_BACK_FUNC +ALIAS: GL_STENCIL_BACK_FAIL gl:GL_STENCIL_BACK_FAIL +ALIAS: GL_STENCIL_BACK_PASS_DEPTH_FAIL gl:GL_STENCIL_BACK_PASS_DEPTH_FAIL +ALIAS: GL_STENCIL_BACK_PASS_DEPTH_PASS gl:GL_STENCIL_BACK_PASS_DEPTH_PASS +ALIAS: GL_MAX_DRAW_BUFFERS gl:GL_MAX_DRAW_BUFFERS +ALIAS: GL_DRAW_BUFFER0 gl:GL_DRAW_BUFFER0 +ALIAS: GL_DRAW_BUFFER1 gl:GL_DRAW_BUFFER1 +ALIAS: GL_DRAW_BUFFER2 gl:GL_DRAW_BUFFER2 +ALIAS: GL_DRAW_BUFFER3 gl:GL_DRAW_BUFFER3 +ALIAS: GL_DRAW_BUFFER4 gl:GL_DRAW_BUFFER4 +ALIAS: GL_DRAW_BUFFER5 gl:GL_DRAW_BUFFER5 +ALIAS: GL_DRAW_BUFFER6 gl:GL_DRAW_BUFFER6 +ALIAS: GL_DRAW_BUFFER7 gl:GL_DRAW_BUFFER7 +ALIAS: GL_DRAW_BUFFER8 gl:GL_DRAW_BUFFER8 +ALIAS: GL_DRAW_BUFFER9 gl:GL_DRAW_BUFFER9 +ALIAS: GL_DRAW_BUFFER10 gl:GL_DRAW_BUFFER10 +ALIAS: GL_DRAW_BUFFER11 gl:GL_DRAW_BUFFER11 +ALIAS: GL_DRAW_BUFFER12 gl:GL_DRAW_BUFFER12 +ALIAS: GL_DRAW_BUFFER13 gl:GL_DRAW_BUFFER13 +ALIAS: GL_DRAW_BUFFER14 gl:GL_DRAW_BUFFER14 +ALIAS: GL_DRAW_BUFFER15 gl:GL_DRAW_BUFFER15 +ALIAS: GL_BLEND_EQUATION_ALPHA gl:GL_BLEND_EQUATION_ALPHA +ALIAS: GL_MAX_VERTEX_ATTRIBS gl:GL_MAX_VERTEX_ATTRIBS +ALIAS: GL_VERTEX_ATTRIB_ARRAY_NORMALIZED gl:GL_VERTEX_ATTRIB_ARRAY_NORMALIZED +ALIAS: GL_MAX_TEXTURE_IMAGE_UNITS gl:GL_MAX_TEXTURE_IMAGE_UNITS +ALIAS: GL_FRAGMENT_SHADER gl:GL_FRAGMENT_SHADER +ALIAS: GL_VERTEX_SHADER gl:GL_VERTEX_SHADER +ALIAS: GL_MAX_FRAGMENT_UNIFORM_COMPONENTS gl:GL_MAX_FRAGMENT_UNIFORM_COMPONENTS +ALIAS: GL_MAX_VERTEX_UNIFORM_COMPONENTS gl:GL_MAX_VERTEX_UNIFORM_COMPONENTS +ALIAS: GL_MAX_VARYING_FLOATS gl:GL_MAX_VARYING_FLOATS +ALIAS: GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS gl:GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS +ALIAS: GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS gl:GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS +ALIAS: GL_SHADER_TYPE gl:GL_SHADER_TYPE +ALIAS: GL_FLOAT_VEC2 gl:GL_FLOAT_VEC2 +ALIAS: GL_FLOAT_VEC3 gl:GL_FLOAT_VEC3 +ALIAS: GL_FLOAT_VEC4 gl:GL_FLOAT_VEC4 +ALIAS: GL_INT_VEC2 gl:GL_INT_VEC2 +ALIAS: GL_INT_VEC3 gl:GL_INT_VEC3 +ALIAS: GL_INT_VEC4 gl:GL_INT_VEC4 +ALIAS: GL_BOOL gl:GL_BOOL +ALIAS: GL_BOOL_VEC2 gl:GL_BOOL_VEC2 +ALIAS: GL_BOOL_VEC3 gl:GL_BOOL_VEC3 +ALIAS: GL_BOOL_VEC4 gl:GL_BOOL_VEC4 +ALIAS: GL_FLOAT_MAT2 gl:GL_FLOAT_MAT2 +ALIAS: GL_FLOAT_MAT3 gl:GL_FLOAT_MAT3 +ALIAS: GL_FLOAT_MAT4 gl:GL_FLOAT_MAT4 +ALIAS: GL_SAMPLER_1D gl:GL_SAMPLER_1D +ALIAS: GL_SAMPLER_2D gl:GL_SAMPLER_2D +ALIAS: GL_SAMPLER_3D gl:GL_SAMPLER_3D +ALIAS: GL_SAMPLER_CUBE gl:GL_SAMPLER_CUBE +ALIAS: GL_SAMPLER_1D_SHADOW gl:GL_SAMPLER_1D_SHADOW +ALIAS: GL_SAMPLER_2D_SHADOW gl:GL_SAMPLER_2D_SHADOW +ALIAS: GL_DELETE_STATUS gl:GL_DELETE_STATUS +ALIAS: GL_COMPILE_STATUS gl:GL_COMPILE_STATUS +ALIAS: GL_LINK_STATUS gl:GL_LINK_STATUS +ALIAS: GL_VALIDATE_STATUS gl:GL_VALIDATE_STATUS +ALIAS: GL_INFO_LOG_LENGTH gl:GL_INFO_LOG_LENGTH +ALIAS: GL_ATTACHED_SHADERS gl:GL_ATTACHED_SHADERS +ALIAS: GL_ACTIVE_UNIFORMS gl:GL_ACTIVE_UNIFORMS +ALIAS: GL_ACTIVE_UNIFORM_MAX_LENGTH gl:GL_ACTIVE_UNIFORM_MAX_LENGTH +ALIAS: GL_SHADER_SOURCE_LENGTH gl:GL_SHADER_SOURCE_LENGTH +ALIAS: GL_ACTIVE_ATTRIBUTES gl:GL_ACTIVE_ATTRIBUTES +ALIAS: GL_ACTIVE_ATTRIBUTE_MAX_LENGTH gl:GL_ACTIVE_ATTRIBUTE_MAX_LENGTH +ALIAS: GL_FRAGMENT_SHADER_DERIVATIVE_HINT gl:GL_FRAGMENT_SHADER_DERIVATIVE_HINT +ALIAS: GL_SHADING_LANGUAGE_VERSION gl:GL_SHADING_LANGUAGE_VERSION +ALIAS: GL_CURRENT_PROGRAM gl:GL_CURRENT_PROGRAM +ALIAS: GL_POINT_SPRITE_COORD_ORIGIN gl:GL_POINT_SPRITE_COORD_ORIGIN +ALIAS: GL_LOWER_LEFT gl:GL_LOWER_LEFT +ALIAS: GL_UPPER_LEFT gl:GL_UPPER_LEFT +ALIAS: GL_STENCIL_BACK_REF gl:GL_STENCIL_BACK_REF +ALIAS: GL_STENCIL_BACK_VALUE_MASK gl:GL_STENCIL_BACK_VALUE_MASK +ALIAS: GL_STENCIL_BACK_WRITEMASK gl:GL_STENCIL_BACK_WRITEMASK +ALIAS: GL_PIXEL_PACK_BUFFER gl:GL_PIXEL_PACK_BUFFER +ALIAS: GL_PIXEL_UNPACK_BUFFER gl:GL_PIXEL_UNPACK_BUFFER +ALIAS: GL_PIXEL_PACK_BUFFER_BINDING gl:GL_PIXEL_PACK_BUFFER_BINDING +ALIAS: GL_PIXEL_UNPACK_BUFFER_BINDING gl:GL_PIXEL_UNPACK_BUFFER_BINDING +ALIAS: GL_FLOAT_MAT2x3 gl:GL_FLOAT_MAT2x3 +ALIAS: GL_FLOAT_MAT2x4 gl:GL_FLOAT_MAT2x4 +ALIAS: GL_FLOAT_MAT3x2 gl:GL_FLOAT_MAT3x2 +ALIAS: GL_FLOAT_MAT3x4 gl:GL_FLOAT_MAT3x4 +ALIAS: GL_FLOAT_MAT4x2 gl:GL_FLOAT_MAT4x2 +ALIAS: GL_FLOAT_MAT4x3 gl:GL_FLOAT_MAT4x3 +ALIAS: GL_SRGB gl:GL_SRGB +ALIAS: GL_SRGB8 gl:GL_SRGB8 +ALIAS: GL_SRGB_ALPHA gl:GL_SRGB_ALPHA +ALIAS: GL_SRGB8_ALPHA8 gl:GL_SRGB8_ALPHA8 +ALIAS: GL_COMPRESSED_SRGB gl:GL_COMPRESSED_SRGB +ALIAS: GL_COMPRESSED_SRGB_ALPHA gl:GL_COMPRESSED_SRGB_ALPHA +ALIAS: GL_COMPARE_REF_TO_TEXTURE gl:GL_COMPARE_REF_TO_TEXTURE +ALIAS: GL_CLIP_DISTANCE0 gl:GL_CLIP_DISTANCE0 +ALIAS: GL_CLIP_DISTANCE1 gl:GL_CLIP_DISTANCE1 +ALIAS: GL_CLIP_DISTANCE2 gl:GL_CLIP_DISTANCE2 +ALIAS: GL_CLIP_DISTANCE3 gl:GL_CLIP_DISTANCE3 +ALIAS: GL_CLIP_DISTANCE4 gl:GL_CLIP_DISTANCE4 +ALIAS: GL_CLIP_DISTANCE5 gl:GL_CLIP_DISTANCE5 +ALIAS: GL_MAX_CLIP_DISTANCES gl:GL_MAX_CLIP_DISTANCES +ALIAS: GL_MAJOR_VERSION gl:GL_MAJOR_VERSION +ALIAS: GL_MINOR_VERSION gl:GL_MINOR_VERSION +ALIAS: GL_NUM_EXTENSIONS gl:GL_NUM_EXTENSIONS +ALIAS: GL_CONTEXT_FLAGS gl:GL_CONTEXT_FLAGS +ALIAS: GL_DEPTH_BUFFER gl:GL_DEPTH_BUFFER +ALIAS: GL_STENCIL_BUFFER gl:GL_STENCIL_BUFFER +ALIAS: GL_COMPRESSED_RED gl:GL_COMPRESSED_RED +ALIAS: GL_COMPRESSED_RG gl:GL_COMPRESSED_RG +ALIAS: GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT gl:GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT +ALIAS: GL_RGBA32F gl:GL_RGBA32F +ALIAS: GL_RGB32F gl:GL_RGB32F +ALIAS: GL_RGBA16F gl:GL_RGBA16F +ALIAS: GL_RGB16F gl:GL_RGB16F +ALIAS: GL_VERTEX_ATTRIB_ARRAY_INTEGER gl:GL_VERTEX_ATTRIB_ARRAY_INTEGER +ALIAS: GL_MAX_ARRAY_TEXTURE_LAYERS gl:GL_MAX_ARRAY_TEXTURE_LAYERS +ALIAS: GL_MIN_PROGRAM_TEXEL_OFFSET gl:GL_MIN_PROGRAM_TEXEL_OFFSET +ALIAS: GL_MAX_PROGRAM_TEXEL_OFFSET gl:GL_MAX_PROGRAM_TEXEL_OFFSET +ALIAS: GL_CLAMP_READ_COLOR gl:GL_CLAMP_READ_COLOR +ALIAS: GL_FIXED_ONLY gl:GL_FIXED_ONLY +ALIAS: GL_MAX_VARYING_COMPONENTS gl:GL_MAX_VARYING_COMPONENTS +ALIAS: GL_TEXTURE_1D_ARRAY gl:GL_TEXTURE_1D_ARRAY +ALIAS: GL_PROXY_TEXTURE_1D_ARRAY gl:GL_PROXY_TEXTURE_1D_ARRAY +ALIAS: GL_TEXTURE_2D_ARRAY gl:GL_TEXTURE_2D_ARRAY +ALIAS: GL_PROXY_TEXTURE_2D_ARRAY gl:GL_PROXY_TEXTURE_2D_ARRAY +ALIAS: GL_TEXTURE_BINDING_1D_ARRAY gl:GL_TEXTURE_BINDING_1D_ARRAY +ALIAS: GL_TEXTURE_BINDING_2D_ARRAY gl:GL_TEXTURE_BINDING_2D_ARRAY +ALIAS: GL_R11F_G11F_B10F gl:GL_R11F_G11F_B10F +ALIAS: GL_UNSIGNED_INT_10F_11F_11F_REV gl:GL_UNSIGNED_INT_10F_11F_11F_REV +ALIAS: GL_RGB9_E5 gl:GL_RGB9_E5 +ALIAS: GL_UNSIGNED_INT_5_9_9_9_REV gl:GL_UNSIGNED_INT_5_9_9_9_REV +ALIAS: GL_TEXTURE_SHARED_SIZE gl:GL_TEXTURE_SHARED_SIZE +ALIAS: GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH gl:GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH +ALIAS: GL_TRANSFORM_FEEDBACK_BUFFER_MODE gl:GL_TRANSFORM_FEEDBACK_BUFFER_MODE +ALIAS: GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS gl:GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS +ALIAS: GL_TRANSFORM_FEEDBACK_VARYINGS gl:GL_TRANSFORM_FEEDBACK_VARYINGS +ALIAS: GL_TRANSFORM_FEEDBACK_BUFFER_START gl:GL_TRANSFORM_FEEDBACK_BUFFER_START +ALIAS: GL_TRANSFORM_FEEDBACK_BUFFER_SIZE gl:GL_TRANSFORM_FEEDBACK_BUFFER_SIZE +ALIAS: GL_PRIMITIVES_GENERATED gl:GL_PRIMITIVES_GENERATED +ALIAS: GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN gl:GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN +ALIAS: GL_RASTERIZER_DISCARD gl:GL_RASTERIZER_DISCARD +ALIAS: GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS gl:GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS +ALIAS: GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS gl:GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS +ALIAS: GL_INTERLEAVED_ATTRIBS gl:GL_INTERLEAVED_ATTRIBS +ALIAS: GL_SEPARATE_ATTRIBS gl:GL_SEPARATE_ATTRIBS +ALIAS: GL_TRANSFORM_FEEDBACK_BUFFER gl:GL_TRANSFORM_FEEDBACK_BUFFER +ALIAS: GL_TRANSFORM_FEEDBACK_BUFFER_BINDING gl:GL_TRANSFORM_FEEDBACK_BUFFER_BINDING +ALIAS: GL_RGBA32UI gl:GL_RGBA32UI +ALIAS: GL_RGB32UI gl:GL_RGB32UI +ALIAS: GL_RGBA16UI gl:GL_RGBA16UI +ALIAS: GL_RGB16UI gl:GL_RGB16UI +ALIAS: GL_RGBA8UI gl:GL_RGBA8UI +ALIAS: GL_RGB8UI gl:GL_RGB8UI +ALIAS: GL_RGBA32I gl:GL_RGBA32I +ALIAS: GL_RGB32I gl:GL_RGB32I +ALIAS: GL_RGBA16I gl:GL_RGBA16I +ALIAS: GL_RGB16I gl:GL_RGB16I +ALIAS: GL_RGBA8I gl:GL_RGBA8I +ALIAS: GL_RGB8I gl:GL_RGB8I +ALIAS: GL_RED_INTEGER gl:GL_RED_INTEGER +ALIAS: GL_GREEN_INTEGER gl:GL_GREEN_INTEGER +ALIAS: GL_BLUE_INTEGER gl:GL_BLUE_INTEGER +ALIAS: GL_RGB_INTEGER gl:GL_RGB_INTEGER +ALIAS: GL_RGBA_INTEGER gl:GL_RGBA_INTEGER +ALIAS: GL_BGR_INTEGER gl:GL_BGR_INTEGER +ALIAS: GL_BGRA_INTEGER gl:GL_BGRA_INTEGER +ALIAS: GL_SAMPLER_1D_ARRAY gl:GL_SAMPLER_1D_ARRAY +ALIAS: GL_SAMPLER_2D_ARRAY gl:GL_SAMPLER_2D_ARRAY +ALIAS: GL_SAMPLER_1D_ARRAY_SHADOW gl:GL_SAMPLER_1D_ARRAY_SHADOW +ALIAS: GL_SAMPLER_2D_ARRAY_SHADOW gl:GL_SAMPLER_2D_ARRAY_SHADOW +ALIAS: GL_SAMPLER_CUBE_SHADOW gl:GL_SAMPLER_CUBE_SHADOW +ALIAS: GL_UNSIGNED_INT_VEC2 gl:GL_UNSIGNED_INT_VEC2 +ALIAS: GL_UNSIGNED_INT_VEC3 gl:GL_UNSIGNED_INT_VEC3 +ALIAS: GL_UNSIGNED_INT_VEC4 gl:GL_UNSIGNED_INT_VEC4 +ALIAS: GL_INT_SAMPLER_1D gl:GL_INT_SAMPLER_1D +ALIAS: GL_INT_SAMPLER_2D gl:GL_INT_SAMPLER_2D +ALIAS: GL_INT_SAMPLER_3D gl:GL_INT_SAMPLER_3D +ALIAS: GL_INT_SAMPLER_CUBE gl:GL_INT_SAMPLER_CUBE +ALIAS: GL_INT_SAMPLER_1D_ARRAY gl:GL_INT_SAMPLER_1D_ARRAY +ALIAS: GL_INT_SAMPLER_2D_ARRAY gl:GL_INT_SAMPLER_2D_ARRAY +ALIAS: GL_UNSIGNED_INT_SAMPLER_1D gl:GL_UNSIGNED_INT_SAMPLER_1D +ALIAS: GL_UNSIGNED_INT_SAMPLER_2D gl:GL_UNSIGNED_INT_SAMPLER_2D +ALIAS: GL_UNSIGNED_INT_SAMPLER_3D gl:GL_UNSIGNED_INT_SAMPLER_3D +ALIAS: GL_UNSIGNED_INT_SAMPLER_CUBE gl:GL_UNSIGNED_INT_SAMPLER_CUBE +ALIAS: GL_UNSIGNED_INT_SAMPLER_1D_ARRAY gl:GL_UNSIGNED_INT_SAMPLER_1D_ARRAY +ALIAS: GL_UNSIGNED_INT_SAMPLER_2D_ARRAY gl:GL_UNSIGNED_INT_SAMPLER_2D_ARRAY +ALIAS: GL_QUERY_WAIT gl:GL_QUERY_WAIT +ALIAS: GL_QUERY_NO_WAIT gl:GL_QUERY_NO_WAIT +ALIAS: GL_QUERY_BY_REGION_WAIT gl:GL_QUERY_BY_REGION_WAIT +ALIAS: GL_QUERY_BY_REGION_NO_WAIT gl:GL_QUERY_BY_REGION_NO_WAIT +ALIAS: GL_DEPTH_COMPONENT32F gl:GL_DEPTH_COMPONENT32F +ALIAS: GL_DEPTH32F_STENCIL8 gl:GL_DEPTH32F_STENCIL8 +ALIAS: GL_FLOAT_32_UNSIGNED_INT_24_8_REV gl:GL_FLOAT_32_UNSIGNED_INT_24_8_REV +ALIAS: GL_INVALID_FRAMEBUFFER_OPERATION gl:GL_INVALID_FRAMEBUFFER_OPERATION +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING gl:GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE gl:GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE gl:GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE gl:GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE gl:GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE gl:GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE gl:GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE gl:GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE +ALIAS: GL_FRAMEBUFFER_DEFAULT gl:GL_FRAMEBUFFER_DEFAULT +ALIAS: GL_FRAMEBUFFER_UNDEFINED gl:GL_FRAMEBUFFER_UNDEFINED +ALIAS: GL_DEPTH_STENCIL_ATTACHMENT gl:GL_DEPTH_STENCIL_ATTACHMENT +ALIAS: GL_INDEX gl:GL_INDEX +ALIAS: GL_MAX_RENDERBUFFER_SIZE gl:GL_MAX_RENDERBUFFER_SIZE +ALIAS: GL_DEPTH_STENCIL gl:GL_DEPTH_STENCIL +ALIAS: GL_UNSIGNED_INT_24_8 gl:GL_UNSIGNED_INT_24_8 +ALIAS: GL_DEPTH24_STENCIL8 gl:GL_DEPTH24_STENCIL8 +ALIAS: GL_TEXTURE_STENCIL_SIZE gl:GL_TEXTURE_STENCIL_SIZE +ALIAS: GL_TEXTURE_RED_TYPE gl:GL_TEXTURE_RED_TYPE +ALIAS: GL_TEXTURE_GREEN_TYPE gl:GL_TEXTURE_GREEN_TYPE +ALIAS: GL_TEXTURE_BLUE_TYPE gl:GL_TEXTURE_BLUE_TYPE +ALIAS: GL_TEXTURE_ALPHA_TYPE gl:GL_TEXTURE_ALPHA_TYPE +ALIAS: GL_TEXTURE_DEPTH_TYPE gl:GL_TEXTURE_DEPTH_TYPE +ALIAS: GL_UNSIGNED_NORMALIZED gl:GL_UNSIGNED_NORMALIZED +ALIAS: GL_FRAMEBUFFER_BINDING gl:GL_FRAMEBUFFER_BINDING +ALIAS: GL_DRAW_FRAMEBUFFER_BINDING gl:GL_DRAW_FRAMEBUFFER_BINDING +ALIAS: GL_RENDERBUFFER_BINDING gl:GL_RENDERBUFFER_BINDING +ALIAS: GL_READ_FRAMEBUFFER gl:GL_READ_FRAMEBUFFER +ALIAS: GL_DRAW_FRAMEBUFFER gl:GL_DRAW_FRAMEBUFFER +ALIAS: GL_READ_FRAMEBUFFER_BINDING gl:GL_READ_FRAMEBUFFER_BINDING +ALIAS: GL_RENDERBUFFER_SAMPLES gl:GL_RENDERBUFFER_SAMPLES +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE gl:GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME gl:GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL gl:GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE gl:GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE +ALIAS: GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER gl:GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER +ALIAS: GL_FRAMEBUFFER_COMPLETE gl:GL_FRAMEBUFFER_COMPLETE +ALIAS: GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT gl:GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT +ALIAS: GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT gl:GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT +ALIAS: GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER gl:GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER +ALIAS: GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER gl:GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER +ALIAS: GL_FRAMEBUFFER_UNSUPPORTED gl:GL_FRAMEBUFFER_UNSUPPORTED +ALIAS: GL_MAX_COLOR_ATTACHMENTS gl:GL_MAX_COLOR_ATTACHMENTS +ALIAS: GL_COLOR_ATTACHMENT0 gl:GL_COLOR_ATTACHMENT0 +ALIAS: GL_COLOR_ATTACHMENT1 gl:GL_COLOR_ATTACHMENT1 +ALIAS: GL_COLOR_ATTACHMENT2 gl:GL_COLOR_ATTACHMENT2 +ALIAS: GL_COLOR_ATTACHMENT3 gl:GL_COLOR_ATTACHMENT3 +ALIAS: GL_COLOR_ATTACHMENT4 gl:GL_COLOR_ATTACHMENT4 +ALIAS: GL_COLOR_ATTACHMENT5 gl:GL_COLOR_ATTACHMENT5 +ALIAS: GL_COLOR_ATTACHMENT6 gl:GL_COLOR_ATTACHMENT6 +ALIAS: GL_COLOR_ATTACHMENT7 gl:GL_COLOR_ATTACHMENT7 +ALIAS: GL_COLOR_ATTACHMENT8 gl:GL_COLOR_ATTACHMENT8 +ALIAS: GL_COLOR_ATTACHMENT9 gl:GL_COLOR_ATTACHMENT9 +ALIAS: GL_COLOR_ATTACHMENT10 gl:GL_COLOR_ATTACHMENT10 +ALIAS: GL_COLOR_ATTACHMENT11 gl:GL_COLOR_ATTACHMENT11 +ALIAS: GL_COLOR_ATTACHMENT12 gl:GL_COLOR_ATTACHMENT12 +ALIAS: GL_COLOR_ATTACHMENT13 gl:GL_COLOR_ATTACHMENT13 +ALIAS: GL_COLOR_ATTACHMENT14 gl:GL_COLOR_ATTACHMENT14 +ALIAS: GL_COLOR_ATTACHMENT15 gl:GL_COLOR_ATTACHMENT15 +ALIAS: GL_DEPTH_ATTACHMENT gl:GL_DEPTH_ATTACHMENT +ALIAS: GL_STENCIL_ATTACHMENT gl:GL_STENCIL_ATTACHMENT +ALIAS: GL_FRAMEBUFFER gl:GL_FRAMEBUFFER +ALIAS: GL_RENDERBUFFER gl:GL_RENDERBUFFER +ALIAS: GL_RENDERBUFFER_WIDTH gl:GL_RENDERBUFFER_WIDTH +ALIAS: GL_RENDERBUFFER_HEIGHT gl:GL_RENDERBUFFER_HEIGHT +ALIAS: GL_RENDERBUFFER_INTERNAL_FORMAT gl:GL_RENDERBUFFER_INTERNAL_FORMAT +ALIAS: GL_STENCIL_INDEX1 gl:GL_STENCIL_INDEX1 +ALIAS: GL_STENCIL_INDEX4 gl:GL_STENCIL_INDEX4 +ALIAS: GL_STENCIL_INDEX8 gl:GL_STENCIL_INDEX8 +ALIAS: GL_STENCIL_INDEX16 gl:GL_STENCIL_INDEX16 +ALIAS: GL_RENDERBUFFER_RED_SIZE gl:GL_RENDERBUFFER_RED_SIZE +ALIAS: GL_RENDERBUFFER_GREEN_SIZE gl:GL_RENDERBUFFER_GREEN_SIZE +ALIAS: GL_RENDERBUFFER_BLUE_SIZE gl:GL_RENDERBUFFER_BLUE_SIZE +ALIAS: GL_RENDERBUFFER_ALPHA_SIZE gl:GL_RENDERBUFFER_ALPHA_SIZE +ALIAS: GL_RENDERBUFFER_DEPTH_SIZE gl:GL_RENDERBUFFER_DEPTH_SIZE +ALIAS: GL_RENDERBUFFER_STENCIL_SIZE gl:GL_RENDERBUFFER_STENCIL_SIZE +ALIAS: GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE gl:GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE +ALIAS: GL_MAX_SAMPLES gl:GL_MAX_SAMPLES +ALIAS: GL_FRAMEBUFFER_SRGB gl:GL_FRAMEBUFFER_SRGB +ALIAS: GL_HALF_FLOAT gl:GL_HALF_FLOAT +ALIAS: GL_MAP_READ_BIT gl:GL_MAP_READ_BIT +ALIAS: GL_MAP_WRITE_BIT gl:GL_MAP_WRITE_BIT +ALIAS: GL_MAP_INVALIDATE_RANGE_BIT gl:GL_MAP_INVALIDATE_RANGE_BIT +ALIAS: GL_MAP_INVALIDATE_BUFFER_BIT gl:GL_MAP_INVALIDATE_BUFFER_BIT +ALIAS: GL_MAP_FLUSH_EXPLICIT_BIT gl:GL_MAP_FLUSH_EXPLICIT_BIT +ALIAS: GL_MAP_UNSYNCHRONIZED_BIT gl:GL_MAP_UNSYNCHRONIZED_BIT +ALIAS: GL_COMPRESSED_RED_RGTC1 gl:GL_COMPRESSED_RED_RGTC1 +ALIAS: GL_COMPRESSED_SIGNED_RED_RGTC1 gl:GL_COMPRESSED_SIGNED_RED_RGTC1 +ALIAS: GL_COMPRESSED_RG_RGTC2 gl:GL_COMPRESSED_RG_RGTC2 +ALIAS: GL_COMPRESSED_SIGNED_RG_RGTC2 gl:GL_COMPRESSED_SIGNED_RG_RGTC2 +ALIAS: GL_RG gl:GL_RG +ALIAS: GL_RG_INTEGER gl:GL_RG_INTEGER +ALIAS: GL_R8 gl:GL_R8 +ALIAS: GL_R16 gl:GL_R16 +ALIAS: GL_RG8 gl:GL_RG8 +ALIAS: GL_RG16 gl:GL_RG16 +ALIAS: GL_R16F gl:GL_R16F +ALIAS: GL_R32F gl:GL_R32F +ALIAS: GL_RG16F gl:GL_RG16F +ALIAS: GL_RG32F gl:GL_RG32F +ALIAS: GL_R8I gl:GL_R8I +ALIAS: GL_R8UI gl:GL_R8UI +ALIAS: GL_R16I gl:GL_R16I +ALIAS: GL_R16UI gl:GL_R16UI +ALIAS: GL_R32I gl:GL_R32I +ALIAS: GL_R32UI gl:GL_R32UI +ALIAS: GL_RG8I gl:GL_RG8I +ALIAS: GL_RG8UI gl:GL_RG8UI +ALIAS: GL_RG16I gl:GL_RG16I +ALIAS: GL_RG16UI gl:GL_RG16UI +ALIAS: GL_RG32I gl:GL_RG32I +ALIAS: GL_RG32UI gl:GL_RG32UI +ALIAS: GL_VERTEX_ARRAY_BINDING gl:GL_VERTEX_ARRAY_BINDING +ALIAS: GL_SAMPLER_2D_RECT gl:GL_SAMPLER_2D_RECT +ALIAS: GL_SAMPLER_2D_RECT_SHADOW gl:GL_SAMPLER_2D_RECT_SHADOW +ALIAS: GL_SAMPLER_BUFFER gl:GL_SAMPLER_BUFFER +ALIAS: GL_INT_SAMPLER_2D_RECT gl:GL_INT_SAMPLER_2D_RECT +ALIAS: GL_INT_SAMPLER_BUFFER gl:GL_INT_SAMPLER_BUFFER +ALIAS: GL_UNSIGNED_INT_SAMPLER_2D_RECT gl:GL_UNSIGNED_INT_SAMPLER_2D_RECT +ALIAS: GL_UNSIGNED_INT_SAMPLER_BUFFER gl:GL_UNSIGNED_INT_SAMPLER_BUFFER +ALIAS: GL_TEXTURE_BUFFER gl:GL_TEXTURE_BUFFER +ALIAS: GL_MAX_TEXTURE_BUFFER_SIZE gl:GL_MAX_TEXTURE_BUFFER_SIZE +ALIAS: GL_TEXTURE_BINDING_BUFFER gl:GL_TEXTURE_BINDING_BUFFER +ALIAS: GL_TEXTURE_BUFFER_DATA_STORE_BINDING gl:GL_TEXTURE_BUFFER_DATA_STORE_BINDING +ALIAS: GL_TEXTURE_BUFFER_FORMAT gl:GL_TEXTURE_BUFFER_FORMAT +ALIAS: GL_TEXTURE_RECTANGLE gl:GL_TEXTURE_RECTANGLE +ALIAS: GL_TEXTURE_BINDING_RECTANGLE gl:GL_TEXTURE_BINDING_RECTANGLE +ALIAS: GL_PROXY_TEXTURE_RECTANGLE gl:GL_PROXY_TEXTURE_RECTANGLE +ALIAS: GL_MAX_RECTANGLE_TEXTURE_SIZE gl:GL_MAX_RECTANGLE_TEXTURE_SIZE +ALIAS: GL_RED_SNORM gl:GL_RED_SNORM +ALIAS: GL_RG_SNORM gl:GL_RG_SNORM +ALIAS: GL_RGB_SNORM gl:GL_RGB_SNORM +ALIAS: GL_RGBA_SNORM gl:GL_RGBA_SNORM +ALIAS: GL_R8_SNORM gl:GL_R8_SNORM +ALIAS: GL_RG8_SNORM gl:GL_RG8_SNORM +ALIAS: GL_RGB8_SNORM gl:GL_RGB8_SNORM +ALIAS: GL_RGBA8_SNORM gl:GL_RGBA8_SNORM +ALIAS: GL_R16_SNORM gl:GL_R16_SNORM +ALIAS: GL_RG16_SNORM gl:GL_RG16_SNORM +ALIAS: GL_RGB16_SNORM gl:GL_RGB16_SNORM +ALIAS: GL_RGBA16_SNORM gl:GL_RGBA16_SNORM +ALIAS: GL_SIGNED_NORMALIZED gl:GL_SIGNED_NORMALIZED +ALIAS: GL_PRIMITIVE_RESTART gl:GL_PRIMITIVE_RESTART +ALIAS: GL_PRIMITIVE_RESTART_INDEX gl:GL_PRIMITIVE_RESTART_INDEX +ALIAS: GL_COPY_READ_BUFFER gl:GL_COPY_READ_BUFFER +ALIAS: GL_COPY_WRITE_BUFFER gl:GL_COPY_WRITE_BUFFER +ALIAS: GL_UNIFORM_BUFFER gl:GL_UNIFORM_BUFFER +ALIAS: GL_UNIFORM_BUFFER_BINDING gl:GL_UNIFORM_BUFFER_BINDING +ALIAS: GL_UNIFORM_BUFFER_START gl:GL_UNIFORM_BUFFER_START +ALIAS: GL_UNIFORM_BUFFER_SIZE gl:GL_UNIFORM_BUFFER_SIZE +ALIAS: GL_MAX_VERTEX_UNIFORM_BLOCKS gl:GL_MAX_VERTEX_UNIFORM_BLOCKS +ALIAS: GL_MAX_FRAGMENT_UNIFORM_BLOCKS gl:GL_MAX_FRAGMENT_UNIFORM_BLOCKS +ALIAS: GL_MAX_COMBINED_UNIFORM_BLOCKS gl:GL_MAX_COMBINED_UNIFORM_BLOCKS +ALIAS: GL_MAX_UNIFORM_BUFFER_BINDINGS gl:GL_MAX_UNIFORM_BUFFER_BINDINGS +ALIAS: GL_MAX_UNIFORM_BLOCK_SIZE gl:GL_MAX_UNIFORM_BLOCK_SIZE +ALIAS: GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS gl:GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS +ALIAS: GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS gl:GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS +ALIAS: GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT gl:GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT +ALIAS: GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH gl:GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH +ALIAS: GL_ACTIVE_UNIFORM_BLOCKS gl:GL_ACTIVE_UNIFORM_BLOCKS +ALIAS: GL_UNIFORM_TYPE gl:GL_UNIFORM_TYPE +ALIAS: GL_UNIFORM_SIZE gl:GL_UNIFORM_SIZE +ALIAS: GL_UNIFORM_NAME_LENGTH gl:GL_UNIFORM_NAME_LENGTH +ALIAS: GL_UNIFORM_BLOCK_INDEX gl:GL_UNIFORM_BLOCK_INDEX +ALIAS: GL_UNIFORM_OFFSET gl:GL_UNIFORM_OFFSET +ALIAS: GL_UNIFORM_ARRAY_STRIDE gl:GL_UNIFORM_ARRAY_STRIDE +ALIAS: GL_UNIFORM_MATRIX_STRIDE gl:GL_UNIFORM_MATRIX_STRIDE +ALIAS: GL_UNIFORM_IS_ROW_MAJOR gl:GL_UNIFORM_IS_ROW_MAJOR +ALIAS: GL_UNIFORM_BLOCK_BINDING gl:GL_UNIFORM_BLOCK_BINDING +ALIAS: GL_UNIFORM_BLOCK_DATA_SIZE gl:GL_UNIFORM_BLOCK_DATA_SIZE +ALIAS: GL_UNIFORM_BLOCK_NAME_LENGTH gl:GL_UNIFORM_BLOCK_NAME_LENGTH +ALIAS: GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS gl:GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS +ALIAS: GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES gl:GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES +ALIAS: GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER gl:GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER +ALIAS: GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER gl:GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER +ALIAS: GL_INVALID_INDEX gl:GL_INVALID_INDEX + +ALIAS: glCullFace gl:glCullFace +ALIAS: glFrontFace gl:glFrontFace +ALIAS: glHint gl:glHint +ALIAS: glLineWidth gl:glLineWidth +ALIAS: glPointSize gl:glPointSize +ALIAS: glPolygonMode gl:glPolygonMode +ALIAS: glScissor gl:glScissor +ALIAS: glTexParameterf gl:glTexParameterf +ALIAS: glTexParameterfv gl:glTexParameterfv +ALIAS: glTexParameteri gl:glTexParameteri +ALIAS: glTexParameteriv gl:glTexParameteriv +ALIAS: glTexImage1D gl:glTexImage1D +ALIAS: glTexImage2D gl:glTexImage2D +ALIAS: glDrawBuffer gl:glDrawBuffer +ALIAS: glClear gl:glClear +ALIAS: glClearColor gl:glClearColor +ALIAS: glClearStencil gl:glClearStencil +ALIAS: glClearDepth gl:glClearDepth +ALIAS: glStencilMask gl:glStencilMask +ALIAS: glColorMask gl:glColorMask +ALIAS: glDepthMask gl:glDepthMask +ALIAS: glDisable gl:glDisable +ALIAS: glEnable gl:glEnable +ALIAS: glFinish gl:glFinish +ALIAS: glFlush gl:glFlush +ALIAS: glBlendFunc gl:glBlendFunc +ALIAS: glLogicOp gl:glLogicOp +ALIAS: glStencilFunc gl:glStencilFunc +ALIAS: glStencilOp gl:glStencilOp +ALIAS: glDepthFunc gl:glDepthFunc +ALIAS: glPixelStoref gl:glPixelStoref +ALIAS: glPixelStorei gl:glPixelStorei +ALIAS: glReadBuffer gl:glReadBuffer +ALIAS: glReadPixels gl:glReadPixels +ALIAS: glGetBooleanv gl:glGetBooleanv +ALIAS: glGetDoublev gl:glGetDoublev +ALIAS: glGetError gl:glGetError +ALIAS: glGetFloatv gl:glGetFloatv +ALIAS: glGetIntegerv gl:glGetIntegerv +ALIAS: glGetString gl:glGetString +ALIAS: glGetTexImage gl:glGetTexImage +ALIAS: glGetTexParameterfv gl:glGetTexParameterfv +ALIAS: glGetTexParameteriv gl:glGetTexParameteriv +ALIAS: glGetTexLevelParameterfv gl:glGetTexLevelParameterfv +ALIAS: glGetTexLevelParameteriv gl:glGetTexLevelParameteriv +ALIAS: glIsEnabled gl:glIsEnabled +ALIAS: glDepthRange gl:glDepthRange +ALIAS: glViewport gl:glViewport +ALIAS: glDrawArrays gl:glDrawArrays +ALIAS: glDrawElements gl:glDrawElements +ALIAS: glGetPointerv gl:glGetPointerv +ALIAS: glPolygonOffset gl:glPolygonOffset +ALIAS: glCopyTexImage1D gl:glCopyTexImage1D +ALIAS: glCopyTexImage2D gl:glCopyTexImage2D +ALIAS: glCopyTexSubImage1D gl:glCopyTexSubImage1D +ALIAS: glCopyTexSubImage2D gl:glCopyTexSubImage2D +ALIAS: glTexSubImage1D gl:glTexSubImage1D +ALIAS: glTexSubImage2D gl:glTexSubImage2D +ALIAS: glBindTexture gl:glBindTexture +ALIAS: glDeleteTextures gl:glDeleteTextures +ALIAS: glGenTextures gl:glGenTextures +ALIAS: glIsTexture gl:glIsTexture +ALIAS: glBlendColor gl:glBlendColor +ALIAS: glBlendEquation gl:glBlendEquation +ALIAS: glDrawRangeElements gl:glDrawRangeElements +ALIAS: glTexImage3D gl:glTexImage3D +ALIAS: glTexSubImage3D gl:glTexSubImage3D +ALIAS: glCopyTexSubImage3D gl:glCopyTexSubImage3D +ALIAS: glActiveTexture gl:glActiveTexture +ALIAS: glSampleCoverage gl:glSampleCoverage +ALIAS: glCompressedTexImage3D gl:glCompressedTexImage3D +ALIAS: glCompressedTexImage2D gl:glCompressedTexImage2D +ALIAS: glCompressedTexImage1D gl:glCompressedTexImage1D +ALIAS: glCompressedTexSubImage3D gl:glCompressedTexSubImage3D +ALIAS: glCompressedTexSubImage2D gl:glCompressedTexSubImage2D +ALIAS: glCompressedTexSubImage1D gl:glCompressedTexSubImage1D +ALIAS: glGetCompressedTexImage gl:glGetCompressedTexImage +ALIAS: glBlendFuncSeparate gl:glBlendFuncSeparate +ALIAS: glMultiDrawArrays gl:glMultiDrawArrays +ALIAS: glMultiDrawElements gl:glMultiDrawElements +ALIAS: glPointParameterf gl:glPointParameterf +ALIAS: glPointParameterfv gl:glPointParameterfv +ALIAS: glPointParameteri gl:glPointParameteri +ALIAS: glPointParameteriv gl:glPointParameteriv +ALIAS: glGenQueries gl:glGenQueries +ALIAS: glDeleteQueries gl:glDeleteQueries +ALIAS: glIsQuery gl:glIsQuery +ALIAS: glBeginQuery gl:glBeginQuery +ALIAS: glEndQuery gl:glEndQuery +ALIAS: glGetQueryiv gl:glGetQueryiv +ALIAS: glGetQueryObjectiv gl:glGetQueryObjectiv +ALIAS: glGetQueryObjectuiv gl:glGetQueryObjectuiv +ALIAS: glBindBuffer gl:glBindBuffer +ALIAS: glDeleteBuffers gl:glDeleteBuffers +ALIAS: glGenBuffers gl:glGenBuffers +ALIAS: glIsBuffer gl:glIsBuffer +ALIAS: glBufferData gl:glBufferData +ALIAS: glBufferSubData gl:glBufferSubData +ALIAS: glGetBufferSubData gl:glGetBufferSubData +ALIAS: glMapBuffer gl:glMapBuffer +ALIAS: glUnmapBuffer gl:glUnmapBuffer +ALIAS: glGetBufferParameteriv gl:glGetBufferParameteriv +ALIAS: glGetBufferPointerv gl:glGetBufferPointerv +ALIAS: glBlendEquationSeparate gl:glBlendEquationSeparate +ALIAS: glDrawBuffers gl:glDrawBuffers +ALIAS: glStencilOpSeparate gl:glStencilOpSeparate +ALIAS: glStencilFuncSeparate gl:glStencilFuncSeparate +ALIAS: glStencilMaskSeparate gl:glStencilMaskSeparate +ALIAS: glAttachShader gl:glAttachShader +ALIAS: glBindAttribLocation gl:glBindAttribLocation +ALIAS: glCompileShader gl:glCompileShader +ALIAS: glCreateProgram gl:glCreateProgram +ALIAS: glCreateShader gl:glCreateShader +ALIAS: glDeleteProgram gl:glDeleteProgram +ALIAS: glDeleteShader gl:glDeleteShader +ALIAS: glDetachShader gl:glDetachShader +ALIAS: glDisableVertexAttribArray gl:glDisableVertexAttribArray +ALIAS: glEnableVertexAttribArray gl:glEnableVertexAttribArray +ALIAS: glGetActiveAttrib gl:glGetActiveAttrib +ALIAS: glGetActiveUniform gl:glGetActiveUniform +ALIAS: glGetAttachedShaders gl:glGetAttachedShaders +ALIAS: glGetAttribLocation gl:glGetAttribLocation +ALIAS: glGetProgramiv gl:glGetProgramiv +ALIAS: glGetProgramInfoLog gl:glGetProgramInfoLog +ALIAS: glGetShaderiv gl:glGetShaderiv +ALIAS: glGetShaderInfoLog gl:glGetShaderInfoLog +ALIAS: glGetShaderSource gl:glGetShaderSource +ALIAS: glGetUniformLocation gl:glGetUniformLocation +ALIAS: glGetUniformfv gl:glGetUniformfv +ALIAS: glGetUniformiv gl:glGetUniformiv +ALIAS: glGetVertexAttribdv gl:glGetVertexAttribdv +ALIAS: glGetVertexAttribfv gl:glGetVertexAttribfv +ALIAS: glGetVertexAttribiv gl:glGetVertexAttribiv +ALIAS: glGetVertexAttribPointerv gl:glGetVertexAttribPointerv +ALIAS: glIsProgram gl:glIsProgram +ALIAS: glIsShader gl:glIsShader +ALIAS: glLinkProgram gl:glLinkProgram +ALIAS: glShaderSource gl:glShaderSource +ALIAS: glUseProgram gl:glUseProgram +ALIAS: glUniform1f gl:glUniform1f +ALIAS: glUniform2f gl:glUniform2f +ALIAS: glUniform3f gl:glUniform3f +ALIAS: glUniform4f gl:glUniform4f +ALIAS: glUniform1i gl:glUniform1i +ALIAS: glUniform2i gl:glUniform2i +ALIAS: glUniform3i gl:glUniform3i +ALIAS: glUniform4i gl:glUniform4i +ALIAS: glUniform1fv gl:glUniform1fv +ALIAS: glUniform2fv gl:glUniform2fv +ALIAS: glUniform3fv gl:glUniform3fv +ALIAS: glUniform4fv gl:glUniform4fv +ALIAS: glUniform1iv gl:glUniform1iv +ALIAS: glUniform2iv gl:glUniform2iv +ALIAS: glUniform3iv gl:glUniform3iv +ALIAS: glUniform4iv gl:glUniform4iv +ALIAS: glUniformMatrix2fv gl:glUniformMatrix2fv +ALIAS: glUniformMatrix3fv gl:glUniformMatrix3fv +ALIAS: glUniformMatrix4fv gl:glUniformMatrix4fv +ALIAS: glValidateProgram gl:glValidateProgram +ALIAS: glVertexAttrib1d gl:glVertexAttrib1d +ALIAS: glVertexAttrib1dv gl:glVertexAttrib1dv +ALIAS: glVertexAttrib1f gl:glVertexAttrib1f +ALIAS: glVertexAttrib1fv gl:glVertexAttrib1fv +ALIAS: glVertexAttrib1s gl:glVertexAttrib1s +ALIAS: glVertexAttrib1sv gl:glVertexAttrib1sv +ALIAS: glVertexAttrib2d gl:glVertexAttrib2d +ALIAS: glVertexAttrib2dv gl:glVertexAttrib2dv +ALIAS: glVertexAttrib2f gl:glVertexAttrib2f +ALIAS: glVertexAttrib2fv gl:glVertexAttrib2fv +ALIAS: glVertexAttrib2s gl:glVertexAttrib2s +ALIAS: glVertexAttrib2sv gl:glVertexAttrib2sv +ALIAS: glVertexAttrib3d gl:glVertexAttrib3d +ALIAS: glVertexAttrib3dv gl:glVertexAttrib3dv +ALIAS: glVertexAttrib3f gl:glVertexAttrib3f +ALIAS: glVertexAttrib3fv gl:glVertexAttrib3fv +ALIAS: glVertexAttrib3s gl:glVertexAttrib3s +ALIAS: glVertexAttrib3sv gl:glVertexAttrib3sv +ALIAS: glVertexAttrib4Nbv gl:glVertexAttrib4Nbv +ALIAS: glVertexAttrib4Niv gl:glVertexAttrib4Niv +ALIAS: glVertexAttrib4Nsv gl:glVertexAttrib4Nsv +ALIAS: glVertexAttrib4Nub gl:glVertexAttrib4Nub +ALIAS: glVertexAttrib4Nubv gl:glVertexAttrib4Nubv +ALIAS: glVertexAttrib4Nuiv gl:glVertexAttrib4Nuiv +ALIAS: glVertexAttrib4Nusv gl:glVertexAttrib4Nusv +ALIAS: glVertexAttrib4bv gl:glVertexAttrib4bv +ALIAS: glVertexAttrib4d gl:glVertexAttrib4d +ALIAS: glVertexAttrib4dv gl:glVertexAttrib4dv +ALIAS: glVertexAttrib4f gl:glVertexAttrib4f +ALIAS: glVertexAttrib4fv gl:glVertexAttrib4fv +ALIAS: glVertexAttrib4iv gl:glVertexAttrib4iv +ALIAS: glVertexAttrib4s gl:glVertexAttrib4s +ALIAS: glVertexAttrib4sv gl:glVertexAttrib4sv +ALIAS: glVertexAttrib4ubv gl:glVertexAttrib4ubv +ALIAS: glVertexAttrib4uiv gl:glVertexAttrib4uiv +ALIAS: glVertexAttrib4usv gl:glVertexAttrib4usv +ALIAS: glVertexAttribPointer gl:glVertexAttribPointer +ALIAS: glUniformMatrix2x3fv gl:glUniformMatrix2x3fv +ALIAS: glUniformMatrix3x2fv gl:glUniformMatrix3x2fv +ALIAS: glUniformMatrix2x4fv gl:glUniformMatrix2x4fv +ALIAS: glUniformMatrix4x2fv gl:glUniformMatrix4x2fv +ALIAS: glUniformMatrix3x4fv gl:glUniformMatrix3x4fv +ALIAS: glUniformMatrix4x3fv gl:glUniformMatrix4x3fv +ALIAS: glColorMaski gl:glColorMaski +ALIAS: glGetBooleani_v gl:glGetBooleani_v +ALIAS: glGetIntegeri_v gl:glGetIntegeri_v +ALIAS: glEnablei gl:glEnablei +ALIAS: glDisablei gl:glDisablei +ALIAS: glIsEnabledi gl:glIsEnabledi +ALIAS: glBeginTransformFeedback gl:glBeginTransformFeedback +ALIAS: glEndTransformFeedback gl:glEndTransformFeedback +ALIAS: glBindBufferRange gl:glBindBufferRange +ALIAS: glBindBufferBase gl:glBindBufferBase +ALIAS: glTransformFeedbackVaryings gl:glTransformFeedbackVaryings +ALIAS: glGetTransformFeedbackVarying gl:glGetTransformFeedbackVarying +ALIAS: glClampColor gl:glClampColor +ALIAS: glBeginConditionalRender gl:glBeginConditionalRender +ALIAS: glEndConditionalRender gl:glEndConditionalRender +ALIAS: glVertexAttribIPointer gl:glVertexAttribIPointer +ALIAS: glGetVertexAttribIiv gl:glGetVertexAttribIiv +ALIAS: glGetVertexAttribIuiv gl:glGetVertexAttribIuiv +ALIAS: glGetUniformuiv gl:glGetUniformuiv +ALIAS: glBindFragDataLocation gl:glBindFragDataLocation +ALIAS: glGetFragDataLocation gl:glGetFragDataLocation +ALIAS: glUniform1ui gl:glUniform1ui +ALIAS: glUniform2ui gl:glUniform2ui +ALIAS: glUniform3ui gl:glUniform3ui +ALIAS: glUniform4ui gl:glUniform4ui +ALIAS: glUniform1uiv gl:glUniform1uiv +ALIAS: glUniform2uiv gl:glUniform2uiv +ALIAS: glUniform3uiv gl:glUniform3uiv +ALIAS: glUniform4uiv gl:glUniform4uiv +ALIAS: glTexParameterIiv gl:glTexParameterIiv +ALIAS: glTexParameterIuiv gl:glTexParameterIuiv +ALIAS: glGetTexParameterIiv gl:glGetTexParameterIiv +ALIAS: glGetTexParameterIuiv gl:glGetTexParameterIuiv +ALIAS: glClearBufferiv gl:glClearBufferiv +ALIAS: glClearBufferuiv gl:glClearBufferuiv +ALIAS: glClearBufferfv gl:glClearBufferfv +ALIAS: glClearBufferfi gl:glClearBufferfi +ALIAS: glGetStringi gl:glGetStringi +ALIAS: glDrawArraysInstanced gl:glDrawArraysInstanced +ALIAS: glDrawElementsInstanced gl:glDrawElementsInstanced +ALIAS: glTexBuffer gl:glTexBuffer +ALIAS: glPrimitiveRestartIndex gl:glPrimitiveRestartIndex +ALIAS: glIsRenderbuffer gl:glIsRenderbuffer +ALIAS: glBindRenderbuffer gl:glBindRenderbuffer +ALIAS: glDeleteRenderbuffers gl:glDeleteRenderbuffers +ALIAS: glGenRenderbuffers gl:glGenRenderbuffers +ALIAS: glRenderbufferStorage gl:glRenderbufferStorage +ALIAS: glGetRenderbufferParameteriv gl:glGetRenderbufferParameteriv +ALIAS: glIsFramebuffer gl:glIsFramebuffer +ALIAS: glBindFramebuffer gl:glBindFramebuffer +ALIAS: glDeleteFramebuffers gl:glDeleteFramebuffers +ALIAS: glGenFramebuffers gl:glGenFramebuffers +ALIAS: glCheckFramebufferStatus gl:glCheckFramebufferStatus +ALIAS: glFramebufferTexture1D gl:glFramebufferTexture1D +ALIAS: glFramebufferTexture2D gl:glFramebufferTexture2D +ALIAS: glFramebufferTexture3D gl:glFramebufferTexture3D +ALIAS: glFramebufferRenderbuffer gl:glFramebufferRenderbuffer +ALIAS: glGetFramebufferAttachmentParameteriv gl:glGetFramebufferAttachmentParameteriv +ALIAS: glGenerateMipmap gl:glGenerateMipmap +ALIAS: glBlitFramebuffer gl:glBlitFramebuffer +ALIAS: glRenderbufferStorageMultisample gl:glRenderbufferStorageMultisample +ALIAS: glFramebufferTextureLayer gl:glFramebufferTextureLayer +ALIAS: glMapBufferRange gl:glMapBufferRange +ALIAS: glFlushMappedBufferRange gl:glFlushMappedBufferRange +ALIAS: glBindVertexArray gl:glBindVertexArray +ALIAS: glDeleteVertexArrays gl:glDeleteVertexArrays +ALIAS: glGenVertexArrays gl:glGenVertexArrays +ALIAS: glIsVertexArray gl:glIsVertexArray +ALIAS: glGetUniformIndices gl:glGetUniformIndices +ALIAS: glGetActiveUniformsiv gl:glGetActiveUniformsiv +ALIAS: glGetActiveUniformName gl:glGetActiveUniformName +ALIAS: glGetUniformBlockIndex gl:glGetUniformBlockIndex +ALIAS: glGetActiveUniformBlockiv gl:glGetActiveUniformBlockiv +ALIAS: glGetActiveUniformBlockName gl:glGetActiveUniformBlockName +ALIAS: glUniformBlockBinding gl:glUniformBlockBinding +ALIAS: glCopyBufferSubData gl:glCopyBufferSubData diff --git a/basis/opengl/gl3/summary.txt b/basis/opengl/gl3/summary.txt new file mode 100644 index 0000000000..ae758b2fff --- /dev/null +++ b/basis/opengl/gl3/summary.txt @@ -0,0 +1 @@ +Forward-compatible subset of OpenGL 3.1 From b6abd4a90cc0dfde3e204013626df4bed4523fe3 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Thu, 25 Jun 2009 09:15:04 -0500 Subject: [PATCH 13/13] windows.offscreen:make-bitmap-image wasn't filling in the component-type of the image object it makes --- basis/windows/offscreen/offscreen.factor | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/basis/windows/offscreen/offscreen.factor b/basis/windows/offscreen/offscreen.factor index 6e65958220..fea7240bf6 100755 --- a/basis/windows/offscreen/offscreen.factor +++ b/basis/windows/offscreen/offscreen.factor @@ -42,6 +42,7 @@ IN: windows.offscreen swap >>dim swap >>bitmap BGRX >>component-order + ubyte-components >>component-type t >>upside-down? ; : with-memory-dc ( quot: ( hDC -- ) -- ) @@ -50,4 +51,4 @@ IN: windows.offscreen :: make-bitmap-image ( dim dc quot -- image ) dim dc make-bitmap [ &DeleteObject drop ] dip quot dip - dim bitmap>image ; inline \ No newline at end of file + dim bitmap>image ; inline