0,0 → 1,72 |
#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; |
} |
} |