Acme-MITHALDU-BleedingOpenGL
view release on metacpan or search on metacpan
pogl_gl_Mult_Prog.xs view on Meta::CPAN
GLcharARB * infoLog = malloc(maxLength+1);
glGetInfoLogARB(obj,maxLength,&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
#//# glGetAttachedObjectsARB_c($containerObj, $maxCount, (CPTR)count, (CPTR)obj);
void
glGetAttachedObjectsARB_c(containerObj, maxCount, count, obj)
GLhandleARB containerObj
GLsizei maxCount
void *count
void *obj
INIT:
loadProc(glGetAttachedObjectsARB,"glGetAttachedObjectsARB");
CODE:
glGetAttachedObjectsARB(containerObj, maxCount, count, obj);
#//# glGetAttachedObjectsARB_s($containerObj, $maxCount, (PACKED)count, (PACKED)obj);
void
glGetAttachedObjectsARB_s(containerObj, maxCount, count, obj)
GLhandleARB containerObj
GLsizei maxCount
void *count
SV *obj
INIT:
loadProc(glGetObjectParameterivARB,"glGetObjectParameterivARB");
loadProc(glGetAttachedObjectsARB,"glGetAttachedObjectsARB");
CODE:
{
GLint len;
glGetObjectParameterivARB(containerObj,GL_OBJECT_ATTACHED_OBJECTS_ARB,
(GLvoid *)&len);
if (len)
{
GLsizei * count_s = EL(count, sizeof(GLsizei));
GLhandleARB * obj_s = EL(obj, sizeof(GLhandleARB)*len);
glGetAttachedObjectsARB(containerObj, maxCount, count_s, obj_s);
}
}
#//# @objs = glGetAttachedObjectsARB_p($containerObj);
void
glGetAttachedObjectsARB_p(containerObj)
GLhandleARB containerObj
INIT:
loadProc(glGetObjectParameterivARB,"glGetObjectParameterivARB");
loadProc(glGetAttachedObjectsARB,"glGetAttachedObjectsARB");
PPCODE:
{
GLsizei maxCount;
GLsizei count;
GLhandleARB *obj;
int i;
glGetObjectParameterivARB(containerObj,GL_OBJECT_ATTACHED_OBJECTS_ARB,
(GLvoid *)&maxCount);
obj = malloc(sizeof(GLhandleARB)*maxCount);
glGetAttachedObjectsARB(containerObj, maxCount, &count, obj);
EXTEND(sp, count);
for(i=0;i<count;i++)
PUSHs(sv_2mortal(newSViv(obj[i])));
free(obj);
}
#//# glGetUniformLocationARB_c($programObj, (CPTR)name);
GLint
glGetUniformLocationARB_c(programObj, name)
GLhandleARB programObj
void *name
INIT:
loadProc(glGetUniformLocationARB,"glGetUniformLocationARB");
CODE:
RETVAL = glGetUniformLocationARB(programObj, name);
OUTPUT:
RETVAL
#//# $value = glGetUniformLocationARB_p($programObj, $name);
GLint
glGetUniformLocationARB_p(programObj, ...)
GLhandleARB programObj
INIT:
loadProc(glGetUniformLocationARB,"glGetUniformLocationARB");
CODE:
{
GLcharARB *name = (GLcharARB *)SvPV(ST(1),PL_na);
RETVAL = glGetUniformLocationARB(programObj, name);
}
OUTPUT:
RETVAL
#//# glGetActiveUniformARB_c($programObj, $index, $maxLength, (CPTR)length, (CPTR)size, (CPTR)type, (CPTR)name);
void
glGetActiveUniformARB_c(programObj, index, maxLength, length, size, type, name)
GLhandleARB programObj
GLuint index
GLsizei maxLength
void *length
void *size
void *type
void *name
INIT:
loadProc(glGetActiveUniformARB,"glGetActiveUniformARB");
CODE:
glGetActiveUniformARB(programObj,index,maxLength,length,size,type,name);
#//# glGetActiveUniformARB_s($programObj, $index, $maxLength, (PACKED)length, (PACKED)size, (PACKED)type, (PACKED)name);
void
glGetActiveUniformARB_s(programObj, index, maxLength, length, size, type, name)
GLhandleARB programObj
GLuint index
GLsizei maxLength
SV *length
SV *size
SV *type
SV *name
INIT:
loadProc(glGetActiveUniformARB,"glGetActiveUniformARB");
CODE:
{
GLsizei *length_s = EL(length, sizeof(GLsizei));
GLint *size_s = EL(size, sizeof(GLint));
GLenum *type_s = EL(type, sizeof(GLenum));
GLcharARB *name_s = EL(name, sizeof(GLcharARB));
glGetActiveUniformARB(programObj,index,maxLength,length_s,size_s,type_s,name_s);
}
#//# ($name,$type,$size) = glGetActiveUniformARB_p($programObj, $index);
void
glGetActiveUniformARB_p(programObj, index)
GLhandleARB programObj
GLuint index
INIT:
loadProc(glGetObjectParameterivARB,"glGetObjectParameterivARB");
loadProc(glGetActiveUniformARB,"glGetActiveUniformARB");
PPCODE:
{
GLsizei maxLength;
glGetObjectParameterivARB(programObj,GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB,
(GLvoid *)&maxLength);
if (maxLength)
{
GLsizei length;
GLint size;
GLenum type;
GLcharARB *name;
name = malloc(maxLength+1);
glGetActiveUniformARB(programObj,index,maxLength,
&length,&size,&type,name);
name[length] = 0;
if (*name)
{
EXTEND(sp,3);
PUSHs(sv_2mortal(newSVpv(name,0)));
PUSHs(sv_2mortal(newSViv(type)));
PUSHs(sv_2mortal(newSViv(size)));
}
else
{
EXTEND(sp,1);
PUSHs(sv_2mortal(newSVsv(&PL_sv_undef)));
}
free(name);
}
else
{
EXTEND(sp,1);
PUSHs(sv_2mortal(newSVsv(&PL_sv_undef)));
}
}
#//# glGetUniformfvARB_c($programObj, $location, (CPTR)params);
void
glGetUniformfvARB_c(programObj, location, params)
GLhandleARB programObj
GLint location
void *params
INIT:
loadProc(glGetUniformfvARB,"glGetUniformfvARB");
CODE:
glGetUniformfvARB(programObj, location, params);
#//# @params = glGetUniformfvARB_p($programObj, $location[, $count]);
void
glGetUniformfvARB_p(programObj, location, count=1)
GLhandleARB programObj
GLint location
int count
INIT:
loadProc(glGetUniformfvARB,"glGetUniformfvARB");
CODE:
{
int i;
GLfloat *ret = malloc(sizeof(GLfloat)*count);
glGetUniformfvARB(programObj, location, ret);
for(i=0;i<count;i++)
PUSHs(sv_2mortal(newSVnv(ret[i])));
}
#//# glGetUniformivARB_c($programObj, $location, (CPTR)params);
void
glGetUniformivARB_c(programObj, location, params)
GLhandleARB programObj
GLint location
void *params
INIT:
loadProc(glGetUniformivARB,"glGetUniformivARB");
CODE:
glGetUniformivARB(programObj, location, params);
#//# @params = glGetUniformivARB_p($programObj, $location[, $count]);
void
glGetUniformivARB_p(programObj, location, count=1)
GLhandleARB programObj
GLint location
int count
INIT:
loadProc(glGetUniformivARB,"glGetUniformivARB");
CODE:
{
int i;
GLint *ret = malloc(sizeof(GLint)*count);
glGetUniformivARB(programObj, location, ret);
for(i=0;i<count;i++)
PUSHs(sv_2mortal(newSViv(ret[i])));
}
#//# glGetShaderSourceARB_c($obj, $maxLength, (CPTR)length, (CPTR)source);
void
glGetShaderSourceARB_c(obj, maxLength, length, source)
GLhandleARB obj
GLsizei maxLength
void *length
void *source
INIT:
loadProc(glGetShaderSourceARB,"glGetShaderSourceARB");
CODE:
glGetShaderSourceARB(obj, maxLength, length, source);
#//# $source = glGetShaderSourceARB_p($obj);
void
glGetShaderSourceARB_p(obj)
GLhandleARB obj
INIT:
loadProc(glGetObjectParameterivARB,"glGetObjectParameterivARB");
loadProc(glGetShaderSourceARB,"glGetShaderSourceARB");
PPCODE:
{
GLsizei maxLength;
glGetObjectParameterivARB(obj,GL_OBJECT_SHADER_SOURCE_LENGTH_ARB,
(GLvoid *)&maxLength);
EXTEND(sp,1);
if (maxLength)
{
GLsizei length;
GLcharARB *source;
source = malloc(maxLength+1);
glGetShaderSourceARB(obj,maxLength,&length,source);
source[length] = 0;
if (*source)
{
PUSHs(sv_2mortal(newSVpv(source,0)));
}
else
{
PUSHs(sv_2mortal(newSVsv(&PL_sv_undef)));
}
free(source);
}
else
{
PUSHs(sv_2mortal(newSVsv(&PL_sv_undef)));
}
}
#endif // GL_ARB_shader_objects
#ifdef GL_ARB_vertex_program
#//# glProgramStringARB_c($target,$format,$len,(CPTR)string);
void
glProgramStringARB_c(target,format,len,string)
GLenum target
GLenum format
GLsizei len
void * string
INIT:
loadProc(glProgramStringARB,"glProgramStringARB");
CODE:
glProgramStringARB(target,format,len,string);
#//# glProgramStringARB_s($target,$format,$len,(PACKED)string);
void
glProgramStringARB_s(target,format,len,string)
GLenum target
GLenum format
GLsizei len
SV * string
INIT:
loadProc(glProgramStringARB,"glProgramStringARB");
CODE:
pogl_gl_Mult_Prog.xs view on Meta::CPAN
GLsizei n
SV * programs
INIT:
loadProc(glDeleteProgramsARB,"glDeleteProgramsARB");
CODE:
{
GLuint * programs_s = EL(programs, sizeof(GLuint)*n);
glDeleteProgramsARB(n,programs_s);
}
#//# glDeleteProgramsARB_p(@programIDs);
void
glDeleteProgramsARB_p(...)
INIT:
loadProc(glDeleteProgramsARB,"glDeleteProgramsARB");
CODE:
{
if (items) {
GLuint * list = malloc(sizeof(GLuint) * items);
int i;
for (i=0;i<items;i++)
list[i] = SvIV(ST(i));
glDeleteProgramsARB(items, list);
free(list);
}
}
#//# glGenProgramsARB_c($n,(CPTR)programs);
void
glGenProgramsARB_c(n,programs)
GLsizei n
void * programs
INIT:
loadProc(glGenProgramsARB,"glGenProgramsARB");
CODE:
{
glGenProgramsARB(n,(GLuint*)programs);
}
#//# glGenProgramsARB_s($n,(PACKED)programs);
void
glGenProgramsARB_s(n,programs)
GLsizei n
SV * programs
INIT:
loadProc(glGenProgramsARB,"glGenProgramsARB");
CODE:
{
GLuint * programs_s = EL(programs, sizeof(GLuint)*n);
glGenProgramsARB(n, programs_s);
}
#//# @programIDs = glGenProgramsARB_c($n);
void
glGenProgramsARB_p(n)
GLsizei n
INIT:
loadProc(glGenProgramsARB,"glGenProgramsARB");
PPCODE:
if (n)
{
GLuint * programs = malloc(sizeof(GLuint) * n);
int i;
glGenProgramsARB(n, programs);
EXTEND(sp, n);
for(i=0;i<n;i++)
PUSHs(sv_2mortal(newSViv(programs[i])));
free(programs);
}
#//# glProgramEnvParameter4dARB($target,$index,$x,$y,$z,$w);
void
glProgramEnvParameter4dARB(target,index,x,y,z,w)
GLenum target
GLuint index
GLdouble x
GLdouble y
GLdouble z
GLdouble w
INIT:
loadProc(glProgramEnvParameter4dARB,"glProgramEnvParameter4dARB");
#//# glProgramEnvParameter4dvARB_c($target,$index,(CPTR)v);
void
glProgramEnvParameter4dvARB_c(target,index,v)
GLenum target
GLuint index
void * v
INIT:
loadProc(glProgramEnvParameter4dvARB,"glProgramEnvParameter4dvARB");
CODE:
glProgramEnvParameter4dvARB(target,index,(GLdouble*)v);
#//# glProgramEnvParameter4dvARB_s($target,$index,(PACKED)v);
void
glProgramEnvParameter4dvARB_s(target,index,v)
GLenum target
GLuint index
SV * v
INIT:
loadProc(glProgramEnvParameter4dvARB,"glProgramEnvParameter4dvARB");
CODE:
{
GLdouble * v_s = EL(v, sizeof(GLdouble)*4);
glProgramEnvParameter4dvARB(target,index,v_s);
}
#//!!! Do we really need this? It duplicates glProgramEnvParameter4dARB
#//# glProgramEnvParameter4dvARB_p($target,$index,$x,$y,$z,$w);
void
glProgramEnvParameter4dvARB_p(target,index,x,y,z,w)
GLenum target
GLuint index
GLdouble x
GLdouble y
GLdouble z
( run in 0.630 second using v1.01-cache-2.11-cpan-71847e10f99 )