view release on metacpan or search on metacpan
lib/OpenGL/Array.xs view on Meta::CPAN
src = SvPV(data, len);
memcpy(offset, src, len);
}
#//# @data = $oga->retrieve($pos,$len);
#//- Get OGA data array, by offset and length
void
retrieve(oga, ...)
OpenGL::Array oga
PPCODE:
{
GLint pos = (items > 1) ? SvIV(ST(1)) : 0;
GLint len = (items > 2) ? SvIV(ST(2)) : (oga->item_count - pos);
char * offset;
int end = pos + len;
int i;
offset = ((char*)oga->data) +
(pos / oga->type_count * oga->total_types_width) +
oga->type_offset[pos % oga->type_count];
lib/OpenGL/Array.xs view on Meta::CPAN
if (free_mat) free(mat);
}
#//# @dimensions = $oga->get_dimensions();
#//- Get OGA data array, by offset and length
void
get_dimensions(oga)
OpenGL::Array oga
PPCODE:
{
int end = oga->dimension_count;
int i = 0;
EXTEND(sp, end);
for (;i<end;i++) {
PUSHs(sv_2mortal(newSViv( oga->dimensions[i] )));
}
}
lib/OpenGL/GLU.xs view on Meta::CPAN
m[i] = SvIV(ST(i+4));
gluPickMatrix(x, y, delX, delY, &m[0]);
}
#//# gluProject_p($objx, $objy, $objz, @m4x4, @o4x4, $v1,$v2,$v3,$v4);
void
gluProject_p(objx, objy, objz, m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16, o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11,o12,o13,o14,o15,o16, v1,v2,v3,v4)
GLdouble objx
GLdouble objy
GLdouble objz
PPCODE:
{
GLdouble m[16], p[16], winx, winy, winz;
GLint v[4];
int i;
for (i=0;i<16;i++)
m[i] = SvNV(ST(i+3));
for (i=0;i<16;i++)
p[i] = SvNV(ST(i+3+16));
for (i=0;i<4;i++)
v[i] = SvIV(ST(i+3+16+16));
lib/OpenGL/GLU.xs view on Meta::CPAN
gluTessVertex(tess->triangulator, data, data);
}
}
#//# gluUnProject_p($winx,$winy,$winz, @m4x4, @o4x4, $v1,$v2,$v3,$v4);
void
gluUnProject_p(winx,winy,winz, m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16, o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11,o12,o13,o14,o15,o16, v1,v2,v3,v4)
GLdouble winx
GLdouble winy
GLdouble winz
PPCODE:
{
GLdouble m[16], p[16], objx, objy, objz;
GLint v[4];
int i;
for (i=0;i<16;i++)
m[i] = SvNV(ST(i+3));
for (i=0;i<16;i++)
p[i] = SvNV(ST(i+3+16));
for (i=0;i<4;i++)
lib/OpenGL/GLX.xs view on Meta::CPAN
CODE:
if (!d) croak("ERROR: called XPending with null X connection");
RETVAL = XPending(d);
OUTPUT:
RETVAL
#// glpXNextEvent([$display]);
void
glpXNextEvent(d=dpy)
void * d
PPCODE:
{
XEvent event;
char buf[10];
KeySym ks;
XNextEvent(d,&event);
switch(event.type) {
case ConfigureNotify:
EXTEND(sp,3);
PUSHs(sv_2mortal(newSViv(event.type)));
PUSHs(sv_2mortal(newSViv(event.xconfigure.width)));
lib/OpenGL/GLX.xs view on Meta::CPAN
PUSHs(sv_2mortal(newSViv(event.type)));
break;
}
}
#// glpXQueryPointer([$winID[, $display]]);
void
glpXQueryPointer(w=win,d=dpy)
void * d
GLXDrawable w
PPCODE:
{
int x,y,rx,ry;
Window r,c;
unsigned int m;
XQueryPointer(d,w,&r,&c,&rx,&ry,&x,&y,&m);
EXTEND(sp,3);
PUSHs(sv_2mortal(newSViv(x)));
PUSHs(sv_2mortal(newSViv(y)));
PUSHs(sv_2mortal(newSViv(m)));
}
lib/OpenGL/Matrix.xs view on Meta::CPAN
OUTPUT:
RETVAL
#//# @row = $mat->row($row[, $arrayref]);
#//- Get/Set the value of a 2D Matrix row
#//- When setting new values, returns the previous row values
void
row(mat, row, ...)
OpenGL::Matrix mat
GLsizei row
PPCODE:
{
needs_2D(mat, "row");
if (row >= mat->dimensions[1])
{
croak("OpenGL::Matrix::element row exceeds matrix height");
}
GLfloat * data = mat->data;
int cols = mat->dimensions[0];
int index = row * cols;
lib/OpenGL/Matrix.xs view on Meta::CPAN
}
}
#//# @col = $mat->column($col[, $arrayref]);
#//- Get/Set the value of a 2D Matrix column
#//- When setting new values, returns the previous column values
void
column(mat, col, ...)
OpenGL::Matrix mat
GLsizei col
PPCODE:
{
needs_2D(mat, "column");
int cols = mat->dimensions[0];
if (col >= cols)
{
croak("OpenGL::Matrix::element col exceeds matrix width");
}
GLfloat * data = mat->data;
lib/OpenGL/V1.xs view on Meta::CPAN
GLint * v_s = EL(v, sizeof(GLint)*nparams);
glGetMapiv(target, query, v_s);
}
#// 1.0
#//# @data = glGetMapfv_p($target, $query);
void
glGetMapfv_p(target, query)
GLenum target
GLenum query
PPCODE:
{
GLfloat ret[MAX_GL_MAP_COUNT];
int n = gl_map_count(target, query);
if (n < 0) croak("Unknown map query");
int i;
glGetMapfv(target, query, &ret[0]);
EXTEND(sp, n);
for(i=0;i<n;i++)
PUSHs(sv_2mortal(newSVnv(ret[i])));
}
#// 1.0
#//# @data = glGetMapdv_p($target, $query);
void
glGetMapdv_p(target, query)
GLenum target
GLenum query
PPCODE:
{
GLdouble ret[MAX_GL_MAP_COUNT];
int n = gl_map_count(target, query);
if (n < 0) croak("Unknown map query");
int i;
glGetMapdv(target, query, &ret[0]);
EXTEND(sp, n);
for(i=0;i<n;i++)
PUSHs(sv_2mortal(newSVnv(ret[i])));
}
#// 1.0
#//# @data = glGetMapiv_p($target, $query);
void
glGetMapiv_p(target, query)
GLenum target
GLenum query
PPCODE:
{
GLint ret[MAX_GL_MAP_COUNT];
int n = gl_map_count(target, query);
if (n < 0) croak("Unknown map query");
int i;
glGetMapiv(target, query, &ret[0]);
EXTEND(sp, n);
for(i=0;i<n;i++)
PUSHs(sv_2mortal(newSViv(ret[i])));
}
lib/OpenGL/V1.xs view on Meta::CPAN
CODE:
{
GLubyte * ptr = ELI(mask, 32, 32, GL_COLOR_INDEX, GL_BITMAP, gl_pixelbuffer_unpack);
glGetPolygonStipple(ptr);
}
#// 1.0
#//# @mask = glGetPolygonStipple_p();
void
glGetPolygonStipple_p()
PPCODE:
{
void * ptr;
glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
glPixelStorei(GL_PACK_ROW_LENGTH, 0);
glPixelStorei(GL_PACK_ALIGNMENT, 1);
ptr = allocate_image_ST(32, 32, 1, GL_COLOR_INDEX, GL_BITMAP, 0);
glGetPolygonStipple(ptr);
sp = unpack_image_ST(sp, ptr, 32, 32, 1,
GL_COLOR_INDEX, GL_BITMAP, 0);
free(ptr);
lib/OpenGL/V1.xs view on Meta::CPAN
}
#// 1.0
#//# @pixels = glGetTexImage_p($target, $level, $format, $type);
void
glGetTexImage_p(target, level, format, type)
GLenum target
GLint level
GLenum format
GLenum type
PPCODE:
{
GLint width, height;
GLvoid * ptr;
glGetTexLevelParameteriv(target, level,
GL_TEXTURE_WIDTH, &width);
glGetTexLevelParameteriv(target, level,
GL_TEXTURE_HEIGHT, &height);
glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
lib/OpenGL/V1.xs view on Meta::CPAN
#// 1.0
#//# @pixels = glReadPixels_p($x, $y, $width, $height, $format, $type);
void
glReadPixels_p(x, y, width, height, format, type)
GLint x
GLint y
GLsizei width
GLsizei height
GLenum format
GLenum type
PPCODE:
{
void * ptr;
glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
glPixelStorei(GL_PACK_ROW_LENGTH, 0);
glPixelStorei(GL_PACK_ALIGNMENT, 1);
ptr = allocate_image_ST(width, height, 1, format, type, 0);
glReadPixels(x, y, width, height, format, type, ptr);
sp = unpack_image_ST(sp, ptr, width, height, 1, format, type, 0);
free(ptr);
glPopClientAttrib();
lib/OpenGL/V2.xs view on Meta::CPAN
}
#//# $param = glGetVertexAttribPointervARB_p($index,$pname);
void
glGetVertexAttribPointervARB_p(index,pname)
GLuint index
GLenum pname
INIT:
loadProc(glGetVertexAttribPointervARB,"glGetVertexAttribPointervARB");
loadProc(glGetVertexAttribivARB,"glGetVertexAttribivARB");
PPCODE:
{
void * pointer;
GLuint i,count,type;
glGetVertexAttribPointervARB(index,pname,&pointer);
glGetVertexAttribivARB(index,GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB,(void *)&count);
glGetVertexAttribivARB(index,GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB,(void *)&type);
EXTEND(sp, count);
switch (type)
{
#ifdef GL_VERSION_1_2
lib/OpenGL/V2.xs view on Meta::CPAN
}
}
#//# @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);