> > 
> > If, in GltextureMapping.c:238:
> >     glTexImage2D(GL_TEXTURE_2D, VARGOPT(Level, 0), 3, image->width,
> >     
> >             image->height, VARGOPT(Border, 0), format, GL_UNSIGNED_BYTE,
> >             image->data);
> > 
> > I replace the "3" by "4", as it is in line 225, I get the transparency.
> > 
> > According to the documentation, this number is the number of color
> > components in the texture, which should be 4 for RGBA.
> > 
> > I suggest that this number should be 3 if the image format is RGB or BGR,
> > and 4 if the image format is RGBA, RGBX, BGRA, tec.
> > 
> > Another point. I opened the file GLUtextureImage.c (searching for
> > GL.TexImage2D), and I noticed that GLUBUILD1DMIPMAPS use IMAGE_get to
> > read its image argument (which does error checking), but not
> > GLUBUILD2DMIPMAPS, which should lead to possible segfaults...
> 
> Interesting observations Benoît. I did get a segfault using
> Glu.Build2DMipmaps(), though I corrected it by moving the call. Was a
> strange error among many, which I'm still trying to correct. Mostly I
> think it's my faulty logic.
> 
> Tomek, who is having some trouble mailing the mailing list lately,
> helped me get the alpha channel working correctly. I don't understand
> the logic, but enabling the gb.opengl.glu component and adding the line
> "Glu.Build2DMipmaps(t1)" to the end of the texture setup code enabled
> the alpha channel. The final code looks like this:
> 
> ‘ Set up texture.
> Gl.BindTexture(Gl.GL_TEXTURE_2D, textures[0])
> Gl.TexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR)
> Gl.TexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR)
> Gl.TexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_CLAMP)
> Gl.TexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_CLAMP)
> Gl.TexImage2D(t1)
> Glu.Build2DMipmaps(t1)
> 
> No idea why the segfault occurred, but am glad I could work around it.

Glu.Build2DMipmaps() could segfault if it receives a NULL image. Anyway, in 
revision #3958, you don't have to do all that trick: image alpha channel 
should be correctly taken into account in OpenGL APIs.

Regards,

-- 
Benoît Minisini

------------------------------------------------------------------------------
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
_______________________________________________
Gambas-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to