OpenGL-Array
view release on metacpan or search on metacpan
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];
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] )));
}
}
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;
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;
( run in 2.070 seconds using v1.01-cache-2.11-cpan-5511b514fd6 )