Feature Requests item #2612731, was opened at 2009-02-18 13:55 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=507082&aid=2612731...
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Priority: 5 Private: No Submitted By: Cyrille Henry (nusmuk) Assigned to: Nobody/Anonymous (nobody) Summary: glsl_geometry
Initial Comment: it would be great to add a glsl_geometry object to load geometry shader. It should be compatible with already existing glsl_vertex and glsl_fragment object...
----------------------------------------------------------------------
You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=507082&aid=2612731...
SourceForge.net wrote:
Initial Comment: it would be great to add a glsl_geometry object to load geometry shader. It should be compatible with already existing glsl_vertex and glsl_fragment object...
if someone with newer hardware than me feels like trying them out, go ahead...i checked some code in yesterday.
fgamsdr IOhannes
Hi, I see two glsl_geometry files in the svn. but I am not sure which version of svn I have to check out? it's not 0.91-3?? has anyone already tested the objects? Marius.
IOhannes m zmoelnig wrote:
SourceForge.net wrote:
Initial Comment: it would be great to add a glsl_geometry object to load geometry shader. It should be compatible with already existing glsl_vertex and glsl_fragment object...
if someone with newer hardware than me feels like trying them out, go ahead...i checked some code in yesterday.
fgamsdr IOhannes
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
marius schebella wrote:
Hi, I see two glsl_geometry files in the svn. but I am not sure which version of svn I have to check out? it's not 0.91-3??
i have to admit that i don't understand your question. there are indeed 2 glsl_geometry files (the .cpp file and the corresponding header file). you can find these files in the trunk (and not in any 0.91 branch nor release which will never get additional objects)
has anyone already tested the objects?
yes, both me and cyrille, with no success. unfortunately i (think i) don't have a machine with geometry-shader support to really make it work.
gmadsr. IOhannes
2009/3/26 IOhannes m zmölnig zmoelnig@iem.at:
marius schebella wrote:
Hi, I see two glsl_geometry files in the svn. but I am not sure which version of svn I have to check out? it's not 0.91-3??
i have to admit that i don't understand your question. there are indeed 2 glsl_geometry files (the .cpp file and the corresponding header file). you can find these files in the trunk (and not in any 0.91 branch nor release which will never get additional objects)
oops, I got that wrong, I checked out the 0.-91.3 branch recently and did not find the files there. now I am fine, besides the fact that trunk does not compile for me. but that's a different story.
has anyone already tested the objects?
yes, both me and cyrille, with no success. unfortunately i (think i) don't have a machine with geometry-shader support to really make it work.
I have to admit I have not looked up any HW specs yet, which cards support geometry shaders. hopefully I find one in Salzburg ;), but even if it only runs as a software solution it might still be worth trying out. marius.
Hi, great to get a start. picked the glsl and glew files from trunk compiled on mac 10.5.6
in the glew.ccp was the (char*) missing before malloc symbolName = (char*)malloc(strlen((const char*)name) + 2); glew.cpp:83: error: invalid conversion from ‘void*’ to ‘char*’
vertex and fragment seems working normal even though -GL: invalid value- appears in pd window the glsl_geometry object didn´t post a shaderID
the geometry code needs the glProgramParameteriEXT functions to declare the shader input and output Primitives types and the count of vertices this have to set parameter have to set after creating the program but before linking
matthias schrieb marius schebella:
Hi, I see two glsl_geometry files in the svn. but I am not sure which version of svn I have to check out? it's not 0.91-3?? has anyone already tested the objects? Marius.
IOhannes m zmoelnig wrote:
SourceForge.net wrote:
Initial Comment: it would be great to add a glsl_geometry object to load geometry shader. It should be compatible with already existing glsl_vertex and glsl_fragment object...
if someone with newer hardware than me feels like trying them out, go ahead...i checked some code in yesterday. fgamsdr IOhannes
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
hi matthias, thanks for fixing the glew.cpp bug. since I have not really worked with geometry shaders before I have to start from scratch, and would appreciate some example patches, how to link the shader. is it possible to setup the glProgramParameteriEXT functions within Pd? greetings from the breeding gem community in salzburg. marius.
Matthias Neuenhofer wrote:
Hi, great to get a start. picked the glsl and glew files from trunk compiled on mac 10.5.6
in the glew.ccp was the (char*) missing before malloc symbolName = (char*)malloc(strlen((const char*)name) + 2); glew.cpp:83: error: invalid conversion from ‘void*’ to ‘char*’
vertex and fragment seems working normal even though -GL: invalid value- appears in pd window the glsl_geometry object didnŽt post a shaderID
the geometry code needs the glProgramParameteriEXT functions to declare the shader input and output Primitives types and the count of vertices this have to set parameter have to set after creating the program but before linking
matthias schrieb marius schebella:
Hi, I see two glsl_geometry files in the svn. but I am not sure which version of svn I have to check out? it's not 0.91-3?? has anyone already tested the objects? Marius.
IOhannes m zmoelnig wrote:
SourceForge.net wrote:
Initial Comment: it would be great to add a glsl_geometry object to load geometry shader. It should be compatible with already existing glsl_vertex and glsl_fragment object...
if someone with newer hardware than me feels like trying them out, go ahead...i checked some code in yesterday. fgamsdr IOhannes
GEM-dev mailing list GEM-dev@iem.at mailto:GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
GEM-dev mailing list GEM-dev@iem.at mailto:GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
hi marius i also have no praxis with the geometry shader fiddling a bit with OpenGL Shader Builder Apple Devs tools. got my knowledge recently here - clearly arranged web.engr.oregonstate.edu/~mjb/glman/ClassNotes/geometry_shader.pdf
think should possible set the glProgramParameteriEXT in Pd like draw types for polygons … as i understood the parameter code has add to the glsl_program object - or? should be this for input GL_POINTS GL_LINES GL_LINES_ADJACENCY_EXT GL_TRIANGLES GL_TRIANGLES_ADJACENCY_EXT
for output GL_POINTS GL_LINE_STRIP GL_TRIANGLE_STRIP
set the default to TRIANGLES and maximum number of vertices the geometry shader will be emitting to 1
when someone can go further with this i will test it my c++ is just growing since started using pd :)
matthias
Am 26.03.2009 um 18:20 schrieb marius schebella:
hi matthias, thanks for fixing the glew.cpp bug. since I have not really worked with geometry shaders before I have to start from scratch, and would appreciate some example patches, how to link the shader. is it possible to setup the glProgramParameteriEXT functions within Pd? greetings from the breeding gem community in salzburg. marius.
Matthias Neuenhofer wrote:
Hi, great to get a start. picked the glsl and glew files from trunk compiled on mac 10.5.6 in the glew.ccp was the (char*) missing before malloc symbolName = (char*)malloc(strlen((const char*)name) + 2); glew.cpp:83: error: invalid conversion from ‘void*’ to ‘char*’ vertex and fragment seems working normal even though -GL: invalid value- appears in pd window the glsl_geometry object didn´t post a shaderID the geometry code needs the glProgramParameteriEXT functions to declare the shader input and output Primitives types and the count of vertices this have to set parameter have to set after creating the program but before linking matthias schrieb marius schebella:
Hi, I see two glsl_geometry files in the svn. but I am not sure which version of svn I have to check out? it's not 0.91-3?? has anyone already tested the objects? Marius.
IOhannes m zmoelnig wrote:
SourceForge.net wrote:
Initial Comment: it would be great to add a glsl_geometry object to load geometry shader. It should be compatible with already existing glsl_vertex and glsl_fragment object...
if someone with newer hardware than me feels like trying them out, go ahead...i checked some code in yesterday. fgamsdr IOhannes
GEM-dev mailing list GEM-dev@iem.at mailto:GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
GEM-dev mailing list GEM-dev@iem.at mailto:GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
Quoting "Matthias Neuenhofer" matthias@neuenhofer.de:
set the default to TRIANGLES and maximum number of vertices the geometry shader will be emitting to 1
ok, i just updated the [glsl_program] to use triangles by default and set the default number of vertices to the maximum available. (everything settable of course)
so at least i was able to run a primitive geometry shader within Gem...
fgamsdr IOhannes
---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.
wow, cooooool!
thanks a lot for fixing that. i'm sure i'll like the geometry shader.
but for now, i can't compile Gem. it's certainly obvious, but after svn update, make clean, ./configure and make, i've got this error :
nusmuk@nusmuk:~/pd/Gem/src$ make make -C Base make[1]: entrant dans le répertoire « /home/nusmuk/pd/Gem/src/Base » g++ -c @ARCH_FLAGS@ -g -O2 -fPIC -freg-struct-return -O3 -falign-loops=32 -falign-functions=32 -falign-jumps=32 -funroll-loops -ffast-math -mmmx -I/usr/include/lqt -I/usr/include/lqt -I/usr/include/avifile-0.7 -I/usr/include/FTGL -I/usr/include/freetype2 -I.. -I/usr/include/FTGL -I/usr/include/freetype2 GemBase.cpp -o ../Objects/GemBase.o g++: @ARCH_FLAGS@ : Aucun fichier ou dossier de ce type make[1]: *** [GemBase.o] Erreur 1 make[1]: quittant le répertoire « /home/nusmuk/pd/Gem/src/Base » make: *** [Base] Erreur 2
could you help me fixing that one?
what is the primitive geometry shader you where able to run? thee one i send to the list or an other one?
thanks Cyrille
zmoelnig@iem.at a écrit :
Quoting "Matthias Neuenhofer" matthias@neuenhofer.de:
set the default to TRIANGLES and maximum number of vertices the geometry shader will be emitting to 1
ok, i just updated the [glsl_program] to use triangles by default and set the default number of vertices to the maximum available. (everything settable of course)
so at least i was able to run a primitive geometry shader within Gem...
fgamsdr IOhannes
This message was sent using IMP, the Internet Messaging Program.
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
cyrille henry wrote:
wow, cooooool!
g++: @ARCH_FLAGS@ : Aucun fichier ou dossier de ce type
could you help me fixing that one?
run ./autogen.sh (which runs aclocal and autoconf); i have removed the implicit calling of aclocal and autoconf from the Makefile (as i think these created more problems than fixed)
what is the primitive geometry shader you where able to run? thee one i send to the list or an other one?
yep, i used these (though i actually found them myself :-))
fgma.sdr# IOhannes
thanks Cyrille
zmoelnig@iem.at a écrit :
Quoting "Matthias Neuenhofer" matthias@neuenhofer.de:
set the default to TRIANGLES and maximum number of vertices the geometry shader will be emitting to 1
ok, i just updated the [glsl_program] to use triangles by default and set the default number of vertices to the maximum available. (everything settable of course)
so at least i was able to run a primitive geometry shader within Gem...
fgamsdr IOhannes
This message was sent using IMP, the Internet Messaging Program.
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
ok, thanks it now compile.
but i still have the same problem trying to run the shader : i've got invalid operation message at every frame.
could you post the patch that worked? or make it an official Gem example? or have you already done it?
thanks Cyrille
IOhannes m zmölnig a écrit :
cyrille henry wrote:
wow, cooooool!
g++: @ARCH_FLAGS@ : Aucun fichier ou dossier de ce type
could you help me fixing that one?
run ./autogen.sh (which runs aclocal and autoconf); i have removed the implicit calling of aclocal and autoconf from the Makefile (as i think these created more problems than fixed)
what is the primitive geometry shader you where able to run? thee one i send to the list or an other one?
yep, i used these (though i actually found them myself :-))
fgma.sdr# IOhannes
thanks Cyrille
zmoelnig@iem.at a écrit :
Quoting "Matthias Neuenhofer" matthias@neuenhofer.de:
set the default to TRIANGLES and maximum number of vertices the geometry shader will be emitting to 1
ok, i just updated the [glsl_program] to use triangles by default and set the default number of vertices to the maximum available. (everything settable of course)
so at least i was able to run a primitive geometry shader within Gem...
fgamsdr IOhannes
This message was sent using IMP, the Internet Messaging Program.
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
cyrille henry wrote:
ok, thanks it now compiles.
but i still have the same problem trying to run the shader : i've got invalid operation message at every frame.
this you get when the geometry you work on (e.g. generated by [square]) does not match the geometry specified for the geometry-shader (as set in [glsl_program])
the default in/out geometry is GL_TRIANGLES (in) and GL_TRIANGLE_STRIP (out)m which should work with "fill"ed [square]. if you change the [square] to "line", you have to change the in/out to GL_LINES (and/or GL_LINE_STRIP); do so by sending a [geometry_type GL_LINES GL_LINE_STRIP( to [glsl_program] (!) before linking the shaders.
could you post the patch that worked?
i used (among others) your patch, and it worked (iirc) out-of-the box with [cube], but not with [curve] (though it should be enough to change the in/out geometry as mentioned above)
or make it an official Gem example?
yes, but the shader provided is so extraordinarily boring that i wanted to wait for a nice one from you...:-)
or have you already done it?
nope. i'm off that machine now, i will check in a known-to-work example when i'm back at it...
mfg.sd IOhannes
IOhannes m zmölnig a écrit :
cyrille henry wrote:
...
could you post the patch that worked?
i used (among others) your patch, and it worked (iirc) out-of-the box with [cube], but not with [curve] (though it should be enough to change the in/out geometry as mentioned above)
ok, thanks it is working here also.
or make it an official Gem example?
yes, but the shader provided is so extraordinarily boring that i wanted to wait for a nice one from you...:-)
ok. now that it's working, i'll investigate, and commit more example in the glsl help section.
or have you already done it?
nope. i'm off that machine now, i will check in a known-to-work example when i'm back at it...
ok thanks a lots for having geometry shader do work.
Cyrille
mfg.sd IOhannes
IOhannes m zmölnig a écrit :
cyrille henry wrote:
could you post the patch that worked?
i used (among others) your patch, and it worked (iirc) out-of-the box with [cube], but not with [curve] (though it should be enough to change the in/out geometry as mentioned above)
ok, it work here also with cube. but i can't make it work with line. even sending [geometry_type GL_LINES GL_LINE_STRIP( to glsl_program befor the linking.
btw, since this message has to be send befor linking, would it be possible to add a message to unlink the shaders?
or make it an official Gem example?
yes, but the shader provided is so extraordinarily boring that i wanted to wait for a nice one from you...:-)
i'm already working on a beter one ;-)
thx Cyrille
or have you already done it?
nope. i'm off that machine now, i will check in a known-to-work example when i'm back at it...
mfg.sd IOhannes
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
cyrille henry wrote:
with [cube], but not with [curve] (though it should be enough to change the in/out geometry as mentioned above)
ok, it work here also with cube. but i can't make it work with line.
with "line" you mean [curve]?
even sending [geometry_type GL_LINES GL_LINE_STRIP( to glsl_program befor the linking.
[curve] uses GL_LINE_STRIP as default drawtype, so you might try to set the input type of the shader to GL_LINE_STRIP (rather than GL_LNES) but i really have no experience at all...
btw, you can also set the input and output type separately with [geometry_intype $1( and [geometry_outtype $1(
btw, since this message has to be send befor linking, would it be possible to add a message to unlink the shaders?
well, the program is re-linked (that is: unlinked and linkd again) when it receives a new link message. isn't that enough?
so [read shader.geom( followed by a [geometry_type GL_LINE_STRIP GL_LINES, read shader.geom( should work fine
or make it an official Gem example?
yes, but the shader provided is so extraordinarily boring that i wanted to wait for a nice one from you...:-)
i'm already working on a beter one ;-)
cool
fgmasdr IOhannes
IOhannes m zmölnig a écrit :
cyrille henry wrote:
with [cube], but not with [curve] (though it should be enough to change the in/out geometry as mentioned above)
ok, it work here also with cube. but i can't make it work with line.
with "line" you mean [curve]?
i test with curve, and also with a cube with [draw line( (so in GL_LINE_LOOP mode)
even sending [geometry_type GL_LINES GL_LINE_STRIP( to glsl_program befor the linking.
[curve] uses GL_LINE_STRIP as default drawtype, so you might try to set the input type of the shader to GL_LINE_STRIP (rather than GL_LNES) but i really have no experience at all...
i try anything i can think of, but i did never change the drawing behaviour : it work with cube in draw quad or draw triangles mode, but no line.
did you find a good resource to explain all of this?
btw, you can also set the input and output type separately with [geometry_intype $1( and [geometry_outtype $1(
ok
btw, since this message has to be send befor linking, would it be possible to add a message to unlink the shaders?
well, the program is re-linked (that is: unlinked and linkd again) when it receives a new link message. isn't that enough?
it should be ok.
so [read shader.geom( followed by a [geometry_type GL_LINE_STRIP GL_LINES, read shader.geom( should work fine
do [read shader.geom( mean [open shader.geom(? [geometry_type GL_LINE_STRIP GL_LINES( should be send to glsl program, while [open shader.geom( to glsl_geometry.
or did i misunderstand something?
thanks Cyrille
or make it an official Gem example?
yes, but the shader provided is so extraordinarily boring that i wanted to wait for a nice one from you...:-)
i'm already working on a beter one ;-)
cool
fgmasdr IOhannes
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
cyrille henry wrote:
i try anything i can think of, but i did never change the drawing behaviour : it work with cube in draw quad or draw triangles mode, but no line.
funny, because that is the order of working examples i had: - first i ported the vertex-drawing code from the http://cirl.missouri.edu/gpu/glsl_lessons/glsl_geometry_shader/ to gemGL glBegin(GL_LINES);glVertex2i(gw/2,0);glVertex2i(gw/2,gh);glEnd(); - because the line was so boring, i then used [triangle] in "line" mode - only finally i used "fill"
so it actually was opposite to what you experience. mabye i introduced some problems when i defaulted to "triangles" (mainly because that's the major default mode in Gem)
did you find a good resource to explain all of this?
no, but i didn't even search. probably matthias's mail points to some good ressources.
so [read shader.geom( followed by a [geometry_type GL_LINE_STRIP GL_LINES, read shader.geom( should work fine
do [read shader.geom( mean [open shader.geom(? [geometry_type GL_LINE_STRIP GL_LINES( should be send to glsl program, while [open shader.geom( to glsl_geometry.
or did i misunderstand something?
ouch, ouch, Ctrl-Z of course my stupid little message boxes should be followed by something like...
| [route read ] | | [symbol] | [open $1( | | | [glsl_geometry] | | +-----------------+ | [glsl_program]
sorry for the confusion...
mgfadr IOhannes
IOhannes m zmoelnig a écrit :
cyrille henry wrote:
i try anything i can think of, but i did never change the drawing behaviour : it work with cube in draw quad or draw triangles mode, but no line.
...
so it actually was opposite to what you experience. mabye i introduced some problems when i defaulted to "triangles" (mainly because that's the major default mode in Gem)
i'll try in the next days...
did you find a good resource to explain all of this?
no, but i didn't even search. probably matthias's mail points to some good ressources.
thanks it help, event if i still have lot's of questions...
ouch, ouch, Ctrl-Z of course my stupid little message boxes should be followed by something like...
| [route read ] | | [symbol] | [open $1( | | | [glsl_geometry] | | +-----------------+ | [glsl_program]
sorry for the confusion...
no problem, that's what i understand.
so, to keep you inform, here is the 1st goemetry shader i'm working on.
it just replace triangles with pyramids...
#version 120 #extension GL_EXT_geometry_shader4 : enable
void main(void) { //increment variable int i;
vec4 pos1,pos2, pos3, pos4; // tmp vec3 high;
for(i=0; i< gl_VerticesIn; i += 3){ // for all triangles pos1 = gl_PositionIn[i]; pos2 = gl_PositionIn[i+1]; pos3 = gl_PositionIn[i+2]; pos4 = (pos1 + pos2 + pos3) / 3.; // center of the triangle
high = 10.*cross(pos2.xyz-pos1.xyz,pos3.xyz-pos2.xyz); // hight and orientation of the piramide
high = normalize(high); high *= length(pos2-pos1); pos4.xyz += high;
gl_Position = gl_ModelViewProjectionMatrix * pos1; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * pos2; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * pos4; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * pos3; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * pos1; EmitVertex(); EndPrimitive(); // new primitive }
}
void main() { gl_Position = gl_Vertex; }
void main() { gl_FragColor = vec4(1.0,1.0,1.0,0.6); // set color }
#N canvas 685 31 564 661 10; #X msg 26 105 print; #X msg 14 320 print; #X msg 15 461 print; #X floatatom 185 382 9 0 0 0 ID - -; #X floatatom 160 154 9 0 0 0 ID - -; #X obj 204 447 print linking; #X obj 183 404 pack 0 0 0; #X msg 15 217 print; #X floatatom 143 260 9 0 0 0 ID - -; #X obj 71 18 gemhead; #X msg 186 426 link $1 $2 $3; #X obj 71 43 alpha; #X floatatom 110 485 5 0 0 0 - - -; #X floatatom 152 485 5 0 0 0 - - -; #X floatatom 197 486 5 0 0 0 - - -; #X obj 66 463 glsl_program; #X obj 169 51 t b b b b; #X msg 244 84 -1; #X obj 167 32 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 161 132 change; #X obj 143 239 change; #X obj 187 359 change; #X obj 226 548 t a b; #X obj 226 591 newWave 25 25; #X msg 285 563 D1 0.01 , D2 0; #X obj 284 542 loadbang; #X msg 406 566 2; #X obj 71 107 glsl_geometry; #X obj 60 217 glsl_vertex; #X obj 61 334 glsl_fragment; #X msg 104 83 open tri2p.geo; #X msg 105 195 open tri2p.vert; #X msg 86 305 open tri2p.frag; #X obj 169 6 loadbang; #X text 197 29 reload; #X obj 322 98 gemwin; #X msg 332 53 create , 1; #X msg 341 75 destroy; #X obj 69 502 rotateXYZ -55 10 0; #X text 290 144 replace triangle with piramides; #X obj 63 546 triangle; #X connect 0 0 27 0; #X connect 1 0 29 0; #X connect 2 0 15 0; #X connect 3 0 6 0; #X connect 4 0 6 2; #X connect 6 0 10 0; #X connect 7 0 28 0; #X connect 8 0 6 1; #X connect 9 0 11 0; #X connect 10 0 5 0; #X connect 10 0 15 0; #X connect 11 0 27 0; #X connect 12 0 38 1; #X connect 13 0 38 2; #X connect 14 0 38 3; #X connect 15 0 38 0; #X connect 16 0 17 0; #X connect 16 1 32 0; #X connect 16 2 31 0; #X connect 16 3 30 0; #X connect 17 0 21 0; #X connect 18 0 16 0; #X connect 19 0 4 0; #X connect 20 0 8 0; #X connect 21 0 3 0; #X connect 22 0 23 0; #X connect 22 1 23 0; #X connect 24 0 23 0; #X connect 25 0 24 0; #X connect 26 0 23 3; #X connect 27 0 28 0; #X connect 27 1 19 0; #X connect 28 0 29 0; #X connect 28 1 20 0; #X connect 29 0 15 0; #X connect 29 1 21 0; #X connect 30 0 27 0; #X connect 31 0 28 0; #X connect 32 0 29 0; #X connect 33 0 18 0; #X connect 36 0 35 0; #X connect 37 0 35 0; #X connect 38 0 22 0;
success :)
i attached 2 examples dub made a copy from a mesh_square and you can set the offset from xy, thorn is the modified file from cyrille you can set the high and alpha from the spikes
but before it worked i had to comment out line 173-176 in glsl_geometry.ccp got the error "cannot load shader now" didn´t really understand why
and add the glProgramParameteriEXT to the LinkARB part in glsl_program.ccp
anyway put the ccp also in the zip
fun can start
Matthias
no problem, that's what i understand.
so, to keep you inform, here is the 1st goemetry shader i'm working on.
it just replace triangles with pyramids... #version 120 #extension GL_EXT_geometry_shader4 : enable
void main(void) { //increment variable int i;
vec4 pos1,pos2, pos3, pos4; // tmp vec3 high;
for(i=0; i< gl_VerticesIn; i += 3){ // for all triangles pos1 = gl_PositionIn[i]; pos2 = gl_PositionIn[i+1]; pos3 = gl_PositionIn[i+2]; pos4 = (pos1 + pos2 + pos3) / 3.; // center of the triangle
} //!!!!!!!!!!!!!!!!!
high = 10.*cross(pos2.xyz-pos1.xyz,pos3.xyz-pos2.xyz); // hight and orientation of the piramide high = normalize(high); high *= length(pos2-pos1); pos4.xyz += high; gl_Position = gl_ModelViewProjectionMatrix * pos1; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * pos2; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * pos4; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * pos3; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * pos1; EmitVertex(); EndPrimitive(); // new primitive
}
}
void main() { gl_Position = gl_Vertex; }
void main() { gl_FragColor = vec4(1.0,1.0,1.0,0.6); // set color }
#N canvas 685 31 564 661 10; #X msg 26 105 print; #X msg 14 320 print; #X msg 15 461 print; #X floatatom 185 382 9 0 0 0 ID - -; #X floatatom 160 154 9 0 0 0 ID - -; #X obj 204 447 print linking; #X obj 183 404 pack 0 0 0; #X msg 15 217 print; #X floatatom 143 260 9 0 0 0 ID - -; #X obj 71 18 gemhead; #X msg 186 426 link $1 $2 $3; #X obj 71 43 alpha; #X floatatom 110 485 5 0 0 0 - - -; #X floatatom 152 485 5 0 0 0 - - -; #X floatatom 197 486 5 0 0 0 - - -; #X obj 66 463 glsl_program; #X obj 169 51 t b b b b; #X msg 244 84 -1; #X obj 167 32 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 161 132 change; #X obj 143 239 change; #X obj 187 359 change; #X obj 226 548 t a b; #X obj 226 591 newWave 25 25; #X msg 285 563 D1 0.01 , D2 0; #X obj 284 542 loadbang; #X msg 406 566 2; #X obj 71 107 glsl_geometry; #X obj 60 217 glsl_vertex; #X obj 61 334 glsl_fragment; #X msg 104 83 open tri2p.geo; #X msg 105 195 open tri2p.vert; #X msg 86 305 open tri2p.frag; #X obj 169 6 loadbang; #X text 197 29 reload; #X obj 322 98 gemwin; #X msg 332 53 create , 1; #X msg 341 75 destroy; #X obj 69 502 rotateXYZ -55 10 0; #X text 290 144 replace triangle with piramides; #X obj 63 546 triangle; #X connect 0 0 27 0; #X connect 1 0 29 0; #X connect 2 0 15 0; #X connect 3 0 6 0; #X connect 4 0 6 2; #X connect 6 0 10 0; #X connect 7 0 28 0; #X connect 8 0 6 1; #X connect 9 0 11 0; #X connect 10 0 5 0; #X connect 10 0 15 0; #X connect 11 0 27 0; #X connect 12 0 38 1; #X connect 13 0 38 2; #X connect 14 0 38 3; #X connect 15 0 38 0; #X connect 16 0 17 0; #X connect 16 1 32 0; #X connect 16 2 31 0; #X connect 16 3 30 0; #X connect 17 0 21 0; #X connect 18 0 16 0; #X connect 19 0 4 0; #X connect 20 0 8 0; #X connect 21 0 3 0; #X connect 22 0 23 0; #X connect 22 1 23 0; #X connect 24 0 23 0; #X connect 25 0 24 0; #X connect 26 0 23 3; #X connect 27 0 28 0; #X connect 27 1 19 0; #X connect 28 0 29 0; #X connect 28 1 20 0; #X connect 29 0 15 0; #X connect 29 1 21 0; #X connect 30 0 27 0; #X connect 31 0 28 0; #X connect 32 0 29 0; #X connect 33 0 18 0; #X connect 36 0 35 0; #X connect 37 0 35 0; #X connect 38 0 22 0; _______________________________________________ GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
Quoting "Matthias Neuenhofer" matthias@neuenhofer.de:
success :)
but before it worked i had to comment out line 173-176 in glsl_geometry.ccp got the error "cannot load shader now" didn´t really understand why
because you tried to load the shader when no openGL context existed, and glew was not yet initialized. loading of shaders is deferred till rendering really starts, so it probably shouldn't bail out as an error. however, initialized glew is crucial for shaders, as we don't know whether the system actually supports openGL-2.0 (or 2.1 for geom-shaders) without it. just uncommenting the checks is a bad idea, if you want to not have crashes on the majority of gfx-cards out there...
and add the glProgramParameteriEXT to the LinkARB part in glsl_program.ccp
thanks, i incorporated the changes to LinkARB (are there really hw/drivers out there that only have tghe ARB extensions but do not comply to openGL-2.x ?)
fgamsdr IOhannes
---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.
but before it worked i had to comment out line 173-176 in glsl_geometry.ccp got the error "cannot load shader now" didn´t really understand why
because you tried to load the shader when no openGL context existed, and glew was not yet initialized. loading of shaders is deferred till rendering really starts, so it probably shouldn't bail out as an error.
in this case i get "cannot load shader now! deferring till later..." and when the rendering starts the shader worked
however, initialized glew is crucial for shaders, as we don't know whether the system actually supports openGL-2.0 (or 2.1 for geom- shaders) without it. just uncommenting the checks is a bad idea, if you want to not have crashes on the majority of gfx-cards out there...
did another try !GLEW_VERSION_2_0 && !GLEW_ARB_geometry_shader4 work ¿? GLEW_VERSION_3_0 gives also the error GemWindow Activate err = 0 GEM: GLEW version 1.5.1 GEM: Start rendering on mac osx 10.5.6
Matthias
Matthias Neuenhofer wrote:
but before it worked i had to comment out line 173-176 in glsl_geometry.ccp got the error "cannot load shader now" didn´t really understand why
because you tried to load the shader when no openGL context existed, and glew was not yet initialized. loading of shaders is deferred till rendering really starts, so it probably shouldn't bail out as an error.
in this case i get "cannot load shader now! deferring till later..." and when the rendering starts the shader worked
which is as expected. i have no changed the "error" (which really is just a hint) message a bit so that it hopefully is less confusing. (it now says: "shader bla.geom will be loaded when rendering is turned on (needs openGL context)")
however, initialized glew is crucial for shaders, as we don't know whether the system actually supports openGL-2.0 (or 2.1 for geom-shaders) without it. just uncommenting the checks is a bad idea, if you want to not have crashes on the majority of gfx-cards out there...
did another try !GLEW_VERSION_2_0 && !GLEW_ARB_geometry_shader4 work ¿? GLEW_VERSION_3_0 gives also the error
cool, you have an openGL-3.0 card?
apart from that id don't know whether i can follow your problems here. what are you trying to achieve with commenting out the 2 conditions? to not get an error "cannot load shader now! deferrubg till later..."? i can only repeat: this is no error, it is merely a hint that Gem will not load the shader instantaneously but rather as soon as possible (when rendering is turned on).
or does it not work at all? if so, there might be a problem with your drivers (not reporting extensions they support), glew (not finding out reported extensions) or Gem (ignoring supported extensions); check the output of glewinfo (from http://glew.sourceforge.net/).
mfgadsr. IOhannes
GemWindow Activate err = 0 GEM: GLEW version 1.5.1 GEM: Start rendering on mac osx 10.5.6
Matthias
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
cool, you have an openGL-3.0 card?
MacBook Pro NVIDIA GeForce 8600M GT OpenGL Engine Vendor Name NVIDIA Corporation Version 2.0 NVIDIA-1.5.36 GL Shading Language Version 1.20 this is the information from the OpenGL Driver Monitors with the OpenGL Extensions GL_EXT_geometry_shader4
its openGL Version 2.1 for linux and microsoft you can get drivers for GLVersion 3.1 from nvidia
mac wait for apple update
apart from that id don't know whether i can follow your problems here. what are you trying to achieve with commenting out the 2 conditions? to not get an error "cannot load shader now! deferrubg till later..."?
no i got the error "cannot load shader now" from this part when it has VERSION_2_1 if(!GLEW_VERSION_2_0 && !GLEW_ARB_geometry_shader4) { post("cannot load shader now!"); return; } VERSION_2_0 work
so i dont understand why V_2_1 failed - openGL 2.1 and latest GLEW version 1.5.1 are installed
at least the geometry_shader are functioning :)
Matthias
i can only repeat: this is no error, it is merely a hint that Gem will not load the shader instantaneously but rather as soon as possible (when rendering is turned on).
or does it not work at all? if so, there might be a problem with your drivers (not reporting extensions they support), glew (not finding out reported extensions) or Gem (ignoring supported extensions); check the output of glewinfo (from http://glew.sourceforge.net/).
mfgadsr. IOhannes
GemWindow Activate err = 0 GEM: GLEW version 1.5.1 GEM: Start rendering on mac osx 10.5.6 Matthias
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
Matthias Neuenhofer wrote:
apart from that id don't know whether i can follow your problems here. what are you trying to achieve with commenting out the 2 conditions? to not get an error "cannot load shader now! deferrubg till later..."?
no i got the error "cannot load shader now" from this part when it has VERSION_2_1 if(!GLEW_VERSION_2_0 && !GLEW_ARB_geometry_shader4) { post("cannot load shader now!"); return; } VERSION_2_0 work
so i dont understand why V_2_1 failed - openGL 2.1 and latest GLEW version 1.5.1 are installed
but as i understand it: GL_VERSION_2_1 defines geometry shaders. on GL_VERSION_2_0 a card _could_ have the ARB extension; if either was true (in your case at least the ARB extension is there) then the checks should succeed. btw, i have simplified the code in svn a bit (using isRunnable() which you didn't have to hack, so it seems like the new code might work for you anyhow).
as for "latest GLEW" being installed, this doesn't really matter, since Gem includes its own static version of GLEW.
but if you have it installed, could you post the output of glewinfo?
at least the geometry_shader are functioning :)
yep; that's all we want, isn't it?
fgmasdr IOhannes
Am 27.04.2009 um 12:33 schrieb IOhannes m zmoelnig:
Matthias Neuenhofer wrote:
apart from that id don't know whether i can follow your problems here. what are you trying to achieve with commenting out the 2 conditions? to not get an error "cannot load shader now! deferrubg till later..."?
no i got the error "cannot load shader now" from this part when it has VERSION_2_1 if(!GLEW_VERSION_2_0 && !GLEW_ARB_geometry_shader4) { post("cannot load shader now!"); return; } VERSION_2_0 work so i dont understand why V_2_1 failed - openGL 2.1 and latest GLEW version 1.5.1 are installed
but as i understand it: GL_VERSION_2_1 defines geometry shaders. on GL_VERSION_2_0 a card _could_ have the ARB extension; if either was true (in your case at least the ARB extension is there) then the checks should succeed. btw, i have simplified the code in svn a bit (using isRunnable() which you didn't have to hack, so it seems like the new code might work for you anyhow).
as for "latest GLEW" being installed, this doesn't really matter, since Gem includes its own static version of GLEW.
but if you have it installed, could you post the output of glewinfo?
at least the geometry_shader are functioning :)
yep; that's all we want, isn't it?
yo
here the glewinfo
--------------------------- GLEW Extension Info ---------------------------
GLEW version 1.5.1 Running on a NVIDIA GeForce 8600M GT OpenGL Engine from NVIDIA Corporation OpenGL version 2.0 NVIDIA-1.5.36 is supported
GL_VERSION_1_1: OK ---------------
GL_VERSION_1_2: OK --------------- glCopyTexSubImage3D: OK glDrawRangeElements: OK glTexImage3D: OK glTexSubImage3D: OK
GL_VERSION_1_3: OK --------------- glActiveTexture: OK glClientActiveTexture: OK glCompressedTexImage1D: OK glCompressedTexImage2D: OK glCompressedTexImage3D: OK glCompressedTexSubImage1D: OK glCompressedTexSubImage2D: OK glCompressedTexSubImage3D: OK glGetCompressedTexImage: OK glLoadTransposeMatrixd: OK glLoadTransposeMatrixf: OK glMultTransposeMatrixd: OK glMultTransposeMatrixf: OK glMultiTexCoord1d: OK glMultiTexCoord1dv: OK glMultiTexCoord1f: OK glMultiTexCoord1fv: OK glMultiTexCoord1i: OK glMultiTexCoord1iv: OK glMultiTexCoord1s: OK glMultiTexCoord1sv: OK glMultiTexCoord2d: OK glMultiTexCoord2dv: OK glMultiTexCoord2f: OK glMultiTexCoord2fv: OK glMultiTexCoord2i: OK glMultiTexCoord2iv: OK glMultiTexCoord2s: OK glMultiTexCoord2sv: OK glMultiTexCoord3d: OK glMultiTexCoord3dv: OK glMultiTexCoord3f: OK glMultiTexCoord3fv: OK glMultiTexCoord3i: OK glMultiTexCoord3iv: OK glMultiTexCoord3s: OK glMultiTexCoord3sv: OK glMultiTexCoord4d: OK glMultiTexCoord4dv: OK glMultiTexCoord4f: OK glMultiTexCoord4fv: OK glMultiTexCoord4i: OK glMultiTexCoord4iv: OK glMultiTexCoord4s: OK glMultiTexCoord4sv: OK glSampleCoverage: OK
GL_VERSION_1_4: OK --------------- glBlendColor: OK glBlendEquation: OK glBlendFuncSeparate: OK glFogCoordPointer: OK glFogCoordd: OK glFogCoorddv: OK glFogCoordf: OK glFogCoordfv: OK glMultiDrawArrays: OK glMultiDrawElements: OK glPointParameterf: OK glPointParameterfv: OK glPointParameteri: OK glPointParameteriv: OK glSecondaryColor3b: OK glSecondaryColor3bv: OK glSecondaryColor3d: OK glSecondaryColor3dv: OK glSecondaryColor3f: OK glSecondaryColor3fv: OK glSecondaryColor3i: OK glSecondaryColor3iv: OK glSecondaryColor3s: OK glSecondaryColor3sv: OK glSecondaryColor3ub: OK glSecondaryColor3ubv: OK glSecondaryColor3ui: OK glSecondaryColor3uiv: OK glSecondaryColor3us: OK glSecondaryColor3usv: OK glSecondaryColorPointer: OK glWindowPos2d: OK glWindowPos2dv: OK glWindowPos2f: OK glWindowPos2fv: OK glWindowPos2i: OK glWindowPos2iv: OK glWindowPos2s: OK glWindowPos2sv: OK glWindowPos3d: OK glWindowPos3dv: OK glWindowPos3f: OK glWindowPos3fv: OK glWindowPos3i: OK glWindowPos3iv: OK glWindowPos3s: OK glWindowPos3sv: OK
GL_VERSION_1_5: OK --------------- glBeginQuery: OK glBindBuffer: OK glBufferData: OK glBufferSubData: OK glDeleteBuffers: OK glDeleteQueries: OK glEndQuery: OK glGenBuffers: OK glGenQueries: OK glGetBufferParameteriv: OK glGetBufferPointerv: OK glGetBufferSubData: OK glGetQueryObjectiv: OK glGetQueryObjectuiv: OK glGetQueryiv: OK glIsBuffer: OK glIsQuery: OK glMapBuffer: OK glUnmapBuffer: OK
GL_VERSION_2_0: OK --------------- glAttachShader: OK glBindAttribLocation: OK glBlendEquationSeparate: OK glCompileShader: OK glCreateProgram: OK glCreateShader: OK glDeleteProgram: OK glDeleteShader: OK glDetachShader: OK glDisableVertexAttribArray: OK glDrawBuffers: OK glEnableVertexAttribArray: OK glGetActiveAttrib: OK glGetActiveUniform: OK glGetAttachedShaders: OK glGetAttribLocation: OK glGetProgramInfoLog: OK glGetProgramiv: OK glGetShaderInfoLog: OK glGetShaderSource: OK glGetShaderiv: OK glGetUniformLocation: OK glGetUniformfv: OK glGetUniformiv: OK glGetVertexAttribPointerv: OK glGetVertexAttribdv: OK glGetVertexAttribfv: OK glGetVertexAttribiv: OK glIsProgram: OK glIsShader: OK glLinkProgram: OK glShaderSource: OK glStencilFuncSeparate: OK glStencilMaskSeparate: OK glStencilOpSeparate: OK glUniform1f: OK glUniform1fv: OK glUniform1i: OK glUniform1iv: OK glUniform2f: OK glUniform2fv: OK glUniform2i: OK glUniform2iv: OK glUniform3f: OK glUniform3fv: OK glUniform3i: OK glUniform3iv: OK glUniform4f: OK glUniform4fv: OK glUniform4i: OK glUniform4iv: OK glUniformMatrix2fv: OK glUniformMatrix3fv: OK glUniformMatrix4fv: OK glUseProgram: OK glValidateProgram: OK glVertexAttrib1d: OK glVertexAttrib1dv: OK glVertexAttrib1f: OK glVertexAttrib1fv: OK glVertexAttrib1s: OK glVertexAttrib1sv: OK glVertexAttrib2d: OK glVertexAttrib2dv: OK glVertexAttrib2f: OK glVertexAttrib2fv: OK glVertexAttrib2s: OK glVertexAttrib2sv: OK glVertexAttrib3d: OK glVertexAttrib3dv: OK glVertexAttrib3f: OK glVertexAttrib3fv: OK glVertexAttrib3s: OK glVertexAttrib3sv: OK glVertexAttrib4Nbv: OK glVertexAttrib4Niv: OK glVertexAttrib4Nsv: OK glVertexAttrib4Nub: OK glVertexAttrib4Nubv: OK glVertexAttrib4Nuiv: OK glVertexAttrib4Nusv: OK glVertexAttrib4bv: OK glVertexAttrib4d: OK glVertexAttrib4dv: OK glVertexAttrib4f: OK glVertexAttrib4fv: OK glVertexAttrib4iv: OK glVertexAttrib4s: OK glVertexAttrib4sv: OK glVertexAttrib4ubv: OK glVertexAttrib4uiv: OK glVertexAttrib4usv: OK glVertexAttribPointer: OK
GL_VERSION_2_1: OK --------------- glUniformMatrix2x3fv: OK glUniformMatrix2x4fv: OK glUniformMatrix3x2fv: OK glUniformMatrix3x4fv: OK glUniformMatrix4x2fv: OK glUniformMatrix4x3fv: OK
GL_VERSION_3_0: MISSING --------------- glBeginConditionalRender: MISSING glBeginTransformFeedback: MISSING glBindBufferBase: MISSING glBindBufferRange: MISSING glBindFragDataLocation: MISSING glClampColor: MISSING glClearBufferfi: MISSING glClearBufferfv: MISSING glClearBufferiv: MISSING glClearBufferuiv: MISSING glColorMaski: MISSING glDisablei: MISSING glEnablei: MISSING glEndConditionalRender: MISSING glEndTransformFeedback: MISSING glGetBooleani_v: MISSING glGetFragDataLocation: MISSING glGetIntegeri_v: MISSING glGetStringi: MISSING glGetTexParameterIiv: MISSING glGetTexParameterIuiv: MISSING glGetTransformFeedbackVarying: MISSING glGetUniformuiv: MISSING glGetVertexAttribIiv: MISSING glGetVertexAttribIuiv: MISSING glIsEnabledi: MISSING glTexParameterIiv: MISSING glTexParameterIuiv: MISSING glTransformFeedbackVaryings: MISSING glUniform1ui: MISSING glUniform1uiv: MISSING glUniform2ui: MISSING glUniform2uiv: MISSING glUniform3ui: MISSING glUniform3uiv: MISSING glUniform4ui: MISSING glUniform4uiv: MISSING glVertexAttribI1i: MISSING glVertexAttribI1iv: MISSING glVertexAttribI1ui: MISSING glVertexAttribI1uiv: MISSING glVertexAttribI2i: MISSING glVertexAttribI2iv: MISSING glVertexAttribI2ui: MISSING glVertexAttribI2uiv: MISSING glVertexAttribI3i: MISSING glVertexAttribI3iv: MISSING glVertexAttribI3ui: MISSING glVertexAttribI3uiv: MISSING glVertexAttribI4bv: MISSING glVertexAttribI4i: MISSING glVertexAttribI4iv: MISSING glVertexAttribI4sv: MISSING glVertexAttribI4ubv: MISSING glVertexAttribI4ui: MISSING glVertexAttribI4uiv: MISSING glVertexAttribI4usv: MISSING glVertexAttribIPointer: MISSING
GL_3DFX_multisample: MISSING --------------------
GL_3DFX_tbuffer: MISSING ---------------- glTbufferMask3DFX: MISSING
GL_3DFX_texture_compression_FXT1: MISSING ---------------------------------
GL_APPLE_client_storage: OK ------------------------
GL_APPLE_element_array: OK ----------------------- glDrawElementArrayAPPLE: OK glDrawRangeElementArrayAPPLE: OK glElementPointerAPPLE: OK glMultiDrawElementArrayAPPLE: OK glMultiDrawRangeElementArrayAPPLE: OK
GL_APPLE_fence: OK --------------- glDeleteFencesAPPLE: OK glFinishFenceAPPLE: OK glFinishObjectAPPLE: OK glGenFencesAPPLE: OK glIsFenceAPPLE: OK glSetFenceAPPLE: OK glTestFenceAPPLE: OK glTestObjectAPPLE: OK
GL_APPLE_float_pixels: OK ----------------------
GL_APPLE_flush_buffer_range: OK ---------------------------- glBufferParameteriAPPLE: OK glFlushMappedBufferRangeAPPLE: OK
GL_APPLE_pixel_buffer: OK ----------------------
GL_APPLE_specular_vector: OK -------------------------
GL_APPLE_texture_range: OK ----------------------- glGetTexParameterPointervAPPLE: OK glTextureRangeAPPLE: OK
GL_APPLE_transform_hint: OK ------------------------
GL_APPLE_vertex_array_object: OK ----------------------------- glBindVertexArrayAPPLE: OK glDeleteVertexArraysAPPLE: OK glGenVertexArraysAPPLE: OK glIsVertexArrayAPPLE: OK
GL_APPLE_vertex_array_range: OK ---------------------------- glFlushVertexArrayRangeAPPLE: OK glVertexArrayParameteriAPPLE: OK glVertexArrayRangeAPPLE: OK
GL_APPLE_ycbcr_422: OK -------------------
GL_ARB_color_buffer_float: MISSING -------------------------- glClampColorARB: MISSING
GL_ARB_depth_buffer_float: MISSING --------------------------
GL_ARB_depth_texture: OK ---------------------
GL_ARB_draw_buffers: OK -------------------- glDrawBuffersARB: OK
GL_ARB_draw_instanced: MISSING ---------------------- glDrawArraysInstancedARB: MISSING glDrawElementsInstancedARB: MISSING
GL_ARB_fragment_program: OK ------------------------
GL_ARB_fragment_program_shadow: OK -------------------------------
GL_ARB_fragment_shader: OK -----------------------
GL_ARB_framebuffer_object: MISSING -------------------------- glBindFramebuffer: MISSING glBindRenderbuffer: MISSING glBlitFramebuffer: MISSING glCheckFramebufferStatus: MISSING glDeleteFramebuffers: MISSING glDeleteRenderbuffers: MISSING glFramebufferRenderbuffer: MISSING glFramebufferTexturLayer: MISSING glFramebufferTexture1D: MISSING glFramebufferTexture2D: MISSING glFramebufferTexture3D: MISSING glGenFramebuffers: MISSING glGenRenderbuffers: MISSING glGenerateMipmap: MISSING glGetFramebufferAttachmentParameteriv: MISSING glGetRenderbufferParameteriv: MISSING glIsFramebuffer: MISSING glIsRenderbuffer: MISSING glRenderbufferStorage: MISSING glRenderbufferStorageMultisample: MISSING
GL_ARB_framebuffer_sRGB: MISSING ------------------------
GL_ARB_geometry_shader4: MISSING ------------------------ glFramebufferTextureARB: MISSING glFramebufferTextureFaceARB: MISSING glFramebufferTextureLayerARB: MISSING glProgramParameteriARB: MISSING
GL_ARB_half_float_pixel: OK ------------------------
GL_ARB_half_float_vertex: MISSING -------------------------
GL_ARB_imaging: OK --------------- glBlendEquation: OK glColorSubTable: OK glColorTable: OK glColorTableParameterfv: OK glColorTableParameteriv: OK glConvolutionFilter1D: OK glConvolutionFilter2D: OK glConvolutionParameterf: OK glConvolutionParameterfv: OK glConvolutionParameteri: OK glConvolutionParameteriv: OK glCopyColorSubTable: OK glCopyColorTable: OK glCopyConvolutionFilter1D: OK glCopyConvolutionFilter2D: OK glGetColorTable: OK glGetColorTableParameterfv: OK glGetColorTableParameteriv: OK glGetConvolutionFilter: OK glGetConvolutionParameterfv: OK glGetConvolutionParameteriv: OK glGetHistogram: OK glGetHistogramParameterfv: OK glGetHistogramParameteriv: OK glGetMinmax: OK glGetMinmaxParameterfv: OK glGetMinmaxParameteriv: OK glGetSeparableFilter: OK glHistogram: OK glMinmax: OK glResetHistogram: OK glResetMinmax: OK glSeparableFilter2D: OK
GL_ARB_instanced_arrays: MISSING ------------------------ glVertexAttribDivisorARB: MISSING
GL_ARB_map_buffer_range: MISSING ------------------------ glFlushMappedBufferRange: MISSING glMapBufferRange: MISSING
GL_ARB_matrix_palette: MISSING ---------------------- glCurrentPaletteMatrixARB: MISSING glMatrixIndexPointerARB: MISSING glMatrixIndexubvARB: MISSING glMatrixIndexuivARB: MISSING glMatrixIndexusvARB: MISSING
GL_ARB_multisample: OK ------------------- glSampleCoverageARB: OK
GL_ARB_multitexture: OK -------------------- glActiveTextureARB: OK glClientActiveTextureARB: OK glMultiTexCoord1dARB: OK glMultiTexCoord1dvARB: OK glMultiTexCoord1fARB: OK glMultiTexCoord1fvARB: OK glMultiTexCoord1iARB: OK glMultiTexCoord1ivARB: OK glMultiTexCoord1sARB: OK glMultiTexCoord1svARB: OK glMultiTexCoord2dARB: OK glMultiTexCoord2dvARB: OK glMultiTexCoord2fARB: OK glMultiTexCoord2fvARB: OK glMultiTexCoord2iARB: OK glMultiTexCoord2ivARB: OK glMultiTexCoord2sARB: OK glMultiTexCoord2svARB: OK glMultiTexCoord3dARB: OK glMultiTexCoord3dvARB: OK glMultiTexCoord3fARB: OK glMultiTexCoord3fvARB: OK glMultiTexCoord3iARB: OK glMultiTexCoord3ivARB: OK glMultiTexCoord3sARB: OK glMultiTexCoord3svARB: OK glMultiTexCoord4dARB: OK glMultiTexCoord4dvARB: OK glMultiTexCoord4fARB: OK glMultiTexCoord4fvARB: OK glMultiTexCoord4iARB: OK glMultiTexCoord4ivARB: OK glMultiTexCoord4sARB: OK glMultiTexCoord4svARB: OK
GL_ARB_occlusion_query: OK ----------------------- glBeginQueryARB: OK glDeleteQueriesARB: OK glEndQueryARB: OK glGenQueriesARB: OK glGetQueryObjectivARB: OK glGetQueryObjectuivARB: OK glGetQueryivARB: OK glIsQueryARB: OK
GL_ARB_pixel_buffer_object: OK ---------------------------
GL_ARB_point_parameters: OK ------------------------ glPointParameterfARB: OK glPointParameterfvARB: OK
GL_ARB_point_sprite: OK --------------------
GL_ARB_shader_objects: OK ---------------------- glAttachObjectARB: OK glCompileShaderARB: OK glCreateProgramObjectARB: OK glCreateShaderObjectARB: OK glDeleteObjectARB: OK glDetachObjectARB: OK glGetActiveUniformARB: OK glGetAttachedObjectsARB: OK glGetHandleARB: OK glGetInfoLogARB: OK glGetObjectParameterfvARB: OK glGetObjectParameterivARB: OK glGetShaderSourceARB: OK glGetUniformLocationARB: OK glGetUniformfvARB: OK glGetUniformivARB: OK glLinkProgramARB: OK glShaderSourceARB: OK glUniform1fARB: OK glUniform1fvARB: OK glUniform1iARB: OK glUniform1ivARB: OK glUniform2fARB: OK glUniform2fvARB: OK glUniform2iARB: OK glUniform2ivARB: OK glUniform3fARB: OK glUniform3fvARB: OK glUniform3iARB: OK glUniform3ivARB: OK glUniform4fARB: OK glUniform4fvARB: OK glUniform4iARB: OK glUniform4ivARB: OK glUniformMatrix2fvARB: OK glUniformMatrix3fvARB: OK glUniformMatrix4fvARB: OK glUseProgramObjectARB: OK glValidateProgramARB: OK
GL_ARB_shading_language_100: OK ----------------------------
GL_ARB_shadow: OK --------------
GL_ARB_shadow_ambient: MISSING ----------------------
GL_ARB_texture_border_clamp: OK ----------------------------
GL_ARB_texture_buffer_object: MISSING ----------------------------- glTexBufferARB: MISSING
GL_ARB_texture_compression: OK --------------------------- glCompressedTexImage1DARB: OK glCompressedTexImage2DARB: OK glCompressedTexImage3DARB: OK glCompressedTexSubImage1DARB: OK glCompressedTexSubImage2DARB: OK glCompressedTexSubImage3DARB: OK glGetCompressedTexImageARB: OK
GL_ARB_texture_compression_rgtc: MISSING --------------------------------
GL_ARB_texture_cube_map: OK ------------------------
GL_ARB_texture_env_add: OK -----------------------
GL_ARB_texture_env_combine: OK ---------------------------
GL_ARB_texture_env_crossbar: OK ----------------------------
GL_ARB_texture_env_dot3: OK ------------------------
GL_ARB_texture_float: OK ---------------------
GL_ARB_texture_mirrored_repeat: OK -------------------------------
GL_ARB_texture_non_power_of_two: OK --------------------------------
GL_ARB_texture_rectangle: OK -------------------------
GL_ARB_texture_rg: MISSING ------------------
GL_ARB_transpose_matrix: OK ------------------------ glLoadTransposeMatrixdARB: OK glLoadTransposeMatrixfARB: OK glMultTransposeMatrixdARB: OK glMultTransposeMatrixfARB: OK
GL_ARB_vertex_array_object: MISSING --------------------------- glBindVertexArray: MISSING glDeleteVertexArrays: MISSING glGenVertexArrays: MISSING glIsVertexArray: MISSING
GL_ARB_vertex_blend: OK -------------------- glVertexBlendARB: OK glWeightPointerARB: OK glWeightbvARB: OK glWeightdvARB: OK glWeightfvARB: OK glWeightivARB: OK glWeightsvARB: OK glWeightubvARB: OK glWeightuivARB: OK glWeightusvARB: OK
GL_ARB_vertex_buffer_object: OK ---------------------------- glBindBufferARB: OK glBufferDataARB: OK glBufferSubDataARB: OK glDeleteBuffersARB: OK glGenBuffersARB: OK glGetBufferParameterivARB: OK glGetBufferPointervARB: OK glGetBufferSubDataARB: OK glIsBufferARB: OK glMapBufferARB: OK glUnmapBufferARB: OK
GL_ARB_vertex_program: OK ---------------------- glBindProgramARB: OK glDeleteProgramsARB: OK glDisableVertexAttribArrayARB: OK glEnableVertexAttribArrayARB: OK glGenProgramsARB: OK glGetProgramEnvParameterdvARB: OK glGetProgramEnvParameterfvARB: OK glGetProgramLocalParameterdvARB: OK glGetProgramLocalParameterfvARB: OK glGetProgramStringARB: OK glGetProgramivARB: OK glGetVertexAttribPointervARB: OK glGetVertexAttribdvARB: OK glGetVertexAttribfvARB: OK glGetVertexAttribivARB: OK glIsProgramARB: OK glProgramEnvParameter4dARB: OK glProgramEnvParameter4dvARB: OK glProgramEnvParameter4fARB: OK glProgramEnvParameter4fvARB: OK glProgramLocalParameter4dARB: OK glProgramLocalParameter4dvARB: OK glProgramLocalParameter4fARB: OK glProgramLocalParameter4fvARB: OK glProgramStringARB: OK glVertexAttrib1dARB: OK glVertexAttrib1dvARB: OK glVertexAttrib1fARB: OK glVertexAttrib1fvARB: OK glVertexAttrib1sARB: OK glVertexAttrib1svARB: OK glVertexAttrib2dARB: OK glVertexAttrib2dvARB: OK glVertexAttrib2fARB: OK glVertexAttrib2fvARB: OK glVertexAttrib2sARB: OK glVertexAttrib2svARB: OK glVertexAttrib3dARB: OK glVertexAttrib3dvARB: OK glVertexAttrib3fARB: OK glVertexAttrib3fvARB: OK glVertexAttrib3sARB: OK glVertexAttrib3svARB: OK glVertexAttrib4NbvARB: OK glVertexAttrib4NivARB: OK glVertexAttrib4NsvARB: OK glVertexAttrib4NubARB: OK glVertexAttrib4NubvARB: OK glVertexAttrib4NuivARB: OK glVertexAttrib4NusvARB: OK glVertexAttrib4bvARB: OK glVertexAttrib4dARB: OK glVertexAttrib4dvARB: OK glVertexAttrib4fARB: OK glVertexAttrib4fvARB: OK glVertexAttrib4ivARB: OK glVertexAttrib4sARB: OK glVertexAttrib4svARB: OK glVertexAttrib4ubvARB: OK glVertexAttrib4uivARB: OK glVertexAttrib4usvARB: OK glVertexAttribPointerARB: OK
GL_ARB_vertex_shader: OK --------------------- glBindAttribLocationARB: OK glGetActiveAttribARB: OK glGetAttribLocationARB: OK
GL_ARB_window_pos: OK ------------------ glWindowPos2dARB: OK glWindowPos2dvARB: OK glWindowPos2fARB: OK glWindowPos2fvARB: OK glWindowPos2iARB: OK glWindowPos2ivARB: OK glWindowPos2sARB: OK glWindowPos2svARB: OK glWindowPos3dARB: OK glWindowPos3dvARB: OK glWindowPos3fARB: OK glWindowPos3fvARB: OK glWindowPos3iARB: OK glWindowPos3ivARB: OK glWindowPos3sARB: OK glWindowPos3svARB: OK
GL_ATIX_point_sprites: MISSING ----------------------
GL_ATIX_texture_env_combine3: MISSING -----------------------------
GL_ATIX_texture_env_route: MISSING --------------------------
GL_ATIX_vertex_shader_output_point_size: MISSING ----------------------------------------
GL_ATI_draw_buffers: MISSING -------------------- glDrawBuffersATI: MISSING
GL_ATI_element_array: MISSING --------------------- glDrawElementArrayATI: MISSING glDrawRangeElementArrayATI: MISSING glElementPointerATI: MISSING
GL_ATI_envmap_bumpmap: MISSING ---------------------- glGetTexBumpParameterfvATI: MISSING glGetTexBumpParameterivATI: MISSING glTexBumpParameterfvATI: MISSING glTexBumpParameterivATI: MISSING
GL_ATI_fragment_shader: MISSING ----------------------- glAlphaFragmentOp1ATI: MISSING glAlphaFragmentOp2ATI: MISSING glAlphaFragmentOp3ATI: MISSING glBeginFragmentShaderATI: MISSING glBindFragmentShaderATI: MISSING glColorFragmentOp1ATI: MISSING glColorFragmentOp2ATI: MISSING glColorFragmentOp3ATI: MISSING glDeleteFragmentShaderATI: MISSING glEndFragmentShaderATI: MISSING glGenFragmentShadersATI: MISSING glPassTexCoordATI: MISSING glSampleMapATI: MISSING glSetFragmentShaderConstantATI: MISSING
GL_ATI_map_object_buffer: MISSING ------------------------- glMapObjectBufferATI: MISSING glUnmapObjectBufferATI: MISSING
GL_ATI_pn_triangles: OK [MISSING] -------------------- glPNTrianglesfATI: OK glPNTrianglesiATI: OK
GL_ATI_separate_stencil: OK ------------------------ glStencilFuncSeparateATI: OK glStencilOpSeparateATI: OK
GL_ATI_shader_texture_lod: MISSING --------------------------
GL_ATI_text_fragment_shader: MISSING ----------------------------
GL_ATI_texture_compression_3dc: MISSING -------------------------------
GL_ATI_texture_env_combine3: OK ----------------------------
GL_ATI_texture_float: OK ---------------------
GL_ATI_texture_mirror_once: OK ---------------------------
GL_ATI_vertex_array_object: MISSING --------------------------- glArrayObjectATI: MISSING glFreeObjectBufferATI: MISSING glGetArrayObjectfvATI: MISSING glGetArrayObjectivATI: MISSING glGetObjectBufferfvATI: MISSING glGetObjectBufferivATI: MISSING glGetVariantArrayObjectfvATI: MISSING glGetVariantArrayObjectivATI: MISSING glIsObjectBufferATI: MISSING glNewObjectBufferATI: MISSING glUpdateObjectBufferATI: MISSING glVariantArrayObjectATI: MISSING
GL_ATI_vertex_attrib_array_object: MISSING ---------------------------------- glGetVertexAttribArrayObjectfvATI: MISSING glGetVertexAttribArrayObjectivATI: MISSING glVertexAttribArrayObjectATI: MISSING
GL_ATI_vertex_streams: MISSING ---------------------- glClientActiveVertexStreamATI: MISSING glNormalStream3bATI: MISSING glNormalStream3bvATI: MISSING glNormalStream3dATI: MISSING glNormalStream3dvATI: MISSING glNormalStream3fATI: MISSING glNormalStream3fvATI: MISSING glNormalStream3iATI: MISSING glNormalStream3ivATI: MISSING glNormalStream3sATI: MISSING glNormalStream3svATI: MISSING glVertexBlendEnvfATI: MISSING glVertexBlendEnviATI: MISSING glVertexStream2dATI: MISSING glVertexStream2dvATI: MISSING glVertexStream2fATI: MISSING glVertexStream2fvATI: MISSING glVertexStream2iATI: MISSING glVertexStream2ivATI: MISSING glVertexStream2sATI: MISSING glVertexStream2svATI: MISSING glVertexStream3dATI: MISSING glVertexStream3dvATI: MISSING glVertexStream3fATI: MISSING glVertexStream3fvATI: MISSING glVertexStream3iATI: MISSING glVertexStream3ivATI: MISSING glVertexStream3sATI: MISSING glVertexStream3svATI: MISSING glVertexStream4dATI: MISSING glVertexStream4dvATI: MISSING glVertexStream4fATI: MISSING glVertexStream4fvATI: MISSING glVertexStream4iATI: MISSING glVertexStream4ivATI: MISSING glVertexStream4sATI: MISSING glVertexStream4svATI: MISSING
GL_EXT_422_pixels: MISSING ------------------
GL_EXT_Cg_shader: MISSING -----------------
GL_EXT_abgr: OK ------------
GL_EXT_bgra: OK ------------
GL_EXT_bindable_uniform: OK ------------------------ glGetUniformBufferSizeEXT: OK glGetUniformOffsetEXT: OK glUniformBufferEXT: OK
GL_EXT_blend_color: OK ------------------- glBlendColorEXT: OK
GL_EXT_blend_equation_separate: OK ------------------------------- glBlendEquationSeparateEXT: OK
GL_EXT_blend_func_separate: OK --------------------------- glBlendFuncSeparateEXT: OK
GL_EXT_blend_logic_op: MISSING ----------------------
GL_EXT_blend_minmax: OK -------------------- glBlendEquationEXT: OK
GL_EXT_blend_subtract: OK ----------------------
GL_EXT_clip_volume_hint: OK ------------------------
GL_EXT_cmyka: MISSING -------------
GL_EXT_color_subtable: MISSING ---------------------- glColorSubTableEXT: OK glCopyColorSubTableEXT: MISSING
GL_EXT_compiled_vertex_array: OK ----------------------------- glLockArraysEXT: OK glUnlockArraysEXT: OK
GL_EXT_convolution: MISSING ------------------- glConvolutionFilter1DEXT: MISSING glConvolutionFilter2DEXT: MISSING glConvolutionParameterfEXT: MISSING glConvolutionParameterfvEXT: MISSING glConvolutionParameteriEXT: MISSING glConvolutionParameterivEXT: MISSING glCopyConvolutionFilter1DEXT: MISSING glCopyConvolutionFilter2DEXT: MISSING glGetConvolutionFilterEXT: MISSING glGetConvolutionParameterfvEXT: MISSING glGetConvolutionParameterivEXT: MISSING glGetSeparableFilterEXT: MISSING glSeparableFilter2DEXT: MISSING
GL_EXT_coordinate_frame: MISSING ------------------------ glBinormalPointerEXT: MISSING glTangentPointerEXT: MISSING
GL_EXT_copy_texture: MISSING -------------------- glCopyTexImage1DEXT: MISSING glCopyTexImage2DEXT: MISSING glCopyTexSubImage1DEXT: MISSING glCopyTexSubImage2DEXT: MISSING glCopyTexSubImage3DEXT: MISSING
GL_EXT_cull_vertex: MISSING ------------------- glCullParameterdvEXT: MISSING glCullParameterfvEXT: MISSING
GL_EXT_depth_bounds_test: OK ------------------------- glDepthBoundsEXT: OK
GL_EXT_direct_state_access: MISSING --------------------------- glBindMultiTextureEXT: MISSING glCheckNamedFramebufferStatusEXT: MISSING glClientAttribDefaultEXT: MISSING glCompressedMultiTexImage1DEXT: MISSING glCompressedMultiTexImage2DEXT: MISSING glCompressedMultiTexImage3DEXT: MISSING glCompressedMultiTexSubImage1DEXT: MISSING glCompressedMultiTexSubImage2DEXT: MISSING glCompressedMultiTexSubImage3DEXT: MISSING glCompressedTextureImage1DEXT: MISSING glCompressedTextureImage2DEXT: MISSING glCompressedTextureImage3DEXT: MISSING glCompressedTextureSubImage1DEXT: MISSING glCompressedTextureSubImage2DEXT: MISSING glCompressedTextureSubImage3DEXT: MISSING glCopyMultiTexImage1DEXT: MISSING glCopyMultiTexImage2DEXT: MISSING glCopyMultiTexSubImage1DEXT: MISSING glCopyMultiTexSubImage2DEXT: MISSING glCopyMultiTexSubImage3DEXT: MISSING glCopyTextureImage1DEXT: MISSING glCopyTextureImage2DEXT: MISSING glCopyTextureSubImage1DEXT: MISSING glCopyTextureSubImage2DEXT: MISSING glCopyTextureSubImage3DEXT: MISSING glDisableClientStateIndexedEXT: MISSING glEnableClientStateIndexedEXT: MISSING glFramebufferDrawBufferEXT: MISSING glFramebufferDrawBuffersEXT: MISSING glFramebufferReadBufferEXT: MISSING glGenerateMultiTexMipmapEXT: MISSING glGenerateTextureMipmapEXT: MISSING glGetCompressedMultiTexImageEXT: MISSING glGetCompressedTextureImageEXT: MISSING glGetDoubleIndexedvEXT: MISSING glGetFloatIndexedvEXT: MISSING glGetFramebufferParameterivEXT: MISSING glGetMultiTexEnvfvEXT: MISSING glGetMultiTexEnvivEXT: MISSING glGetMultiTexGendvEXT: MISSING glGetMultiTexGenfvEXT: MISSING glGetMultiTexGenivEXT: MISSING glGetMultiTexImageEXT: MISSING glGetMultiTexLevelParameterfvEXT: MISSING glGetMultiTexLevelParameterivEXT: MISSING glGetMultiTexParameterIivEXT: MISSING glGetMultiTexParameterIuivEXT: MISSING glGetMultiTexParameterfvEXT: MISSING glGetMultiTexParameterivEXT: MISSING glGetNamedBufferParameterivEXT: MISSING glGetNamedBufferPointervEXT: MISSING glGetNamedBufferSubDataEXT: MISSING glGetNamedFramebufferAttachmentParameterivEXT: MISSING glGetNamedProgramLocalParameterIivEXT: MISSING glGetNamedProgramLocalParameterIuivEXT: MISSING glGetNamedProgramLocalParameterdvEXT: MISSING glGetNamedProgramLocalParameterfvEXT: MISSING glGetNamedProgramStringEXT: MISSING glGetNamedProgramivEXT: MISSING glGetNamedRenderbufferParameterivEXT: MISSING glGetPointerIndexedvEXT: MISSING glGetTextureImageEXT: MISSING glGetTextureLevelParameterfvEXT: MISSING glGetTextureLevelParameterivEXT: MISSING glGetTextureParameterIivEXT: MISSING glGetTextureParameterIuivEXT: MISSING glGetTextureParameterfvEXT: MISSING glGetTextureParameterivEXT: MISSING glMapNamedBufferEXT: MISSING glMatrixFrustumEXT: MISSING glMatrixLoadIdentityEXT: MISSING glMatrixLoadTransposedEXT: MISSING glMatrixLoadTransposefEXT: MISSING glMatrixLoaddEXT: MISSING glMatrixLoadfEXT: MISSING glMatrixMultTransposedEXT: MISSING glMatrixMultTransposefEXT: MISSING glMatrixMultdEXT: MISSING glMatrixMultfEXT: MISSING glMatrixOrthoEXT: MISSING glMatrixPopEXT: MISSING glMatrixPushEXT: MISSING glMatrixRotatedEXT: MISSING glMatrixRotatefEXT: MISSING glMatrixScaledEXT: MISSING glMatrixScalefEXT: MISSING glMatrixTranslatedEXT: MISSING glMatrixTranslatefEXT: MISSING glMultiTexBufferEXT: MISSING glMultiTexCoordPointerEXT: MISSING glMultiTexEnvfEXT: MISSING glMultiTexEnvfvEXT: MISSING glMultiTexEnviEXT: MISSING glMultiTexEnvivEXT: MISSING glMultiTexGendEXT: MISSING glMultiTexGendvEXT: MISSING glMultiTexGenfEXT: MISSING glMultiTexGenfvEXT: MISSING glMultiTexGeniEXT: MISSING glMultiTexGenivEXT: MISSING glMultiTexImage1DEXT: MISSING glMultiTexImage2DEXT: MISSING glMultiTexImage3DEXT: MISSING glMultiTexParameterIivEXT: MISSING glMultiTexParameterIuivEXT: MISSING glMultiTexParameterfEXT: MISSING glMultiTexParameterfvEXT: MISSING glMultiTexParameteriEXT: MISSING glMultiTexParameterivEXT: MISSING glMultiTexRenderbufferEXT: MISSING glMultiTexSubImage1DEXT: MISSING glMultiTexSubImage2DEXT: MISSING glMultiTexSubImage3DEXT: MISSING glNamedBufferDataEXT: MISSING glNamedBufferSubDataEXT: MISSING glNamedFramebufferRenderbufferEXT: MISSING glNamedFramebufferTexture1DEXT: MISSING glNamedFramebufferTexture2DEXT: MISSING glNamedFramebufferTexture3DEXT: MISSING glNamedFramebufferTextureEXT: MISSING glNamedFramebufferTextureFaceEXT: MISSING glNamedFramebufferTextureLayerEXT: MISSING glNamedProgramLocalParameter4dEXT: MISSING glNamedProgramLocalParameter4dvEXT: MISSING glNamedProgramLocalParameter4fEXT: MISSING glNamedProgramLocalParameter4fvEXT: MISSING glNamedProgramLocalParameterI4iEXT: MISSING glNamedProgramLocalParameterI4ivEXT: MISSING glNamedProgramLocalParameterI4uiEXT: MISSING glNamedProgramLocalParameterI4uivEXT: MISSING glNamedProgramLocalParameters4fvEXT: MISSING glNamedProgramLocalParametersI4ivEXT: MISSING glNamedProgramLocalParametersI4uivEXT: MISSING glNamedProgramStringEXT: MISSING glNamedRenderbufferStorageEXT: MISSING glNamedRenderbufferStorageMultisampleCoverageEXT: MISSING glNamedRenderbufferStorageMultisampleEXT: MISSING glProgramUniform1fEXT: MISSING glProgramUniform1fvEXT: MISSING glProgramUniform1iEXT: MISSING glProgramUniform1ivEXT: MISSING glProgramUniform1uiEXT: MISSING glProgramUniform1uivEXT: MISSING glProgramUniform2fEXT: MISSING glProgramUniform2fvEXT: MISSING glProgramUniform2iEXT: MISSING glProgramUniform2ivEXT: MISSING glProgramUniform2uiEXT: MISSING glProgramUniform2uivEXT: MISSING glProgramUniform3fEXT: MISSING glProgramUniform3fvEXT: MISSING glProgramUniform3iEXT: MISSING glProgramUniform3ivEXT: MISSING glProgramUniform3uiEXT: MISSING glProgramUniform3uivEXT: MISSING glProgramUniform4fEXT: MISSING glProgramUniform4fvEXT: MISSING glProgramUniform4iEXT: MISSING glProgramUniform4ivEXT: MISSING glProgramUniform4uiEXT: MISSING glProgramUniform4uivEXT: MISSING glProgramUniformMatrix2fvEXT: MISSING glProgramUniformMatrix2x3fvEXT: MISSING glProgramUniformMatrix2x4fvEXT: MISSING glProgramUniformMatrix3fvEXT: MISSING glProgramUniformMatrix3x2fvEXT: MISSING glProgramUniformMatrix3x4fvEXT: MISSING glProgramUniformMatrix4fvEXT: MISSING glProgramUniformMatrix4x2fvEXT: MISSING glProgramUniformMatrix4x3fvEXT: MISSING glPushClientAttribDefaultEXT: MISSING glTextureBufferEXT: MISSING glTextureImage1DEXT: MISSING glTextureImage2DEXT: MISSING glTextureImage3DEXT: MISSING glTextureParameterIivEXT: MISSING glTextureParameterIuivEXT: MISSING glTextureParameterfEXT: MISSING glTextureParameterfvEXT: MISSING glTextureParameteriEXT: MISSING glTextureParameterivEXT: MISSING glTextureRenderbufferEXT: MISSING glTextureSubImage1DEXT: MISSING glTextureSubImage2DEXT: MISSING glTextureSubImage3DEXT: MISSING glUnmapNamedBufferEXT: MISSING
GL_EXT_draw_buffers2: OK --------------------- glColorMaskIndexedEXT: OK glDisableIndexedEXT: OK glEnableIndexedEXT: OK glGetBooleanIndexedvEXT: OK glGetIntegerIndexedvEXT: OK glIsEnabledIndexedEXT: OK
GL_EXT_draw_instanced: MISSING ---------------------- glDrawArraysInstancedEXT: MISSING glDrawElementsInstancedEXT: MISSING
GL_EXT_draw_range_elements: OK --------------------------- glDrawRangeElementsEXT: OK
GL_EXT_fog_coord: OK ----------------- glFogCoordPointerEXT: OK glFogCoorddEXT: OK glFogCoorddvEXT: OK glFogCoordfEXT: OK glFogCoordfvEXT: OK
GL_EXT_fragment_lighting: MISSING ------------------------- glFragmentColorMaterialEXT: MISSING glFragmentLightModelfEXT: MISSING glFragmentLightModelfvEXT: MISSING glFragmentLightModeliEXT: MISSING glFragmentLightModelivEXT: MISSING glFragmentLightfEXT: MISSING glFragmentLightfvEXT: MISSING glFragmentLightiEXT: MISSING glFragmentLightivEXT: MISSING glFragmentMaterialfEXT: MISSING glFragmentMaterialfvEXT: MISSING glFragmentMaterialiEXT: MISSING glFragmentMaterialivEXT: MISSING glGetFragmentLightfvEXT: MISSING glGetFragmentLightivEXT: MISSING glGetFragmentMaterialfvEXT: MISSING glGetFragmentMaterialivEXT: MISSING glLightEnviEXT: MISSING
GL_EXT_framebuffer_blit: OK ------------------------ glBlitFramebufferEXT: OK
GL_EXT_framebuffer_multisample: OK ------------------------------- glRenderbufferStorageMultisampleEXT: OK
GL_EXT_framebuffer_object: OK -------------------------- glBindFramebufferEXT: OK glBindRenderbufferEXT: OK glCheckFramebufferStatusEXT: OK glDeleteFramebuffersEXT: OK glDeleteRenderbuffersEXT: OK glFramebufferRenderbufferEXT: OK glFramebufferTexture1DEXT: OK glFramebufferTexture2DEXT: OK glFramebufferTexture3DEXT: OK glGenFramebuffersEXT: OK glGenRenderbuffersEXT: OK glGenerateMipmapEXT: OK glGetFramebufferAttachmentParameterivEXT: OK glGetRenderbufferParameterivEXT: OK glIsFramebufferEXT: OK glIsRenderbufferEXT: OK glRenderbufferStorageEXT: OK
GL_EXT_framebuffer_sRGB: MISSING ------------------------
GL_EXT_geometry_shader4: OK ------------------------ glFramebufferTextureEXT: OK glFramebufferTextureFaceEXT: OK glFramebufferTextureLayerEXT: OK glProgramParameteriEXT: OK
GL_EXT_gpu_program_parameters: OK ------------------------------ glProgramEnvParameters4fvEXT: OK glProgramLocalParameters4fvEXT: OK
GL_EXT_gpu_shader4: OK ------------------- glBindFragDataLocationEXT: OK glGetFragDataLocationEXT: OK glGetUniformuivEXT: OK glGetVertexAttribIivEXT: OK glGetVertexAttribIuivEXT: OK glUniform1uiEXT: OK glUniform1uivEXT: OK glUniform2uiEXT: OK glUniform2uivEXT: OK glUniform3uiEXT: OK glUniform3uivEXT: OK glUniform4uiEXT: OK glUniform4uivEXT: OK glVertexAttribI1iEXT: OK glVertexAttribI1ivEXT: OK glVertexAttribI1uiEXT: OK glVertexAttribI1uivEXT: OK glVertexAttribI2iEXT: OK glVertexAttribI2ivEXT: OK glVertexAttribI2uiEXT: OK glVertexAttribI2uivEXT: OK glVertexAttribI3iEXT: OK glVertexAttribI3ivEXT: OK glVertexAttribI3uiEXT: OK glVertexAttribI3uivEXT: OK glVertexAttribI4bvEXT: OK glVertexAttribI4iEXT: OK glVertexAttribI4ivEXT: OK glVertexAttribI4svEXT: OK glVertexAttribI4ubvEXT: OK glVertexAttribI4uiEXT: OK glVertexAttribI4uivEXT: OK glVertexAttribI4usvEXT: OK glVertexAttribIPointerEXT: OK
GL_EXT_histogram: MISSING ----------------- glGetHistogramEXT: MISSING glGetHistogramParameterfvEXT: MISSING glGetHistogramParameterivEXT: MISSING glGetMinmaxEXT: MISSING glGetMinmaxParameterfvEXT: MISSING glGetMinmaxParameterivEXT: MISSING glHistogramEXT: MISSING glMinmaxEXT: MISSING glResetHistogramEXT: MISSING glResetMinmaxEXT: MISSING
GL_EXT_index_array_formats: MISSING ---------------------------
GL_EXT_index_func: MISSING ------------------ glIndexFuncEXT: MISSING
GL_EXT_index_material: MISSING ---------------------- glIndexMaterialEXT: MISSING
GL_EXT_index_texture: MISSING ---------------------
GL_EXT_light_texture: MISSING --------------------- glApplyTextureEXT: MISSING glTextureLightEXT: MISSING glTextureMaterialEXT: MISSING
GL_EXT_misc_attribute: MISSING ----------------------
GL_EXT_multi_draw_arrays: OK ------------------------- glMultiDrawArraysEXT: OK glMultiDrawElementsEXT: OK
GL_EXT_multisample: MISSING ------------------- glSampleMaskEXT: MISSING glSamplePatternEXT: MISSING
GL_EXT_packed_depth_stencil: OK ----------------------------
GL_EXT_packed_float: MISSING --------------------
GL_EXT_packed_pixels: MISSING ---------------------
GL_EXT_paletted_texture: OK [MISSING] ------------------------ glColorTableEXT: OK glGetColorTableEXT: OK glGetColorTableParameterfvEXT: OK glGetColorTableParameterivEXT: OK
GL_EXT_pixel_buffer_object: MISSING ---------------------------
GL_EXT_pixel_transform: MISSING ----------------------- glGetPixelTransformParameterfvEXT: MISSING glGetPixelTransformParameterivEXT: MISSING glPixelTransformParameterfEXT: MISSING glPixelTransformParameterfvEXT: MISSING glPixelTransformParameteriEXT: MISSING glPixelTransformParameterivEXT: MISSING
GL_EXT_pixel_transform_color_table: MISSING -----------------------------------
GL_EXT_point_parameters: MISSING ------------------------ glPointParameterfEXT: MISSING glPointParameterfvEXT: MISSING
GL_EXT_polygon_offset: MISSING ---------------------- glPolygonOffsetEXT: MISSING
GL_EXT_rescale_normal: OK ----------------------
GL_EXT_scene_marker: MISSING -------------------- glBeginSceneEXT: MISSING glEndSceneEXT: MISSING
GL_EXT_secondary_color: OK ----------------------- glSecondaryColor3bEXT: OK glSecondaryColor3bvEXT: OK glSecondaryColor3dEXT: OK glSecondaryColor3dvEXT: OK glSecondaryColor3fEXT: OK glSecondaryColor3fvEXT: OK glSecondaryColor3iEXT: OK glSecondaryColor3ivEXT: OK glSecondaryColor3sEXT: OK glSecondaryColor3svEXT: OK glSecondaryColor3ubEXT: OK glSecondaryColor3ubvEXT: OK glSecondaryColor3uiEXT: OK glSecondaryColor3uivEXT: OK glSecondaryColor3usEXT: OK glSecondaryColor3usvEXT: OK glSecondaryColorPointerEXT: OK
GL_EXT_separate_specular_color: MISSING -------------------------------
GL_EXT_shadow_funcs: OK --------------------
GL_EXT_shared_texture_palette: MISSING ------------------------------
GL_EXT_stencil_clear_tag: MISSING -------------------------
GL_EXT_stencil_two_side: OK ------------------------ glActiveStencilFaceEXT: OK
GL_EXT_stencil_wrap: OK --------------------
GL_EXT_subtexture: MISSING ------------------ glTexSubImage1DEXT: MISSING glTexSubImage2DEXT: MISSING glTexSubImage3DEXT: MISSING
GL_EXT_texture: MISSING ---------------
GL_EXT_texture3D: MISSING ----------------- glTexImage3DEXT: MISSING
GL_EXT_texture_array: MISSING ---------------------
GL_EXT_texture_buffer_object: MISSING ----------------------------- glTexBufferEXT: MISSING
GL_EXT_texture_compression_dxt1: OK --------------------------------
GL_EXT_texture_compression_latc: MISSING --------------------------------
GL_EXT_texture_compression_rgtc: MISSING --------------------------------
GL_EXT_texture_compression_s3tc: OK --------------------------------
GL_EXT_texture_cube_map: MISSING ------------------------
GL_EXT_texture_edge_clamp: MISSING --------------------------
GL_EXT_texture_env: MISSING -------------------
GL_EXT_texture_env_add: OK -----------------------
GL_EXT_texture_env_combine: MISSING ---------------------------
GL_EXT_texture_env_dot3: MISSING ------------------------
GL_EXT_texture_filter_anisotropic: OK ----------------------------------
GL_EXT_texture_integer: OK ----------------------- glClearColorIiEXT: OK glClearColorIuiEXT: OK glGetTexParameterIivEXT: OK glGetTexParameterIuivEXT: OK glTexParameterIivEXT: OK glTexParameterIuivEXT: OK
GL_EXT_texture_lod_bias: OK ------------------------
GL_EXT_texture_mirror_clamp: OK ----------------------------
GL_EXT_texture_object: MISSING ---------------------- glAreTexturesResidentEXT: MISSING glBindTextureEXT: MISSING glDeleteTexturesEXT: MISSING glGenTexturesEXT: MISSING glIsTextureEXT: MISSING glPrioritizeTexturesEXT: MISSING
GL_EXT_texture_perturb_normal: MISSING ------------------------------ glTextureNormalEXT: MISSING
GL_EXT_texture_rectangle: OK -------------------------
GL_EXT_texture_sRGB: OK --------------------
GL_EXT_texture_shared_exponent: MISSING -------------------------------
GL_EXT_texture_swizzle: MISSING -----------------------
GL_EXT_timer_query: MISSING ------------------- glGetQueryObjecti64vEXT: MISSING glGetQueryObjectui64vEXT: MISSING
GL_EXT_transform_feedback: OK -------------------------- glBeginTransformFeedbackEXT: OK glBindBufferBaseEXT: OK glBindBufferOffsetEXT: OK glBindBufferRangeEXT: OK glEndTransformFeedbackEXT: OK glGetTransformFeedbackVaryingEXT: OK glTransformFeedbackVaryingsEXT: OK
GL_EXT_vertex_array: MISSING -------------------- glArrayElementEXT: MISSING glColorPointerEXT: MISSING glDrawArraysEXT: MISSING glEdgeFlagPointerEXT: MISSING glGetPointervEXT: MISSING glIndexPointerEXT: MISSING glNormalPointerEXT: MISSING glTexCoordPointerEXT: MISSING glVertexPointerEXT: MISSING
GL_EXT_vertex_array_bgra: MISSING -------------------------
GL_EXT_vertex_shader: MISSING --------------------- glBeginVertexShaderEXT: MISSING glBindLightParameterEXT: MISSING glBindMaterialParameterEXT: MISSING glBindParameterEXT: MISSING glBindTexGenParameterEXT: MISSING glBindTextureUnitParameterEXT: MISSING glBindVertexShaderEXT: MISSING glDeleteVertexShaderEXT: MISSING glDisableVariantClientStateEXT: MISSING glEnableVariantClientStateEXT: MISSING glEndVertexShaderEXT: MISSING glExtractComponentEXT: MISSING glGenSymbolsEXT: MISSING glGenVertexShadersEXT: MISSING glGetInvariantBooleanvEXT: MISSING glGetInvariantFloatvEXT: MISSING glGetInvariantIntegervEXT: MISSING glGetLocalConstantBooleanvEXT: MISSING glGetLocalConstantFloatvEXT: MISSING glGetLocalConstantIntegervEXT: MISSING glGetVariantBooleanvEXT: MISSING glGetVariantFloatvEXT: MISSING glGetVariantIntegervEXT: MISSING glGetVariantPointervEXT: MISSING glInsertComponentEXT: MISSING glIsVariantEnabledEXT: MISSING glSetInvariantEXT: MISSING glSetLocalConstantEXT: MISSING glShaderOp1EXT: MISSING glShaderOp2EXT: MISSING glShaderOp3EXT: MISSING glSwizzleEXT: MISSING glVariantPointerEXT: MISSING glVariantbvEXT: MISSING glVariantdvEXT: MISSING glVariantfvEXT: MISSING glVariantivEXT: MISSING glVariantsvEXT: MISSING glVariantubvEXT: MISSING glVariantuivEXT: MISSING glVariantusvEXT: MISSING glWriteMaskEXT: MISSING
GL_EXT_vertex_weighting: MISSING ------------------------ glVertexWeightPointerEXT: MISSING glVertexWeightfEXT: MISSING glVertexWeightfvEXT: MISSING
GL_GREMEDY_frame_terminator: MISSING ---------------------------- glFrameTerminatorGREMEDY: MISSING
GL_GREMEDY_string_marker: MISSING ------------------------- glStringMarkerGREMEDY: MISSING
GL_HP_convolution_border_modes: MISSING -------------------------------
GL_HP_image_transform: MISSING ---------------------- glGetImageTransformParameterfvHP: MISSING glGetImageTransformParameterivHP: MISSING glImageTransformParameterfHP: MISSING glImageTransformParameterfvHP: MISSING glImageTransformParameteriHP: MISSING glImageTransformParameterivHP: MISSING
GL_HP_occlusion_test: MISSING ---------------------
GL_HP_texture_lighting: MISSING -----------------------
GL_IBM_cull_vertex: MISSING -------------------
GL_IBM_multimode_draw_arrays: MISSING ----------------------------- glMultiModeDrawArraysIBM: MISSING glMultiModeDrawElementsIBM: MISSING
GL_IBM_rasterpos_clip: OK ----------------------
GL_IBM_static_data: MISSING -------------------
GL_IBM_texture_mirrored_repeat: MISSING -------------------------------
GL_IBM_vertex_array_lists: MISSING -------------------------- glColorPointerListIBM: MISSING glEdgeFlagPointerListIBM: MISSING glFogCoordPointerListIBM: MISSING glIndexPointerListIBM: MISSING glNormalPointerListIBM: MISSING glSecondaryColorPointerListIBM: MISSING glTexCoordPointerListIBM: MISSING glVertexPointerListIBM: MISSING
GL_INGR_color_clamp: MISSING --------------------
GL_INGR_interlace_read: MISSING -----------------------
GL_INTEL_parallel_arrays: MISSING ------------------------- glColorPointervINTEL: MISSING glNormalPointervINTEL: MISSING glTexCoordPointervINTEL: MISSING glVertexPointervINTEL: MISSING
GL_INTEL_texture_scissor: MISSING ------------------------- glTexScissorFuncINTEL: MISSING glTexScissorINTEL: MISSING
GL_KTX_buffer_region: MISSING --------------------- glBufferRegionEnabledEXT: MISSING glDeleteBufferRegionEXT: MISSING glDrawBufferRegionEXT: MISSING glNewBufferRegionEXT: MISSING glReadBufferRegionEXT: MISSING
GL_MESAX_texture_stack: MISSING -----------------------
GL_MESA_pack_invert: MISSING --------------------
GL_MESA_resize_buffers: MISSING ----------------------- glResizeBuffersMESA: MISSING
GL_MESA_window_pos: MISSING ------------------- glWindowPos2dMESA: MISSING glWindowPos2dvMESA: MISSING glWindowPos2fMESA: MISSING glWindowPos2fvMESA: MISSING glWindowPos2iMESA: MISSING glWindowPos2ivMESA: MISSING glWindowPos2sMESA: MISSING glWindowPos2svMESA: MISSING glWindowPos3dMESA: MISSING glWindowPos3dvMESA: MISSING glWindowPos3fMESA: MISSING glWindowPos3fvMESA: MISSING glWindowPos3iMESA: MISSING glWindowPos3ivMESA: MISSING glWindowPos3sMESA: MISSING glWindowPos3svMESA: MISSING glWindowPos4dMESA: MISSING glWindowPos4dvMESA: MISSING glWindowPos4fMESA: MISSING glWindowPos4fvMESA: MISSING glWindowPos4iMESA: MISSING glWindowPos4ivMESA: MISSING glWindowPos4sMESA: MISSING glWindowPos4svMESA: MISSING
GL_MESA_ycbcr_texture: MISSING ----------------------
GL_NV_blend_square: OK -------------------
GL_NV_conditional_render: MISSING ------------------------- glBeginConditionalRenderNV: MISSING glEndConditionalRenderNV: MISSING
GL_NV_copy_depth_to_color: MISSING --------------------------
GL_NV_depth_buffer_float: MISSING ------------------------- glClearDepthdNV: MISSING glDepthBoundsdNV: MISSING glDepthRangedNV: MISSING
GL_NV_depth_clamp: OK ------------------
GL_NV_depth_range_unclamped: MISSING ----------------------------
GL_NV_evaluators: MISSING ----------------- glEvalMapsNV: MISSING glGetMapAttribParameterfvNV: MISSING glGetMapAttribParameterivNV: MISSING glGetMapControlPointsNV: MISSING glGetMapParameterfvNV: MISSING glGetMapParameterivNV: MISSING glMapControlPointsNV: MISSING glMapParameterfvNV: MISSING glMapParameterivNV: MISSING
GL_NV_explicit_multisample: MISSING --------------------------- glGetMultisamplefvNV: MISSING glSampleMaskIndexedNV: MISSING glTexRenderbufferNV: MISSING
GL_NV_fence: MISSING ------------ glDeleteFencesNV: MISSING glFinishFenceNV: MISSING glGenFencesNV: MISSING glGetFenceivNV: MISSING glIsFenceNV: MISSING glSetFenceNV: MISSING glTestFenceNV: MISSING
GL_NV_float_buffer: MISSING -------------------
GL_NV_fog_distance: OK -------------------
GL_NV_fragment_program: MISSING ----------------------- glGetProgramNamedParameterdvNV: MISSING glGetProgramNamedParameterfvNV: MISSING glProgramNamedParameter4dNV: MISSING glProgramNamedParameter4dvNV: MISSING glProgramNamedParameter4fNV: MISSING glProgramNamedParameter4fvNV: MISSING
GL_NV_fragment_program2: OK ------------------------
GL_NV_fragment_program4: MISSING ------------------------
GL_NV_fragment_program_option: OK ------------------------------
GL_NV_framebuffer_multisample_coverage: MISSING --------------------------------------- glRenderbufferStorageMultisampleCoverageNV: MISSING
GL_NV_geometry_program4: MISSING ------------------------ glProgramVertexLimitNV: MISSING
GL_NV_geometry_shader4: MISSING -----------------------
GL_NV_gpu_program4: MISSING ------------------- glProgramEnvParameterI4iNV: MISSING glProgramEnvParameterI4ivNV: MISSING glProgramEnvParameterI4uiNV: MISSING glProgramEnvParameterI4uivNV: MISSING glProgramEnvParametersI4ivNV: MISSING glProgramEnvParametersI4uivNV: MISSING glProgramLocalParameterI4iNV: MISSING glProgramLocalParameterI4ivNV: MISSING glProgramLocalParameterI4uiNV: MISSING glProgramLocalParameterI4uivNV: MISSING glProgramLocalParametersI4ivNV: MISSING glProgramLocalParametersI4uivNV: MISSING
GL_NV_half_float: MISSING ----------------- glColor3hNV: MISSING glColor3hvNV: MISSING glColor4hNV: MISSING glColor4hvNV: MISSING glFogCoordhNV: MISSING glFogCoordhvNV: MISSING glMultiTexCoord1hNV: MISSING glMultiTexCoord1hvNV: MISSING glMultiTexCoord2hNV: MISSING glMultiTexCoord2hvNV: MISSING glMultiTexCoord3hNV: MISSING glMultiTexCoord3hvNV: MISSING glMultiTexCoord4hNV: MISSING glMultiTexCoord4hvNV: MISSING glNormal3hNV: MISSING glNormal3hvNV: MISSING glSecondaryColor3hNV: MISSING glSecondaryColor3hvNV: MISSING glTexCoord1hNV: MISSING glTexCoord1hvNV: MISSING glTexCoord2hNV: MISSING glTexCoord2hvNV: MISSING glTexCoord3hNV: MISSING glTexCoord3hvNV: MISSING glTexCoord4hNV: MISSING glTexCoord4hvNV: MISSING glVertex2hNV: MISSING glVertex2hvNV: MISSING glVertex3hNV: MISSING glVertex3hvNV: MISSING glVertex4hNV: MISSING glVertex4hvNV: MISSING glVertexAttrib1hNV: MISSING glVertexAttrib1hvNV: MISSING glVertexAttrib2hNV: MISSING glVertexAttrib2hvNV: MISSING glVertexAttrib3hNV: MISSING glVertexAttrib3hvNV: MISSING glVertexAttrib4hNV: MISSING glVertexAttrib4hvNV: MISSING glVertexAttribs1hvNV: MISSING glVertexAttribs2hvNV: MISSING glVertexAttribs3hvNV: MISSING glVertexAttribs4hvNV: MISSING glVertexWeighthNV: MISSING glVertexWeighthvNV: MISSING
GL_NV_light_max_exponent: OK -------------------------
GL_NV_multisample_filter_hint: OK ------------------------------
GL_NV_occlusion_query: MISSING ---------------------- glBeginOcclusionQueryNV: MISSING glDeleteOcclusionQueriesNV: MISSING glEndOcclusionQueryNV: MISSING glGenOcclusionQueriesNV: MISSING glGetOcclusionQueryivNV: MISSING glGetOcclusionQueryuivNV: MISSING glIsOcclusionQueryNV: MISSING
GL_NV_packed_depth_stencil: MISSING ---------------------------
GL_NV_parameter_buffer_object: MISSING ------------------------------ glProgramBufferParametersIivNV: MISSING glProgramBufferParametersIuivNV: MISSING glProgramBufferParametersfvNV: MISSING
GL_NV_pixel_data_range: MISSING ----------------------- glFlushPixelDataRangeNV: MISSING glPixelDataRangeNV: MISSING
GL_NV_point_sprite: OK ------------------- glPointParameteriNV: OK glPointParameterivNV: OK
GL_NV_present_video: MISSING -------------------- glGetVideoi64vNV: MISSING glGetVideoivNV: MISSING glGetVideoui64vNV: MISSING glGetVideouivNV: MISSING glPresentFrameDualFillNV: MISSING glPresentFrameKeyedNV: MISSING glVideoParameterivNV: MISSING
GL_NV_primitive_restart: MISSING ------------------------ glPrimitiveRestartIndexNV: MISSING glPrimitiveRestartNV: MISSING
GL_NV_register_combiners: OK ------------------------- glCombinerInputNV: OK glCombinerOutputNV: OK glCombinerParameterfNV: OK glCombinerParameterfvNV: OK glCombinerParameteriNV: OK glCombinerParameterivNV: OK glFinalCombinerInputNV: OK glGetCombinerInputParameterfvNV: OK glGetCombinerInputParameterivNV: OK glGetCombinerOutputParameterfvNV: OK glGetCombinerOutputParameterivNV: OK glGetFinalCombinerInputParameterfvNV: OK glGetFinalCombinerInputParameterivNV: OK
GL_NV_register_combiners2: OK -------------------------- glCombinerStageParameterfvNV: OK glGetCombinerStageParameterfvNV: OK
GL_NV_texgen_emboss: MISSING --------------------
GL_NV_texgen_reflection: OK ------------------------
GL_NV_texture_compression_vtc: MISSING ------------------------------
GL_NV_texture_env_combine4: MISSING ---------------------------
GL_NV_texture_expand_normal: MISSING ----------------------------
GL_NV_texture_rectangle: MISSING ------------------------
GL_NV_texture_shader: OK ---------------------
GL_NV_texture_shader2: OK ----------------------
GL_NV_texture_shader3: OK ----------------------
GL_NV_transform_feedback: MISSING ------------------------- glActiveVaryingNV: MISSING glBeginTransformFeedbackNV: MISSING glBindBufferBaseNV: MISSING glBindBufferOffsetNV: MISSING glBindBufferRangeNV: MISSING glEndTransformFeedbackNV: MISSING glGetActiveVaryingNV: MISSING glGetTransformFeedbackVaryingNV: MISSING glGetVaryingLocationNV: MISSING glTransformFeedbackAttribsNV: MISSING glTransformFeedbackVaryingsNV: MISSING
GL_NV_vertex_array_range: MISSING ------------------------- glFlushVertexArrayRangeNV: MISSING glVertexArrayRangeNV: MISSING
GL_NV_vertex_array_range2: MISSING --------------------------
GL_NV_vertex_program: MISSING --------------------- glAreProgramsResidentNV: MISSING glBindProgramNV: MISSING glDeleteProgramsNV: MISSING glExecuteProgramNV: MISSING glGenProgramsNV: MISSING glGetProgramParameterdvNV: MISSING glGetProgramParameterfvNV: MISSING glGetProgramStringNV: MISSING glGetProgramivNV: MISSING glGetTrackMatrixivNV: MISSING glGetVertexAttribPointervNV: MISSING glGetVertexAttribdvNV: MISSING glGetVertexAttribfvNV: MISSING glGetVertexAttribivNV: MISSING glIsProgramNV: MISSING glLoadProgramNV: MISSING glProgramParameter4dNV: MISSING glProgramParameter4dvNV: MISSING glProgramParameter4fNV: MISSING glProgramParameter4fvNV: MISSING glProgramParameters4dvNV: MISSING glProgramParameters4fvNV: MISSING glRequestResidentProgramsNV: MISSING glTrackMatrixNV: MISSING glVertexAttrib1dNV: MISSING glVertexAttrib1dvNV: MISSING glVertexAttrib1fNV: MISSING glVertexAttrib1fvNV: MISSING glVertexAttrib1sNV: MISSING glVertexAttrib1svNV: MISSING glVertexAttrib2dNV: MISSING glVertexAttrib2dvNV: MISSING glVertexAttrib2fNV: MISSING glVertexAttrib2fvNV: MISSING glVertexAttrib2sNV: MISSING glVertexAttrib2svNV: MISSING glVertexAttrib3dNV: MISSING glVertexAttrib3dvNV: MISSING glVertexAttrib3fNV: MISSING glVertexAttrib3fvNV: MISSING glVertexAttrib3sNV: MISSING glVertexAttrib3svNV: MISSING glVertexAttrib4dNV: MISSING glVertexAttrib4dvNV: MISSING glVertexAttrib4fNV: MISSING glVertexAttrib4fvNV: MISSING glVertexAttrib4sNV: MISSING glVertexAttrib4svNV: MISSING glVertexAttrib4ubNV: MISSING glVertexAttrib4ubvNV: MISSING glVertexAttribPointerNV: MISSING glVertexAttribs1dvNV: MISSING glVertexAttribs1fvNV: MISSING glVertexAttribs1svNV: MISSING glVertexAttribs2dvNV: MISSING glVertexAttribs2fvNV: MISSING glVertexAttribs2svNV: MISSING glVertexAttribs3dvNV: MISSING glVertexAttribs3fvNV: MISSING glVertexAttribs3svNV: MISSING glVertexAttribs4dvNV: MISSING glVertexAttribs4fvNV: MISSING glVertexAttribs4svNV: MISSING glVertexAttribs4ubvNV: MISSING
GL_NV_vertex_program1_1: MISSING ------------------------
GL_NV_vertex_program2: MISSING ----------------------
GL_NV_vertex_program2_option: OK -----------------------------
GL_NV_vertex_program3: OK ----------------------
GL_NV_vertex_program4: MISSING ----------------------
GL_OES_byte_coordinates: MISSING ------------------------
GL_OES_compressed_paletted_texture: MISSING -----------------------------------
GL_OES_read_format: MISSING -------------------
GL_OES_single_precision: MISSING ------------------------ glClearDepthfOES: MISSING glClipPlanefOES: MISSING glDepthRangefOES: MISSING glFrustumfOES: MISSING glGetClipPlanefOES: MISSING glOrthofOES: MISSING
GL_OML_interlace: MISSING -----------------
GL_OML_resample: MISSING ----------------
GL_OML_subsample: MISSING -----------------
GL_PGI_misc_hints: MISSING ------------------
GL_PGI_vertex_hints: MISSING --------------------
GL_REND_screen_coordinates: MISSING ---------------------------
GL_S3_s3tc: MISSING -----------
GL_SGIS_color_range: MISSING --------------------
GL_SGIS_detail_texture: MISSING ----------------------- glDetailTexFuncSGIS: MISSING glGetDetailTexFuncSGIS: MISSING
GL_SGIS_fog_function: MISSING --------------------- glFogFuncSGIS: MISSING glGetFogFuncSGIS: MISSING
GL_SGIS_generate_mipmap: OK ------------------------
GL_SGIS_multisample: MISSING -------------------- glSampleMaskSGIS: MISSING glSamplePatternSGIS: MISSING
GL_SGIS_pixel_texture: MISSING ----------------------
GL_SGIS_point_line_texgen: MISSING --------------------------
GL_SGIS_sharpen_texture: MISSING ------------------------ glGetSharpenTexFuncSGIS: MISSING glSharpenTexFuncSGIS: MISSING
GL_SGIS_texture4D: MISSING ------------------ glTexImage4DSGIS: MISSING glTexSubImage4DSGIS: MISSING
GL_SGIS_texture_border_clamp: MISSING -----------------------------
GL_SGIS_texture_edge_clamp: OK ---------------------------
GL_SGIS_texture_filter4: MISSING ------------------------ glGetTexFilterFuncSGIS: MISSING glTexFilterFuncSGIS: MISSING
GL_SGIS_texture_lod: OK --------------------
GL_SGIS_texture_select: MISSING -----------------------
GL_SGIX_async: MISSING -------------- glAsyncMarkerSGIX: MISSING glDeleteAsyncMarkersSGIX: MISSING glFinishAsyncSGIX: MISSING glGenAsyncMarkersSGIX: MISSING glIsAsyncMarkerSGIX: MISSING glPollAsyncSGIX: MISSING
GL_SGIX_async_histogram: MISSING ------------------------
GL_SGIX_async_pixel: MISSING --------------------
GL_SGIX_blend_alpha_minmax: MISSING ---------------------------
GL_SGIX_clipmap: MISSING ----------------
GL_SGIX_convolution_accuracy: MISSING -----------------------------
GL_SGIX_depth_texture: MISSING ----------------------
GL_SGIX_flush_raster: MISSING --------------------- glFlushRasterSGIX: MISSING
GL_SGIX_fog_offset: MISSING -------------------
GL_SGIX_fog_texture: MISSING -------------------- glTextureFogSGIX: MISSING
GL_SGIX_fragment_specular_lighting: MISSING ----------------------------------- glFragmentColorMaterialSGIX: MISSING glFragmentLightModelfSGIX: MISSING glFragmentLightModelfvSGIX: MISSING glFragmentLightModeliSGIX: MISSING glFragmentLightModelivSGIX: MISSING glFragmentLightfSGIX: MISSING glFragmentLightfvSGIX: MISSING glFragmentLightiSGIX: MISSING glFragmentLightivSGIX: MISSING glFragmentMaterialfSGIX: MISSING glFragmentMaterialfvSGIX: MISSING glFragmentMaterialiSGIX: MISSING glFragmentMaterialivSGIX: MISSING glGetFragmentLightfvSGIX: MISSING glGetFragmentLightivSGIX: MISSING glGetFragmentMaterialfvSGIX: MISSING glGetFragmentMaterialivSGIX: MISSING
GL_SGIX_framezoom: MISSING ------------------ glFrameZoomSGIX: MISSING
GL_SGIX_interlace: MISSING ------------------
GL_SGIX_ir_instrument1: MISSING -----------------------
GL_SGIX_list_priority: MISSING ----------------------
GL_SGIX_pixel_texture: MISSING ---------------------- glPixelTexGenSGIX: MISSING
GL_SGIX_pixel_texture_bits: MISSING ---------------------------
GL_SGIX_reference_plane: MISSING ------------------------ glReferencePlaneSGIX: MISSING
GL_SGIX_resample: MISSING -----------------
GL_SGIX_shadow: MISSING ---------------
GL_SGIX_shadow_ambient: MISSING -----------------------
GL_SGIX_sprite: MISSING --------------- glSpriteParameterfSGIX: MISSING glSpriteParameterfvSGIX: MISSING glSpriteParameteriSGIX: MISSING glSpriteParameterivSGIX: MISSING
GL_SGIX_tag_sample_buffer: MISSING -------------------------- glTagSampleBufferSGIX: MISSING
GL_SGIX_texture_add_env: MISSING ------------------------
GL_SGIX_texture_coordinate_clamp: MISSING ---------------------------------
GL_SGIX_texture_lod_bias: MISSING -------------------------
GL_SGIX_texture_multi_buffer: MISSING -----------------------------
GL_SGIX_texture_range: MISSING ----------------------
GL_SGIX_texture_scale_bias: MISSING ---------------------------
GL_SGIX_vertex_preclip: MISSING -----------------------
GL_SGIX_vertex_preclip_hint: MISSING ----------------------------
GL_SGIX_ycrcb: MISSING --------------
GL_SGI_color_matrix: MISSING --------------------
GL_SGI_color_table: MISSING ------------------- glColorTableParameterfvSGI: MISSING glColorTableParameterivSGI: MISSING glColorTableSGI: MISSING glCopyColorTableSGI: MISSING glGetColorTableParameterfvSGI: MISSING glGetColorTableParameterivSGI: MISSING glGetColorTableSGI: MISSING
GL_SGI_texture_color_table: MISSING ---------------------------
GL_SUNX_constant_data: MISSING ---------------------- glFinishTextureSUNX: MISSING
GL_SUN_convolution_border_modes: MISSING --------------------------------
GL_SUN_global_alpha: MISSING -------------------- glGlobalAlphaFactorbSUN: MISSING glGlobalAlphaFactordSUN: MISSING glGlobalAlphaFactorfSUN: MISSING glGlobalAlphaFactoriSUN: MISSING glGlobalAlphaFactorsSUN: MISSING glGlobalAlphaFactorubSUN: MISSING glGlobalAlphaFactoruiSUN: MISSING glGlobalAlphaFactorusSUN: MISSING
GL_SUN_mesh_array: MISSING ------------------
GL_SUN_read_video_pixels: MISSING ------------------------- glReadVideoPixelsSUN: MISSING
GL_SUN_slice_accum: MISSING -------------------
GL_SUN_triangle_list: MISSING --------------------- glReplacementCodePointerSUN: MISSING glReplacementCodeubSUN: MISSING glReplacementCodeubvSUN: MISSING glReplacementCodeuiSUN: MISSING glReplacementCodeuivSUN: MISSING glReplacementCodeusSUN: MISSING glReplacementCodeusvSUN: MISSING
GL_SUN_vertex: MISSING -------------- glColor3fVertex3fSUN: MISSING glColor3fVertex3fvSUN: MISSING glColor4fNormal3fVertex3fSUN: MISSING glColor4fNormal3fVertex3fvSUN: MISSING glColor4ubVertex2fSUN: MISSING glColor4ubVertex2fvSUN: MISSING glColor4ubVertex3fSUN: MISSING glColor4ubVertex3fvSUN: MISSING glNormal3fVertex3fSUN: MISSING glNormal3fVertex3fvSUN: MISSING glReplacementCodeuiColor3fVertex3fSUN: MISSING glReplacementCodeuiColor3fVertex3fvSUN: MISSING glReplacementCodeuiColor4fNormal3fVertex3fSUN: MISSING glReplacementCodeuiColor4fNormal3fVertex3fvSUN: MISSING glReplacementCodeuiColor4ubVertex3fSUN: MISSING glReplacementCodeuiColor4ubVertex3fvSUN: MISSING glReplacementCodeuiNormal3fVertex3fSUN: MISSING glReplacementCodeuiNormal3fVertex3fvSUN: MISSING glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: MISSING glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: MISSING glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: MISSING glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: MISSING glReplacementCodeuiTexCoord2fVertex3fSUN: MISSING glReplacementCodeuiTexCoord2fVertex3fvSUN: MISSING glReplacementCodeuiVertex3fSUN: MISSING glReplacementCodeuiVertex3fvSUN: MISSING glTexCoord2fColor3fVertex3fSUN: MISSING glTexCoord2fColor3fVertex3fvSUN: MISSING glTexCoord2fColor4fNormal3fVertex3fSUN: MISSING glTexCoord2fColor4fNormal3fVertex3fvSUN: MISSING glTexCoord2fColor4ubVertex3fSUN: MISSING glTexCoord2fColor4ubVertex3fvSUN: MISSING glTexCoord2fNormal3fVertex3fSUN: MISSING glTexCoord2fNormal3fVertex3fvSUN: MISSING glTexCoord2fVertex3fSUN: MISSING glTexCoord2fVertex3fvSUN: MISSING glTexCoord4fColor4fNormal3fVertex4fSUN: MISSING glTexCoord4fColor4fNormal3fVertex4fvSUN: MISSING glTexCoord4fVertex4fSUN: MISSING glTexCoord4fVertex4fvSUN: MISSING
GL_WIN_phong_shading: MISSING ---------------------
GL_WIN_specular_fog: MISSING --------------------
GL_WIN_swap_hint: MISSING ----------------- glAddSwapHintRectWIN: MISSING
fgmasdr IOhannes
Am 27.04.2009 um 12:33 schrieb IOhannes m zmoelnig:
Matthias Neuenhofer wrote:
apart from that id don't know whether i can follow your problems here. what are you trying to achieve with commenting out the 2 conditions? to not get an error "cannot load shader now! deferrubg till later..."?
no i got the error "cannot load shader now" from this part when it has VERSION_2_1 if(!GLEW_VERSION_2_0 && !GLEW_ARB_geometry_shader4) { post("cannot load shader now!"); return; } VERSION_2_0 work so i dont understand why V_2_1 failed - openGL 2.1 and latest GLEW version 1.5.1 are installed
but as i understand it: GL_VERSION_2_1 defines geometry shaders. on GL_VERSION_2_0 a card _could_ have the ARB extension; if either was true (in your case at least the ARB extension is there) then the checks should succeed. btw, i have simplified the code in svn a bit (using isRunnable() which you didn't have to hack, so it seems like the new code might work for you anyhow).
ja no problems with the new code compiled and run fine
as for "latest GLEW" being installed, this doesn't really matter, since Gem includes its own static version of GLEW.
but if you have it installed, could you post the output of glewinfo?
at least the geometry_shader are functioning :)
yep; that's all we want, isn't it?
fgmasdr IOhannes
IOhannes m zmoelnig a écrit :
cyrille henry wrote:
mabye i introduced some problems when i defaulted to "triangles"
yep, i think so :
void glsl_program:: outtypeMess(GLuint outtype) { m_geoInType=outtype; if(m_program && glProgramParameteriEXT) { glProgramParameteriEXT(m_program,GL_GEOMETRY_INPUT_TYPE_EXT,m_geoOutType); } }
i think : m_geoInType=outtype; is a copy/paste typo and should be : m_geoOutType=outtype;
that could explain my problems...
fixed in svn.
Cyrille
ok. it now work as it should. here is a small patch that i used to have a better understanding.
i still have an interrogation, see in the patch if you could help...
Cyrille
cyrille henry a écrit :
IOhannes m zmoelnig a écrit :
cyrille henry wrote:
mabye i introduced some problems when i defaulted to "triangles"
yep, i think so :
void glsl_program:: outtypeMess(GLuint outtype) { m_geoInType=outtype; if(m_program && glProgramParameteriEXT) {
glProgramParameteriEXT(m_program,GL_GEOMETRY_INPUT_TYPE_EXT,m_geoOutType); } }
i think : m_geoInType=outtype; is a copy/paste typo and should be : m_geoOutType=outtype;
that could explain my problems...
fixed in svn.
Cyrille
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
the alpha channel differs i think in strip mode you draw the triangles twice or 3 times
i get invalid value on all outtypes and adjacency intype
is is working for you?
Matthias
Am 25.04.2009 um 23:11 schrieb cyrille henry:
ok. it now work as it should. here is a small patch that i used to have a better understanding.
i still have an interrogation, see in the patch if you could help...
Cyrille
cyrille henry a écrit :
IOhannes m zmoelnig a écrit :
cyrille henry wrote: mabye i introduced some problems when i defaulted to "triangles"
yep, i think so : void glsl_program:: outtypeMess(GLuint outtype) { m_geoInType=outtype; if(m_program && glProgramParameteriEXT) {
glProgramParameteriEXT (m_program,GL_GEOMETRY_INPUT_TYPE_EXT,m_geoOutType); } } i think : m_geoInType=outtype; is a copy/paste typo and should be : m_geoOutType=outtype; that could explain my problems... fixed in svn. Cyrille _______________________________________________ GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
<primitive.zip>_______________________________________________ GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
Matthias Neuenhofer a écrit :
the alpha channel differs i think in strip mode you draw the triangles twice or 3 times
yes, but why is this changing, since i don't use the square geometry, nor it's drawing mode? (should use geometry_outType)
i get invalid value on all outtypes and adjacency intype
is is working for you?
did you recompile Gem after my yesterday commit?
here, it's works. here is a patch with better annotation regarding to the combination that works.
cyrille
Matthias
Am 25.04.2009 um 23:11 schrieb cyrille henry:
ok. it now work as it should. here is a small patch that i used to have a better understanding.
i still have an interrogation, see in the patch if you could help...
Cyrille
cyrille henry a écrit :
IOhannes m zmoelnig a écrit :
cyrille henry wrote: mabye i introduced some problems when i defaulted to "triangles"
yep, i think so : void glsl_program:: outtypeMess(GLuint outtype) { m_geoInType=outtype; if(m_program && glProgramParameteriEXT) {
glProgramParameteriEXT(m_program,GL_GEOMETRY_INPUT_TYPE_EXT,m_geoOutType);
} } i think : m_geoInType=outtype; is a copy/paste typo and should be : m_geoOutType=outtype; that could explain my problems... fixed in svn. Cyrille _______________________________________________ GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
<primitive.zip>_______________________________________________ GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev
Am 26.04.2009 um 10:52 schrieb cyrille henry:
Matthias Neuenhofer a écrit :
the alpha channel differs i think in strip mode you draw the triangles twice or 3 times
yes, but why is this changing, since i don't use the square geometry, nor it's drawing mode? (should use geometry_outType)
i get invalid value on all outtypes and adjacency intype is is working for you?
did you recompile Gem after my yesterday commit?
yes but with change void glsl_program:: outtypeMess(GLuint outtype) { m_geoOutType=outtype; if(m_program && glProgramParameteriEXT) {
glProgramParameteriEXT (m_program,GL_GEOMETRY_OUTPUT_TYPE_EXT,m_geoOutType); } was before GL_GEOMETRY_INPUT_TYPE_EXT
here, it's works. here is a patch with better annotation regarding to the combination that works.
use the patch with dub - easier to understand the draw types when you use TRIANGLE_STRIP instead of Strip there is no difference between TRIANGLES draw. Where is Strip defined couldn´t find it - saw it someday have a look at the patch matthias
cyrille
Matthias Am 25.04.2009 um 23:11 schrieb cyrille henry:
ok. it now work as it should. here is a small patch that i used to have a better understanding.
i still have an interrogation, see in the patch if you could help...
Cyrille
cyrille henry a écrit :
IOhannes m zmoelnig a écrit :
cyrille henry wrote: mabye i introduced some problems when i defaulted to "triangles"
yep, i think so : void glsl_program:: outtypeMess(GLuint outtype) { m_geoInType=outtype; if(m_program && glProgramParameteriEXT) {
glProgramParameteriEXT (m_program,GL_GEOMETRY_INPUT_TYPE_EXT,m_geoOutType); } } i think : m_geoInType=outtype; is a copy/paste typo and should be : m_geoOutType=outtype; that could explain my problems... fixed in svn. Cyrille
Matthias Neuenhofer a écrit :
did you recompile Gem after my yesterday commit?
yes but with change void glsl_program:: outtypeMess(GLuint outtype) { m_geoOutType=outtype; if(m_program && glProgramParameteriEXT) {
glProgramParameteriEXT(m_program,GL_GEOMETRY_OUTPUT_TYPE_EXT,m_geoOutType); } was before GL_GEOMETRY_INPUT_TYPE_EXT
yep, your right, there is another typo here. i corrected it. it is strange it was working with this typo. now that i corrected it, nothing changed...
use the patch with dub - easier to understand the draw types when you use TRIANGLE_STRIP instead of Strip there is no difference between TRIANGLES draw. Where is Strip defined couldnŽt find it - saw it someday have a look at the patch matthias
yep, thanks, the drawing mode you send to the primitive is not the openGL drawing mode. you can have a look at src/base/GemShape.cpp :
void GemShape :: typeMess(t_symbol *type) { char c=toupper(*type->s_name); switch (c){ case 'D': // default m_drawType = GL_DEFAULT_GEM; break; case 'L': // line m_drawType = GL_LINE_LOOP; break; case 'F': // fill m_drawType = GL_POLYGON; break; case 'Q': // quads m_drawType = GL_QUADS; break; case 'P': // point m_drawType = GL_POINTS; break; case 'T': // triangles m_drawType = GL_TRIANGLES; break; case 'S': // strip m_drawType = GL_TRIANGLE_STRIP; break;
default: error ("unknown draw style"); return; } setModified(); }
so sending [draw foo( to the square will draw the square with GL_POLYGON... sending draw QUAD_STRIP will draw the square with GL_QUADS. sending draw Line / line_loop / LINE_STRIP will use gl_line_loop draw TRIANGLE_STRIP will use gl_triangle, you have to send draw strip in order to have triangle strip. etc. so the drawing mode and there comments in my initial patch was right. changing them result in unexpected behaviour.
But your patch clearly point that the drawing time of a primitive is important. If i understand correctly, i would say that the driver automatically quad primitive into primitive that use triangle, since there is less geometry_intype than drawing mode.
Cyrille
cyrille henry wrote:
Matthias Neuenhofer a écrit :
did you recompile Gem after my yesterday commit?
yes but with change void glsl_program:: outtypeMess(GLuint outtype) { m_geoOutType=outtype; if(m_program && glProgramParameteriEXT) {
glProgramParameteriEXT(m_program,GL_GEOMETRY_OUTPUT_TYPE_EXT,m_geoOutType);
} was before GL_GEOMETRY_INPUT_TYPE_EXT
yep, your right, there is another typo here. i corrected it. it is strange it was working with this typo. now that i corrected it, nothing changed...
that's because (i think) you cannot really change the in/output geometry once a program is linked (at least it doesn't seem to do much). when the program get's re/linked, glProgParamiEXT gets called with the correct GL_GEOMETRY_... so that's why it should work anyhow (once the m_geoOutType/m_geoInType typos are fixed ...)
anyhow, i checked in a more-typo-fixed version.
so sending [draw foo( to the square will draw the square with GL_POLYGON... sending draw QUAD_STRIP will draw the square with GL_QUADS. sending draw Line / line_loop / LINE_STRIP will use gl_line_loop draw TRIANGLE_STRIP will use gl_triangle, you have to send draw strip in order to have triangle strip. etc. so the drawing mode and there comments in my initial patch was right. changing them result in unexpected behaviour.
we should check a (generic) way to automatically find out which drawing mode should be used. it will definitely become a usability problem, if people have to read the Gem-sources to know which geometry type they are allowed to use in the geometry shaders. also the use of GL_LINE_STRIP vs "fill" is rather ... arbitrary.
mfgasdr IOhannes
IOhannes m zmoelnig a écrit :
we should check a (generic) way to automatically find out which drawing mode should be used. it will definitely become a usability problem, if people have to read the Gem-sources to know which geometry type they are allowed to use in the geometry shaders. also the use of GL_LINE_STRIP vs "fill" is rather ... arbitrary.
yep, i think a good thing would be to duplicate the draw fonction in GemShape.cpp with a one that is more complete and accurate (less confusing). by example a gl_draw function that could accept a number from a GLdefine object...
that would be a 1st step. i don't know yet if more would be needed.
Cyrille
use the patch with dub - easier to understand the draw types when you use TRIANGLE_STRIP instead of Strip there is no difference between TRIANGLES draw. Where is Strip defined couldn´t find it - saw it someday have a look at the patch matthias
yep, thanks, the drawing mode you send to the primitive is not the openGL drawing mode. you can have a look at src/base/GemShape.cpp :
void GemShape :: typeMess(t_symbol *type) { char c=toupper(*type->s_name); switch (c){ case 'D': // default m_drawType = GL_DEFAULT_GEM; break; case 'L': // line m_drawType = GL_LINE_LOOP; break; case 'F': // fill m_drawType = GL_POLYGON; break; case 'Q': // quads m_drawType = GL_QUADS; break; case 'P': // point m_drawType = GL_POINTS; break; case 'T': // triangles m_drawType = GL_TRIANGLES; break; case 'S': // strip m_drawType = GL_TRIANGLE_STRIP; break; default: error ("unknown draw style"); return; } setModified(); }
so sending [draw foo( to the square will draw the square with GL_POLYGON... sending draw QUAD_STRIP will draw the square with GL_QUADS. sending draw Line / line_loop / LINE_STRIP will use gl_line_loop draw TRIANGLE_STRIP will use gl_triangle, you have to send draw strip in order to have triangle strip. etc.
ah now i got it send draw Trip and you get Triangles, draw Soap for Strip it just use the initial letter
but then LINE_STRIP, LINES, QUAD_STRIP and TRIANGLE_FAN are not available maybe not necessary in this context
so the drawing mode and there comments in my initial patch was right. changing them result in unexpected behaviour.
But your patch clearly point that the drawing time of a primitive is important. If i understand correctly, i would say that the driver automatically quad primitive into primitive that use triangle, since there is less geometry_intype than drawing mode.
the geometry_shader can´t use quads, they will cut into triangles and the object has to be drawn with them when you use square as geom with only 4 vertices the plane can´t be filled, drawn as triangle will output an triangle half quad and drawn as strip connect v0 v1 v2 and v1 v2 v3 looks like this
mesh_square will provide a simple filled square in strip mode drawn
Matthias
Cyrille