Acme-MITHALDU-BleedingOpenGL
view release on metacpan or search on metacpan
pogl_gl_GetP_Pass.xs view on Meta::CPAN
/* Last saved: Sun 06 Sep 2009 02:09:56 PM */
/* Copyright (c) 1998 Kenneth Albanowski. All rights reserved.
* Copyright (c) 2007 Bob Free. All rights reserved.
* Copyright (c) 2009 Chris Marshall. All rights reserved.
* This program is free software; you can redistribute it and/or
* modify it under the same terms as Perl itself.
*/
/* OpenGL GLX bindings */
#define IN_POGL_GLX_XS
#include <stdio.h>
#include "pgopogl.h"
#ifdef HAVE_GL
#include "gl_util.h"
/* Note: this is caching procs once for all contexts */
/* !!! This should instead cache per context */
#if defined(_WIN32) || (defined(__CYGWIN__) && defined(HAVE_W32API))
#define loadProc(proc,name) \
{ \
if (!proc) \
{ \
proc = (void *)wglGetProcAddress(name); \
if (!proc) croak(name " is not supported by this renderer"); \
} \
}
#define testProc(proc,name) ((proc) ? 1 : !!(proc = (void *)wglGetProcAddress(name)))
#else /* not using WGL */
#define loadProc(proc,name)
#define testProc(proc,name) 1
#endif /* not defined _WIN32, __CYGWIN__, and HAVE_W32API */
#endif /* defined HAVE_GL */
#ifdef HAVE_GLX
#include "glx_util.h"
#endif /* defined HAVE_GLX */
#ifdef HAVE_GLU
#include "glu_util.h"
#endif /* defined HAVE_GLU */
MODULE = Acme::MITHALDU::BleedingOpenGL::GL::GetPPass PACKAGE = Acme::MITHALDU::BleedingOpenGL
#ifdef HAVE_GL
#// 1.0
#//# glGetPixelMapfv_c($map, (CPTR)values);
void
glGetPixelMapfv_c(map, values)
GLenum map
void * values
CODE:
glGetPixelMapfv(map, values);
#// 1.0
#//# glGetPixelMapuiv_c($map, (CPTR)values);
void
glGetPixelMapuiv_c(map, values)
GLenum map
void * values
CODE:
glGetPixelMapuiv(map, values);
#// 1.0
#//# glGetPixelMapusv_c($map, (CPTR)values);
void
glGetPixelMapusv_c(map, values)
GLenum map
void * values
CODE:
glGetPixelMapusv(map, values);
#// 1.0
#//# glGetPixelMapfv_s($map, (PACKED)values);
void
glGetPixelMapfv_s(map, values)
GLenum map
SV * values
CODE:
{
GLfloat * values_s = EL(values, sizeof(GLfloat)* gl_pixelmap_size(map));
glGetPixelMapfv(map, values_s);
}
#// 1.0
#//# glGetPixelMapuiv_s($map, (PACKED)values);
void
glGetPixelMapuiv_s(map, values)
GLenum map
SV * values
CODE:
{
GLuint * values_s = EL(values, sizeof(GLuint)* gl_pixelmap_size(map));
glGetPixelMapuiv(map, values_s);
}
#// 1.0
#//# glGetPixelMapusv_s($map, (PACKED)values);
void
glGetPixelMapusv_s(map, values)
GLenum map
SV * values
CODE:
{
GLushort * values_s = EL(values, sizeof(GLushort)* gl_pixelmap_size(map));
glGetPixelMapusv(map, values_s);
}
#// 1.0
#//# @data = glGetPixelMapfv_p($map);
void
glGetPixelMapfv_p(map)
GLenum map
CODE:
{
int count = gl_pixelmap_size(map);
GLfloat * values;
int i;
values = malloc(sizeof(GLfloat) * count);
glGetPixelMapfv(map, values);
EXTEND(sp, count);
for(i=0; i<count; i++)
PUSHs(sv_2mortal(newSVnv(values[i])));
free(values);
}
#// 1.0
#//# @data = glGetPixelMapuiv_p($map);
void
glGetPixelMapuiv_p(map)
GLenum map
CODE:
{
int count = gl_pixelmap_size(map);
GLuint * values;
int i;
values = malloc(sizeof(GLuint) * count);
glGetPixelMapuiv(map, values);
EXTEND(sp, count);
for(i=0; i<count; i++)
PUSHs(sv_2mortal(newSViv(values[i])));
free(values);
}
#// 1.0
#//# @data = glGetPixelMapusv_p($map);
void
glGetPixelMapusv_p(map)
GLenum map
CODE:
{
int count = gl_pixelmap_size(map);
GLushort * values;
int i;
values = malloc(sizeof(GLushort) * count);
glGetPixelMapusv(map, values);
EXTEND(sp, count);
for(i=0; i<count; i++)
PUSHs(sv_2mortal(newSViv(values[i])));
free(values);
}
#// 1.0
#//# glGetPolygonStipple_c((CPTR)mask);
void
glGetPolygonStipple_c(mask)
void * mask
CODE:
glGetPolygonStipple(mask);
#// 1.0
#//# glGetPolygonStipple_s((PACKED)mask);
void
glGetPolygonStipple_s(mask)
SV * mask
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);
glPopClientAttrib();
}
#ifdef GL_VERSION_1_1
#// 1.1
#//# glGetPointerv_c($pname, (CPTR)params);
void
glGetPointerv_c(pname, params)
GLenum pname
void * params
CODE:
glGetPointerv(pname,¶ms);
#// 1.1
#//# glGetPointerv_s($pname, (PACKED)params);
void
glGetPointerv_s(pname, params)
GLenum pname
SV * params
pogl_gl_GetP_Pass.xs view on Meta::CPAN
void * points
CODE:
glMap1d(target, u1, u2, stride, order, points);
#// 1.0
#//# glMap1f_c($target, $u1, $u2, $stride, $order, (CPTR)points);
void
glMap1f_c(target, u1, u2, stride, order, points)
GLenum target
GLfloat u1
GLfloat u2
GLint stride
GLint order
void * points
CODE:
glMap1f(target, u1, u2, stride, order, points);
#// 1.0
#//# glMap1d_s($target, $u1, $u2, $stride, $order, (PACKED)points);
void
glMap1d_s(target, u1, u2, stride, order, points)
GLenum target
GLdouble u1
GLdouble u2
GLint stride
GLint order
SV * points
CODE:
{
GLdouble * points_s = EL(points, 0 /*FIXME*/);
glMap1d(target, u1, u2, stride, order, points_s);
}
#// 1.0
#//# glMap1f_s($target, $u1, $u2, $stride, $order, (PACKED)points);
void
glMap1f_s(target, u1, u2, stride, order, points)
GLenum target
GLfloat u1
GLfloat u2
GLint stride
GLint order
SV * points
CODE:
{
GLfloat * points_s = EL(points, 0 /*FIXME*/);
glMap1f(target, u1, u2, stride, order, points_s);
}
#// 1.0
#//# glMap1d_p($target, $u1, $u2, @points);
#//- Assumes 0 stride
void
glMap1d_p(target, u1, u2, ...)
GLenum target
GLdouble u1
GLdouble u2
CODE:
{
int count = items-3;
GLint order = (items - 3) / gl_map_count(target, GL_COEFF);
GLdouble * points = malloc(sizeof(GLdouble) * (count+1));
int i;
for (i=0;i<count;i++)
points[i] = SvNV(ST(i+3));
glMap1d(target, u1, u2, 0, order, points);
free(points);
}
#// 1.0
#//# glMap1f_p($target, $u1, $u2, @points);
#//- Assumes 0 stride
void
glMap1f_p(target, u1, u2, ...)
GLenum target
GLfloat u1
GLfloat u2
CODE:
{
int count = items-3;
GLint order = (items - 3) / gl_map_count(target, GL_COEFF);
GLfloat * points = malloc(sizeof(GLfloat) * (count+1));
int i;
for (i=0;i<count;i++)
points[i] = (GLfloat)SvNV(ST(i+3));
glMap1f(target, u1, u2, 0, order, points);
free(points);
}
#// 1.0
#//# glMap2d_c($target, $u1, $u2, $ustride, $uorder, $v1, $v2, $vstride, $vorder, (CPTR)points);
void
glMap2d_c(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points)
GLenum target
GLdouble u1
GLdouble u2
GLint ustride
GLint uorder
GLdouble v1
GLdouble v2
GLint vstride
GLint vorder
void * points
CODE:
glMap2d(target, u1, u2, ustride, uorder, v1, v2,
vstride, vorder, points);
#// 1.0
#//# glMap2f_c($target, $u1, $u2, $ustride, $uorder, $v1, $v2, $vstride, $vorder, (CPTR)points);
void
glMap2f_c(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points)
GLenum target
GLfloat u1
GLfloat u2
GLint ustride
GLint uorder
GLfloat v1
GLfloat v2
GLint vstride
GLint vorder
void * points
CODE:
glMap2f(target, u1, u2, ustride, uorder, v1, v2,
vstride, vorder, points);
#// 1.0
#//# glMap2d_s($target, $u1, $u2, $ustride, $uorder, $v1, $v2, $vstride, $vorder, (PACKED)points);
void
glMap2d_s(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points)
GLenum target
GLdouble u1
GLdouble u2
GLint ustride
GLint uorder
GLdouble v1
GLdouble v2
GLint vstride
GLint vorder
SV * points
CODE:
{
GLdouble * points_s = EL(points, 0 /*FIXME*/);
glMap2d(target, u1, u2, ustride, uorder, v1, v2,
vstride, vorder, points_s);
}
#// 1.0
#//# glMap2f_s($target, $u1, $u2, $ustride, $uorder, $v1, $v2, $vstride, $vorder, (PACKED)points);
void
glMap2f_s(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points)
GLenum target
GLfloat u1
GLfloat u2
GLint ustride
GLint uorder
GLfloat v1
GLfloat v2
GLint vstride
GLint vorder
SV * points
CODE:
{
GLfloat * points_s = EL(points, 0 /*FIXME*/);
glMap2f(target, u1, u2, ustride, uorder, v1, v2,
vstride, vorder, points_s);
}
#// 1.0
#//# glMap2d_p($target, $u1, $u2, $uorder, $v1, $v2, @points);
#//- Assumes 0 ustride and vstride
void
glMap2d_p(target, u1, u2, uorder, v1, v2, ...)
GLenum target
GLdouble u1
GLdouble u2
GLint uorder
GLdouble v1
GLdouble v2
CODE:
{
int count = items-6;
GLint vorder = (count / uorder) / gl_map_count(target, GL_COEFF);
GLdouble * points = malloc(sizeof(GLdouble) * (count+1));
int i;
for (i=0;i<count;i++)
points[i] = SvNV(ST(i+6));
glMap2d(target, u1, u2, 0, uorder, v1, v2, 0, vorder, points);
free(points);
}
#// 1.0
#//# glMap2f_p($target, $u1, $u2, $uorder, $v1, $v2, @points);
#//- Assumes 0 ustride and vstride
void
glMap2f_p(target, u1, u2, uorder, v1, v2, ...)
GLenum target
GLfloat u1
GLfloat u2
GLint uorder
GLfloat v1
GLfloat v2
CODE:
{
int count = items-6;
GLint vorder = (count / uorder) / gl_map_count(target, GL_COEFF);
GLfloat * points = malloc(sizeof(GLfloat) * (count+1));
int i;
for (i=0;i<count;i++)
points[i] = (GLfloat)SvNV(ST(i+6));
glMap2f(target, u1, u2, 0, uorder, v1, v2, 0, vorder, points);
free(points);
}
#// 1.0
#//# glMapGrid1d($un, $u1, $u2);
void
glMapGrid1d(un, u1, u2)
GLint un
GLdouble u1
GLdouble u2
#// 1.0
#//# glMapGrid1f($un, $u1, $u2);
void
glMapGrid1f(un, u1, u2)
GLint un
GLfloat u1
GLfloat u2
#// 1.0
#//# glMapGrid2d($un, $u1, $u2, $vn, $v1, $v2);
void
glMapGrid2d(un, u1, u2, vn, v1, v2)
GLint un
GLdouble u1
GLdouble u2
GLint vn
GLdouble v1
GLdouble v2
#// 1.0
#//# glMapGrid2f($un, $u1, $u2, $vn, $v1, $v2);
void
glMapGrid2f(un, u1, u2, vn, v1, v2)
GLint un
GLfloat u1
GLfloat u2
GLint vn
GLfloat v1
GLfloat v2
#// 1.0
#//# glMaterialf($face, $pname, $param);
void
glMaterialf(face, pname, param)
GLenum face
GLenum pname
GLfloat param
#// 1.0
#//# glMateriali($face, $pname, $param);
void
glMateriali(face, pname, param)
GLenum face
GLenum pname
( run in 2.363 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )