[PyOpenGL-Users] glGet issues
Brought to you by:
mcfletch
|
From: Tomasz W. <ko...@gm...> - 2013-02-07 14:30:26
|
Hello,
I've noticed that this call:
out = GL.glGetTexParameteriv(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_SWIZZLE_B)
raises:
KeyError: ('Unknown specifier GL_TEXTURE_SWIZZLE_B (0x8E44)',
'Failure in cConverter <OpenGL.converters.SizedOutput object at
0x02F8A300>', (GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B), 2,
<ctypes.glGetTexParameteriv object at 0x02F9D238>)
This is probably because the list of parameter sizes hardcoded in
glget.h is a bit out-of-date:
TEX_PARAMETER_SIZES = {
simple.GL_TEXTURE_MAG_FILTER: (1,),
simple.GL_TEXTURE_MIN_FILTER: (1,),
simple.GL_TEXTURE_WRAP_S: (1,),
simple.GL_TEXTURE_WRAP_T: (1,),
simple.GL_TEXTURE_BORDER_COLOR: (4,),
simple.GL_TEXTURE_PRIORITY: (1,),
simple.GL_TEXTURE_RESIDENT: (1,)
}
Sadly, I aparrently can't call this function "normally", without the
ctypes enhancement:
out = ctypes.c_int()
GL.glGetTexParameteriv(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_SWIZZLE_B,
ctypes.byref(out))
because of:
ValueError: glGetTexParameteriv requires 2 arguments (target, pname),
received 3: (GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, <cparam 'P'
(03513AA8)>)
Is that a bug?
BTW I've also noticed that GL.glGetTexParameteriv(GL.GL_TEXTURE_2D,
GL.GL_TEXTURE_WRAP_S) returns a numpy.int32, not
opengl.constant.IntConstant - is it intended?
Regards,
-- Kos
|