Эти команды предназначены для виртуальной gra-машины или виртуального графического процессора. На файле команды, а также целые и рациональные числа, занимают по 4 байта. Gra-машина имеет два отдельных адресных пространства: для целых (int) и рациональных (float) чисел, которые здесь представлены массивами соответственно intValue и floatValue.
Группа Clear
Дес. код | Мнемо-код | Параметры | Действие |
0 | CLEAR_COLOR | float r, float g, float b, float a | glClearColor ( r, g, b, a ); |
1 | CLEAR_COLOR_BUFFER | Нет | glClear ( GL_COLOR_BUFFER_BIT ); |
2 | CLEAR_DEPTH_BUFFER | Нет | glClear ( GL_DEPTH_BUFFER_BIT ); |
3 | CLEAR_STENCIL_BUFFER | Нет | glClear (GL_STENCIL_BUFFER_BIT); |
Группа Enable
Дес. код | Мнемо-код | Параметры | Действие |
4 | ENABLE_BLEND | Нет | glEnable(GL_BLEND); |
5 | ENABLE_CULL_FACE | Нет | glEnable(GL_CULL_FACE); |
6 | ENABLE_DEPTH_TEST | Нет | glEnable(GL_DEPTH_TEST); |
7 | ENABLE_LIGHT | int i | glEnable(GL_LIGHT0 + i); |
8 | ENABLE_LINE_LIGHTING | Нет | glEnable(GL_LIGHTING); |
9 | ENABLE_LINE_STIPPLE | Нет | glEnable(GL_LINE_STIPPLE); |
10 | ENABLE_NORMALIZE | Нет | glEnable(GL_NORMALIZE); |
11 | ENABLE_POLYGON_STIPPLE | Нет | glEnable(GL_POLYGON_STIPPLE); |
12 | ENABLE_STENCIL_TEST | Нет | glEnable(GL_STENCIL_TEST); |
13 | ENABLE_TEXTURE_2D | Нет | glEnable(GL_TEXTURE_2D); |
14 | ENABLE_TEXTURE_GEN_S | Нет | glEnable(GL_TEXTURE_GEN_S); |
15 | ENABLE_TEXTURE_GEN_T | Нет | glEnable(GL_TEXTURE_GEN_T); |
Группа Disable
Дес. код | Мнемо-код | Параметры | Действие |
16 | DISABLE_BLEND | Нет | glDisable(GL_BLEND); |
17 | DISABLE_CULL_FACE | Нет | glDisable(GL_CULL_FACE); |
18 | DISABLE_DEPTH_TEST | Нет | glDisable(GL_DEPTH_TEST); |
19 | DISABLE_LIGHT | int i | glDisable(GL_LIGHT0 + i); |
20 | DISABLE_LINE_LIGHTING | Нет | glDisable(GL_LIGHTING); |
21 | DISABLE_LINE_STIPPLE | Нет | glDisable(GL_LINE_STIPPLE); |
22 | DISABLE_NORMALIZE | Нет | glDisable(GL_NORMALIZE); |
23 | DISABLE_POLYGON_STIPPLE | Нет | glDisable(GL_POLYGON_STIPPLE); |
24 | DISABLE_STENCIL_TEST | Нет | glDisable(GL_STENCIL_TEST); |
25 | DISABLE_TEXTURE_2D | Нет | glDisable(GL_TEXTURE_2D); |
26 | DISABLE_TEXTURE_GEN_S | Нет | glDisable(GL_TEXTURE_GEN_S); |
27 | DISABLE_TEXTURE_GEN_T | Нет | glDisable(GL_TEXTURE_GEN_T); |
Группа Blend и Deph
Дес. код | Мнемо-код | Параметры | Действие | Примечание |
28 | BLEND_FUNC | int src, int dst | glBlendFunc(blend[src], blend[dst]); | См. ниже таблицу Blend |
29 | DEPTH_FUNC_NEVER | Нет | glDepthFunc(GL_NEVER); | |
30 | DEPTH_FUNC_LESS | Нет | glDepthFunc(GL_LESS); | |
31 | DEPTH_FUNC_LEQUAL | Нет | glDepthFunc(GL_LEQUAL); | |
32 | DEPTH_FUNC_EQUAL | Нет | glDepthFunc(GL_EQUAL); | |
33 | DEPTH_FUNC_GREATER | Нет | glDepthFunc(GL_GREATER); | |
34 | DEPTH_FUNC_NOTEQUAL | Нет | glDepthFunc(GL_NOTEQUAL); | |
35 | DEPTH_FUNC_GEQUAL | Нет | glDepthFunc(GL_GEQUAL); | |
36 | DEPTH_FUNC_ALWAYS | Нет | glDepthFunc(GL_ALWAYS); |
Группа Stencil
Дес. код | Мнемо-код | Параметры | Действие | Примечание |
37 | STENCIL_FUNC_NEVER | int ref, int mask | glStencilFunc(GL_NEVER, ref, mask); | |
38 | STENCIL_FUNC_LESS | int ref, int mask | glStencilFunc(GL_LESS, ref, mask); | |
39 | STENCIL_FUNC_LEQUAL | int ref, int mask | glStencilFunc(GL_LEQUAL, ref, mask); | |
40 | STENCIL_FUNC_EQUAL | int ref, int mask | glStencilFunc(GL_EQUAL, ref, mask); | |
41 | STENCIL_FUNC_GREATER | int ref, int mask | glStencilFunc(GL_GREATER, ref, mask); | |
42 | STENCIL_FUNC_NOTEQUAL | int ref, int mask | glStencilFunc(GL_NOTEQUAL, ref, mask); | |
43 | STENCIL_FUNC_GEQUAL | int ref, int mask | glStencilFunc(GL_GEQUAL, ref, mask); | |
44 | STENCIL_FUNC_ALWAYS | int ref, int mask | glStencilFunc(GL_ALWAYS, ref, mask); | |
45 | STENCIL_OP | int fail, int zfail, int zpass | glStencilOp(stencil[fail], stencil[zfail], stencil[zpass]); | См. ниже таблицу Stencil |
Группа Begin, End
Дес. код | Мнемо-код | Параметры | Действие |
46 | BEGIN_POINTS | Нет | glBegin(GL_POINTS); |
47 | BEGIN_LINES | Нет | glBegin(GL_LINES); |
48 | BEGIN_LINE_STRIP | Нет | glBegin(GL_LINE_STRIP); |
49 | BEGIN_LINE_LOOP | Нет | glBegin(GL_LINE_LOOP); |
50 | BEGIN_TRIANGLES | Нет | glBegin(GL_TRIANGLES); |
51 | BEGIN_TRIANGLE_STRIP | Нет | glBegin(GL_TRIANGLE_STRIP); |
52 | BEGIN_TRIANGLE_FAN | Нет | glBegin(GL_TRIANGLE_FAN); |
53 | BEGIN_QUADS | Нет | glBegin(GL_QUADS); |
54 | BEGIN_QUAD_STRIP | Нет | glBegin(GL_QUAD_STRIP); |
55 | BEGIN_POLYGON | Нет | glBegin(GL_POLYGON); |
56 | END | Нет | glEnd(); |
Группа Cull face
Дес. код | Мнемо-код | Параметры | Действие |
57 | CULL_FACE_BACK | Нет | glCullFace(GL_BACK); |
58 | CULL_FACE_FRONT | Нет | glCullFace(GL_FRONT); |
59 | CULL_FACE_FRONT_AND_BACK | Нет | glCullFace(GL_FRONT_AND_BACK); |
Группа Light
Дес. код | Мнемо-код | Параметры | Действие |
60 | LIGHT_AMBIENT | int id, float data[4] | glLightfv(GL_LIGHT0 + id, GL_AMBIENT, data); |
61 | LIGHT_AMBIENT_4V | int id, int index | glLightfv(GL_LIGHT0 + id, GL_AMBIENT, floatValue + index); |
62 | LIGHT_DIFFUSE | int id, float data[4] | glLightfv(GL_LIGHT0 + id, GL_DIFFUSE, data); |
63 | LIGHT_DIFFUSE_4V | int id, int index | glLightfv(GL_LIGHT0 + id, GL_DIFFUSE, floatValue + index); |
64 | LIGHT_SPECULAR | int id, float data[4] | glLightfv(GL_LIGHT0 + id, GL_SPECULAR, data); |
65 | LIGHT_SPECULAR_4V | int id, int index | glLightfv(GL_LIGHT0 + id, GL_SPECULAR, floatValue + index); |
66 | LIGHT_POSITION | int id, float data[4] | glLightfv(GL_LIGHT0 + id, GL_POSITION, data); |
67 | LIGHT_POSITION_4V | int id, int index | glLightfv(GL_LIGHT0 + id, GL_POSITION, floatValue + index); |
Группа Stipple
Дес. код | Мнемо-код | Параметры | Действие | Примечание |
68 | LINE_STIPPLE | int factor, int pattern | glLineStipple(factor, pattern); | |
69 | POLYGON_STIPPLE_ARR | unsigned char mask[128] | glPolygonStipple(mask); | |
70 | POLYGON_STIPPLE_PTR | unsigned char * mask | glPolygonStipple(mask); | Эта команда не для файла |
Группа Material
Дес. код | Мнемо-код | Параметры | Действие |
71 | MATERIAL_BACK_AMBIENT | float data[4] | glMaterialfv(GL_BACK, GL_AMBIENT, data); |
72 | MATERIAL_BACK_DIFFUSE | float data[4] | glMaterialfv(GL_BACK, GL_DIFFUSE, data); |
73 | MATERIAL_BACK_EMISSION | float data[4] | glMaterialfv(GL_BACK, GL_EMISSION, data); |
74 | MATERIAL_BACK_SPECULAR | float data[4] | glMaterialfv(GL_BACK, GL_SPECULAR, data); |
75 | MATERIAL_BACK_SHININESS | float s | glMaterialf(GL_BACK, GL_SHININESS, s); |
76 | MATERIAL_FRONT_AMBIENT | float data[4] | glMaterialfv(GL_FRONT, GL_AMBIENT, data); |
77 | MATERIAL_FRONT_DIFFUSE | float data[4] | glMaterialfv(GL_FRONT, GL_DIFFUSE, data); |
78 | MATERIAL_FRONT_EMISSION | float data[4] | glMaterialfv(GL_FRONT, GL_EMISSION, data); |
79 | MATERIAL_FRONT_SPECULAR | float data[4] | glMaterialfv(GL_FRONT, GL_SPECULAR, data); |
80 | MATERIAL_FRONT_SHININESS | float s | glMaterialf(GL_FRONT, GL_SHININESS, s); |
Группа Polygon mode
Дес. код | Мнемо-код | Параметры | Действие | Примечание |
81 | POLYGON_MODE | int iface, int imode | glPolygonMode(face[iface], mode[imode]); | Таблицы Face и PolygonMode смотрите ниже |
Группа Color
Дес. код | Мнемо-код | Параметры | Действие |
82 | COLOR3 | float r, float g, float b | glColor3f(r, g, b); |
83 | COLOR4 | float r, float g, float b, float a | glColor4f(r, g, b, a); |
84 | COLOR_3V | int i | glColor3f(floatValue[i], floatValue[i+1], floatValue[i+2]); |
85 | COLOR_4V | int i | glColor4f(floatValue[i], floatValue[i+1], floatValue[i+2], floatValue[i+3]); |
Группа Normal
Дес. код | Мнемо-код | Параметры | Действие |
86 | NORMAL3 | float x, float y, float z | glNormal3f(x, y, z); |
87 | NORMAL_3V | int i | glNormal3f(floatValue[i], floatValue[i+1], floatValue[i+2]); |
Группа Vertex
Дес. код | Мнемо-код | Параметры | Действие |
88 | VERTEX2 | float x, float y | glVertex2f(x, y); |
89 | VERTEX3 | float x, float y, float z | glVertex3f(x, y, z); |
90 | VERTEX_2V | int i | glVertex2f(floatValue[i], floatValue[i+1]); |
91 | VERTEX_3V | int i | glVertex3f(floatValue[i], floatValue[i+1], floatValue[i+2]); |
Группа Display list
Дес. код | Мнемо-код | Параметры | Действие |
92 | CALL_LIST | int list | glCallList(list); |
93 | CALL_LIST_INDEX | int index | glCallList(intValue[index]); |
94 | END_LIST | Нет | glEndList(); |
95 | NEW_LIST_COMPILE | int list | glNewList(list, GL_COMPILE); |
96 | NEW_LIST_COMPILE_AND_EXECUTE | int list | glNewList(list, GL_COMPILE_AND_EXECUTE); |
Группа Matrix
Дес. код | Мнемо-код | Параметры | Действие |
97 | LOAD_IDENTITY | Нет | glLoadIdentity(); |
98 | LOOK_AT | int i | gluLookAt ( floatValue[i], floatValue[i+1], floatValue[i+2], floatValue[i+3], floatValue[i+4], floatValue[i+5], floatValue[i+6], floatValue[i+7], floatValue[i+8] ); |
99 | MATRIX_MODE_MODEL_VIEW | Нет | glMatrixMode(GL_MODELVIEW); |
10 | MATRIX_MODE_PROJECTION | Нет | glMatrixMode(GL_PROJECTION); |
101 | MATRIX_MODE_TEXTURE | Нет | glMatrixMode(GL_TEXTURE); |
102 | MULT_MATRIX | int i | glMultMatrixf(floatValue+i); |
103 | PERSPECTIVE | float fovy, float aspect, float zNear, float zFar | gluPerspective(fovy, aspect, zNear, zFar); |
104 | PERSPECTIVE_4V | int i | gluPerspective(floatValue[i], floatValue[i+1], floatValue[i+2], floatValue[i+3]); |
105 | POP_MATRIX | Нет | glPopMatrix(); |
106 | PUSH_MATRIX | Нет | glPushMatrix(); |
107 | ROTATE | float angle, float x, float y, float z | glRotatef(angle, x, y, z); |
108 | ROTATE_4V | int i | glRotatef(floatValue[i], floatValue[i+1], floatValue[i+2], floatValue[i+3]); |
109 | SCALE | float x, float y, float z | glScalef(x, y, z); |
110 | SCALE_3V | int i | glScalef(floatValue[i], floatValue[i+1], floatValue[i+2]); |
111 | TRANSLATE | float x, float y, float z | glTranslatef(x, y, z); |
112 | TRANSLATE_3V | int i | glTranslatef(floatValue[i], floatValue[i+1], floatValue[i+2]); |
Группа Texture
Дес. код | Мнемо-код | Параметры | Действие |
113 | BIND_TEXTURE_2D | int i | glBindTexture(GL_TEXTURE_2D, intValue[i]); |
114 | BUILD_2D_MIPMAPS_BGR_ARR | int width, int height, unsigned char pData[] | gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, GL_BGR_EXT, GL_UNSIGNED_BYTE, pData); |
115 | BUILD_2D_MIPMAPS_BGR_PTR | int width, int height, unsigned char * pData | gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, GL_BGR_EXT, GL_UNSIGNED_BYTE, pData); |
116 | GEN_TEXTURES | int n, int i | glGenTextures(n, intValue + i); |
117 | TEX_COORD2 | float s, float t | glGenTextures(s, t); |
118 | TEX_PAR_2D_MIN_FILTER_MIPMAP_NEARST | Нет | glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); |
119 | TEX_PAR_2D_WRAP_S_REPEAT | Нет | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); |
120 | TEX_PAR_2D_WRAP_T_REPEAT | Нет | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); |
Группа Get
Дес. код | Мнемо-код | Параметры | Действие |
121 | GET_FLOAT_VIEWPORT | int i | glGetFloatv(GL_VIEWPORT, floatValue + i); |
122 | GET_INT_VIEWPORT | int i | glGetIntegerv(GL_VIEWPORT, intValue + i); |
Группа Quadric objects
Дес. код | Мнемо-код | Параметры | Действие |
123 | QUADRIC_TEXTURE | int i | gluQuadricTexture(quadObj, i); |
124 | SPHERE | float radius, int slices, int stacks | gluSphere(quadObj, radius, slices, stacks); |
Группа Integer
Дес. код | Мнемо-код | Параметры | Действие |
125 | INT_AST_DC | int i1, int i2 | intValue[i1] = i2; |
126 | INT_AST_DD | int i1, int i2 | intValue[i1] = intValue[i2]; |
127 | INT_ADD_DC | int i1, int i2 | intValue[i1] += i2; |
128 | INT_ADD_DD | int i1, int i2 | intValue[i1] += intValue[i2]; |
129 | INT_SUB_DC | int i1, int i2 | intValue[i1] -= i2; |
130 | INT_SUB_DD | int i1, int i2 | intValue[i1] -= intValue[i2]; |
131 | INT_MUL_DC | int i1, int i2 | intValue[i1] *= i2; |
132 | INT_MUL_DD | int i1, int i2 | intValue[i1] *= intValue[i2]; |
133 | INT_DIV_DC | int i1, int i2 | intValue[i1] /= i2; |
134 | INT_DIV_DD | int i1, int i2 | intValue[i1] /= intValue[i2]; |
135 | INT_MOD_DC | int i1, int i2 | intValue[i1] %= i2; |
136 | INT_MOD_DD | int i1, int i2 | intValue[i1] %= intValue[i2]; |
Группа Float
Дес. код | Мнемо-код | Параметры | Действие |
137 | FLOAT_AST_DC | int i, float f | floatValue[i] = f; |
138 | FLOAT_AST_DD | int i1, int i2 | floatValue[i1] = floatValue[i2]; |
139 | FLOAT_AST_DI | int i1, int i2 | floatValue[i1] = floatValue[intValue[i2]]; |
140 | FLOAT_AST_IC | int i, float f | floatValue[intValue[i]] = f; |
141 | FLOAT_AST_ID | int i1, int i2 | floatValue[intValue[i1]] = floatValue[i2]; |
142 | FLOAT_AST_II | int i1, int i2 | floatValue[intValue[i1]] = floatValue[intValue[i2]]; |
143 | FLOAT_ADD_DC | int i, float f | floatValue[i] += f; |
144 | FLOAT_ADD_DD | int i1, int i2 | floatValue[i1] += floatValue[i2]; |
145 | FLOAT_ADD_DI | int i1, int i2 | floatValue[i1] += floatValue[intValue[i2]]; |
146 | FLOAT_ADD_IC | int i, float f | floatValue[intValue[i]] += f; |
147 | FLOAT_ADD_ID | int i1, int i2 | floatValue[intValue[i1]] += floatValue[i2]; |
148 | FLOAT_ADD_II | int i1, int i2 | floatValue[intValue[i1]] += floatValue[intValue[i2]]; |
149 | FLOAT_SUB_DC | int i, float f | floatValue[i] -= f; |
150 | FLOAT_SUB_DD | int i1, int i2 | floatValue[i1] -= floatValue[i2]; |
151 | FLOAT_SUB_DI | int i1, int i2 | floatValue[i1] -= floatValue[intValue[i2]]; |
152 | FLOAT_SUB_IC | int i, float f | floatValue[intValue[i]] -= f; |
153 | FLOAT_SUB_ID | int i1, int i2 | floatValue[intValue[i1]] -= floatValue[i2]; |
154 | FLOAT_SUB_II | int i1, int i2 | floatValue[intValue[i1]] -= floatValue[intValue[i2]]; |
155 | FLOAT_MUL_DC | int i, float f | floatValue[i] *= f; |
156 | FLOAT_MUL_DD | int i1, int i2 | floatValue[i1] *= floatValue[i2]; |
157 | FLOAT_MUL_DI | int i1, int i2 | floatValue[i1] *= floatValue[intValue[i2]]; |
158 | FLOAT_MUL_IC | int i, float f | floatValue[intValue[i]] *= f; |
159 | FLOAT_MUL_ID | int i1, int i2 | floatValue[intValue[i1]] *= floatValue[i2]; |
160 | FLOAT_MUL_II | int i1, int i2 | floatValue[intValue[i1]] *= floatValue[intValue[i2]]; |
161 | FLOAT_DIV_DC | int i, float f | floatValue[i] /= f; |
162 | FLOAT_DIV_DD | int i1, int i2 | floatValue[i1] /= floatValue[i2]; |
163 | FLOAT_DIV_DI | int i1, int i2 | floatValue[i1] /= floatValue[intValue[i2]]; |
164 | FLOAT_DIV_IC | int i, float f | floatValue[intValue[i]] /= f; |
165 | FLOAT_DIV_ID | int i1, int i2 | floatValue[intValue[i1]] /= floatValue[i2]; |
166 | FLOAT_DIV_II | int i1, int i2 | floatValue[intValue[i1]] /= floatValue[intValue[i2]]; |
Группа Mix commands
Дес. код | Мнемо-код | Параметры | Действие |
167 | INT_AST_FROM_FLOAT | int i1, int i2 | intValue[i1] = int(floatValue[i2]); |
168 | FLOAT_AST_FROM_INT | int i1, int i2 | floatValue[i1] = float(intValue[i2]); |
Группа Conditional commands
Дес. код | Мнемо-код | Параметры | Действие | Примечание |
169 | IF_INT_DC | int i1, int rel, int i2 | if ( intValue[i1] rel i2 ) | rel означает ==, !=, <, <=, >, >= |
170 | IF_INT_DD | int i1, int rel, int i2 | if ( intValue[i1] rel intValue[i2] ) | |
171 | IF_FLOAT_DC | int i, int rel, float f | if ( floatValue[i] rel f ) | |
172 | IF_FLOAT_DD | int i1, int rel, int i2 | if ( floatValue[i1] rel floatValue[i2] ) | |
173 | ELSE | Нет | else | |
174 | END_IF | Нет | endif |
Группа Loop
Дес. код | Мнемо-код | Параметры | Действие | Примечание |
175 | DO | Нет | do | |
176 | WHILE_INT_DC | int i1, int rel, int i2 | while ( intValue[i1] rel i2 ) | rel означает ==, !=, <, <=, >, >= |
177 | WHILE_INT_DC | int i1, int rel, int i2 | while ( intValue[i1] rel intValue[i2] ) |
Группа Mathematics
Дес. код | Мнемо-код | Параметры | Действие |
178 | FLOAT_ABS | int i | floatValue[i] = fabsf(floatValue[i]); |
179 | FLOAT_ATAN2 | int i1, int i2 | floatValue[i1] = atan2f(floatValue[i1], floatValue[i2]); |
180 | FLOAT_COS | int i | floatValue[i] = cosf(floatValue[i]); |
181 | FLOAT_SIN | int i | floatValue[i] = sinf(floatValue[i]); |
182 | FLOAT_SQRT | int i | floatValue[i] = sqrtf(floatValue[i]); |
Группа Start position
Дес. код | Мнемо-код | Параметры | Действие | Примечание |
183 | NEXT_START | const Node * node | В следующий раз начинать отсюда | Для файла параметр равен нулю |
184 | NEXT_START_AND_RETURN | const Node * node | В следующий раз начинать отсюда, а сейчас закончить | Для файла параметр равен нулю |
185 | NEXT_START_FIRST | Нет | В следующий раз начинать с начала |
Группа Time
Дес. код | Мнемо-код | Параметры | Действие | Примечание |
186 | CLOCK | int i | intValue[i] = clock(); | |
187 | SET_TIMER | int i | SetTimer(i); | Запустить таймер окна |
Код 188 используется для внутренних нужд.
Далее идут таблицы соответствия числовых кодов и констант OpenGL.
Таблица Blend
0 | GL_ZERO |
1 | GL_ONE |
2 | GL_COLOR |
3 | GL_ONE_MINUS_DST_COLOR |
4 | GL_SRC_ALPHA |
5 | GL_MINUS_SRC_ALPHA |
6 | GL_DST_ALPHA |
7 | GL_ONE_MINUS_DST_ALPHA |
8 | GL_SRC_ALPHA_SATURATE |
Таблица Stencil
0 | GL_KEEP |
1 | GL_ZERO |
2 | GL_REPLACE |
3 | GL_INCR |
4 | GL_DECR |
5 | GL_INVERT |
Таблица Face
1 | GL_FRONT |
2 | GL_BACK |
3 | GL_FRONT_AND_BACK |
Таблица PolygonMode
0 | GL_POINT |
1 | GL_LINE |
2 | GL_FILL |