]> git.tdb.fi Git - gldbg.git/blob - flavors/gl/source/arraysize.c
Replace per-file license notices with License.txt
[gldbg.git] / flavors / gl / source / arraysize.c
1 #include "arraysize.h"
2
3 int typesize(GLenum type)
4 {
5         switch(type)
6         {
7         case GL_BYTE: return sizeof(GLbyte);
8         case GL_SHORT: return sizeof(GLshort);
9         case GL_INT: return sizeof(GLint);
10         case GL_UNSIGNED_BYTE: return sizeof(GLubyte);
11         case GL_UNSIGNED_SHORT: return sizeof(GLushort);
12         case GL_UNSIGNED_INT: return sizeof(GLuint);
13         case GL_FLOAT: return sizeof(GLfloat);
14         case GL_DOUBLE: return sizeof(GLdouble);
15         // Short and byte packed types are broken
16         default: return 1;
17         }
18 }
19
20 int formatsize(GLenum format)
21 {
22         switch(format)
23         {
24         case GL_COLOR_INDEX: return 1;
25         case GL_STENCIL_INDEX: return 1;
26         case GL_DEPTH_COMPONENT: return 1;
27         case GL_RED: return 1;
28         case GL_GREEN: return 1;
29         case GL_BLUE: return 1;
30         case GL_ALPHA: return 1;
31         case GL_RGB: return 3;
32         case GL_RGBA: return 4;
33         case GL_BGR: return 3;
34         case GL_BGRA: return 4;
35         case GL_LUMINANCE: return 1;
36         case GL_LUMINANCE_ALPHA: return 2;
37         default: return 1;
38         }
39 }
40
41 int paramsize(GLenum pname)
42 {
43         switch(pname)
44         {
45         case GL_VIEWPORT: return 4;
46
47         // Lighting and material
48         case GL_AMBIENT: return 4;
49         case GL_DIFFUSE: return 4;
50         case GL_AMBIENT_AND_DIFFUSE: return 4;
51         case GL_SPECULAR: return 4;
52         case GL_EMISSION: return 4;
53         case GL_SHININESS: return 1;
54         case GL_COLOR_INDEXES: return 3;
55         case GL_POSITION: return 4;
56         case GL_SPOT_DIRECTION: return 3;
57         case GL_SPOT_EXPONENT: return 1;
58         case GL_SPOT_CUTOFF: return 1;
59         case GL_CONSTANT_ATTENUATION: return 1;
60         case GL_LINEAR_ATTENUATION: return 1;
61         case GL_QUADRATIC_ATTENUATION: return 1;
62         case GL_LIGHT_MODEL_AMBIENT: return 4;
63         case GL_LIGHT_MODEL_LOCAL_VIEWER: return 1;
64         case GL_LIGHT_MODEL_TWO_SIDE: return 1;
65         case GL_LIGHT_MODEL_COLOR_CONTROL: return 1;
66
67         // Texture
68         case GL_TEXTURE_WRAP_S: return 1;
69         case GL_TEXTURE_WRAP_T: return 1;
70         case GL_TEXTURE_WRAP_R: return 1;
71         case GL_TEXTURE_MIN_FILTER: return 1;
72         case GL_TEXTURE_MAG_FILTER: return 1;
73         case GL_TEXTURE_BORDER_COLOR: return 4;
74         case GL_TEXTURE_MIN_LOD: return 1;
75         case GL_TEXTURE_MAX_LOD: return 1;
76         case GL_TEXTURE_BASE_LEVEL: return 1;
77         case GL_TEXTURE_MAX_LEVEL: return 1;
78         case GL_TEXTURE_LOD_BIAS: return 1;
79         case GL_DEPTH_TEXTURE_MODE: return 1;
80         case GL_TEXTURE_COMPARE_MODE: return 1;
81         case GL_TEXTURE_COMPARE_FUNC: return 1;
82         case GL_GENERATE_MIPMAP: return 1;
83
84         default: return 1;
85         }
86 }
87
88 int buffersize(GLenum buffer)
89 {
90         switch(buffer)
91         {
92         case GL_COLOR: return 4;
93         case GL_DEPTH: return 1;
94         case GL_STENCIL: return 1;
95         default: return 1;
96         }
97 }