bgl new methods (for glsl shaders - #version 120)

** I did not update rst docs. I will post on the quick-hack list. If no one volunteers to do it, I have it done before next release. **

this patch add the barebone functions to do glsl shaders in an addon.
For simplicity sakes it supports old GLSL, but not all the new modern methods (glBindFragDataLocation, ...).

It should be enough to make an addon to help with bge 2d filters.
I'm using this with a 3dview callback and it's working nicely:
self._handle = context.region.callback_add(draw_callback_px, (self, context), 'POST_VIEW')

I was considering not to commit this patch due to it not covering all OpenGL new methods.
But frankly it's not the first time bgl is expanded upon individual needs (guilty of that myself).
If a python developer knows enough to use OpenGL and need new functions, s/he should also be able to patch Blender for that,
so I see no problems here.

Another solution is to move to PyOpenGL or similar any soon. 

glShaderSource implemented differently than opengl standards. It's taking one source at a time (instead of an array of sources).
This is similar with PyOpenGL solution.

glActiveTexture
glAttachShader
glCompileShader
glCreateProgram
glCreateShader
glDeleteProgram
glDeleteShader
glDetachShader
glGetAttachedShaders
glGetProgramInfoLog
glGetProgramiv
glGetShaderInfoLog
glGetShaderiv
glGetShaderSource
glGetUniformLocation
glIsProgram
glIsShader
glLinkProgram
glShaderSource
glUniform1f
glUniform2f
glUniform3f
glUniform4f
glUniform1fv
glUniform2fv
glUniform3fv
glUniform4fv
glUniform1i
glUniform2i
glUniform3i
glUniform4i
glUniform1iv
glUniform2iv
glUniform3iv
glUniform4iv
glUniformMatrix2fv
glUniformMatrix3fv
glUniformMatrix4fv
glUniformMatrix2x3fv
glUniformMatrix3x2fv
glUniformMatrix2x4fv
glUniformMatrix4x2fv
glUniformMatrix3x4fv
glUniformMatrix4x3fv
glUseProgram
glValidateProgram
This commit is contained in:
Dalai Felinto 2012-05-09 02:42:30 +00:00
parent de067b2e0d
commit b651f61278
2 changed files with 141 additions and 1 deletions

@ -44,6 +44,7 @@
#include "BLI_utildefines.h" #include "BLI_utildefines.h"
static PyObject *Buffer_new(PyTypeObject *type, PyObject *args, PyObject *kwds); static PyObject *Buffer_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
static PyObject *Method_ShaderSource (PyObject *self, PyObject *args);
/* Buffer sequence methods */ /* Buffer sequence methods */
@ -613,8 +614,10 @@ static PyObject *Buffer_repr(Buffer *self)
BGL_Wrap(2, Accum, void, (GLenum, GLfloat)) BGL_Wrap(2, Accum, void, (GLenum, GLfloat))
BGL_Wrap(1, ActiveTexture, void, (GLenum))
BGL_Wrap(2, AlphaFunc, void, (GLenum, GLclampf)) BGL_Wrap(2, AlphaFunc, void, (GLenum, GLclampf))
BGL_Wrap(3, AreTexturesResident, GLboolean, (GLsizei, GLuintP, GLbooleanP)) BGL_Wrap(3, AreTexturesResident, GLboolean, (GLsizei, GLuintP, GLbooleanP))
BGL_Wrap(2, AttachShader, void, (GLuint, GLuint))
BGL_Wrap(1, Begin, void, (GLenum)) BGL_Wrap(1, Begin, void, (GLenum))
BGL_Wrap(2, BindTexture, void, (GLenum, GLuint)) BGL_Wrap(2, BindTexture, void, (GLenum, GLuint))
BGL_Wrap(7, Bitmap, void, (GLsizei, GLsizei, GLfloat, BGL_Wrap(7, Bitmap, void, (GLsizei, GLsizei, GLfloat,
@ -663,14 +666,20 @@ BGL_Wrap(4, Color4us, void, (GLushort, GLushort, GLushort, GLushort)
BGL_Wrap(1, Color4usv, void, (GLushortP)) BGL_Wrap(1, Color4usv, void, (GLushortP))
BGL_Wrap(4, ColorMask, void, (GLboolean, GLboolean, GLboolean, GLboolean)) BGL_Wrap(4, ColorMask, void, (GLboolean, GLboolean, GLboolean, GLboolean))
BGL_Wrap(2, ColorMaterial, void, (GLenum, GLenum)) BGL_Wrap(2, ColorMaterial, void, (GLenum, GLenum))
BGL_Wrap(1, CompileShader, void, (GLuint))
BGL_Wrap(5, CopyPixels, void, (GLint, GLint, GLsizei, GLsizei, GLenum)) BGL_Wrap(5, CopyPixels, void, (GLint, GLint, GLsizei, GLsizei, GLenum))
BGL_Wrap(8, CopyTexImage2D, void, (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint)) BGL_Wrap(8, CopyTexImage2D, void, (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint))
BGL_Wrap(1, CreateProgram, GLuint, (void))
BGL_Wrap(1, CreateShader, GLuint, (GLenum))
BGL_Wrap(1, CullFace, void, (GLenum)) BGL_Wrap(1, CullFace, void, (GLenum))
BGL_Wrap(2, DeleteLists, void, (GLuint, GLsizei)) BGL_Wrap(2, DeleteLists, void, (GLuint, GLsizei))
BGL_Wrap(1, DeleteProgram, void, (GLuint))
BGL_Wrap(1, DeleteShader, void, (GLuint))
BGL_Wrap(2, DeleteTextures, void, (GLsizei, GLuintP)) BGL_Wrap(2, DeleteTextures, void, (GLsizei, GLuintP))
BGL_Wrap(1, DepthFunc, void, (GLenum)) BGL_Wrap(1, DepthFunc, void, (GLenum))
BGL_Wrap(1, DepthMask, void, (GLboolean)) BGL_Wrap(1, DepthMask, void, (GLboolean))
BGL_Wrap(2, DepthRange, void, (GLclampd, GLclampd)) BGL_Wrap(2, DepthRange, void, (GLclampd, GLclampd))
BGL_Wrap(2, DetachShader, void, (GLuint, GLuint))
BGL_Wrap(1, Disable, void, (GLenum)) BGL_Wrap(1, Disable, void, (GLenum))
BGL_Wrap(1, DrawBuffer, void, (GLenum)) BGL_Wrap(1, DrawBuffer, void, (GLenum))
BGL_Wrap(5, DrawPixels, void, (GLsizei, GLsizei, GLenum, GLenum, GLvoidP)) BGL_Wrap(5, DrawPixels, void, (GLsizei, GLsizei, GLenum, GLenum, GLvoidP))
@ -703,6 +712,7 @@ BGL_Wrap(6, Frustum, void, (GLdouble, GLdouble,
GLdouble, GLdouble, GLdouble, GLdouble)) GLdouble, GLdouble, GLdouble, GLdouble))
BGL_Wrap(1, GenLists, GLuint, (GLsizei)) BGL_Wrap(1, GenLists, GLuint, (GLsizei))
BGL_Wrap(2, GenTextures, void, (GLsizei, GLuintP)) BGL_Wrap(2, GenTextures, void, (GLsizei, GLuintP))
BGL_Wrap(4, GetAttachedShaders, void, (GLuint, GLsizei, GLsizeiP, GLuintP))
BGL_Wrap(2, GetBooleanv, void, (GLenum, GLbooleanP)) BGL_Wrap(2, GetBooleanv, void, (GLenum, GLbooleanP))
BGL_Wrap(2, GetClipPlane, void, (GLenum, GLdoubleP)) BGL_Wrap(2, GetClipPlane, void, (GLenum, GLdoubleP))
BGL_Wrap(2, GetDoublev, void, (GLenum, GLdoubleP)) BGL_Wrap(2, GetDoublev, void, (GLenum, GLdoubleP))
@ -720,6 +730,11 @@ BGL_Wrap(2, GetPixelMapfv, void, (GLenum, GLfloatP))
BGL_Wrap(2, GetPixelMapuiv, void, (GLenum, GLuintP)) BGL_Wrap(2, GetPixelMapuiv, void, (GLenum, GLuintP))
BGL_Wrap(2, GetPixelMapusv, void, (GLenum, GLushortP)) BGL_Wrap(2, GetPixelMapusv, void, (GLenum, GLushortP))
BGL_Wrap(1, GetPolygonStipple, void, (GLubyteP)) BGL_Wrap(1, GetPolygonStipple, void, (GLubyteP))
BGL_Wrap(4, GetProgramInfoLog, void, (GLuint, GLsizei, GLsizeiP, GLcharP))
BGL_Wrap(3, GetProgramiv, void, (GLuint, GLenum, GLintP))
BGL_Wrap(4, GetShaderInfoLog, void, (GLuint, GLsizei, GLsizeiP, GLcharP))
BGL_Wrap(3, GetShaderiv, void, (GLuint, GLenum, GLintP))
BGL_Wrap(4, GetShaderSource, void, (GLuint, GLsizei, GLsizeiP, GLcharP))
BGL_Wrap(1, GetString, GLstring, (GLenum)) BGL_Wrap(1, GetString, GLstring, (GLenum))
BGL_Wrap(3, GetTexEnvfv, void, (GLenum, GLenum, GLfloatP)) BGL_Wrap(3, GetTexEnvfv, void, (GLenum, GLenum, GLfloatP))
BGL_Wrap(3, GetTexEnviv, void, (GLenum, GLenum, GLintP)) BGL_Wrap(3, GetTexEnviv, void, (GLenum, GLenum, GLintP))
@ -731,6 +746,7 @@ BGL_Wrap(4, GetTexLevelParameterfv, void, (GLenum, GLint, GLenum, GLfloatP))
BGL_Wrap(4, GetTexLevelParameteriv, void, (GLenum, GLint, GLenum, GLintP)) BGL_Wrap(4, GetTexLevelParameteriv, void, (GLenum, GLint, GLenum, GLintP))
BGL_Wrap(3, GetTexParameterfv, void, (GLenum, GLenum, GLfloatP)) BGL_Wrap(3, GetTexParameterfv, void, (GLenum, GLenum, GLfloatP))
BGL_Wrap(3, GetTexParameteriv, void, (GLenum, GLenum, GLintP)) BGL_Wrap(3, GetTexParameteriv, void, (GLenum, GLenum, GLintP))
BGL_Wrap(2, GetUniformLocation, GLint, (GLuint, GLstring))
BGL_Wrap(2, Hint, void, (GLenum, GLenum)) BGL_Wrap(2, Hint, void, (GLenum, GLenum))
BGL_Wrap(1, IndexMask, void, (GLuint)) BGL_Wrap(1, IndexMask, void, (GLuint))
BGL_Wrap(1, Indexd, void, (GLdouble)) BGL_Wrap(1, Indexd, void, (GLdouble))
@ -744,6 +760,8 @@ BGL_Wrap(1, Indexsv, void, (GLshortP))
BGL_Wrap(1, InitNames, void, (void)) BGL_Wrap(1, InitNames, void, (void))
BGL_Wrap(1, IsEnabled, GLboolean, (GLenum)) BGL_Wrap(1, IsEnabled, GLboolean, (GLenum))
BGL_Wrap(1, IsList, GLboolean, (GLuint)) BGL_Wrap(1, IsList, GLboolean, (GLuint))
BGL_Wrap(1, IsProgram, GLboolean, (GLuint))
BGL_Wrap(1, IsShader, GLboolean, (GLuint))
BGL_Wrap(1, IsTexture, GLboolean, (GLuint)) BGL_Wrap(1, IsTexture, GLboolean, (GLuint))
BGL_Wrap(2, LightModelf, void, (GLenum, GLfloat)) BGL_Wrap(2, LightModelf, void, (GLenum, GLfloat))
BGL_Wrap(2, LightModelfv, void, (GLenum, GLfloatP)) BGL_Wrap(2, LightModelfv, void, (GLenum, GLfloatP))
@ -755,6 +773,7 @@ BGL_Wrap(3, Lighti, void, (GLenum, GLenum, GLint))
BGL_Wrap(3, Lightiv, void, (GLenum, GLenum, GLintP)) BGL_Wrap(3, Lightiv, void, (GLenum, GLenum, GLintP))
BGL_Wrap(2, LineStipple, void, (GLint, GLushort)) BGL_Wrap(2, LineStipple, void, (GLint, GLushort))
BGL_Wrap(1, LineWidth, void, (GLfloat)) BGL_Wrap(1, LineWidth, void, (GLfloat))
BGL_Wrap(1, LinkProgram, void, (GLuint))
BGL_Wrap(1, ListBase, void, (GLuint)) BGL_Wrap(1, ListBase, void, (GLuint))
BGL_Wrap(1, LoadIdentity, void, (void)) BGL_Wrap(1, LoadIdentity, void, (void))
BGL_Wrap(1, LoadMatrixd, void, (GLdoubleP)) BGL_Wrap(1, LoadMatrixd, void, (GLdoubleP))
@ -915,6 +934,33 @@ BGL_Wrap(3, TexParameteri, void, (GLenum, GLenum, GLint))
BGL_Wrap(3, TexParameteriv, void, (GLenum, GLenum, GLintP)) BGL_Wrap(3, TexParameteriv, void, (GLenum, GLenum, GLintP))
BGL_Wrap(3, Translated, void, (GLdouble, GLdouble, GLdouble)) BGL_Wrap(3, Translated, void, (GLdouble, GLdouble, GLdouble))
BGL_Wrap(3, Translatef, void, (GLfloat, GLfloat, GLfloat)) BGL_Wrap(3, Translatef, void, (GLfloat, GLfloat, GLfloat))
BGL_Wrap(2, Uniform1f, void, (GLint, GLfloat))
BGL_Wrap(3, Uniform2f, void, (GLint, GLfloat, GLfloat))
BGL_Wrap(4, Uniform3f, void, (GLint, GLfloat, GLfloat, GLfloat))
BGL_Wrap(5, Uniform4f, void, (GLint, GLfloat, GLfloat, GLfloat, GLfloat))
BGL_Wrap(3, Uniform1fv, void, (GLint, GLsizei, GLfloatP))
BGL_Wrap(3, Uniform2fv, void, (GLint, GLsizei, GLfloatP))
BGL_Wrap(3, Uniform3fv, void, (GLint, GLsizei, GLfloatP))
BGL_Wrap(3, Uniform4fv, void, (GLint, GLsizei, GLfloatP))
BGL_Wrap(2, Uniform1i, void, (GLint, GLint))
BGL_Wrap(3, Uniform2i, void, (GLint, GLint, GLint))
BGL_Wrap(4, Uniform3i, void, (GLint, GLint, GLint, GLint))
BGL_Wrap(5, Uniform4i, void, (GLint, GLint, GLint, GLint, GLint))
BGL_Wrap(3, Uniform1iv, void, (GLint, GLsizei, GLintP))
BGL_Wrap(3, Uniform2iv, void, (GLint, GLsizei, GLintP))
BGL_Wrap(3, Uniform3iv, void, (GLint, GLsizei, GLintP))
BGL_Wrap(3, Uniform4iv, void, (GLint, GLsizei, GLintP))
BGL_Wrap(4, UniformMatrix2fv, void, (GLint, GLsizei, GLboolean, GLfloatP))
BGL_Wrap(4, UniformMatrix3fv, void, (GLint, GLsizei, GLboolean, GLfloatP))
BGL_Wrap(4, UniformMatrix4fv, void, (GLint, GLsizei, GLboolean, GLfloatP))
BGL_Wrap(4, UniformMatrix2x3fv, void, (GLint, GLsizei, GLboolean, GLfloatP))
BGL_Wrap(4, UniformMatrix3x2fv, void, (GLint, GLsizei, GLboolean, GLfloatP))
BGL_Wrap(4, UniformMatrix2x4fv, void, (GLint, GLsizei, GLboolean, GLfloatP))
BGL_Wrap(4, UniformMatrix4x2fv, void, (GLint, GLsizei, GLboolean, GLfloatP))
BGL_Wrap(4, UniformMatrix3x4fv, void, (GLint, GLsizei, GLboolean, GLfloatP))
BGL_Wrap(4, UniformMatrix4x3fv, void, (GLint, GLsizei, GLboolean, GLfloatP))
BGL_Wrap(1, UseProgram, void, (GLuint))
BGL_Wrap(1, ValidateProgram, void, (GLuint))
BGL_Wrap(2, Vertex2d, void, (GLdouble, GLdouble)) BGL_Wrap(2, Vertex2d, void, (GLdouble, GLdouble))
BGL_Wrap(1, Vertex2dv, void, (GLdoubleP)) BGL_Wrap(1, Vertex2dv, void, (GLdoubleP))
BGL_Wrap(2, Vertex2f, void, (GLfloat, GLfloat)) BGL_Wrap(2, Vertex2f, void, (GLfloat, GLfloat))
@ -957,8 +1003,10 @@ static struct PyMethodDef BGL_methods[] = {
/* #ifndef __APPLE__ */ /* #ifndef __APPLE__ */
MethodDef(Accum), MethodDef(Accum),
MethodDef(ActiveTexture),
MethodDef(AlphaFunc), MethodDef(AlphaFunc),
MethodDef(AreTexturesResident), MethodDef(AreTexturesResident),
MethodDef(AttachShader),
MethodDef(Begin), MethodDef(Begin),
MethodDef(BindTexture), MethodDef(BindTexture),
MethodDef(Bitmap), MethodDef(Bitmap),
@ -1006,14 +1054,20 @@ static struct PyMethodDef BGL_methods[] = {
MethodDef(Color4usv), MethodDef(Color4usv),
MethodDef(ColorMask), MethodDef(ColorMask),
MethodDef(ColorMaterial), MethodDef(ColorMaterial),
MethodDef(CompileShader),
MethodDef(CopyPixels), MethodDef(CopyPixels),
MethodDef(CopyTexImage2D), MethodDef(CopyTexImage2D),
MethodDef(CreateProgram),
MethodDef(CreateShader),
MethodDef(CullFace), MethodDef(CullFace),
MethodDef(DeleteLists), MethodDef(DeleteLists),
MethodDef(DeleteProgram),
MethodDef(DeleteShader),
MethodDef(DeleteTextures), MethodDef(DeleteTextures),
MethodDef(DepthFunc), MethodDef(DepthFunc),
MethodDef(DepthMask), MethodDef(DepthMask),
MethodDef(DepthRange), MethodDef(DepthRange),
MethodDef(DetachShader),
MethodDef(Disable), MethodDef(Disable),
MethodDef(DrawBuffer), MethodDef(DrawBuffer),
MethodDef(DrawPixels), MethodDef(DrawPixels),
@ -1045,6 +1099,7 @@ static struct PyMethodDef BGL_methods[] = {
MethodDef(Frustum), MethodDef(Frustum),
MethodDef(GenLists), MethodDef(GenLists),
MethodDef(GenTextures), MethodDef(GenTextures),
MethodDef(GetAttachedShaders),
MethodDef(GetBooleanv), MethodDef(GetBooleanv),
MethodDef(GetClipPlane), MethodDef(GetClipPlane),
MethodDef(GetDoublev), MethodDef(GetDoublev),
@ -1062,6 +1117,11 @@ static struct PyMethodDef BGL_methods[] = {
MethodDef(GetPixelMapuiv), MethodDef(GetPixelMapuiv),
MethodDef(GetPixelMapusv), MethodDef(GetPixelMapusv),
MethodDef(GetPolygonStipple), MethodDef(GetPolygonStipple),
MethodDef(GetProgramInfoLog),
MethodDef(GetProgramiv),
MethodDef(GetShaderInfoLog),
MethodDef(GetShaderiv),
MethodDef(GetShaderSource),
MethodDef(GetString), MethodDef(GetString),
MethodDef(GetTexEnvfv), MethodDef(GetTexEnvfv),
MethodDef(GetTexEnviv), MethodDef(GetTexEnviv),
@ -1073,6 +1133,7 @@ static struct PyMethodDef BGL_methods[] = {
MethodDef(GetTexLevelParameteriv), MethodDef(GetTexLevelParameteriv),
MethodDef(GetTexParameterfv), MethodDef(GetTexParameterfv),
MethodDef(GetTexParameteriv), MethodDef(GetTexParameteriv),
MethodDef(GetUniformLocation),
MethodDef(Hint), MethodDef(Hint),
MethodDef(IndexMask), MethodDef(IndexMask),
MethodDef(Indexd), MethodDef(Indexd),
@ -1086,6 +1147,8 @@ static struct PyMethodDef BGL_methods[] = {
MethodDef(InitNames), MethodDef(InitNames),
MethodDef(IsEnabled), MethodDef(IsEnabled),
MethodDef(IsList), MethodDef(IsList),
MethodDef(IsProgram),
MethodDef(IsShader),
MethodDef(IsTexture), MethodDef(IsTexture),
MethodDef(LightModelf), MethodDef(LightModelf),
MethodDef(LightModelfv), MethodDef(LightModelfv),
@ -1097,6 +1160,7 @@ static struct PyMethodDef BGL_methods[] = {
MethodDef(Lightiv), MethodDef(Lightiv),
MethodDef(LineStipple), MethodDef(LineStipple),
MethodDef(LineWidth), MethodDef(LineWidth),
MethodDef(LinkProgram),
MethodDef(ListBase), MethodDef(ListBase),
MethodDef(LoadIdentity), MethodDef(LoadIdentity),
MethodDef(LoadMatrixd), MethodDef(LoadMatrixd),
@ -1194,6 +1258,7 @@ static struct PyMethodDef BGL_methods[] = {
MethodDef(Scissor), MethodDef(Scissor),
MethodDef(SelectBuffer), MethodDef(SelectBuffer),
MethodDef(ShadeModel), MethodDef(ShadeModel),
MethodDef(ShaderSource),
MethodDef(StencilFunc), MethodDef(StencilFunc),
MethodDef(StencilMask), MethodDef(StencilMask),
MethodDef(StencilOp), MethodDef(StencilOp),
@ -1247,6 +1312,33 @@ static struct PyMethodDef BGL_methods[] = {
MethodDef(TexParameteriv), MethodDef(TexParameteriv),
MethodDef(Translated), MethodDef(Translated),
MethodDef(Translatef), MethodDef(Translatef),
MethodDef(Uniform1f),
MethodDef(Uniform2f),
MethodDef(Uniform3f),
MethodDef(Uniform4f),
MethodDef(Uniform1fv),
MethodDef(Uniform2fv),
MethodDef(Uniform3fv),
MethodDef(Uniform4fv),
MethodDef(Uniform1i),
MethodDef(Uniform2i),
MethodDef(Uniform3i),
MethodDef(Uniform4i),
MethodDef(Uniform1iv),
MethodDef(Uniform2iv),
MethodDef(Uniform3iv),
MethodDef(Uniform4iv),
MethodDef(UniformMatrix2fv),
MethodDef(UniformMatrix3fv),
MethodDef(UniformMatrix4fv),
MethodDef(UniformMatrix2x3fv),
MethodDef(UniformMatrix3x2fv),
MethodDef(UniformMatrix2x4fv),
MethodDef(UniformMatrix4x2fv),
MethodDef(UniformMatrix3x4fv),
MethodDef(UniformMatrix4x3fv),
MethodDef(UseProgram),
MethodDef(ValidateProgram),
MethodDef(Vertex2d), MethodDef(Vertex2d),
MethodDef(Vertex2dv), MethodDef(Vertex2dv),
MethodDef(Vertex2f), MethodDef(Vertex2f),
@ -1794,5 +1886,37 @@ PyObject *BPyInit_bgl(void)
EXPP_ADDCONST(GL_TEXTURE_BINDING_1D); EXPP_ADDCONST(GL_TEXTURE_BINDING_1D);
EXPP_ADDCONST(GL_TEXTURE_BINDING_2D); EXPP_ADDCONST(GL_TEXTURE_BINDING_2D);
EXPP_ADDCONST(GL_VERTEX_SHADER);
EXPP_ADDCONST(GL_FRAGMENT_SHADER);
EXPP_ADDCONST(GL_COMPILE_STATUS);
EXPP_ADDCONST(GL_ACTIVE_TEXTURE);
EXPP_ADDCONST(GL_TEXTURE0);
EXPP_ADDCONST(GL_TEXTURE1);
EXPP_ADDCONST(GL_TEXTURE2);
EXPP_ADDCONST(GL_TEXTURE3);
EXPP_ADDCONST(GL_TEXTURE4);
EXPP_ADDCONST(GL_TEXTURE5);
EXPP_ADDCONST(GL_TEXTURE6);
EXPP_ADDCONST(GL_TEXTURE7);
EXPP_ADDCONST(GL_TEXTURE8);
EXPP_ADDCONST(GL_DEPTH_COMPONENT32);
EXPP_ADDCONST(GL_TEXTURE_COMPARE_MODE);
return submodule; return submodule;
} }
static PyObject *Method_ShaderSource (PyObject *UNUSED(self), PyObject *args)
{
int shader;
char *source;
if (!PyArg_ParseTuple(args, "Is", &shader, &source))
return NULL;
glShaderSource(shader, 1, (const char **)&source, NULL);
return Py_INCREF(Py_None), Py_None;
}

@ -103,7 +103,7 @@ extern PyTypeObject BGL_bufferType;
#define buffer_def(number) Buffer *bgl_buffer##number #define buffer_def(number) Buffer *bgl_buffer##number
/* GL Pointer fields, handled by buffer type */ /* GL Pointer fields, handled by buffer type */
/* GLdoubleP, GLfloatP, GLintP, GLuintP, GLshortP */ /* GLdoubleP, GLfloatP, GLintP, GLuintP, GLshortP, GLsizeiP, GLcharP */
#define GLbooleanP_str "O!" #define GLbooleanP_str "O!"
#define GLbooleanP_var(number) (bgl_buffer##number)->buf.asvoid #define GLbooleanP_var(number) (bgl_buffer##number)->buf.asvoid
@ -160,6 +160,16 @@ extern PyTypeObject BGL_bufferType;
#define GLvoidP_ref(number) &BGL_bufferType, &bgl_buffer##number #define GLvoidP_ref(number) &BGL_bufferType, &bgl_buffer##number
#define GLvoidP_def(number) Buffer *bgl_buffer##number #define GLvoidP_def(number) Buffer *bgl_buffer##number
#define GLsizeiP_str "O!"
#define GLsizeiP_var(number) (bgl_buffer##number)->buf.asvoid
#define GLsizeiP_ref(number) &BGL_bufferType, &bgl_buffer##number
#define GLsizeiP_def(number) Buffer *bgl_buffer##number
#define GLcharP_str "O!"
#define GLcharP_var(number) (bgl_buffer##number)->buf.asvoid
#define GLcharP_ref(number) &BGL_bufferType, &bgl_buffer##number
#define GLcharP_def(number) Buffer *bgl_buffer##number
#define buffer_str "O!" #define buffer_str "O!"
#define buffer_var(number) (bgl_buffer##number)->buf.asvoid #define buffer_var(number) (bgl_buffer##number)->buf.asvoid
#define buffer_ref(number) &BGL_bufferType, &bgl_buffer##number #define buffer_ref(number) &BGL_bufferType, &bgl_buffer##number
@ -239,6 +249,12 @@ extern PyTypeObject BGL_bufferType;
#define GLfloat_ref(num) &bgl_var##num #define GLfloat_ref(num) &bgl_var##num
#define GLfloat_def(num) float GLfloat_var(num) #define GLfloat_def(num) float GLfloat_var(num)
/* typedef char *GLstring; */
#define GLstring_str "s"
#define GLstring_var(number) bgl_var##number
#define GLstring_ref(number) &bgl_var##number
#define GLstring_def(number) char *GLstring_var(number)
/* typedef float GLclampf; */ /* typedef float GLclampf; */
#define GLclampf_str "f" #define GLclampf_str "f"
#define GLclampf_var(num) bgl_var##num #define GLclampf_var(num) bgl_var##num