[Gambas-user] help using TexImage1D in opengl component
Greg Raffaelle
greg.raffaelle at ...2755...
Sat Nov 5 21:18:58 CET 2016
I am trying to use opengl to create 2D color contour plot of some
engineering data. I found the code below which colors a triangle with
contours using opengl. I have been trying to convert it to work in
Gambas. See below my current version converted to Gambas. I am asking
for assistance for finishing the code conversion and to get these
routines to run in Gambas. Help would be most appreciated.
CODE WHICH I AM TRYING TO CONVERT AND RUN IN GAMBAS:
void CContoursDoc:: CreateTextureObject()
{
/ / Define texture image
unsigned char Texture8[8][3] =
{
{ 0x00, 0x00, 0xa0 }, / / Dark Blue
{ 0x00, 0x00, 0xff }, / / Blue
{ 0x00, 0xa0, 0xff }, / / Indigo
{ 0x00, 0xa0, 0x40 }, / / Dark Green
{ 0x00, 0xff, 0x00 }, / / Green
{ 0xff, 0xff, 0x00 }, / / Yellow
{ 0xff, 0xcc, 0x00 }, / / Orange
{ 0xff, 0x00, 0x00 } / / Red
};
/ / Set pixel storage mode
:: glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
/ / Generate a texture name
:: glGenTextures(1, m_nTexName);
/ / Create a texture object
:: glBindTexture(GL_TEXTURE_1D, m_nTexName[0]);
:: glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER,
GL_NEAREST);
:: glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER,
GL_NEAREST);
:: glTexImage1D(GL_TEXTURE_1D, 0, 3, 8, 0, GL_RGB,
GL_UNSIGNED_BYTE, Texture8);
}
void CContoursDoc:: CreateTriangleList(UINT nList)
{
:: glNewList(nList, GL_COMPILE);
:: glNormal3f(0.0 f, 0.0 f, 1.0 f);
:: glBegin(GL_TRIANGLES);
:: glTexCoord1f(0.1 f);
:: glVertex3d(-1, -1, 0);
:: glTexCoord1f(0.7 f);
:: glVertex3d(-1, 1, 0);
:: glTexCoord1f(1.0 f);
:: glVertex3d(1, 0.8, 0);
:: glEnd();
:: glEndList();
}
MY CURRENT GAMBAS CODE:
Sub CreateTextureObject()
Dim m_nTexName As New Integer[1]
'Define texture image
'???????????????? I could not figure how to convert the array data
for the texture ?????????????????????????
'Set pixel storage mode
gl.PixelStorei(gl.UNPACK_ALIGNMENT, 1)
'Generate a texture name
m_nTexName = gl.GenTextures(1)
'Create a texture object
gl.BindTexture(gl.TEXTURE_1D, m_nTexName[0])
gl.TexParameteri(gl.TEXTURE_1D, gl.TEXTURE_MAG_FILTER, gl.NEAREST)
gl.TexParameteri(gl.TEXTURE_1D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)
'
' Gambas3 help lists different parameters for teximage1d than open
gl documents
'Static Sub *TexImage1D* ( _Image_ As Image
<http://gambaswiki.org/wiki/comp/gb.qt4/image> *[* , _Level_ As Integer,
_Border_ As Integer *]* )
'how do you convert the next statement to work with Gambas gl
component?
'
gl.TexImage1D(gl.TEXTURE_1D, 0, 3, 8, 0, gl.RGB, gl.UNSIGNED_BYTE,
Texture8)
End
Sub CreateTriangleList(nList As Integer)
gl.NewList(nList, gl.COMPILE)
gl.Normal3f(0.0, 0.0, 1.0)
gl.Begin(gl.TRIANGLES)
gl.TexCoord1f(0.1)
gl.Vertex3f(-1.0, -1.0, 0.0)
gl.TexCoord1f(0.7)
gl.Vertex3f(-1.0, 1.0, 0.0)
gl.TexCoord1f(1.0)
gl.Vertex3f(1.0, 0.8, 0.0)
gl.End()
gl.EndList()
End
More information about the User
mailing list