Acme-MITHALDU-BleedingOpenGL
view release on metacpan or search on metacpan
pogl_gl_gltut.xs view on Meta::CPAN
EXTEND(sp, n);
for(i=0;i<n;i++)
PUSHs(sv_2mortal(newSViv(vertex_arrays[i])));
free(vertex_arrays);
}
#//# glBindVertexArray(vertex_array);
void
glBindVertexArray(vertex_array)
GLuint vertex_array
INIT:
loadProc(glBindVertexArray,"glBindVertexArray");
CODE:
{
glBindVertexArray(vertex_array);
}
#endif // GL_VERSION_3_0
#ifdef GL_VERSION_2_0
#//# glAttachShader($program,$shader);
void
glAttachShader(program,shader)
GLuint program
GLuint shader
INIT:
loadProc(glAttachShader,"glAttachShader");
CODE:
{
glAttachShader(program,shader);
}
#//# glDeleteShader($shader);
void
glDeleteShader(shader)
GLuint shader
INIT:
loadProc(glDeleteShader,"glDeleteShader");
CODE:
{
glDeleteShader(shader);
}
#//# $value = glGetShaderiv_p($target,$pname);
GLuint
glGetShaderiv_p(target,pname)
GLenum target
GLenum pname
INIT:
loadProc(glGetShaderiv,"glGetShaderiv");
CODE:
{
GLuint param;
glGetShaderiv(target,pname,(void *)¶m);
RETVAL = param;
}
OUTPUT:
RETVAL
#//# $infoLog = glGetShaderInfoLog_p($shader);
SV *
glGetShaderInfoLog_p(shader)
GLuint shader
INIT:
loadProc(glGetShaderiv,"glGetShaderiv");
loadProc(glGetShaderInfoLog,"glGetShaderInfoLog");
CODE:
{
GLint infoLogLength;
glGetShaderiv(shader,GL_INFO_LOG_LENGTH,(GLvoid *)&infoLogLength);
if (infoLogLength)
{
GLint length;
GLchar * infoLog = malloc(infoLogLength+1);
glGetShaderInfoLog(shader,infoLogLength,&length,infoLog);
infoLog[length] = 0;
if (*infoLog)
RETVAL = newSVpv(infoLog, 0);
else
RETVAL = newSVsv(&PL_sv_undef);
free(infoLog);
}
else
{
RETVAL = newSVsv(&PL_sv_undef);
}
}
OUTPUT:
RETVAL
#//# $value = glGetProgramiv_p($target,$pname);
GLuint
glGetProgramiv_p(target,pname)
GLenum target
GLenum pname
INIT:
loadProc(glGetProgramiv,"glGetProgramiv");
CODE:
{
GLuint param;
glGetProgramiv(target,pname,(void *)¶m);
RETVAL = param;
}
OUTPUT:
RETVAL
#endif // GL_VERSION_2_0
#ifdef GL_VERSION_1_5
#//# @queryIDs = glGenQueries_p($n);
void
glGenQueries_p(n)
GLint n
INIT:
loadProc(glGenQueries,"glGenQueries");
PPCODE:
if (n) {
GLuint * ids = malloc(sizeof(GLuint) * n);
int i;
glGenQueries(n, ids);
EXTEND(sp, n);
for(i=0;i<n;i++)
PUSHs(sv_2mortal(newSViv(ids[i])));
free(ids);
}
#//# glDeleteQueries(@textureIDs);
void
glDeleteQueries(...)
INIT:
loadProc(glDeleteQueries,"glDeleteQueries");
PPCODE:
{
GLsizei n = items;
GLuint * ids = malloc(sizeof(GLuint) * (n+1));
int i;
for (i=0;i<n;i++)
ids[i] = SvIV(ST(i));
glDeleteQueries(n, ids);
free(ids);
}
#//# $result = glGetQueryObjectiv($id, $pname);
GLint
glGetQueryObjectiv(id, pname)
GLuint id
GLenum pname
INIT:
loadProc(glGetQueryObjectiv,"glGetQueryObjectiv");
CODE:
{
GLuint result;
glGetQueryObjectiv(id, pname, &result);
RETVAL = result;
}
OUTPUT:
RETVAL
#//# $result = glGetQueryObjectuiv($id, $pname);
GLuint
glGetQueryObjectuiv(id, pname)
GLuint id
GLenum pname
INIT:
loadProc(glGetQueryObjectuiv,"glGetQueryObjectuiv");
CODE:
{
GLuint result;
glGetQueryObjectuiv(id, pname, &result);
RETVAL = result;
}
OUTPUT:
RETVAL
#//# $result = glGetQueryiv($target, $pname);
GLint
glGetQueryiv(target, pname)
GLenum target
GLenum pname
INIT:
loadProc(glGetQueryiv,"glGetQueryiv");
CODE:
{
GLint result;
glGetQueryiv(target, pname, &result);
RETVAL = result;
}
OUTPUT:
RETVAL
#//# glBeginQuery($target, $id);
void
glBeginQuery(target, id)
GLenum target
GLuint id
INIT:
loadProc(glBeginQuery,"glBeginQuery");
#//# glEndQuery($target, $id);
void
glEndQuery(target)
GLenum target
INIT:
loadProc(glEndQuery,"glEndQuery");
#endif // GL_VERSION_1_5
#ifdef GL_VERSION_3_2
#//# glDrawElementsBaseVertex_c($mode, $count, $type, (CPTR)indices, $basevertex);
void
glDrawElementsBaseVertex_c(mode, count, type, indices, basevertex)
GLenum mode
GLint count
GLenum type
void * indices
GLint basevertex
INIT:
loadProc(glDrawElementsBaseVertex,"glDrawElementsBaseVertex");
CODE:
glDrawElementsBaseVertex(mode, count, type, indices, basevertex);
#endif // GL_VERSION_3_2
( run in 1.081 second using v1.01-cache-2.11-cpan-97f6503c9c8 )