[Gambas-devel] GLSL language

Laurent Carlier lordheavym at ...176...
Wed Aug 3 09:00:41 CEST 2011


Le Lundi 1 Août 2011 10:32:11, tommyline at ...674... a écrit :
> Hi Benoit, Laurent, Kevin and all interested in OpenGl.
> I've registered new e-mail on both lists, so hopefully I can mail you again.
> Since my last post I tried to get familiar with GLSL and to be able to use
> shaders I had to ater the glsl library.
> 
> First issue in glsl GL.c file:
> 
> GB_STATIC_METHOD("GetUniformLocation", NULL, GLGETUNIFORMLOCATION,
> "(Program)i(Name)s"),
> 
> function should return integer value, not NULL.
> 
> It needs some functions to pass uniform and attribute variables to shaders:
> 
> /* GLattributes.c */
> 	GB_STATIC_METHOD("BindAttribLocation",NULL, GLBINDATTRIBLOCATION,
> "(Program)i(Index)i(Name)s"), GB_STATIC_METHOD("VertexAttrib1f", NULL,
> GLVERTEXATTRIB1F, "(Index)i(X)f"), GB_STATIC_METHOD("VertexAttrib1fv",
> NULL, GLVERTEXATTRIB1FV, "(Index)i(V)Float[]"),
> GB_STATIC_METHOD("VertexAttrib2f", NULL, GLVERTEXATTRIB2F,
> "(Index)i(X)f(Y)f"), GB_STATIC_METHOD("VertexAttrib2fv", NULL,
> GLVERTEXATTRIB2FV, "(Index)i(V)Float[]"),
> GB_STATIC_METHOD("VertexAttrib3f", NULL, GLVERTEXATTRIB3F,
> "(Index)i(X)f(Y)f(Z)f"), GB_STATIC_METHOD("VertexAttrib3fv", NULL,
> GLVERTEXATTRIB3FV, "(Index)i(V)Float[]"),
> GB_STATIC_METHOD("VertexAttrib4f", NULL, GLVERTEXATTRIB4F,
> "(Index)i(X)f(Y)f(Z)f(W)f"), GB_STATIC_METHOD("VertexAttrib4fv", NULL,
> GLVERTEXATTRIB4FV, "(Index)i(V)Float[]"),
> GB_STATIC_METHOD("GenFramebuffersEXT", "i", GLGENFRAMEBUFFERSEXT, "(N)i"),
> GB_STATIC_METHOD("FramebufferTexture2d", NULL, GLFRAMEBUFFERTEXTURE2D,
> "(Target)i(Attachment)i(Textarget)i(Texture)i(Level)i"),
> GB_STATIC_METHOD("BindFramebufferEXT", NULL, GLBINDFRAMEBUFFERSEXT,
> "(Target)i(Framebuffer)i"), GB_STATIC_METHOD("CheckFramebufferStatusEXT",
> "i", GLCHECKFRAMEBUFFERSTATUSEXT, "(Target)i"),
> 
> so, I added them. Send you new GL.c GLattributes.c an GLattributes.h files,
> if you could check them and attach to the repository, I'd be very happy.
> 
> By the way, what is the limit of attachments?
> 
> Regards
> Tomek

The proper place for framebuffer extension is in OPENGL component, not in GLSL. 
This extension isn"t exclusive to glsl. There is also two variant: the EXT and 
ARB variant, see http://www.opengl.org/registry/#arbextspecs

There is more limitations in the EXT variant, not related to gambas. I guess 
they can be aliases to ARB methods.

Also a way to check driver ability is necessary, and glew is giving us a nice 
way to do this, see http://glew.sourceforge.net/basic.html (checking for 
extensions)

Nice job :-)

++





More information about the Devel mailing list