Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5098 clevermous 1
#include "zgl.h"
2
 
3
void glGetIntegerv(int pname,int *params)
4
{
5
  GLContext *c=gl_get_context();
6
 
7
  switch(pname) {
8
  case GL_VIEWPORT:
9
    params[0]=c->viewport.xmin;
10
    params[1]=c->viewport.ymin;
11
    params[2]=c->viewport.xsize;
12
    params[3]=c->viewport.ysize;
13
    break;
14
  case GL_MAX_MODELVIEW_STACK_DEPTH:
15
    *params = MAX_MODELVIEW_STACK_DEPTH;
16
    break;
17
  case GL_MAX_PROJECTION_STACK_DEPTH:
18
    *params = MAX_PROJECTION_STACK_DEPTH;
19
    break;
20
  case GL_MAX_LIGHTS:
21
    *params = MAX_LIGHTS;
22
    break;
23
  case GL_MAX_TEXTURE_SIZE:
24
    *params = 256; /* not completely true, but... */
25
    break;
26
  case GL_MAX_TEXTURE_STACK_DEPTH:
27
    *params = MAX_TEXTURE_STACK_DEPTH;
28
    break;
29
  default:
30
    gl_fatal_error("glGet: option not implemented");
31
    break;
32
  }
33
}
34
 
35
void glGetFloatv(int pname, float *v)
36
{
37
  int i;
38
  int mnr = 0; /* just a trick to return the correct matrix */
39
  GLContext *c = gl_get_context();
40
  switch (pname) {
41
  case GL_TEXTURE_MATRIX:
42
    mnr++;
43
  case GL_PROJECTION_MATRIX:
44
    mnr++;
45
  case GL_MODELVIEW_MATRIX:
46
    {
47
      float *p = &c->matrix_stack_ptr[mnr]->m[0][0];;
48
      for (i = 0; i < 4; i++) {
49
        *v++ = p[0];
50
        *v++ = p[4];
51
        *v++ = p[8];
52
        *v++ = p[12];
53
        p++;
54
      }
55
    }
56
    break;
57
  case GL_LINE_WIDTH:
58
    *v = 1.0f;
59
    break;
60
  case GL_LINE_WIDTH_RANGE:
61
    v[0] = v[1] = 1.0f;
62
    break;
63
  case GL_POINT_SIZE:
64
    *v = 1.0f;
65
    break;
66
  case GL_POINT_SIZE_RANGE:
67
    v[0] = v[1] = 1.0f;
68
  default:
69
    fprintf(stderr,"warning: unknown pname in glGetFloatv()\n");
70
    break;
71
  }
72
}