Acme-MITHALDU-BleedingOpenGL
view release on metacpan or search on metacpan
glGetIntegerv(GL_PIXEL_MAP_I_TO_R_SIZE, &s);
return s;
case GL_PIXEL_MAP_I_TO_G:
glGetIntegerv(GL_PIXEL_MAP_I_TO_G_SIZE, &s);
return s;
case GL_PIXEL_MAP_I_TO_B:
glGetIntegerv(GL_PIXEL_MAP_I_TO_B_SIZE, &s);
return s;
case GL_PIXEL_MAP_I_TO_A:
glGetIntegerv(GL_PIXEL_MAP_I_TO_A_SIZE, &s);
return s;
case GL_PIXEL_MAP_R_TO_R:
glGetIntegerv(GL_PIXEL_MAP_R_TO_R_SIZE, &s);
return s;
case GL_PIXEL_MAP_G_TO_G:
glGetIntegerv(GL_PIXEL_MAP_G_TO_G_SIZE, &s);
return s;
case GL_PIXEL_MAP_B_TO_B:
glGetIntegerv(GL_PIXEL_MAP_B_TO_B_SIZE, &s);
return s;
case GL_PIXEL_MAP_A_TO_A:
glGetIntegerv(GL_PIXEL_MAP_A_TO_A_SIZE, &s);
return s;
default:
croak("unknown pixelmap");
}
return 0; // Just to make the compiler happy
}
int gl_state_count(GLenum state) {
switch (state) {
case GL_CURRENT_COLOR: return 4;
case GL_CURRENT_INDEX: return 1;
}
return 0;
}
unsigned long gl_pixelbuffer_size(
GLenum format,
GLsizei width,
GLsizei height,
GLenum type,
int mode);
GLvoid * EL(SV * sv, int needlen)
{
STRLEN skip = 0;
SV * svref;
if (SvREADONLY(sv))
croak("Readonly value for buffer");
if(SvROK(sv)) {
svref = SvRV(sv);
sv = svref;
}
else
{
#ifdef USE_STRICT_UNGLOB
if (SvFAKE(sv) && SvTYPE(sv) == SVt_PVGV)
sv_unglob(sv);
#endif
SvUPGRADE(sv, SVt_PV);
SvGROW(sv, (unsigned int)(needlen + 1));
SvPOK_on(sv);
SvCUR_set(sv, needlen);
*SvEND(sv) = '\0'; /* Why is this here? -chm */
}
return SvPV_force(sv, skip);
}
GLvoid * ELI(SV * sv, GLsizei width, GLsizei height,
GLenum format, GLenum type, int mode)
{
int needlen = 0;
if (!SvROK(sv)) /* don't calc length if arg is a perl ref */
needlen = gl_pixelbuffer_size(format, width, height, type, mode);
return EL(sv, needlen);
}
int gl_type_size(GLenum type)
{
switch (type) {
#ifdef GL_VERSION_1_2
case GL_UNSIGNED_BYTE_3_3_2:
case GL_UNSIGNED_BYTE_2_3_3_REV:
return sizeof(GLubyte);
case GL_UNSIGNED_SHORT_5_6_5:
case GL_UNSIGNED_SHORT_5_6_5_REV:
case GL_UNSIGNED_SHORT_4_4_4_4:
case GL_UNSIGNED_SHORT_4_4_4_4_REV:
case GL_UNSIGNED_SHORT_5_5_5_1:
case GL_UNSIGNED_SHORT_1_5_5_5_REV:
return sizeof(GLushort);
case GL_UNSIGNED_INT_8_8_8_8:
case GL_UNSIGNED_INT_8_8_8_8_REV:
case GL_UNSIGNED_INT_10_10_10_2:
case GL_UNSIGNED_INT_2_10_10_10_REV:
return sizeof(GLuint);
#endif
case GL_UNSIGNED_BYTE: return sizeof(GLubyte); break;
case GL_BITMAP: return sizeof(GLubyte); break;
case GL_BYTE: return sizeof(GLbyte); break;
case GL_UNSIGNED_SHORT: return sizeof(GLushort); break;
case GL_SHORT: return sizeof(GLshort); break;
case GL_UNSIGNED_INT: return sizeof(GLuint); break;
case GL_INT: return sizeof(GLint); break;
case GL_FLOAT: return sizeof(GLfloat); break;
case GL_DOUBLE: return sizeof(GLdouble); break;
case GL_2_BYTES: return 2;
case GL_3_BYTES: return 3;
case GL_4_BYTES: return 4;
default:
croak("unknown type");
}
return 0; // Just to make the compiler happy
( run in 0.688 second using v1.01-cache-2.11-cpan-5837b0d9d2c )