forked from KolibriOS/kolibrios
cd74d1af33
git-svn-id: svn://kolibrios.org@5098 a494cfbc-eb01-0410-851d-a64ba20cac60
73 lines
1.5 KiB
C
73 lines
1.5 KiB
C
#include "zgl.h"
|
|
|
|
void glGetIntegerv(int pname,int *params)
|
|
{
|
|
GLContext *c=gl_get_context();
|
|
|
|
switch(pname) {
|
|
case GL_VIEWPORT:
|
|
params[0]=c->viewport.xmin;
|
|
params[1]=c->viewport.ymin;
|
|
params[2]=c->viewport.xsize;
|
|
params[3]=c->viewport.ysize;
|
|
break;
|
|
case GL_MAX_MODELVIEW_STACK_DEPTH:
|
|
*params = MAX_MODELVIEW_STACK_DEPTH;
|
|
break;
|
|
case GL_MAX_PROJECTION_STACK_DEPTH:
|
|
*params = MAX_PROJECTION_STACK_DEPTH;
|
|
break;
|
|
case GL_MAX_LIGHTS:
|
|
*params = MAX_LIGHTS;
|
|
break;
|
|
case GL_MAX_TEXTURE_SIZE:
|
|
*params = 256; /* not completely true, but... */
|
|
break;
|
|
case GL_MAX_TEXTURE_STACK_DEPTH:
|
|
*params = MAX_TEXTURE_STACK_DEPTH;
|
|
break;
|
|
default:
|
|
gl_fatal_error("glGet: option not implemented");
|
|
break;
|
|
}
|
|
}
|
|
|
|
void glGetFloatv(int pname, float *v)
|
|
{
|
|
int i;
|
|
int mnr = 0; /* just a trick to return the correct matrix */
|
|
GLContext *c = gl_get_context();
|
|
switch (pname) {
|
|
case GL_TEXTURE_MATRIX:
|
|
mnr++;
|
|
case GL_PROJECTION_MATRIX:
|
|
mnr++;
|
|
case GL_MODELVIEW_MATRIX:
|
|
{
|
|
float *p = &c->matrix_stack_ptr[mnr]->m[0][0];;
|
|
for (i = 0; i < 4; i++) {
|
|
*v++ = p[0];
|
|
*v++ = p[4];
|
|
*v++ = p[8];
|
|
*v++ = p[12];
|
|
p++;
|
|
}
|
|
}
|
|
break;
|
|
case GL_LINE_WIDTH:
|
|
*v = 1.0f;
|
|
break;
|
|
case GL_LINE_WIDTH_RANGE:
|
|
v[0] = v[1] = 1.0f;
|
|
break;
|
|
case GL_POINT_SIZE:
|
|
*v = 1.0f;
|
|
break;
|
|
case GL_POINT_SIZE_RANGE:
|
|
v[0] = v[1] = 1.0f;
|
|
default:
|
|
fprintf(stderr,"warning: unknown pname in glGetFloatv()\n");
|
|
break;
|
|
}
|
|
}
|