6206cce02a04478cefdfeca0f1144b3c3d7ec714
[iec.git] / src / type3_AndroidCloud / anbox-master / android / opengl / system / GLESv1_enc / gl_enc.cpp
1 // Generated Code - DO NOT EDIT !!
2 // generated by 'emugen'
3
4
5 #include <memory>
6 #include <string.h>
7 #include "gl_opcodes.h"
8
9 #include "gl_enc.h"
10
11
12 #include <stdio.h>
13
14 namespace {
15
16 void enc_unsupported()
17 {
18         ALOGE("Function is unsupported\n");
19 }
20
21 void glAlphaFunc_enc(void *self , GLenum func, GLclampf ref)
22 {
23
24         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
25         IOStream *stream = ctx->m_stream;
26         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
27         bool useChecksum = checksumCalculator->getVersion() > 0;
28
29          unsigned char *ptr;
30          unsigned char *buf;
31          const size_t sizeWithoutChecksum = 8 + 4 + 4;
32          const size_t checksumSize = checksumCalculator->checksumByteSize();
33          const size_t totalSize = sizeWithoutChecksum + checksumSize;
34         buf = stream->alloc(totalSize);
35         ptr = buf;
36         int tmp = OP_glAlphaFunc;memcpy(ptr, &tmp, 4); ptr += 4;
37         memcpy(ptr, &totalSize, 4);  ptr += 4;
38
39                 memcpy(ptr, &func, 4); ptr += 4;
40                 memcpy(ptr, &ref, 4); ptr += 4;
41
42         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
43         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
44
45 }
46
47 void glClearColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
48 {
49
50         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
51         IOStream *stream = ctx->m_stream;
52         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
53         bool useChecksum = checksumCalculator->getVersion() > 0;
54
55          unsigned char *ptr;
56          unsigned char *buf;
57          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
58          const size_t checksumSize = checksumCalculator->checksumByteSize();
59          const size_t totalSize = sizeWithoutChecksum + checksumSize;
60         buf = stream->alloc(totalSize);
61         ptr = buf;
62         int tmp = OP_glClearColor;memcpy(ptr, &tmp, 4); ptr += 4;
63         memcpy(ptr, &totalSize, 4);  ptr += 4;
64
65                 memcpy(ptr, &red, 4); ptr += 4;
66                 memcpy(ptr, &green, 4); ptr += 4;
67                 memcpy(ptr, &blue, 4); ptr += 4;
68                 memcpy(ptr, &alpha, 4); ptr += 4;
69
70         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
71         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
72
73 }
74
75 void glClearDepthf_enc(void *self , GLclampf depth)
76 {
77
78         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
79         IOStream *stream = ctx->m_stream;
80         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
81         bool useChecksum = checksumCalculator->getVersion() > 0;
82
83          unsigned char *ptr;
84          unsigned char *buf;
85          const size_t sizeWithoutChecksum = 8 + 4;
86          const size_t checksumSize = checksumCalculator->checksumByteSize();
87          const size_t totalSize = sizeWithoutChecksum + checksumSize;
88         buf = stream->alloc(totalSize);
89         ptr = buf;
90         int tmp = OP_glClearDepthf;memcpy(ptr, &tmp, 4); ptr += 4;
91         memcpy(ptr, &totalSize, 4);  ptr += 4;
92
93                 memcpy(ptr, &depth, 4); ptr += 4;
94
95         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
96         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
97
98 }
99
100 void glClipPlanef_enc(void *self , GLenum plane, const GLfloat* equation)
101 {
102
103         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
104         IOStream *stream = ctx->m_stream;
105         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
106         bool useChecksum = checksumCalculator->getVersion() > 0;
107
108         const unsigned int __size_equation =  (4 * sizeof(float));
109          unsigned char *ptr;
110          unsigned char *buf;
111          const size_t sizeWithoutChecksum = 8 + 4 + __size_equation + 1*4;
112          const size_t checksumSize = checksumCalculator->checksumByteSize();
113          const size_t totalSize = sizeWithoutChecksum + checksumSize;
114         buf = stream->alloc(totalSize);
115         ptr = buf;
116         int tmp = OP_glClipPlanef;memcpy(ptr, &tmp, 4); ptr += 4;
117         memcpy(ptr, &totalSize, 4);  ptr += 4;
118
119                 memcpy(ptr, &plane, 4); ptr += 4;
120         *(unsigned int *)(ptr) = __size_equation; ptr += 4;
121         memcpy(ptr, equation, __size_equation);ptr += __size_equation;
122
123         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
124         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
125
126 }
127
128 void glColor4f_enc(void *self , GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
129 {
130
131         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
132         IOStream *stream = ctx->m_stream;
133         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
134         bool useChecksum = checksumCalculator->getVersion() > 0;
135
136          unsigned char *ptr;
137          unsigned char *buf;
138          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
139          const size_t checksumSize = checksumCalculator->checksumByteSize();
140          const size_t totalSize = sizeWithoutChecksum + checksumSize;
141         buf = stream->alloc(totalSize);
142         ptr = buf;
143         int tmp = OP_glColor4f;memcpy(ptr, &tmp, 4); ptr += 4;
144         memcpy(ptr, &totalSize, 4);  ptr += 4;
145
146                 memcpy(ptr, &red, 4); ptr += 4;
147                 memcpy(ptr, &green, 4); ptr += 4;
148                 memcpy(ptr, &blue, 4); ptr += 4;
149                 memcpy(ptr, &alpha, 4); ptr += 4;
150
151         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
152         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
153
154 }
155
156 void glDepthRangef_enc(void *self , GLclampf zNear, GLclampf zFar)
157 {
158
159         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
160         IOStream *stream = ctx->m_stream;
161         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
162         bool useChecksum = checksumCalculator->getVersion() > 0;
163
164          unsigned char *ptr;
165          unsigned char *buf;
166          const size_t sizeWithoutChecksum = 8 + 4 + 4;
167          const size_t checksumSize = checksumCalculator->checksumByteSize();
168          const size_t totalSize = sizeWithoutChecksum + checksumSize;
169         buf = stream->alloc(totalSize);
170         ptr = buf;
171         int tmp = OP_glDepthRangef;memcpy(ptr, &tmp, 4); ptr += 4;
172         memcpy(ptr, &totalSize, 4);  ptr += 4;
173
174                 memcpy(ptr, &zNear, 4); ptr += 4;
175                 memcpy(ptr, &zFar, 4); ptr += 4;
176
177         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
178         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
179
180 }
181
182 void glFogf_enc(void *self , GLenum pname, GLfloat param)
183 {
184
185         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
186         IOStream *stream = ctx->m_stream;
187         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
188         bool useChecksum = checksumCalculator->getVersion() > 0;
189
190          unsigned char *ptr;
191          unsigned char *buf;
192          const size_t sizeWithoutChecksum = 8 + 4 + 4;
193          const size_t checksumSize = checksumCalculator->checksumByteSize();
194          const size_t totalSize = sizeWithoutChecksum + checksumSize;
195         buf = stream->alloc(totalSize);
196         ptr = buf;
197         int tmp = OP_glFogf;memcpy(ptr, &tmp, 4); ptr += 4;
198         memcpy(ptr, &totalSize, 4);  ptr += 4;
199
200                 memcpy(ptr, &pname, 4); ptr += 4;
201                 memcpy(ptr, &param, 4); ptr += 4;
202
203         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
204         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
205
206 }
207
208 void glFogfv_enc(void *self , GLenum pname, const GLfloat* params)
209 {
210
211         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
212         IOStream *stream = ctx->m_stream;
213         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
214         bool useChecksum = checksumCalculator->getVersion() > 0;
215
216         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
217          unsigned char *ptr;
218          unsigned char *buf;
219          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
220          const size_t checksumSize = checksumCalculator->checksumByteSize();
221          const size_t totalSize = sizeWithoutChecksum + checksumSize;
222         buf = stream->alloc(totalSize);
223         ptr = buf;
224         int tmp = OP_glFogfv;memcpy(ptr, &tmp, 4); ptr += 4;
225         memcpy(ptr, &totalSize, 4);  ptr += 4;
226
227                 memcpy(ptr, &pname, 4); ptr += 4;
228         *(unsigned int *)(ptr) = __size_params; ptr += 4;
229         memcpy(ptr, params, __size_params);ptr += __size_params;
230
231         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
232         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
233
234 }
235
236 void glFrustumf_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
237 {
238
239         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
240         IOStream *stream = ctx->m_stream;
241         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
242         bool useChecksum = checksumCalculator->getVersion() > 0;
243
244          unsigned char *ptr;
245          unsigned char *buf;
246          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
247          const size_t checksumSize = checksumCalculator->checksumByteSize();
248          const size_t totalSize = sizeWithoutChecksum + checksumSize;
249         buf = stream->alloc(totalSize);
250         ptr = buf;
251         int tmp = OP_glFrustumf;memcpy(ptr, &tmp, 4); ptr += 4;
252         memcpy(ptr, &totalSize, 4);  ptr += 4;
253
254                 memcpy(ptr, &left, 4); ptr += 4;
255                 memcpy(ptr, &right, 4); ptr += 4;
256                 memcpy(ptr, &bottom, 4); ptr += 4;
257                 memcpy(ptr, &top, 4); ptr += 4;
258                 memcpy(ptr, &zNear, 4); ptr += 4;
259                 memcpy(ptr, &zFar, 4); ptr += 4;
260
261         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
262         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
263
264 }
265
266 void glGetClipPlanef_enc(void *self , GLenum pname, GLfloat* eqn)
267 {
268
269         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
270         IOStream *stream = ctx->m_stream;
271         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
272         bool useChecksum = checksumCalculator->getVersion() > 0;
273
274         const unsigned int __size_eqn =  (4 * sizeof(GLfloat));
275          unsigned char *ptr;
276          unsigned char *buf;
277          const size_t sizeWithoutChecksum = 8 + 4 + __size_eqn + 1*4;
278          const size_t checksumSize = checksumCalculator->checksumByteSize();
279          const size_t totalSize = sizeWithoutChecksum + checksumSize;
280         buf = stream->alloc(totalSize);
281         ptr = buf;
282         int tmp = OP_glGetClipPlanef;memcpy(ptr, &tmp, 4); ptr += 4;
283         memcpy(ptr, &totalSize, 4);  ptr += 4;
284
285                 memcpy(ptr, &pname, 4); ptr += 4;
286         *(unsigned int *)(ptr) = __size_eqn; ptr += 4;
287
288         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
289         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
290
291         stream->readback(eqn, __size_eqn);
292         if (useChecksum) checksumCalculator->addBuffer(eqn, __size_eqn);
293         if (useChecksum) {
294                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
295                 stream->readback(checksumBuf.get(), checksumSize);
296                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
297                         ALOGE("glGetClipPlanef: GL communication error, please report this issue to b.android.com.\n");
298                         abort();
299                 }
300         }
301 }
302
303 void glGetFloatv_enc(void *self , GLenum pname, GLfloat* params)
304 {
305
306         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
307         IOStream *stream = ctx->m_stream;
308         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
309         bool useChecksum = checksumCalculator->getVersion() > 0;
310
311         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
312          unsigned char *ptr;
313          unsigned char *buf;
314          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
315          const size_t checksumSize = checksumCalculator->checksumByteSize();
316          const size_t totalSize = sizeWithoutChecksum + checksumSize;
317         buf = stream->alloc(totalSize);
318         ptr = buf;
319         int tmp = OP_glGetFloatv;memcpy(ptr, &tmp, 4); ptr += 4;
320         memcpy(ptr, &totalSize, 4);  ptr += 4;
321
322                 memcpy(ptr, &pname, 4); ptr += 4;
323         *(unsigned int *)(ptr) = __size_params; ptr += 4;
324
325         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
326         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
327
328         stream->readback(params, __size_params);
329         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
330         if (useChecksum) {
331                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
332                 stream->readback(checksumBuf.get(), checksumSize);
333                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
334                         ALOGE("glGetFloatv: GL communication error, please report this issue to b.android.com.\n");
335                         abort();
336                 }
337         }
338 }
339
340 void glGetLightfv_enc(void *self , GLenum light, GLenum pname, GLfloat* params)
341 {
342
343         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
344         IOStream *stream = ctx->m_stream;
345         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
346         bool useChecksum = checksumCalculator->getVersion() > 0;
347
348         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
349          unsigned char *ptr;
350          unsigned char *buf;
351          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
352          const size_t checksumSize = checksumCalculator->checksumByteSize();
353          const size_t totalSize = sizeWithoutChecksum + checksumSize;
354         buf = stream->alloc(totalSize);
355         ptr = buf;
356         int tmp = OP_glGetLightfv;memcpy(ptr, &tmp, 4); ptr += 4;
357         memcpy(ptr, &totalSize, 4);  ptr += 4;
358
359                 memcpy(ptr, &light, 4); ptr += 4;
360                 memcpy(ptr, &pname, 4); ptr += 4;
361         *(unsigned int *)(ptr) = __size_params; ptr += 4;
362
363         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
364         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
365
366         stream->readback(params, __size_params);
367         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
368         if (useChecksum) {
369                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
370                 stream->readback(checksumBuf.get(), checksumSize);
371                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
372                         ALOGE("glGetLightfv: GL communication error, please report this issue to b.android.com.\n");
373                         abort();
374                 }
375         }
376 }
377
378 void glGetMaterialfv_enc(void *self , GLenum face, GLenum pname, GLfloat* params)
379 {
380
381         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
382         IOStream *stream = ctx->m_stream;
383         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
384         bool useChecksum = checksumCalculator->getVersion() > 0;
385
386         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
387          unsigned char *ptr;
388          unsigned char *buf;
389          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
390          const size_t checksumSize = checksumCalculator->checksumByteSize();
391          const size_t totalSize = sizeWithoutChecksum + checksumSize;
392         buf = stream->alloc(totalSize);
393         ptr = buf;
394         int tmp = OP_glGetMaterialfv;memcpy(ptr, &tmp, 4); ptr += 4;
395         memcpy(ptr, &totalSize, 4);  ptr += 4;
396
397                 memcpy(ptr, &face, 4); ptr += 4;
398                 memcpy(ptr, &pname, 4); ptr += 4;
399         *(unsigned int *)(ptr) = __size_params; ptr += 4;
400
401         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
402         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
403
404         stream->readback(params, __size_params);
405         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
406         if (useChecksum) {
407                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
408                 stream->readback(checksumBuf.get(), checksumSize);
409                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
410                         ALOGE("glGetMaterialfv: GL communication error, please report this issue to b.android.com.\n");
411                         abort();
412                 }
413         }
414 }
415
416 void glGetTexEnvfv_enc(void *self , GLenum env, GLenum pname, GLfloat* params)
417 {
418
419         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
420         IOStream *stream = ctx->m_stream;
421         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
422         bool useChecksum = checksumCalculator->getVersion() > 0;
423
424         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
425          unsigned char *ptr;
426          unsigned char *buf;
427          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
428          const size_t checksumSize = checksumCalculator->checksumByteSize();
429          const size_t totalSize = sizeWithoutChecksum + checksumSize;
430         buf = stream->alloc(totalSize);
431         ptr = buf;
432         int tmp = OP_glGetTexEnvfv;memcpy(ptr, &tmp, 4); ptr += 4;
433         memcpy(ptr, &totalSize, 4);  ptr += 4;
434
435                 memcpy(ptr, &env, 4); ptr += 4;
436                 memcpy(ptr, &pname, 4); ptr += 4;
437         *(unsigned int *)(ptr) = __size_params; ptr += 4;
438
439         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
440         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
441
442         stream->readback(params, __size_params);
443         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
444         if (useChecksum) {
445                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
446                 stream->readback(checksumBuf.get(), checksumSize);
447                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
448                         ALOGE("glGetTexEnvfv: GL communication error, please report this issue to b.android.com.\n");
449                         abort();
450                 }
451         }
452 }
453
454 void glGetTexParameterfv_enc(void *self , GLenum target, GLenum pname, GLfloat* params)
455 {
456
457         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
458         IOStream *stream = ctx->m_stream;
459         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
460         bool useChecksum = checksumCalculator->getVersion() > 0;
461
462         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
463          unsigned char *ptr;
464          unsigned char *buf;
465          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
466          const size_t checksumSize = checksumCalculator->checksumByteSize();
467          const size_t totalSize = sizeWithoutChecksum + checksumSize;
468         buf = stream->alloc(totalSize);
469         ptr = buf;
470         int tmp = OP_glGetTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
471         memcpy(ptr, &totalSize, 4);  ptr += 4;
472
473                 memcpy(ptr, &target, 4); ptr += 4;
474                 memcpy(ptr, &pname, 4); ptr += 4;
475         *(unsigned int *)(ptr) = __size_params; ptr += 4;
476
477         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
478         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
479
480         stream->readback(params, __size_params);
481         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
482         if (useChecksum) {
483                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
484                 stream->readback(checksumBuf.get(), checksumSize);
485                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
486                         ALOGE("glGetTexParameterfv: GL communication error, please report this issue to b.android.com.\n");
487                         abort();
488                 }
489         }
490 }
491
492 void glLightModelf_enc(void *self , GLenum pname, GLfloat param)
493 {
494
495         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
496         IOStream *stream = ctx->m_stream;
497         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
498         bool useChecksum = checksumCalculator->getVersion() > 0;
499
500          unsigned char *ptr;
501          unsigned char *buf;
502          const size_t sizeWithoutChecksum = 8 + 4 + 4;
503          const size_t checksumSize = checksumCalculator->checksumByteSize();
504          const size_t totalSize = sizeWithoutChecksum + checksumSize;
505         buf = stream->alloc(totalSize);
506         ptr = buf;
507         int tmp = OP_glLightModelf;memcpy(ptr, &tmp, 4); ptr += 4;
508         memcpy(ptr, &totalSize, 4);  ptr += 4;
509
510                 memcpy(ptr, &pname, 4); ptr += 4;
511                 memcpy(ptr, &param, 4); ptr += 4;
512
513         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
514         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
515
516 }
517
518 void glLightModelfv_enc(void *self , GLenum pname, const GLfloat* params)
519 {
520
521         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
522         IOStream *stream = ctx->m_stream;
523         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
524         bool useChecksum = checksumCalculator->getVersion() > 0;
525
526         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
527          unsigned char *ptr;
528          unsigned char *buf;
529          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
530          const size_t checksumSize = checksumCalculator->checksumByteSize();
531          const size_t totalSize = sizeWithoutChecksum + checksumSize;
532         buf = stream->alloc(totalSize);
533         ptr = buf;
534         int tmp = OP_glLightModelfv;memcpy(ptr, &tmp, 4); ptr += 4;
535         memcpy(ptr, &totalSize, 4);  ptr += 4;
536
537                 memcpy(ptr, &pname, 4); ptr += 4;
538         *(unsigned int *)(ptr) = __size_params; ptr += 4;
539         memcpy(ptr, params, __size_params);ptr += __size_params;
540
541         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
542         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
543
544 }
545
546 void glLightf_enc(void *self , GLenum light, GLenum pname, GLfloat param)
547 {
548
549         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
550         IOStream *stream = ctx->m_stream;
551         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
552         bool useChecksum = checksumCalculator->getVersion() > 0;
553
554          unsigned char *ptr;
555          unsigned char *buf;
556          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
557          const size_t checksumSize = checksumCalculator->checksumByteSize();
558          const size_t totalSize = sizeWithoutChecksum + checksumSize;
559         buf = stream->alloc(totalSize);
560         ptr = buf;
561         int tmp = OP_glLightf;memcpy(ptr, &tmp, 4); ptr += 4;
562         memcpy(ptr, &totalSize, 4);  ptr += 4;
563
564                 memcpy(ptr, &light, 4); ptr += 4;
565                 memcpy(ptr, &pname, 4); ptr += 4;
566                 memcpy(ptr, &param, 4); ptr += 4;
567
568         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
569         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
570
571 }
572
573 void glLightfv_enc(void *self , GLenum light, GLenum pname, const GLfloat* params)
574 {
575
576         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
577         IOStream *stream = ctx->m_stream;
578         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
579         bool useChecksum = checksumCalculator->getVersion() > 0;
580
581         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
582          unsigned char *ptr;
583          unsigned char *buf;
584          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
585          const size_t checksumSize = checksumCalculator->checksumByteSize();
586          const size_t totalSize = sizeWithoutChecksum + checksumSize;
587         buf = stream->alloc(totalSize);
588         ptr = buf;
589         int tmp = OP_glLightfv;memcpy(ptr, &tmp, 4); ptr += 4;
590         memcpy(ptr, &totalSize, 4);  ptr += 4;
591
592                 memcpy(ptr, &light, 4); ptr += 4;
593                 memcpy(ptr, &pname, 4); ptr += 4;
594         *(unsigned int *)(ptr) = __size_params; ptr += 4;
595         memcpy(ptr, params, __size_params);ptr += __size_params;
596
597         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
598         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
599
600 }
601
602 void glLineWidth_enc(void *self , GLfloat width)
603 {
604
605         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
606         IOStream *stream = ctx->m_stream;
607         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
608         bool useChecksum = checksumCalculator->getVersion() > 0;
609
610          unsigned char *ptr;
611          unsigned char *buf;
612          const size_t sizeWithoutChecksum = 8 + 4;
613          const size_t checksumSize = checksumCalculator->checksumByteSize();
614          const size_t totalSize = sizeWithoutChecksum + checksumSize;
615         buf = stream->alloc(totalSize);
616         ptr = buf;
617         int tmp = OP_glLineWidth;memcpy(ptr, &tmp, 4); ptr += 4;
618         memcpy(ptr, &totalSize, 4);  ptr += 4;
619
620                 memcpy(ptr, &width, 4); ptr += 4;
621
622         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
623         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
624
625 }
626
627 void glLoadMatrixf_enc(void *self , const GLfloat* m)
628 {
629
630         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
631         IOStream *stream = ctx->m_stream;
632         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
633         bool useChecksum = checksumCalculator->getVersion() > 0;
634
635         const unsigned int __size_m =  (16 * sizeof(GLfloat));
636          unsigned char *ptr;
637          unsigned char *buf;
638          const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
639          const size_t checksumSize = checksumCalculator->checksumByteSize();
640          const size_t totalSize = sizeWithoutChecksum + checksumSize;
641         buf = stream->alloc(totalSize);
642         ptr = buf;
643         int tmp = OP_glLoadMatrixf;memcpy(ptr, &tmp, 4); ptr += 4;
644         memcpy(ptr, &totalSize, 4);  ptr += 4;
645
646         *(unsigned int *)(ptr) = __size_m; ptr += 4;
647         memcpy(ptr, m, __size_m);ptr += __size_m;
648
649         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
650         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
651
652 }
653
654 void glMaterialf_enc(void *self , GLenum face, GLenum pname, GLfloat param)
655 {
656
657         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
658         IOStream *stream = ctx->m_stream;
659         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
660         bool useChecksum = checksumCalculator->getVersion() > 0;
661
662          unsigned char *ptr;
663          unsigned char *buf;
664          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
665          const size_t checksumSize = checksumCalculator->checksumByteSize();
666          const size_t totalSize = sizeWithoutChecksum + checksumSize;
667         buf = stream->alloc(totalSize);
668         ptr = buf;
669         int tmp = OP_glMaterialf;memcpy(ptr, &tmp, 4); ptr += 4;
670         memcpy(ptr, &totalSize, 4);  ptr += 4;
671
672                 memcpy(ptr, &face, 4); ptr += 4;
673                 memcpy(ptr, &pname, 4); ptr += 4;
674                 memcpy(ptr, &param, 4); ptr += 4;
675
676         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
677         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
678
679 }
680
681 void glMaterialfv_enc(void *self , GLenum face, GLenum pname, const GLfloat* params)
682 {
683
684         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
685         IOStream *stream = ctx->m_stream;
686         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
687         bool useChecksum = checksumCalculator->getVersion() > 0;
688
689         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
690          unsigned char *ptr;
691          unsigned char *buf;
692          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
693          const size_t checksumSize = checksumCalculator->checksumByteSize();
694          const size_t totalSize = sizeWithoutChecksum + checksumSize;
695         buf = stream->alloc(totalSize);
696         ptr = buf;
697         int tmp = OP_glMaterialfv;memcpy(ptr, &tmp, 4); ptr += 4;
698         memcpy(ptr, &totalSize, 4);  ptr += 4;
699
700                 memcpy(ptr, &face, 4); ptr += 4;
701                 memcpy(ptr, &pname, 4); ptr += 4;
702         *(unsigned int *)(ptr) = __size_params; ptr += 4;
703         memcpy(ptr, params, __size_params);ptr += __size_params;
704
705         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
706         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
707
708 }
709
710 void glMultMatrixf_enc(void *self , const GLfloat* m)
711 {
712
713         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
714         IOStream *stream = ctx->m_stream;
715         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
716         bool useChecksum = checksumCalculator->getVersion() > 0;
717
718         const unsigned int __size_m =  (16 * sizeof(GLfloat));
719          unsigned char *ptr;
720          unsigned char *buf;
721          const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
722          const size_t checksumSize = checksumCalculator->checksumByteSize();
723          const size_t totalSize = sizeWithoutChecksum + checksumSize;
724         buf = stream->alloc(totalSize);
725         ptr = buf;
726         int tmp = OP_glMultMatrixf;memcpy(ptr, &tmp, 4); ptr += 4;
727         memcpy(ptr, &totalSize, 4);  ptr += 4;
728
729         *(unsigned int *)(ptr) = __size_m; ptr += 4;
730         memcpy(ptr, m, __size_m);ptr += __size_m;
731
732         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
733         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
734
735 }
736
737 void glMultiTexCoord4f_enc(void *self , GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
738 {
739
740         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
741         IOStream *stream = ctx->m_stream;
742         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
743         bool useChecksum = checksumCalculator->getVersion() > 0;
744
745          unsigned char *ptr;
746          unsigned char *buf;
747          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
748          const size_t checksumSize = checksumCalculator->checksumByteSize();
749          const size_t totalSize = sizeWithoutChecksum + checksumSize;
750         buf = stream->alloc(totalSize);
751         ptr = buf;
752         int tmp = OP_glMultiTexCoord4f;memcpy(ptr, &tmp, 4); ptr += 4;
753         memcpy(ptr, &totalSize, 4);  ptr += 4;
754
755                 memcpy(ptr, &target, 4); ptr += 4;
756                 memcpy(ptr, &s, 4); ptr += 4;
757                 memcpy(ptr, &t, 4); ptr += 4;
758                 memcpy(ptr, &r, 4); ptr += 4;
759                 memcpy(ptr, &q, 4); ptr += 4;
760
761         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
762         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
763
764 }
765
766 void glNormal3f_enc(void *self , GLfloat nx, GLfloat ny, GLfloat nz)
767 {
768
769         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
770         IOStream *stream = ctx->m_stream;
771         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
772         bool useChecksum = checksumCalculator->getVersion() > 0;
773
774          unsigned char *ptr;
775          unsigned char *buf;
776          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
777          const size_t checksumSize = checksumCalculator->checksumByteSize();
778          const size_t totalSize = sizeWithoutChecksum + checksumSize;
779         buf = stream->alloc(totalSize);
780         ptr = buf;
781         int tmp = OP_glNormal3f;memcpy(ptr, &tmp, 4); ptr += 4;
782         memcpy(ptr, &totalSize, 4);  ptr += 4;
783
784                 memcpy(ptr, &nx, 4); ptr += 4;
785                 memcpy(ptr, &ny, 4); ptr += 4;
786                 memcpy(ptr, &nz, 4); ptr += 4;
787
788         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
789         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
790
791 }
792
793 void glOrthof_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
794 {
795
796         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
797         IOStream *stream = ctx->m_stream;
798         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
799         bool useChecksum = checksumCalculator->getVersion() > 0;
800
801          unsigned char *ptr;
802          unsigned char *buf;
803          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
804          const size_t checksumSize = checksumCalculator->checksumByteSize();
805          const size_t totalSize = sizeWithoutChecksum + checksumSize;
806         buf = stream->alloc(totalSize);
807         ptr = buf;
808         int tmp = OP_glOrthof;memcpy(ptr, &tmp, 4); ptr += 4;
809         memcpy(ptr, &totalSize, 4);  ptr += 4;
810
811                 memcpy(ptr, &left, 4); ptr += 4;
812                 memcpy(ptr, &right, 4); ptr += 4;
813                 memcpy(ptr, &bottom, 4); ptr += 4;
814                 memcpy(ptr, &top, 4); ptr += 4;
815                 memcpy(ptr, &zNear, 4); ptr += 4;
816                 memcpy(ptr, &zFar, 4); ptr += 4;
817
818         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
819         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
820
821 }
822
823 void glPointParameterf_enc(void *self , GLenum pname, GLfloat param)
824 {
825
826         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
827         IOStream *stream = ctx->m_stream;
828         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
829         bool useChecksum = checksumCalculator->getVersion() > 0;
830
831          unsigned char *ptr;
832          unsigned char *buf;
833          const size_t sizeWithoutChecksum = 8 + 4 + 4;
834          const size_t checksumSize = checksumCalculator->checksumByteSize();
835          const size_t totalSize = sizeWithoutChecksum + checksumSize;
836         buf = stream->alloc(totalSize);
837         ptr = buf;
838         int tmp = OP_glPointParameterf;memcpy(ptr, &tmp, 4); ptr += 4;
839         memcpy(ptr, &totalSize, 4);  ptr += 4;
840
841                 memcpy(ptr, &pname, 4); ptr += 4;
842                 memcpy(ptr, &param, 4); ptr += 4;
843
844         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
845         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
846
847 }
848
849 void glPointParameterfv_enc(void *self , GLenum pname, const GLfloat* params)
850 {
851
852         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
853         IOStream *stream = ctx->m_stream;
854         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
855         bool useChecksum = checksumCalculator->getVersion() > 0;
856
857         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
858          unsigned char *ptr;
859          unsigned char *buf;
860          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
861          const size_t checksumSize = checksumCalculator->checksumByteSize();
862          const size_t totalSize = sizeWithoutChecksum + checksumSize;
863         buf = stream->alloc(totalSize);
864         ptr = buf;
865         int tmp = OP_glPointParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
866         memcpy(ptr, &totalSize, 4);  ptr += 4;
867
868                 memcpy(ptr, &pname, 4); ptr += 4;
869         *(unsigned int *)(ptr) = __size_params; ptr += 4;
870         memcpy(ptr, params, __size_params);ptr += __size_params;
871
872         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
873         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
874
875 }
876
877 void glPointSize_enc(void *self , GLfloat size)
878 {
879
880         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
881         IOStream *stream = ctx->m_stream;
882         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
883         bool useChecksum = checksumCalculator->getVersion() > 0;
884
885          unsigned char *ptr;
886          unsigned char *buf;
887          const size_t sizeWithoutChecksum = 8 + 4;
888          const size_t checksumSize = checksumCalculator->checksumByteSize();
889          const size_t totalSize = sizeWithoutChecksum + checksumSize;
890         buf = stream->alloc(totalSize);
891         ptr = buf;
892         int tmp = OP_glPointSize;memcpy(ptr, &tmp, 4); ptr += 4;
893         memcpy(ptr, &totalSize, 4);  ptr += 4;
894
895                 memcpy(ptr, &size, 4); ptr += 4;
896
897         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
898         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
899
900 }
901
902 void glPolygonOffset_enc(void *self , GLfloat factor, GLfloat units)
903 {
904
905         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
906         IOStream *stream = ctx->m_stream;
907         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
908         bool useChecksum = checksumCalculator->getVersion() > 0;
909
910          unsigned char *ptr;
911          unsigned char *buf;
912          const size_t sizeWithoutChecksum = 8 + 4 + 4;
913          const size_t checksumSize = checksumCalculator->checksumByteSize();
914          const size_t totalSize = sizeWithoutChecksum + checksumSize;
915         buf = stream->alloc(totalSize);
916         ptr = buf;
917         int tmp = OP_glPolygonOffset;memcpy(ptr, &tmp, 4); ptr += 4;
918         memcpy(ptr, &totalSize, 4);  ptr += 4;
919
920                 memcpy(ptr, &factor, 4); ptr += 4;
921                 memcpy(ptr, &units, 4); ptr += 4;
922
923         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
924         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
925
926 }
927
928 void glRotatef_enc(void *self , GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
929 {
930
931         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
932         IOStream *stream = ctx->m_stream;
933         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
934         bool useChecksum = checksumCalculator->getVersion() > 0;
935
936          unsigned char *ptr;
937          unsigned char *buf;
938          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
939          const size_t checksumSize = checksumCalculator->checksumByteSize();
940          const size_t totalSize = sizeWithoutChecksum + checksumSize;
941         buf = stream->alloc(totalSize);
942         ptr = buf;
943         int tmp = OP_glRotatef;memcpy(ptr, &tmp, 4); ptr += 4;
944         memcpy(ptr, &totalSize, 4);  ptr += 4;
945
946                 memcpy(ptr, &angle, 4); ptr += 4;
947                 memcpy(ptr, &x, 4); ptr += 4;
948                 memcpy(ptr, &y, 4); ptr += 4;
949                 memcpy(ptr, &z, 4); ptr += 4;
950
951         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
952         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
953
954 }
955
956 void glScalef_enc(void *self , GLfloat x, GLfloat y, GLfloat z)
957 {
958
959         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
960         IOStream *stream = ctx->m_stream;
961         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
962         bool useChecksum = checksumCalculator->getVersion() > 0;
963
964          unsigned char *ptr;
965          unsigned char *buf;
966          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
967          const size_t checksumSize = checksumCalculator->checksumByteSize();
968          const size_t totalSize = sizeWithoutChecksum + checksumSize;
969         buf = stream->alloc(totalSize);
970         ptr = buf;
971         int tmp = OP_glScalef;memcpy(ptr, &tmp, 4); ptr += 4;
972         memcpy(ptr, &totalSize, 4);  ptr += 4;
973
974                 memcpy(ptr, &x, 4); ptr += 4;
975                 memcpy(ptr, &y, 4); ptr += 4;
976                 memcpy(ptr, &z, 4); ptr += 4;
977
978         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
979         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
980
981 }
982
983 void glTexEnvf_enc(void *self , GLenum target, GLenum pname, GLfloat param)
984 {
985
986         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
987         IOStream *stream = ctx->m_stream;
988         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
989         bool useChecksum = checksumCalculator->getVersion() > 0;
990
991          unsigned char *ptr;
992          unsigned char *buf;
993          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
994          const size_t checksumSize = checksumCalculator->checksumByteSize();
995          const size_t totalSize = sizeWithoutChecksum + checksumSize;
996         buf = stream->alloc(totalSize);
997         ptr = buf;
998         int tmp = OP_glTexEnvf;memcpy(ptr, &tmp, 4); ptr += 4;
999         memcpy(ptr, &totalSize, 4);  ptr += 4;
1000
1001                 memcpy(ptr, &target, 4); ptr += 4;
1002                 memcpy(ptr, &pname, 4); ptr += 4;
1003                 memcpy(ptr, &param, 4); ptr += 4;
1004
1005         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1006         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1007
1008 }
1009
1010 void glTexEnvfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params)
1011 {
1012
1013         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1014         IOStream *stream = ctx->m_stream;
1015         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1016         bool useChecksum = checksumCalculator->getVersion() > 0;
1017
1018         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
1019          unsigned char *ptr;
1020          unsigned char *buf;
1021          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
1022          const size_t checksumSize = checksumCalculator->checksumByteSize();
1023          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1024         buf = stream->alloc(totalSize);
1025         ptr = buf;
1026         int tmp = OP_glTexEnvfv;memcpy(ptr, &tmp, 4); ptr += 4;
1027         memcpy(ptr, &totalSize, 4);  ptr += 4;
1028
1029                 memcpy(ptr, &target, 4); ptr += 4;
1030                 memcpy(ptr, &pname, 4); ptr += 4;
1031         *(unsigned int *)(ptr) = __size_params; ptr += 4;
1032         memcpy(ptr, params, __size_params);ptr += __size_params;
1033
1034         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1035         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1036
1037 }
1038
1039 void glTexParameterf_enc(void *self , GLenum target, GLenum pname, GLfloat param)
1040 {
1041
1042         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1043         IOStream *stream = ctx->m_stream;
1044         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1045         bool useChecksum = checksumCalculator->getVersion() > 0;
1046
1047          unsigned char *ptr;
1048          unsigned char *buf;
1049          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
1050          const size_t checksumSize = checksumCalculator->checksumByteSize();
1051          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1052         buf = stream->alloc(totalSize);
1053         ptr = buf;
1054         int tmp = OP_glTexParameterf;memcpy(ptr, &tmp, 4); ptr += 4;
1055         memcpy(ptr, &totalSize, 4);  ptr += 4;
1056
1057                 memcpy(ptr, &target, 4); ptr += 4;
1058                 memcpy(ptr, &pname, 4); ptr += 4;
1059                 memcpy(ptr, &param, 4); ptr += 4;
1060
1061         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1062         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1063
1064 }
1065
1066 void glTexParameterfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params)
1067 {
1068
1069         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1070         IOStream *stream = ctx->m_stream;
1071         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1072         bool useChecksum = checksumCalculator->getVersion() > 0;
1073
1074         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
1075          unsigned char *ptr;
1076          unsigned char *buf;
1077          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
1078          const size_t checksumSize = checksumCalculator->checksumByteSize();
1079          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1080         buf = stream->alloc(totalSize);
1081         ptr = buf;
1082         int tmp = OP_glTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
1083         memcpy(ptr, &totalSize, 4);  ptr += 4;
1084
1085                 memcpy(ptr, &target, 4); ptr += 4;
1086                 memcpy(ptr, &pname, 4); ptr += 4;
1087         *(unsigned int *)(ptr) = __size_params; ptr += 4;
1088         memcpy(ptr, params, __size_params);ptr += __size_params;
1089
1090         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1091         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1092
1093 }
1094
1095 void glTranslatef_enc(void *self , GLfloat x, GLfloat y, GLfloat z)
1096 {
1097
1098         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1099         IOStream *stream = ctx->m_stream;
1100         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1101         bool useChecksum = checksumCalculator->getVersion() > 0;
1102
1103          unsigned char *ptr;
1104          unsigned char *buf;
1105          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
1106          const size_t checksumSize = checksumCalculator->checksumByteSize();
1107          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1108         buf = stream->alloc(totalSize);
1109         ptr = buf;
1110         int tmp = OP_glTranslatef;memcpy(ptr, &tmp, 4); ptr += 4;
1111         memcpy(ptr, &totalSize, 4);  ptr += 4;
1112
1113                 memcpy(ptr, &x, 4); ptr += 4;
1114                 memcpy(ptr, &y, 4); ptr += 4;
1115                 memcpy(ptr, &z, 4); ptr += 4;
1116
1117         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1118         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1119
1120 }
1121
1122 void glActiveTexture_enc(void *self , GLenum texture)
1123 {
1124
1125         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1126         IOStream *stream = ctx->m_stream;
1127         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1128         bool useChecksum = checksumCalculator->getVersion() > 0;
1129
1130          unsigned char *ptr;
1131          unsigned char *buf;
1132          const size_t sizeWithoutChecksum = 8 + 4;
1133          const size_t checksumSize = checksumCalculator->checksumByteSize();
1134          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1135         buf = stream->alloc(totalSize);
1136         ptr = buf;
1137         int tmp = OP_glActiveTexture;memcpy(ptr, &tmp, 4); ptr += 4;
1138         memcpy(ptr, &totalSize, 4);  ptr += 4;
1139
1140                 memcpy(ptr, &texture, 4); ptr += 4;
1141
1142         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1143         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1144
1145 }
1146
1147 void glAlphaFuncx_enc(void *self , GLenum func, GLclampx ref)
1148 {
1149
1150         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1151         IOStream *stream = ctx->m_stream;
1152         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1153         bool useChecksum = checksumCalculator->getVersion() > 0;
1154
1155          unsigned char *ptr;
1156          unsigned char *buf;
1157          const size_t sizeWithoutChecksum = 8 + 4 + 4;
1158          const size_t checksumSize = checksumCalculator->checksumByteSize();
1159          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1160         buf = stream->alloc(totalSize);
1161         ptr = buf;
1162         int tmp = OP_glAlphaFuncx;memcpy(ptr, &tmp, 4); ptr += 4;
1163         memcpy(ptr, &totalSize, 4);  ptr += 4;
1164
1165                 memcpy(ptr, &func, 4); ptr += 4;
1166                 memcpy(ptr, &ref, 4); ptr += 4;
1167
1168         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1169         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1170
1171 }
1172
1173 void glBindBuffer_enc(void *self , GLenum target, GLuint buffer)
1174 {
1175
1176         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1177         IOStream *stream = ctx->m_stream;
1178         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1179         bool useChecksum = checksumCalculator->getVersion() > 0;
1180
1181          unsigned char *ptr;
1182          unsigned char *buf;
1183          const size_t sizeWithoutChecksum = 8 + 4 + 4;
1184          const size_t checksumSize = checksumCalculator->checksumByteSize();
1185          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1186         buf = stream->alloc(totalSize);
1187         ptr = buf;
1188         int tmp = OP_glBindBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
1189         memcpy(ptr, &totalSize, 4);  ptr += 4;
1190
1191                 memcpy(ptr, &target, 4); ptr += 4;
1192                 memcpy(ptr, &buffer, 4); ptr += 4;
1193
1194         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1195         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1196
1197 }
1198
1199 void glBindTexture_enc(void *self , GLenum target, GLuint texture)
1200 {
1201
1202         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1203         IOStream *stream = ctx->m_stream;
1204         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1205         bool useChecksum = checksumCalculator->getVersion() > 0;
1206
1207          unsigned char *ptr;
1208          unsigned char *buf;
1209          const size_t sizeWithoutChecksum = 8 + 4 + 4;
1210          const size_t checksumSize = checksumCalculator->checksumByteSize();
1211          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1212         buf = stream->alloc(totalSize);
1213         ptr = buf;
1214         int tmp = OP_glBindTexture;memcpy(ptr, &tmp, 4); ptr += 4;
1215         memcpy(ptr, &totalSize, 4);  ptr += 4;
1216
1217                 memcpy(ptr, &target, 4); ptr += 4;
1218                 memcpy(ptr, &texture, 4); ptr += 4;
1219
1220         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1221         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1222
1223 }
1224
1225 void glBlendFunc_enc(void *self , GLenum sfactor, GLenum dfactor)
1226 {
1227
1228         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1229         IOStream *stream = ctx->m_stream;
1230         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1231         bool useChecksum = checksumCalculator->getVersion() > 0;
1232
1233          unsigned char *ptr;
1234          unsigned char *buf;
1235          const size_t sizeWithoutChecksum = 8 + 4 + 4;
1236          const size_t checksumSize = checksumCalculator->checksumByteSize();
1237          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1238         buf = stream->alloc(totalSize);
1239         ptr = buf;
1240         int tmp = OP_glBlendFunc;memcpy(ptr, &tmp, 4); ptr += 4;
1241         memcpy(ptr, &totalSize, 4);  ptr += 4;
1242
1243                 memcpy(ptr, &sfactor, 4); ptr += 4;
1244                 memcpy(ptr, &dfactor, 4); ptr += 4;
1245
1246         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1247         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1248
1249 }
1250
1251 void glBufferData_enc(void *self , GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
1252 {
1253
1254         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1255         IOStream *stream = ctx->m_stream;
1256         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1257         bool useChecksum = checksumCalculator->getVersion() > 0;
1258
1259         const unsigned int __size_data = ((data != NULL) ?  size : 0);
1260          unsigned char *ptr;
1261          unsigned char *buf;
1262          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_data + 4 + 1*4;
1263          const size_t checksumSize = checksumCalculator->checksumByteSize();
1264          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1265         buf = stream->alloc(totalSize);
1266         ptr = buf;
1267         int tmp = OP_glBufferData;memcpy(ptr, &tmp, 4); ptr += 4;
1268         memcpy(ptr, &totalSize, 4);  ptr += 4;
1269
1270                 memcpy(ptr, &target, 4); ptr += 4;
1271                 memcpy(ptr, &size, 4); ptr += 4;
1272         *(unsigned int *)(ptr) = __size_data; ptr += 4;
1273         if (data != NULL) memcpy(ptr, data, __size_data);ptr += __size_data;
1274                 memcpy(ptr, &usage, 4); ptr += 4;
1275
1276         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1277         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1278
1279 }
1280
1281 void glBufferSubData_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
1282 {
1283
1284         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1285         IOStream *stream = ctx->m_stream;
1286         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1287         bool useChecksum = checksumCalculator->getVersion() > 0;
1288
1289         const unsigned int __size_data = ((data != NULL) ?  size : 0);
1290          unsigned char *ptr;
1291          unsigned char *buf;
1292          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 1*4;
1293          const size_t checksumSize = checksumCalculator->checksumByteSize();
1294          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1295         buf = stream->alloc(totalSize);
1296         ptr = buf;
1297         int tmp = OP_glBufferSubData;memcpy(ptr, &tmp, 4); ptr += 4;
1298         memcpy(ptr, &totalSize, 4);  ptr += 4;
1299
1300                 memcpy(ptr, &target, 4); ptr += 4;
1301                 memcpy(ptr, &offset, 4); ptr += 4;
1302                 memcpy(ptr, &size, 4); ptr += 4;
1303         *(unsigned int *)(ptr) = __size_data; ptr += 4;
1304         if (data != NULL) memcpy(ptr, data, __size_data);ptr += __size_data;
1305
1306         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1307         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1308
1309 }
1310
1311 void glClear_enc(void *self , GLbitfield mask)
1312 {
1313
1314         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1315         IOStream *stream = ctx->m_stream;
1316         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1317         bool useChecksum = checksumCalculator->getVersion() > 0;
1318
1319          unsigned char *ptr;
1320          unsigned char *buf;
1321          const size_t sizeWithoutChecksum = 8 + 4;
1322          const size_t checksumSize = checksumCalculator->checksumByteSize();
1323          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1324         buf = stream->alloc(totalSize);
1325         ptr = buf;
1326         int tmp = OP_glClear;memcpy(ptr, &tmp, 4); ptr += 4;
1327         memcpy(ptr, &totalSize, 4);  ptr += 4;
1328
1329                 memcpy(ptr, &mask, 4); ptr += 4;
1330
1331         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1332         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1333
1334 }
1335
1336 void glClearColorx_enc(void *self , GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
1337 {
1338
1339         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1340         IOStream *stream = ctx->m_stream;
1341         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1342         bool useChecksum = checksumCalculator->getVersion() > 0;
1343
1344          unsigned char *ptr;
1345          unsigned char *buf;
1346          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
1347          const size_t checksumSize = checksumCalculator->checksumByteSize();
1348          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1349         buf = stream->alloc(totalSize);
1350         ptr = buf;
1351         int tmp = OP_glClearColorx;memcpy(ptr, &tmp, 4); ptr += 4;
1352         memcpy(ptr, &totalSize, 4);  ptr += 4;
1353
1354                 memcpy(ptr, &red, 4); ptr += 4;
1355                 memcpy(ptr, &green, 4); ptr += 4;
1356                 memcpy(ptr, &blue, 4); ptr += 4;
1357                 memcpy(ptr, &alpha, 4); ptr += 4;
1358
1359         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1360         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1361
1362 }
1363
1364 void glClearDepthx_enc(void *self , GLclampx depth)
1365 {
1366
1367         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1368         IOStream *stream = ctx->m_stream;
1369         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1370         bool useChecksum = checksumCalculator->getVersion() > 0;
1371
1372          unsigned char *ptr;
1373          unsigned char *buf;
1374          const size_t sizeWithoutChecksum = 8 + 4;
1375          const size_t checksumSize = checksumCalculator->checksumByteSize();
1376          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1377         buf = stream->alloc(totalSize);
1378         ptr = buf;
1379         int tmp = OP_glClearDepthx;memcpy(ptr, &tmp, 4); ptr += 4;
1380         memcpy(ptr, &totalSize, 4);  ptr += 4;
1381
1382                 memcpy(ptr, &depth, 4); ptr += 4;
1383
1384         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1385         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1386
1387 }
1388
1389 void glClearStencil_enc(void *self , GLint s)
1390 {
1391
1392         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1393         IOStream *stream = ctx->m_stream;
1394         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1395         bool useChecksum = checksumCalculator->getVersion() > 0;
1396
1397          unsigned char *ptr;
1398          unsigned char *buf;
1399          const size_t sizeWithoutChecksum = 8 + 4;
1400          const size_t checksumSize = checksumCalculator->checksumByteSize();
1401          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1402         buf = stream->alloc(totalSize);
1403         ptr = buf;
1404         int tmp = OP_glClearStencil;memcpy(ptr, &tmp, 4); ptr += 4;
1405         memcpy(ptr, &totalSize, 4);  ptr += 4;
1406
1407                 memcpy(ptr, &s, 4); ptr += 4;
1408
1409         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1410         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1411
1412 }
1413
1414 void glClientActiveTexture_enc(void *self , GLenum texture)
1415 {
1416
1417         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1418         IOStream *stream = ctx->m_stream;
1419         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1420         bool useChecksum = checksumCalculator->getVersion() > 0;
1421
1422          unsigned char *ptr;
1423          unsigned char *buf;
1424          const size_t sizeWithoutChecksum = 8 + 4;
1425          const size_t checksumSize = checksumCalculator->checksumByteSize();
1426          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1427         buf = stream->alloc(totalSize);
1428         ptr = buf;
1429         int tmp = OP_glClientActiveTexture;memcpy(ptr, &tmp, 4); ptr += 4;
1430         memcpy(ptr, &totalSize, 4);  ptr += 4;
1431
1432                 memcpy(ptr, &texture, 4); ptr += 4;
1433
1434         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1435         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1436
1437 }
1438
1439 void glColor4ub_enc(void *self , GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
1440 {
1441
1442         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1443         IOStream *stream = ctx->m_stream;
1444         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1445         bool useChecksum = checksumCalculator->getVersion() > 0;
1446
1447          unsigned char *ptr;
1448          unsigned char *buf;
1449          const size_t sizeWithoutChecksum = 8 + 1 + 1 + 1 + 1;
1450          const size_t checksumSize = checksumCalculator->checksumByteSize();
1451          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1452         buf = stream->alloc(totalSize);
1453         ptr = buf;
1454         int tmp = OP_glColor4ub;memcpy(ptr, &tmp, 4); ptr += 4;
1455         memcpy(ptr, &totalSize, 4);  ptr += 4;
1456
1457                 memcpy(ptr, &red, 1); ptr += 1;
1458                 memcpy(ptr, &green, 1); ptr += 1;
1459                 memcpy(ptr, &blue, 1); ptr += 1;
1460                 memcpy(ptr, &alpha, 1); ptr += 1;
1461
1462         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1463         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1464
1465 }
1466
1467 void glColor4x_enc(void *self , GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
1468 {
1469
1470         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1471         IOStream *stream = ctx->m_stream;
1472         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1473         bool useChecksum = checksumCalculator->getVersion() > 0;
1474
1475          unsigned char *ptr;
1476          unsigned char *buf;
1477          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
1478          const size_t checksumSize = checksumCalculator->checksumByteSize();
1479          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1480         buf = stream->alloc(totalSize);
1481         ptr = buf;
1482         int tmp = OP_glColor4x;memcpy(ptr, &tmp, 4); ptr += 4;
1483         memcpy(ptr, &totalSize, 4);  ptr += 4;
1484
1485                 memcpy(ptr, &red, 4); ptr += 4;
1486                 memcpy(ptr, &green, 4); ptr += 4;
1487                 memcpy(ptr, &blue, 4); ptr += 4;
1488                 memcpy(ptr, &alpha, 4); ptr += 4;
1489
1490         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1491         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1492
1493 }
1494
1495 void glColorMask_enc(void *self , GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
1496 {
1497
1498         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1499         IOStream *stream = ctx->m_stream;
1500         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1501         bool useChecksum = checksumCalculator->getVersion() > 0;
1502
1503          unsigned char *ptr;
1504          unsigned char *buf;
1505          const size_t sizeWithoutChecksum = 8 + 1 + 1 + 1 + 1;
1506          const size_t checksumSize = checksumCalculator->checksumByteSize();
1507          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1508         buf = stream->alloc(totalSize);
1509         ptr = buf;
1510         int tmp = OP_glColorMask;memcpy(ptr, &tmp, 4); ptr += 4;
1511         memcpy(ptr, &totalSize, 4);  ptr += 4;
1512
1513                 memcpy(ptr, &red, 1); ptr += 1;
1514                 memcpy(ptr, &green, 1); ptr += 1;
1515                 memcpy(ptr, &blue, 1); ptr += 1;
1516                 memcpy(ptr, &alpha, 1); ptr += 1;
1517
1518         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1519         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1520
1521 }
1522
1523 void glCompressedTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
1524 {
1525
1526         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1527         IOStream *stream = ctx->m_stream;
1528         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1529         bool useChecksum = checksumCalculator->getVersion() > 0;
1530
1531         const unsigned int __size_data = ((data != NULL) ?  imageSize : 0);
1532          unsigned char *ptr;
1533          unsigned char *buf;
1534          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
1535          const size_t checksumSize = checksumCalculator->checksumByteSize();
1536          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1537         buf = stream->alloc(totalSize);
1538         ptr = buf;
1539         int tmp = OP_glCompressedTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
1540         memcpy(ptr, &totalSize, 4);  ptr += 4;
1541
1542                 memcpy(ptr, &target, 4); ptr += 4;
1543                 memcpy(ptr, &level, 4); ptr += 4;
1544                 memcpy(ptr, &internalformat, 4); ptr += 4;
1545                 memcpy(ptr, &width, 4); ptr += 4;
1546                 memcpy(ptr, &height, 4); ptr += 4;
1547                 memcpy(ptr, &border, 4); ptr += 4;
1548                 memcpy(ptr, &imageSize, 4); ptr += 4;
1549         *(unsigned int *)(ptr) = __size_data; ptr += 4;
1550         if (data != NULL) memcpy(ptr, data, __size_data);ptr += __size_data;
1551
1552         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1553         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1554
1555 }
1556
1557 void glCompressedTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
1558 {
1559
1560         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1561         IOStream *stream = ctx->m_stream;
1562         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1563         bool useChecksum = checksumCalculator->getVersion() > 0;
1564
1565         const unsigned int __size_data = ((data != NULL) ?  imageSize : 0);
1566          unsigned char *ptr;
1567          unsigned char *buf;
1568          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
1569          const size_t checksumSize = checksumCalculator->checksumByteSize();
1570          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1571         buf = stream->alloc(totalSize);
1572         ptr = buf;
1573         int tmp = OP_glCompressedTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
1574         memcpy(ptr, &totalSize, 4);  ptr += 4;
1575
1576                 memcpy(ptr, &target, 4); ptr += 4;
1577                 memcpy(ptr, &level, 4); ptr += 4;
1578                 memcpy(ptr, &xoffset, 4); ptr += 4;
1579                 memcpy(ptr, &yoffset, 4); ptr += 4;
1580                 memcpy(ptr, &width, 4); ptr += 4;
1581                 memcpy(ptr, &height, 4); ptr += 4;
1582                 memcpy(ptr, &format, 4); ptr += 4;
1583                 memcpy(ptr, &imageSize, 4); ptr += 4;
1584         *(unsigned int *)(ptr) = __size_data; ptr += 4;
1585         if (data != NULL) memcpy(ptr, data, __size_data);ptr += __size_data;
1586
1587         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1588         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1589
1590 }
1591
1592 void glCopyTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
1593 {
1594
1595         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1596         IOStream *stream = ctx->m_stream;
1597         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1598         bool useChecksum = checksumCalculator->getVersion() > 0;
1599
1600          unsigned char *ptr;
1601          unsigned char *buf;
1602          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
1603          const size_t checksumSize = checksumCalculator->checksumByteSize();
1604          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1605         buf = stream->alloc(totalSize);
1606         ptr = buf;
1607         int tmp = OP_glCopyTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
1608         memcpy(ptr, &totalSize, 4);  ptr += 4;
1609
1610                 memcpy(ptr, &target, 4); ptr += 4;
1611                 memcpy(ptr, &level, 4); ptr += 4;
1612                 memcpy(ptr, &internalformat, 4); ptr += 4;
1613                 memcpy(ptr, &x, 4); ptr += 4;
1614                 memcpy(ptr, &y, 4); ptr += 4;
1615                 memcpy(ptr, &width, 4); ptr += 4;
1616                 memcpy(ptr, &height, 4); ptr += 4;
1617                 memcpy(ptr, &border, 4); ptr += 4;
1618
1619         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1620         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1621
1622 }
1623
1624 void glCopyTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
1625 {
1626
1627         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1628         IOStream *stream = ctx->m_stream;
1629         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1630         bool useChecksum = checksumCalculator->getVersion() > 0;
1631
1632          unsigned char *ptr;
1633          unsigned char *buf;
1634          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
1635          const size_t checksumSize = checksumCalculator->checksumByteSize();
1636          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1637         buf = stream->alloc(totalSize);
1638         ptr = buf;
1639         int tmp = OP_glCopyTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
1640         memcpy(ptr, &totalSize, 4);  ptr += 4;
1641
1642                 memcpy(ptr, &target, 4); ptr += 4;
1643                 memcpy(ptr, &level, 4); ptr += 4;
1644                 memcpy(ptr, &xoffset, 4); ptr += 4;
1645                 memcpy(ptr, &yoffset, 4); ptr += 4;
1646                 memcpy(ptr, &x, 4); ptr += 4;
1647                 memcpy(ptr, &y, 4); ptr += 4;
1648                 memcpy(ptr, &width, 4); ptr += 4;
1649                 memcpy(ptr, &height, 4); ptr += 4;
1650
1651         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1652         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1653
1654 }
1655
1656 void glCullFace_enc(void *self , GLenum mode)
1657 {
1658
1659         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1660         IOStream *stream = ctx->m_stream;
1661         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1662         bool useChecksum = checksumCalculator->getVersion() > 0;
1663
1664          unsigned char *ptr;
1665          unsigned char *buf;
1666          const size_t sizeWithoutChecksum = 8 + 4;
1667          const size_t checksumSize = checksumCalculator->checksumByteSize();
1668          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1669         buf = stream->alloc(totalSize);
1670         ptr = buf;
1671         int tmp = OP_glCullFace;memcpy(ptr, &tmp, 4); ptr += 4;
1672         memcpy(ptr, &totalSize, 4);  ptr += 4;
1673
1674                 memcpy(ptr, &mode, 4); ptr += 4;
1675
1676         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1677         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1678
1679 }
1680
1681 void glDeleteBuffers_enc(void *self , GLsizei n, const GLuint* buffers)
1682 {
1683
1684         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1685         IOStream *stream = ctx->m_stream;
1686         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1687         bool useChecksum = checksumCalculator->getVersion() > 0;
1688
1689         const unsigned int __size_buffers =  (n * sizeof(GLuint));
1690          unsigned char *ptr;
1691          unsigned char *buf;
1692          const size_t sizeWithoutChecksum = 8 + 4 + __size_buffers + 1*4;
1693          const size_t checksumSize = checksumCalculator->checksumByteSize();
1694          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1695         buf = stream->alloc(totalSize);
1696         ptr = buf;
1697         int tmp = OP_glDeleteBuffers;memcpy(ptr, &tmp, 4); ptr += 4;
1698         memcpy(ptr, &totalSize, 4);  ptr += 4;
1699
1700                 memcpy(ptr, &n, 4); ptr += 4;
1701         *(unsigned int *)(ptr) = __size_buffers; ptr += 4;
1702         memcpy(ptr, buffers, __size_buffers);ptr += __size_buffers;
1703
1704         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1705         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1706
1707 }
1708
1709 void glDeleteTextures_enc(void *self , GLsizei n, const GLuint* textures)
1710 {
1711
1712         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1713         IOStream *stream = ctx->m_stream;
1714         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1715         bool useChecksum = checksumCalculator->getVersion() > 0;
1716
1717         const unsigned int __size_textures =  (n * sizeof(GLuint));
1718          unsigned char *ptr;
1719          unsigned char *buf;
1720          const size_t sizeWithoutChecksum = 8 + 4 + __size_textures + 1*4;
1721          const size_t checksumSize = checksumCalculator->checksumByteSize();
1722          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1723         buf = stream->alloc(totalSize);
1724         ptr = buf;
1725         int tmp = OP_glDeleteTextures;memcpy(ptr, &tmp, 4); ptr += 4;
1726         memcpy(ptr, &totalSize, 4);  ptr += 4;
1727
1728                 memcpy(ptr, &n, 4); ptr += 4;
1729         *(unsigned int *)(ptr) = __size_textures; ptr += 4;
1730         memcpy(ptr, textures, __size_textures);ptr += __size_textures;
1731
1732         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1733         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1734
1735 }
1736
1737 void glDepthFunc_enc(void *self , GLenum func)
1738 {
1739
1740         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1741         IOStream *stream = ctx->m_stream;
1742         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1743         bool useChecksum = checksumCalculator->getVersion() > 0;
1744
1745          unsigned char *ptr;
1746          unsigned char *buf;
1747          const size_t sizeWithoutChecksum = 8 + 4;
1748          const size_t checksumSize = checksumCalculator->checksumByteSize();
1749          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1750         buf = stream->alloc(totalSize);
1751         ptr = buf;
1752         int tmp = OP_glDepthFunc;memcpy(ptr, &tmp, 4); ptr += 4;
1753         memcpy(ptr, &totalSize, 4);  ptr += 4;
1754
1755                 memcpy(ptr, &func, 4); ptr += 4;
1756
1757         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1758         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1759
1760 }
1761
1762 void glDepthMask_enc(void *self , GLboolean flag)
1763 {
1764
1765         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1766         IOStream *stream = ctx->m_stream;
1767         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1768         bool useChecksum = checksumCalculator->getVersion() > 0;
1769
1770          unsigned char *ptr;
1771          unsigned char *buf;
1772          const size_t sizeWithoutChecksum = 8 + 1;
1773          const size_t checksumSize = checksumCalculator->checksumByteSize();
1774          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1775         buf = stream->alloc(totalSize);
1776         ptr = buf;
1777         int tmp = OP_glDepthMask;memcpy(ptr, &tmp, 4); ptr += 4;
1778         memcpy(ptr, &totalSize, 4);  ptr += 4;
1779
1780                 memcpy(ptr, &flag, 1); ptr += 1;
1781
1782         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1783         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1784
1785 }
1786
1787 void glDepthRangex_enc(void *self , GLclampx zNear, GLclampx zFar)
1788 {
1789
1790         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1791         IOStream *stream = ctx->m_stream;
1792         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1793         bool useChecksum = checksumCalculator->getVersion() > 0;
1794
1795          unsigned char *ptr;
1796          unsigned char *buf;
1797          const size_t sizeWithoutChecksum = 8 + 4 + 4;
1798          const size_t checksumSize = checksumCalculator->checksumByteSize();
1799          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1800         buf = stream->alloc(totalSize);
1801         ptr = buf;
1802         int tmp = OP_glDepthRangex;memcpy(ptr, &tmp, 4); ptr += 4;
1803         memcpy(ptr, &totalSize, 4);  ptr += 4;
1804
1805                 memcpy(ptr, &zNear, 4); ptr += 4;
1806                 memcpy(ptr, &zFar, 4); ptr += 4;
1807
1808         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1809         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1810
1811 }
1812
1813 void glDisable_enc(void *self , GLenum cap)
1814 {
1815
1816         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1817         IOStream *stream = ctx->m_stream;
1818         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1819         bool useChecksum = checksumCalculator->getVersion() > 0;
1820
1821          unsigned char *ptr;
1822          unsigned char *buf;
1823          const size_t sizeWithoutChecksum = 8 + 4;
1824          const size_t checksumSize = checksumCalculator->checksumByteSize();
1825          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1826         buf = stream->alloc(totalSize);
1827         ptr = buf;
1828         int tmp = OP_glDisable;memcpy(ptr, &tmp, 4); ptr += 4;
1829         memcpy(ptr, &totalSize, 4);  ptr += 4;
1830
1831                 memcpy(ptr, &cap, 4); ptr += 4;
1832
1833         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1834         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1835
1836 }
1837
1838 void glDisableClientState_enc(void *self , GLenum array)
1839 {
1840
1841         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1842         IOStream *stream = ctx->m_stream;
1843         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1844         bool useChecksum = checksumCalculator->getVersion() > 0;
1845
1846          unsigned char *ptr;
1847          unsigned char *buf;
1848          const size_t sizeWithoutChecksum = 8 + 4;
1849          const size_t checksumSize = checksumCalculator->checksumByteSize();
1850          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1851         buf = stream->alloc(totalSize);
1852         ptr = buf;
1853         int tmp = OP_glDisableClientState;memcpy(ptr, &tmp, 4); ptr += 4;
1854         memcpy(ptr, &totalSize, 4);  ptr += 4;
1855
1856                 memcpy(ptr, &array, 4); ptr += 4;
1857
1858         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1859         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1860
1861 }
1862
1863 void glDrawArrays_enc(void *self , GLenum mode, GLint first, GLsizei count)
1864 {
1865
1866         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1867         IOStream *stream = ctx->m_stream;
1868         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1869         bool useChecksum = checksumCalculator->getVersion() > 0;
1870
1871          unsigned char *ptr;
1872          unsigned char *buf;
1873          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
1874          const size_t checksumSize = checksumCalculator->checksumByteSize();
1875          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1876         buf = stream->alloc(totalSize);
1877         ptr = buf;
1878         int tmp = OP_glDrawArrays;memcpy(ptr, &tmp, 4); ptr += 4;
1879         memcpy(ptr, &totalSize, 4);  ptr += 4;
1880
1881                 memcpy(ptr, &mode, 4); ptr += 4;
1882                 memcpy(ptr, &first, 4); ptr += 4;
1883                 memcpy(ptr, &count, 4); ptr += 4;
1884
1885         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1886         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1887
1888 }
1889
1890 void glEnable_enc(void *self , GLenum cap)
1891 {
1892
1893         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1894         IOStream *stream = ctx->m_stream;
1895         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1896         bool useChecksum = checksumCalculator->getVersion() > 0;
1897
1898          unsigned char *ptr;
1899          unsigned char *buf;
1900          const size_t sizeWithoutChecksum = 8 + 4;
1901          const size_t checksumSize = checksumCalculator->checksumByteSize();
1902          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1903         buf = stream->alloc(totalSize);
1904         ptr = buf;
1905         int tmp = OP_glEnable;memcpy(ptr, &tmp, 4); ptr += 4;
1906         memcpy(ptr, &totalSize, 4);  ptr += 4;
1907
1908                 memcpy(ptr, &cap, 4); ptr += 4;
1909
1910         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1911         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1912
1913 }
1914
1915 void glEnableClientState_enc(void *self , GLenum array)
1916 {
1917
1918         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1919         IOStream *stream = ctx->m_stream;
1920         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1921         bool useChecksum = checksumCalculator->getVersion() > 0;
1922
1923          unsigned char *ptr;
1924          unsigned char *buf;
1925          const size_t sizeWithoutChecksum = 8 + 4;
1926          const size_t checksumSize = checksumCalculator->checksumByteSize();
1927          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1928         buf = stream->alloc(totalSize);
1929         ptr = buf;
1930         int tmp = OP_glEnableClientState;memcpy(ptr, &tmp, 4); ptr += 4;
1931         memcpy(ptr, &totalSize, 4);  ptr += 4;
1932
1933                 memcpy(ptr, &array, 4); ptr += 4;
1934
1935         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1936         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1937
1938 }
1939
1940 void glFinish_enc(void *self )
1941 {
1942
1943         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1944         IOStream *stream = ctx->m_stream;
1945         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1946         bool useChecksum = checksumCalculator->getVersion() > 0;
1947
1948          unsigned char *ptr;
1949          unsigned char *buf;
1950          const size_t sizeWithoutChecksum = 8;
1951          const size_t checksumSize = checksumCalculator->checksumByteSize();
1952          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1953         buf = stream->alloc(totalSize);
1954         ptr = buf;
1955         int tmp = OP_glFinish;memcpy(ptr, &tmp, 4); ptr += 4;
1956         memcpy(ptr, &totalSize, 4);  ptr += 4;
1957
1958
1959         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1960         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1961
1962 }
1963
1964 void glFlush_enc(void *self )
1965 {
1966
1967         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1968         IOStream *stream = ctx->m_stream;
1969         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1970         bool useChecksum = checksumCalculator->getVersion() > 0;
1971
1972          unsigned char *ptr;
1973          unsigned char *buf;
1974          const size_t sizeWithoutChecksum = 8;
1975          const size_t checksumSize = checksumCalculator->checksumByteSize();
1976          const size_t totalSize = sizeWithoutChecksum + checksumSize;
1977         buf = stream->alloc(totalSize);
1978         ptr = buf;
1979         int tmp = OP_glFlush;memcpy(ptr, &tmp, 4); ptr += 4;
1980         memcpy(ptr, &totalSize, 4);  ptr += 4;
1981
1982
1983         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1984         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1985
1986 }
1987
1988 void glFogx_enc(void *self , GLenum pname, GLfixed param)
1989 {
1990
1991         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1992         IOStream *stream = ctx->m_stream;
1993         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1994         bool useChecksum = checksumCalculator->getVersion() > 0;
1995
1996          unsigned char *ptr;
1997          unsigned char *buf;
1998          const size_t sizeWithoutChecksum = 8 + 4 + 4;
1999          const size_t checksumSize = checksumCalculator->checksumByteSize();
2000          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2001         buf = stream->alloc(totalSize);
2002         ptr = buf;
2003         int tmp = OP_glFogx;memcpy(ptr, &tmp, 4); ptr += 4;
2004         memcpy(ptr, &totalSize, 4);  ptr += 4;
2005
2006                 memcpy(ptr, &pname, 4); ptr += 4;
2007                 memcpy(ptr, &param, 4); ptr += 4;
2008
2009         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2010         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2011
2012 }
2013
2014 void glFogxv_enc(void *self , GLenum pname, const GLfixed* params)
2015 {
2016
2017         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2018         IOStream *stream = ctx->m_stream;
2019         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2020         bool useChecksum = checksumCalculator->getVersion() > 0;
2021
2022         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2023          unsigned char *ptr;
2024          unsigned char *buf;
2025          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
2026          const size_t checksumSize = checksumCalculator->checksumByteSize();
2027          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2028         buf = stream->alloc(totalSize);
2029         ptr = buf;
2030         int tmp = OP_glFogxv;memcpy(ptr, &tmp, 4); ptr += 4;
2031         memcpy(ptr, &totalSize, 4);  ptr += 4;
2032
2033                 memcpy(ptr, &pname, 4); ptr += 4;
2034         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2035         memcpy(ptr, params, __size_params);ptr += __size_params;
2036
2037         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2038         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2039
2040 }
2041
2042 void glFrontFace_enc(void *self , GLenum mode)
2043 {
2044
2045         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2046         IOStream *stream = ctx->m_stream;
2047         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2048         bool useChecksum = checksumCalculator->getVersion() > 0;
2049
2050          unsigned char *ptr;
2051          unsigned char *buf;
2052          const size_t sizeWithoutChecksum = 8 + 4;
2053          const size_t checksumSize = checksumCalculator->checksumByteSize();
2054          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2055         buf = stream->alloc(totalSize);
2056         ptr = buf;
2057         int tmp = OP_glFrontFace;memcpy(ptr, &tmp, 4); ptr += 4;
2058         memcpy(ptr, &totalSize, 4);  ptr += 4;
2059
2060                 memcpy(ptr, &mode, 4); ptr += 4;
2061
2062         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2063         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2064
2065 }
2066
2067 void glFrustumx_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
2068 {
2069
2070         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2071         IOStream *stream = ctx->m_stream;
2072         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2073         bool useChecksum = checksumCalculator->getVersion() > 0;
2074
2075          unsigned char *ptr;
2076          unsigned char *buf;
2077          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
2078          const size_t checksumSize = checksumCalculator->checksumByteSize();
2079          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2080         buf = stream->alloc(totalSize);
2081         ptr = buf;
2082         int tmp = OP_glFrustumx;memcpy(ptr, &tmp, 4); ptr += 4;
2083         memcpy(ptr, &totalSize, 4);  ptr += 4;
2084
2085                 memcpy(ptr, &left, 4); ptr += 4;
2086                 memcpy(ptr, &right, 4); ptr += 4;
2087                 memcpy(ptr, &bottom, 4); ptr += 4;
2088                 memcpy(ptr, &top, 4); ptr += 4;
2089                 memcpy(ptr, &zNear, 4); ptr += 4;
2090                 memcpy(ptr, &zFar, 4); ptr += 4;
2091
2092         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2093         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2094
2095 }
2096
2097 void glGetBooleanv_enc(void *self , GLenum pname, GLboolean* params)
2098 {
2099
2100         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2101         IOStream *stream = ctx->m_stream;
2102         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2103         bool useChecksum = checksumCalculator->getVersion() > 0;
2104
2105         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLboolean));
2106          unsigned char *ptr;
2107          unsigned char *buf;
2108          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
2109          const size_t checksumSize = checksumCalculator->checksumByteSize();
2110          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2111         buf = stream->alloc(totalSize);
2112         ptr = buf;
2113         int tmp = OP_glGetBooleanv;memcpy(ptr, &tmp, 4); ptr += 4;
2114         memcpy(ptr, &totalSize, 4);  ptr += 4;
2115
2116                 memcpy(ptr, &pname, 4); ptr += 4;
2117         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2118
2119         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2120         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2121
2122         stream->readback(params, __size_params);
2123         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2124         if (useChecksum) {
2125                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2126                 stream->readback(checksumBuf.get(), checksumSize);
2127                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2128                         ALOGE("glGetBooleanv: GL communication error, please report this issue to b.android.com.\n");
2129                         abort();
2130                 }
2131         }
2132 }
2133
2134 void glGetBufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
2135 {
2136
2137         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2138         IOStream *stream = ctx->m_stream;
2139         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2140         bool useChecksum = checksumCalculator->getVersion() > 0;
2141
2142         const unsigned int __size_params =  (sizeof(GLint));
2143          unsigned char *ptr;
2144          unsigned char *buf;
2145          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2146          const size_t checksumSize = checksumCalculator->checksumByteSize();
2147          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2148         buf = stream->alloc(totalSize);
2149         ptr = buf;
2150         int tmp = OP_glGetBufferParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
2151         memcpy(ptr, &totalSize, 4);  ptr += 4;
2152
2153                 memcpy(ptr, &target, 4); ptr += 4;
2154                 memcpy(ptr, &pname, 4); ptr += 4;
2155         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2156
2157         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2158         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2159
2160         stream->readback(params, __size_params);
2161         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2162         if (useChecksum) {
2163                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2164                 stream->readback(checksumBuf.get(), checksumSize);
2165                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2166                         ALOGE("glGetBufferParameteriv: GL communication error, please report this issue to b.android.com.\n");
2167                         abort();
2168                 }
2169         }
2170 }
2171
2172 void glClipPlanex_enc(void *self , GLenum pname, const GLfixed* eqn)
2173 {
2174
2175         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2176         IOStream *stream = ctx->m_stream;
2177         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2178         bool useChecksum = checksumCalculator->getVersion() > 0;
2179
2180         const unsigned int __size_eqn =  (4 * sizeof(GLfixed));
2181          unsigned char *ptr;
2182          unsigned char *buf;
2183          const size_t sizeWithoutChecksum = 8 + 4 + __size_eqn + 1*4;
2184          const size_t checksumSize = checksumCalculator->checksumByteSize();
2185          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2186         buf = stream->alloc(totalSize);
2187         ptr = buf;
2188         int tmp = OP_glClipPlanex;memcpy(ptr, &tmp, 4); ptr += 4;
2189         memcpy(ptr, &totalSize, 4);  ptr += 4;
2190
2191                 memcpy(ptr, &pname, 4); ptr += 4;
2192         *(unsigned int *)(ptr) = __size_eqn; ptr += 4;
2193         memcpy(ptr, eqn, __size_eqn);ptr += __size_eqn;
2194
2195         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2196         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2197
2198 }
2199
2200 void glGenBuffers_enc(void *self , GLsizei n, GLuint* buffers)
2201 {
2202
2203         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2204         IOStream *stream = ctx->m_stream;
2205         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2206         bool useChecksum = checksumCalculator->getVersion() > 0;
2207
2208         const unsigned int __size_buffers =  (n * sizeof(GLuint));
2209          unsigned char *ptr;
2210          unsigned char *buf;
2211          const size_t sizeWithoutChecksum = 8 + 4 + __size_buffers + 1*4;
2212          const size_t checksumSize = checksumCalculator->checksumByteSize();
2213          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2214         buf = stream->alloc(totalSize);
2215         ptr = buf;
2216         int tmp = OP_glGenBuffers;memcpy(ptr, &tmp, 4); ptr += 4;
2217         memcpy(ptr, &totalSize, 4);  ptr += 4;
2218
2219                 memcpy(ptr, &n, 4); ptr += 4;
2220         *(unsigned int *)(ptr) = __size_buffers; ptr += 4;
2221
2222         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2223         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2224
2225         stream->readback(buffers, __size_buffers);
2226         if (useChecksum) checksumCalculator->addBuffer(buffers, __size_buffers);
2227         if (useChecksum) {
2228                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2229                 stream->readback(checksumBuf.get(), checksumSize);
2230                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2231                         ALOGE("glGenBuffers: GL communication error, please report this issue to b.android.com.\n");
2232                         abort();
2233                 }
2234         }
2235 }
2236
2237 void glGenTextures_enc(void *self , GLsizei n, GLuint* textures)
2238 {
2239
2240         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2241         IOStream *stream = ctx->m_stream;
2242         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2243         bool useChecksum = checksumCalculator->getVersion() > 0;
2244
2245         const unsigned int __size_textures =  (n * sizeof(GLuint));
2246          unsigned char *ptr;
2247          unsigned char *buf;
2248          const size_t sizeWithoutChecksum = 8 + 4 + __size_textures + 1*4;
2249          const size_t checksumSize = checksumCalculator->checksumByteSize();
2250          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2251         buf = stream->alloc(totalSize);
2252         ptr = buf;
2253         int tmp = OP_glGenTextures;memcpy(ptr, &tmp, 4); ptr += 4;
2254         memcpy(ptr, &totalSize, 4);  ptr += 4;
2255
2256                 memcpy(ptr, &n, 4); ptr += 4;
2257         *(unsigned int *)(ptr) = __size_textures; ptr += 4;
2258
2259         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2260         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2261
2262         stream->readback(textures, __size_textures);
2263         if (useChecksum) checksumCalculator->addBuffer(textures, __size_textures);
2264         if (useChecksum) {
2265                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2266                 stream->readback(checksumBuf.get(), checksumSize);
2267                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2268                         ALOGE("glGenTextures: GL communication error, please report this issue to b.android.com.\n");
2269                         abort();
2270                 }
2271         }
2272 }
2273
2274 GLenum glGetError_enc(void *self )
2275 {
2276
2277         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2278         IOStream *stream = ctx->m_stream;
2279         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2280         bool useChecksum = checksumCalculator->getVersion() > 0;
2281
2282          unsigned char *ptr;
2283          unsigned char *buf;
2284          const size_t sizeWithoutChecksum = 8;
2285          const size_t checksumSize = checksumCalculator->checksumByteSize();
2286          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2287         buf = stream->alloc(totalSize);
2288         ptr = buf;
2289         int tmp = OP_glGetError;memcpy(ptr, &tmp, 4); ptr += 4;
2290         memcpy(ptr, &totalSize, 4);  ptr += 4;
2291
2292
2293         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2294         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2295
2296
2297         GLenum retval;
2298         stream->readback(&retval, 4);
2299         if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
2300         if (useChecksum) {
2301                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2302                 stream->readback(checksumBuf.get(), checksumSize);
2303                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2304                         ALOGE("glGetError: GL communication error, please report this issue to b.android.com.\n");
2305                         abort();
2306                 }
2307         }
2308         return retval;
2309 }
2310
2311 void glGetFixedv_enc(void *self , GLenum pname, GLfixed* params)
2312 {
2313
2314         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2315         IOStream *stream = ctx->m_stream;
2316         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2317         bool useChecksum = checksumCalculator->getVersion() > 0;
2318
2319         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2320          unsigned char *ptr;
2321          unsigned char *buf;
2322          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
2323          const size_t checksumSize = checksumCalculator->checksumByteSize();
2324          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2325         buf = stream->alloc(totalSize);
2326         ptr = buf;
2327         int tmp = OP_glGetFixedv;memcpy(ptr, &tmp, 4); ptr += 4;
2328         memcpy(ptr, &totalSize, 4);  ptr += 4;
2329
2330                 memcpy(ptr, &pname, 4); ptr += 4;
2331         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2332
2333         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2334         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2335
2336         stream->readback(params, __size_params);
2337         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2338         if (useChecksum) {
2339                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2340                 stream->readback(checksumBuf.get(), checksumSize);
2341                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2342                         ALOGE("glGetFixedv: GL communication error, please report this issue to b.android.com.\n");
2343                         abort();
2344                 }
2345         }
2346 }
2347
2348 void glGetIntegerv_enc(void *self , GLenum pname, GLint* params)
2349 {
2350
2351         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2352         IOStream *stream = ctx->m_stream;
2353         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2354         bool useChecksum = checksumCalculator->getVersion() > 0;
2355
2356         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
2357          unsigned char *ptr;
2358          unsigned char *buf;
2359          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
2360          const size_t checksumSize = checksumCalculator->checksumByteSize();
2361          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2362         buf = stream->alloc(totalSize);
2363         ptr = buf;
2364         int tmp = OP_glGetIntegerv;memcpy(ptr, &tmp, 4); ptr += 4;
2365         memcpy(ptr, &totalSize, 4);  ptr += 4;
2366
2367                 memcpy(ptr, &pname, 4); ptr += 4;
2368         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2369
2370         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2371         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2372
2373         stream->readback(params, __size_params);
2374         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2375         if (useChecksum) {
2376                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2377                 stream->readback(checksumBuf.get(), checksumSize);
2378                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2379                         ALOGE("glGetIntegerv: GL communication error, please report this issue to b.android.com.\n");
2380                         abort();
2381                 }
2382         }
2383 }
2384
2385 void glGetLightxv_enc(void *self , GLenum light, GLenum pname, GLfixed* params)
2386 {
2387
2388         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2389         IOStream *stream = ctx->m_stream;
2390         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2391         bool useChecksum = checksumCalculator->getVersion() > 0;
2392
2393         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2394          unsigned char *ptr;
2395          unsigned char *buf;
2396          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2397          const size_t checksumSize = checksumCalculator->checksumByteSize();
2398          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2399         buf = stream->alloc(totalSize);
2400         ptr = buf;
2401         int tmp = OP_glGetLightxv;memcpy(ptr, &tmp, 4); ptr += 4;
2402         memcpy(ptr, &totalSize, 4);  ptr += 4;
2403
2404                 memcpy(ptr, &light, 4); ptr += 4;
2405                 memcpy(ptr, &pname, 4); ptr += 4;
2406         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2407
2408         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2409         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2410
2411         stream->readback(params, __size_params);
2412         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2413         if (useChecksum) {
2414                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2415                 stream->readback(checksumBuf.get(), checksumSize);
2416                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2417                         ALOGE("glGetLightxv: GL communication error, please report this issue to b.android.com.\n");
2418                         abort();
2419                 }
2420         }
2421 }
2422
2423 void glGetMaterialxv_enc(void *self , GLenum face, GLenum pname, GLfixed* params)
2424 {
2425
2426         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2427         IOStream *stream = ctx->m_stream;
2428         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2429         bool useChecksum = checksumCalculator->getVersion() > 0;
2430
2431         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2432          unsigned char *ptr;
2433          unsigned char *buf;
2434          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2435          const size_t checksumSize = checksumCalculator->checksumByteSize();
2436          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2437         buf = stream->alloc(totalSize);
2438         ptr = buf;
2439         int tmp = OP_glGetMaterialxv;memcpy(ptr, &tmp, 4); ptr += 4;
2440         memcpy(ptr, &totalSize, 4);  ptr += 4;
2441
2442                 memcpy(ptr, &face, 4); ptr += 4;
2443                 memcpy(ptr, &pname, 4); ptr += 4;
2444         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2445
2446         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2447         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2448
2449         stream->readback(params, __size_params);
2450         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2451         if (useChecksum) {
2452                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2453                 stream->readback(checksumBuf.get(), checksumSize);
2454                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2455                         ALOGE("glGetMaterialxv: GL communication error, please report this issue to b.android.com.\n");
2456                         abort();
2457                 }
2458         }
2459 }
2460
2461 void glGetTexEnviv_enc(void *self , GLenum env, GLenum pname, GLint* params)
2462 {
2463
2464         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2465         IOStream *stream = ctx->m_stream;
2466         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2467         bool useChecksum = checksumCalculator->getVersion() > 0;
2468
2469         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
2470          unsigned char *ptr;
2471          unsigned char *buf;
2472          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2473          const size_t checksumSize = checksumCalculator->checksumByteSize();
2474          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2475         buf = stream->alloc(totalSize);
2476         ptr = buf;
2477         int tmp = OP_glGetTexEnviv;memcpy(ptr, &tmp, 4); ptr += 4;
2478         memcpy(ptr, &totalSize, 4);  ptr += 4;
2479
2480                 memcpy(ptr, &env, 4); ptr += 4;
2481                 memcpy(ptr, &pname, 4); ptr += 4;
2482         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2483
2484         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2485         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2486
2487         stream->readback(params, __size_params);
2488         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2489         if (useChecksum) {
2490                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2491                 stream->readback(checksumBuf.get(), checksumSize);
2492                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2493                         ALOGE("glGetTexEnviv: GL communication error, please report this issue to b.android.com.\n");
2494                         abort();
2495                 }
2496         }
2497 }
2498
2499 void glGetTexEnvxv_enc(void *self , GLenum env, GLenum pname, GLfixed* params)
2500 {
2501
2502         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2503         IOStream *stream = ctx->m_stream;
2504         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2505         bool useChecksum = checksumCalculator->getVersion() > 0;
2506
2507         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2508          unsigned char *ptr;
2509          unsigned char *buf;
2510          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2511          const size_t checksumSize = checksumCalculator->checksumByteSize();
2512          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2513         buf = stream->alloc(totalSize);
2514         ptr = buf;
2515         int tmp = OP_glGetTexEnvxv;memcpy(ptr, &tmp, 4); ptr += 4;
2516         memcpy(ptr, &totalSize, 4);  ptr += 4;
2517
2518                 memcpy(ptr, &env, 4); ptr += 4;
2519                 memcpy(ptr, &pname, 4); ptr += 4;
2520         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2521
2522         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2523         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2524
2525         stream->readback(params, __size_params);
2526         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2527         if (useChecksum) {
2528                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2529                 stream->readback(checksumBuf.get(), checksumSize);
2530                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2531                         ALOGE("glGetTexEnvxv: GL communication error, please report this issue to b.android.com.\n");
2532                         abort();
2533                 }
2534         }
2535 }
2536
2537 void glGetTexParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
2538 {
2539
2540         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2541         IOStream *stream = ctx->m_stream;
2542         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2543         bool useChecksum = checksumCalculator->getVersion() > 0;
2544
2545         const unsigned int __size_params =  (sizeof(GLint));
2546          unsigned char *ptr;
2547          unsigned char *buf;
2548          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2549          const size_t checksumSize = checksumCalculator->checksumByteSize();
2550          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2551         buf = stream->alloc(totalSize);
2552         ptr = buf;
2553         int tmp = OP_glGetTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
2554         memcpy(ptr, &totalSize, 4);  ptr += 4;
2555
2556                 memcpy(ptr, &target, 4); ptr += 4;
2557                 memcpy(ptr, &pname, 4); ptr += 4;
2558         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2559
2560         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2561         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2562
2563         stream->readback(params, __size_params);
2564         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2565         if (useChecksum) {
2566                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2567                 stream->readback(checksumBuf.get(), checksumSize);
2568                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2569                         ALOGE("glGetTexParameteriv: GL communication error, please report this issue to b.android.com.\n");
2570                         abort();
2571                 }
2572         }
2573 }
2574
2575 void glGetTexParameterxv_enc(void *self , GLenum target, GLenum pname, GLfixed* params)
2576 {
2577
2578         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2579         IOStream *stream = ctx->m_stream;
2580         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2581         bool useChecksum = checksumCalculator->getVersion() > 0;
2582
2583         const unsigned int __size_params =  (sizeof(GLfixed));
2584          unsigned char *ptr;
2585          unsigned char *buf;
2586          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2587          const size_t checksumSize = checksumCalculator->checksumByteSize();
2588          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2589         buf = stream->alloc(totalSize);
2590         ptr = buf;
2591         int tmp = OP_glGetTexParameterxv;memcpy(ptr, &tmp, 4); ptr += 4;
2592         memcpy(ptr, &totalSize, 4);  ptr += 4;
2593
2594                 memcpy(ptr, &target, 4); ptr += 4;
2595                 memcpy(ptr, &pname, 4); ptr += 4;
2596         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2597
2598         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2599         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2600
2601         stream->readback(params, __size_params);
2602         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2603         if (useChecksum) {
2604                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2605                 stream->readback(checksumBuf.get(), checksumSize);
2606                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2607                         ALOGE("glGetTexParameterxv: GL communication error, please report this issue to b.android.com.\n");
2608                         abort();
2609                 }
2610         }
2611 }
2612
2613 void glHint_enc(void *self , GLenum target, GLenum mode)
2614 {
2615
2616         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2617         IOStream *stream = ctx->m_stream;
2618         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2619         bool useChecksum = checksumCalculator->getVersion() > 0;
2620
2621          unsigned char *ptr;
2622          unsigned char *buf;
2623          const size_t sizeWithoutChecksum = 8 + 4 + 4;
2624          const size_t checksumSize = checksumCalculator->checksumByteSize();
2625          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2626         buf = stream->alloc(totalSize);
2627         ptr = buf;
2628         int tmp = OP_glHint;memcpy(ptr, &tmp, 4); ptr += 4;
2629         memcpy(ptr, &totalSize, 4);  ptr += 4;
2630
2631                 memcpy(ptr, &target, 4); ptr += 4;
2632                 memcpy(ptr, &mode, 4); ptr += 4;
2633
2634         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2635         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2636
2637 }
2638
2639 GLboolean glIsBuffer_enc(void *self , GLuint buffer)
2640 {
2641
2642         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2643         IOStream *stream = ctx->m_stream;
2644         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2645         bool useChecksum = checksumCalculator->getVersion() > 0;
2646
2647          unsigned char *ptr;
2648          unsigned char *buf;
2649          const size_t sizeWithoutChecksum = 8 + 4;
2650          const size_t checksumSize = checksumCalculator->checksumByteSize();
2651          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2652         buf = stream->alloc(totalSize);
2653         ptr = buf;
2654         int tmp = OP_glIsBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
2655         memcpy(ptr, &totalSize, 4);  ptr += 4;
2656
2657                 memcpy(ptr, &buffer, 4); ptr += 4;
2658
2659         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2660         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2661
2662
2663         GLboolean retval;
2664         stream->readback(&retval, 1);
2665         if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2666         if (useChecksum) {
2667                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2668                 stream->readback(checksumBuf.get(), checksumSize);
2669                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2670                         ALOGE("glIsBuffer: GL communication error, please report this issue to b.android.com.\n");
2671                         abort();
2672                 }
2673         }
2674         return retval;
2675 }
2676
2677 GLboolean glIsEnabled_enc(void *self , GLenum cap)
2678 {
2679
2680         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2681         IOStream *stream = ctx->m_stream;
2682         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2683         bool useChecksum = checksumCalculator->getVersion() > 0;
2684
2685          unsigned char *ptr;
2686          unsigned char *buf;
2687          const size_t sizeWithoutChecksum = 8 + 4;
2688          const size_t checksumSize = checksumCalculator->checksumByteSize();
2689          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2690         buf = stream->alloc(totalSize);
2691         ptr = buf;
2692         int tmp = OP_glIsEnabled;memcpy(ptr, &tmp, 4); ptr += 4;
2693         memcpy(ptr, &totalSize, 4);  ptr += 4;
2694
2695                 memcpy(ptr, &cap, 4); ptr += 4;
2696
2697         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2698         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2699
2700
2701         GLboolean retval;
2702         stream->readback(&retval, 1);
2703         if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2704         if (useChecksum) {
2705                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2706                 stream->readback(checksumBuf.get(), checksumSize);
2707                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2708                         ALOGE("glIsEnabled: GL communication error, please report this issue to b.android.com.\n");
2709                         abort();
2710                 }
2711         }
2712         return retval;
2713 }
2714
2715 GLboolean glIsTexture_enc(void *self , GLuint texture)
2716 {
2717
2718         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2719         IOStream *stream = ctx->m_stream;
2720         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2721         bool useChecksum = checksumCalculator->getVersion() > 0;
2722
2723          unsigned char *ptr;
2724          unsigned char *buf;
2725          const size_t sizeWithoutChecksum = 8 + 4;
2726          const size_t checksumSize = checksumCalculator->checksumByteSize();
2727          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2728         buf = stream->alloc(totalSize);
2729         ptr = buf;
2730         int tmp = OP_glIsTexture;memcpy(ptr, &tmp, 4); ptr += 4;
2731         memcpy(ptr, &totalSize, 4);  ptr += 4;
2732
2733                 memcpy(ptr, &texture, 4); ptr += 4;
2734
2735         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2736         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2737
2738
2739         GLboolean retval;
2740         stream->readback(&retval, 1);
2741         if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2742         if (useChecksum) {
2743                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
2744                 stream->readback(checksumBuf.get(), checksumSize);
2745                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
2746                         ALOGE("glIsTexture: GL communication error, please report this issue to b.android.com.\n");
2747                         abort();
2748                 }
2749         }
2750         return retval;
2751 }
2752
2753 void glLightModelx_enc(void *self , GLenum pname, GLfixed param)
2754 {
2755
2756         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2757         IOStream *stream = ctx->m_stream;
2758         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2759         bool useChecksum = checksumCalculator->getVersion() > 0;
2760
2761          unsigned char *ptr;
2762          unsigned char *buf;
2763          const size_t sizeWithoutChecksum = 8 + 4 + 4;
2764          const size_t checksumSize = checksumCalculator->checksumByteSize();
2765          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2766         buf = stream->alloc(totalSize);
2767         ptr = buf;
2768         int tmp = OP_glLightModelx;memcpy(ptr, &tmp, 4); ptr += 4;
2769         memcpy(ptr, &totalSize, 4);  ptr += 4;
2770
2771                 memcpy(ptr, &pname, 4); ptr += 4;
2772                 memcpy(ptr, &param, 4); ptr += 4;
2773
2774         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2775         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2776
2777 }
2778
2779 void glLightModelxv_enc(void *self , GLenum pname, const GLfixed* params)
2780 {
2781
2782         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2783         IOStream *stream = ctx->m_stream;
2784         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2785         bool useChecksum = checksumCalculator->getVersion() > 0;
2786
2787         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2788          unsigned char *ptr;
2789          unsigned char *buf;
2790          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
2791          const size_t checksumSize = checksumCalculator->checksumByteSize();
2792          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2793         buf = stream->alloc(totalSize);
2794         ptr = buf;
2795         int tmp = OP_glLightModelxv;memcpy(ptr, &tmp, 4); ptr += 4;
2796         memcpy(ptr, &totalSize, 4);  ptr += 4;
2797
2798                 memcpy(ptr, &pname, 4); ptr += 4;
2799         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2800         memcpy(ptr, params, __size_params);ptr += __size_params;
2801
2802         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2803         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2804
2805 }
2806
2807 void glLightx_enc(void *self , GLenum light, GLenum pname, GLfixed param)
2808 {
2809
2810         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2811         IOStream *stream = ctx->m_stream;
2812         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2813         bool useChecksum = checksumCalculator->getVersion() > 0;
2814
2815          unsigned char *ptr;
2816          unsigned char *buf;
2817          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
2818          const size_t checksumSize = checksumCalculator->checksumByteSize();
2819          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2820         buf = stream->alloc(totalSize);
2821         ptr = buf;
2822         int tmp = OP_glLightx;memcpy(ptr, &tmp, 4); ptr += 4;
2823         memcpy(ptr, &totalSize, 4);  ptr += 4;
2824
2825                 memcpy(ptr, &light, 4); ptr += 4;
2826                 memcpy(ptr, &pname, 4); ptr += 4;
2827                 memcpy(ptr, &param, 4); ptr += 4;
2828
2829         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2830         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2831
2832 }
2833
2834 void glLightxv_enc(void *self , GLenum light, GLenum pname, const GLfixed* params)
2835 {
2836
2837         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2838         IOStream *stream = ctx->m_stream;
2839         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2840         bool useChecksum = checksumCalculator->getVersion() > 0;
2841
2842         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2843          unsigned char *ptr;
2844          unsigned char *buf;
2845          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2846          const size_t checksumSize = checksumCalculator->checksumByteSize();
2847          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2848         buf = stream->alloc(totalSize);
2849         ptr = buf;
2850         int tmp = OP_glLightxv;memcpy(ptr, &tmp, 4); ptr += 4;
2851         memcpy(ptr, &totalSize, 4);  ptr += 4;
2852
2853                 memcpy(ptr, &light, 4); ptr += 4;
2854                 memcpy(ptr, &pname, 4); ptr += 4;
2855         *(unsigned int *)(ptr) = __size_params; ptr += 4;
2856         memcpy(ptr, params, __size_params);ptr += __size_params;
2857
2858         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2859         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2860
2861 }
2862
2863 void glLineWidthx_enc(void *self , GLfixed width)
2864 {
2865
2866         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2867         IOStream *stream = ctx->m_stream;
2868         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2869         bool useChecksum = checksumCalculator->getVersion() > 0;
2870
2871          unsigned char *ptr;
2872          unsigned char *buf;
2873          const size_t sizeWithoutChecksum = 8 + 4;
2874          const size_t checksumSize = checksumCalculator->checksumByteSize();
2875          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2876         buf = stream->alloc(totalSize);
2877         ptr = buf;
2878         int tmp = OP_glLineWidthx;memcpy(ptr, &tmp, 4); ptr += 4;
2879         memcpy(ptr, &totalSize, 4);  ptr += 4;
2880
2881                 memcpy(ptr, &width, 4); ptr += 4;
2882
2883         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2884         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2885
2886 }
2887
2888 void glLoadIdentity_enc(void *self )
2889 {
2890
2891         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2892         IOStream *stream = ctx->m_stream;
2893         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2894         bool useChecksum = checksumCalculator->getVersion() > 0;
2895
2896          unsigned char *ptr;
2897          unsigned char *buf;
2898          const size_t sizeWithoutChecksum = 8;
2899          const size_t checksumSize = checksumCalculator->checksumByteSize();
2900          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2901         buf = stream->alloc(totalSize);
2902         ptr = buf;
2903         int tmp = OP_glLoadIdentity;memcpy(ptr, &tmp, 4); ptr += 4;
2904         memcpy(ptr, &totalSize, 4);  ptr += 4;
2905
2906
2907         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2908         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2909
2910 }
2911
2912 void glLoadMatrixx_enc(void *self , const GLfixed* m)
2913 {
2914
2915         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2916         IOStream *stream = ctx->m_stream;
2917         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2918         bool useChecksum = checksumCalculator->getVersion() > 0;
2919
2920         const unsigned int __size_m =  (16 * sizeof(GLfixed));
2921          unsigned char *ptr;
2922          unsigned char *buf;
2923          const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
2924          const size_t checksumSize = checksumCalculator->checksumByteSize();
2925          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2926         buf = stream->alloc(totalSize);
2927         ptr = buf;
2928         int tmp = OP_glLoadMatrixx;memcpy(ptr, &tmp, 4); ptr += 4;
2929         memcpy(ptr, &totalSize, 4);  ptr += 4;
2930
2931         *(unsigned int *)(ptr) = __size_m; ptr += 4;
2932         memcpy(ptr, m, __size_m);ptr += __size_m;
2933
2934         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2935         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2936
2937 }
2938
2939 void glLogicOp_enc(void *self , GLenum opcode)
2940 {
2941
2942         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2943         IOStream *stream = ctx->m_stream;
2944         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2945         bool useChecksum = checksumCalculator->getVersion() > 0;
2946
2947          unsigned char *ptr;
2948          unsigned char *buf;
2949          const size_t sizeWithoutChecksum = 8 + 4;
2950          const size_t checksumSize = checksumCalculator->checksumByteSize();
2951          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2952         buf = stream->alloc(totalSize);
2953         ptr = buf;
2954         int tmp = OP_glLogicOp;memcpy(ptr, &tmp, 4); ptr += 4;
2955         memcpy(ptr, &totalSize, 4);  ptr += 4;
2956
2957                 memcpy(ptr, &opcode, 4); ptr += 4;
2958
2959         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2960         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2961
2962 }
2963
2964 void glMaterialx_enc(void *self , GLenum face, GLenum pname, GLfixed param)
2965 {
2966
2967         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2968         IOStream *stream = ctx->m_stream;
2969         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2970         bool useChecksum = checksumCalculator->getVersion() > 0;
2971
2972          unsigned char *ptr;
2973          unsigned char *buf;
2974          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
2975          const size_t checksumSize = checksumCalculator->checksumByteSize();
2976          const size_t totalSize = sizeWithoutChecksum + checksumSize;
2977         buf = stream->alloc(totalSize);
2978         ptr = buf;
2979         int tmp = OP_glMaterialx;memcpy(ptr, &tmp, 4); ptr += 4;
2980         memcpy(ptr, &totalSize, 4);  ptr += 4;
2981
2982                 memcpy(ptr, &face, 4); ptr += 4;
2983                 memcpy(ptr, &pname, 4); ptr += 4;
2984                 memcpy(ptr, &param, 4); ptr += 4;
2985
2986         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2987         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2988
2989 }
2990
2991 void glMaterialxv_enc(void *self , GLenum face, GLenum pname, const GLfixed* params)
2992 {
2993
2994         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2995         IOStream *stream = ctx->m_stream;
2996         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2997         bool useChecksum = checksumCalculator->getVersion() > 0;
2998
2999         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
3000          unsigned char *ptr;
3001          unsigned char *buf;
3002          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
3003          const size_t checksumSize = checksumCalculator->checksumByteSize();
3004          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3005         buf = stream->alloc(totalSize);
3006         ptr = buf;
3007         int tmp = OP_glMaterialxv;memcpy(ptr, &tmp, 4); ptr += 4;
3008         memcpy(ptr, &totalSize, 4);  ptr += 4;
3009
3010                 memcpy(ptr, &face, 4); ptr += 4;
3011                 memcpy(ptr, &pname, 4); ptr += 4;
3012         *(unsigned int *)(ptr) = __size_params; ptr += 4;
3013         memcpy(ptr, params, __size_params);ptr += __size_params;
3014
3015         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3016         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3017
3018 }
3019
3020 void glMatrixMode_enc(void *self , GLenum mode)
3021 {
3022
3023         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3024         IOStream *stream = ctx->m_stream;
3025         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3026         bool useChecksum = checksumCalculator->getVersion() > 0;
3027
3028          unsigned char *ptr;
3029          unsigned char *buf;
3030          const size_t sizeWithoutChecksum = 8 + 4;
3031          const size_t checksumSize = checksumCalculator->checksumByteSize();
3032          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3033         buf = stream->alloc(totalSize);
3034         ptr = buf;
3035         int tmp = OP_glMatrixMode;memcpy(ptr, &tmp, 4); ptr += 4;
3036         memcpy(ptr, &totalSize, 4);  ptr += 4;
3037
3038                 memcpy(ptr, &mode, 4); ptr += 4;
3039
3040         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3041         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3042
3043 }
3044
3045 void glMultMatrixx_enc(void *self , const GLfixed* m)
3046 {
3047
3048         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3049         IOStream *stream = ctx->m_stream;
3050         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3051         bool useChecksum = checksumCalculator->getVersion() > 0;
3052
3053         const unsigned int __size_m =  (16 * sizeof(GLfixed));
3054          unsigned char *ptr;
3055          unsigned char *buf;
3056          const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
3057          const size_t checksumSize = checksumCalculator->checksumByteSize();
3058          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3059         buf = stream->alloc(totalSize);
3060         ptr = buf;
3061         int tmp = OP_glMultMatrixx;memcpy(ptr, &tmp, 4); ptr += 4;
3062         memcpy(ptr, &totalSize, 4);  ptr += 4;
3063
3064         *(unsigned int *)(ptr) = __size_m; ptr += 4;
3065         memcpy(ptr, m, __size_m);ptr += __size_m;
3066
3067         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3068         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3069
3070 }
3071
3072 void glMultiTexCoord4x_enc(void *self , GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
3073 {
3074
3075         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3076         IOStream *stream = ctx->m_stream;
3077         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3078         bool useChecksum = checksumCalculator->getVersion() > 0;
3079
3080          unsigned char *ptr;
3081          unsigned char *buf;
3082          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
3083          const size_t checksumSize = checksumCalculator->checksumByteSize();
3084          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3085         buf = stream->alloc(totalSize);
3086         ptr = buf;
3087         int tmp = OP_glMultiTexCoord4x;memcpy(ptr, &tmp, 4); ptr += 4;
3088         memcpy(ptr, &totalSize, 4);  ptr += 4;
3089
3090                 memcpy(ptr, &target, 4); ptr += 4;
3091                 memcpy(ptr, &s, 4); ptr += 4;
3092                 memcpy(ptr, &t, 4); ptr += 4;
3093                 memcpy(ptr, &r, 4); ptr += 4;
3094                 memcpy(ptr, &q, 4); ptr += 4;
3095
3096         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3097         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3098
3099 }
3100
3101 void glNormal3x_enc(void *self , GLfixed nx, GLfixed ny, GLfixed nz)
3102 {
3103
3104         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3105         IOStream *stream = ctx->m_stream;
3106         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3107         bool useChecksum = checksumCalculator->getVersion() > 0;
3108
3109          unsigned char *ptr;
3110          unsigned char *buf;
3111          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3112          const size_t checksumSize = checksumCalculator->checksumByteSize();
3113          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3114         buf = stream->alloc(totalSize);
3115         ptr = buf;
3116         int tmp = OP_glNormal3x;memcpy(ptr, &tmp, 4); ptr += 4;
3117         memcpy(ptr, &totalSize, 4);  ptr += 4;
3118
3119                 memcpy(ptr, &nx, 4); ptr += 4;
3120                 memcpy(ptr, &ny, 4); ptr += 4;
3121                 memcpy(ptr, &nz, 4); ptr += 4;
3122
3123         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3124         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3125
3126 }
3127
3128 void glOrthox_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
3129 {
3130
3131         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3132         IOStream *stream = ctx->m_stream;
3133         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3134         bool useChecksum = checksumCalculator->getVersion() > 0;
3135
3136          unsigned char *ptr;
3137          unsigned char *buf;
3138          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
3139          const size_t checksumSize = checksumCalculator->checksumByteSize();
3140          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3141         buf = stream->alloc(totalSize);
3142         ptr = buf;
3143         int tmp = OP_glOrthox;memcpy(ptr, &tmp, 4); ptr += 4;
3144         memcpy(ptr, &totalSize, 4);  ptr += 4;
3145
3146                 memcpy(ptr, &left, 4); ptr += 4;
3147                 memcpy(ptr, &right, 4); ptr += 4;
3148                 memcpy(ptr, &bottom, 4); ptr += 4;
3149                 memcpy(ptr, &top, 4); ptr += 4;
3150                 memcpy(ptr, &zNear, 4); ptr += 4;
3151                 memcpy(ptr, &zFar, 4); ptr += 4;
3152
3153         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3154         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3155
3156 }
3157
3158 void glPixelStorei_enc(void *self , GLenum pname, GLint param)
3159 {
3160
3161         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3162         IOStream *stream = ctx->m_stream;
3163         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3164         bool useChecksum = checksumCalculator->getVersion() > 0;
3165
3166          unsigned char *ptr;
3167          unsigned char *buf;
3168          const size_t sizeWithoutChecksum = 8 + 4 + 4;
3169          const size_t checksumSize = checksumCalculator->checksumByteSize();
3170          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3171         buf = stream->alloc(totalSize);
3172         ptr = buf;
3173         int tmp = OP_glPixelStorei;memcpy(ptr, &tmp, 4); ptr += 4;
3174         memcpy(ptr, &totalSize, 4);  ptr += 4;
3175
3176                 memcpy(ptr, &pname, 4); ptr += 4;
3177                 memcpy(ptr, &param, 4); ptr += 4;
3178
3179         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3180         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3181
3182 }
3183
3184 void glPointParameterx_enc(void *self , GLenum pname, GLfixed param)
3185 {
3186
3187         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3188         IOStream *stream = ctx->m_stream;
3189         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3190         bool useChecksum = checksumCalculator->getVersion() > 0;
3191
3192          unsigned char *ptr;
3193          unsigned char *buf;
3194          const size_t sizeWithoutChecksum = 8 + 4 + 4;
3195          const size_t checksumSize = checksumCalculator->checksumByteSize();
3196          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3197         buf = stream->alloc(totalSize);
3198         ptr = buf;
3199         int tmp = OP_glPointParameterx;memcpy(ptr, &tmp, 4); ptr += 4;
3200         memcpy(ptr, &totalSize, 4);  ptr += 4;
3201
3202                 memcpy(ptr, &pname, 4); ptr += 4;
3203                 memcpy(ptr, &param, 4); ptr += 4;
3204
3205         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3206         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3207
3208 }
3209
3210 void glPointParameterxv_enc(void *self , GLenum pname, const GLfixed* params)
3211 {
3212
3213         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3214         IOStream *stream = ctx->m_stream;
3215         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3216         bool useChecksum = checksumCalculator->getVersion() > 0;
3217
3218         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
3219          unsigned char *ptr;
3220          unsigned char *buf;
3221          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
3222          const size_t checksumSize = checksumCalculator->checksumByteSize();
3223          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3224         buf = stream->alloc(totalSize);
3225         ptr = buf;
3226         int tmp = OP_glPointParameterxv;memcpy(ptr, &tmp, 4); ptr += 4;
3227         memcpy(ptr, &totalSize, 4);  ptr += 4;
3228
3229                 memcpy(ptr, &pname, 4); ptr += 4;
3230         *(unsigned int *)(ptr) = __size_params; ptr += 4;
3231         memcpy(ptr, params, __size_params);ptr += __size_params;
3232
3233         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3234         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3235
3236 }
3237
3238 void glPointSizex_enc(void *self , GLfixed size)
3239 {
3240
3241         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3242         IOStream *stream = ctx->m_stream;
3243         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3244         bool useChecksum = checksumCalculator->getVersion() > 0;
3245
3246          unsigned char *ptr;
3247          unsigned char *buf;
3248          const size_t sizeWithoutChecksum = 8 + 4;
3249          const size_t checksumSize = checksumCalculator->checksumByteSize();
3250          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3251         buf = stream->alloc(totalSize);
3252         ptr = buf;
3253         int tmp = OP_glPointSizex;memcpy(ptr, &tmp, 4); ptr += 4;
3254         memcpy(ptr, &totalSize, 4);  ptr += 4;
3255
3256                 memcpy(ptr, &size, 4); ptr += 4;
3257
3258         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3259         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3260
3261 }
3262
3263 void glPolygonOffsetx_enc(void *self , GLfixed factor, GLfixed units)
3264 {
3265
3266         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3267         IOStream *stream = ctx->m_stream;
3268         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3269         bool useChecksum = checksumCalculator->getVersion() > 0;
3270
3271          unsigned char *ptr;
3272          unsigned char *buf;
3273          const size_t sizeWithoutChecksum = 8 + 4 + 4;
3274          const size_t checksumSize = checksumCalculator->checksumByteSize();
3275          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3276         buf = stream->alloc(totalSize);
3277         ptr = buf;
3278         int tmp = OP_glPolygonOffsetx;memcpy(ptr, &tmp, 4); ptr += 4;
3279         memcpy(ptr, &totalSize, 4);  ptr += 4;
3280
3281                 memcpy(ptr, &factor, 4); ptr += 4;
3282                 memcpy(ptr, &units, 4); ptr += 4;
3283
3284         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3285         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3286
3287 }
3288
3289 void glPopMatrix_enc(void *self )
3290 {
3291
3292         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3293         IOStream *stream = ctx->m_stream;
3294         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3295         bool useChecksum = checksumCalculator->getVersion() > 0;
3296
3297          unsigned char *ptr;
3298          unsigned char *buf;
3299          const size_t sizeWithoutChecksum = 8;
3300          const size_t checksumSize = checksumCalculator->checksumByteSize();
3301          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3302         buf = stream->alloc(totalSize);
3303         ptr = buf;
3304         int tmp = OP_glPopMatrix;memcpy(ptr, &tmp, 4); ptr += 4;
3305         memcpy(ptr, &totalSize, 4);  ptr += 4;
3306
3307
3308         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3309         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3310
3311 }
3312
3313 void glPushMatrix_enc(void *self )
3314 {
3315
3316         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3317         IOStream *stream = ctx->m_stream;
3318         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3319         bool useChecksum = checksumCalculator->getVersion() > 0;
3320
3321          unsigned char *ptr;
3322          unsigned char *buf;
3323          const size_t sizeWithoutChecksum = 8;
3324          const size_t checksumSize = checksumCalculator->checksumByteSize();
3325          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3326         buf = stream->alloc(totalSize);
3327         ptr = buf;
3328         int tmp = OP_glPushMatrix;memcpy(ptr, &tmp, 4); ptr += 4;
3329         memcpy(ptr, &totalSize, 4);  ptr += 4;
3330
3331
3332         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3333         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3334
3335 }
3336
3337 void glReadPixels_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
3338 {
3339
3340         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3341         IOStream *stream = ctx->m_stream;
3342         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3343         bool useChecksum = checksumCalculator->getVersion() > 0;
3344
3345         const unsigned int __size_pixels =  glesv1_enc::pixelDataSize(self, width, height, format, type, 1);
3346          unsigned char *ptr;
3347          unsigned char *buf;
3348          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
3349          const size_t checksumSize = checksumCalculator->checksumByteSize();
3350          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3351         buf = stream->alloc(totalSize);
3352         ptr = buf;
3353         int tmp = OP_glReadPixels;memcpy(ptr, &tmp, 4); ptr += 4;
3354         memcpy(ptr, &totalSize, 4);  ptr += 4;
3355
3356                 memcpy(ptr, &x, 4); ptr += 4;
3357                 memcpy(ptr, &y, 4); ptr += 4;
3358                 memcpy(ptr, &width, 4); ptr += 4;
3359                 memcpy(ptr, &height, 4); ptr += 4;
3360                 memcpy(ptr, &format, 4); ptr += 4;
3361                 memcpy(ptr, &type, 4); ptr += 4;
3362         *(unsigned int *)(ptr) = __size_pixels; ptr += 4;
3363
3364         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3365         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3366
3367         stream->readback(pixels, __size_pixels);
3368         if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
3369         if (useChecksum) {
3370                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
3371                 stream->readback(checksumBuf.get(), checksumSize);
3372                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
3373                         ALOGE("glReadPixels: GL communication error, please report this issue to b.android.com.\n");
3374                         abort();
3375                 }
3376         }
3377 }
3378
3379 void glRotatex_enc(void *self , GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
3380 {
3381
3382         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3383         IOStream *stream = ctx->m_stream;
3384         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3385         bool useChecksum = checksumCalculator->getVersion() > 0;
3386
3387          unsigned char *ptr;
3388          unsigned char *buf;
3389          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3390          const size_t checksumSize = checksumCalculator->checksumByteSize();
3391          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3392         buf = stream->alloc(totalSize);
3393         ptr = buf;
3394         int tmp = OP_glRotatex;memcpy(ptr, &tmp, 4); ptr += 4;
3395         memcpy(ptr, &totalSize, 4);  ptr += 4;
3396
3397                 memcpy(ptr, &angle, 4); ptr += 4;
3398                 memcpy(ptr, &x, 4); ptr += 4;
3399                 memcpy(ptr, &y, 4); ptr += 4;
3400                 memcpy(ptr, &z, 4); ptr += 4;
3401
3402         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3403         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3404
3405 }
3406
3407 void glSampleCoverage_enc(void *self , GLclampf value, GLboolean invert)
3408 {
3409
3410         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3411         IOStream *stream = ctx->m_stream;
3412         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3413         bool useChecksum = checksumCalculator->getVersion() > 0;
3414
3415          unsigned char *ptr;
3416          unsigned char *buf;
3417          const size_t sizeWithoutChecksum = 8 + 4 + 1;
3418          const size_t checksumSize = checksumCalculator->checksumByteSize();
3419          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3420         buf = stream->alloc(totalSize);
3421         ptr = buf;
3422         int tmp = OP_glSampleCoverage;memcpy(ptr, &tmp, 4); ptr += 4;
3423         memcpy(ptr, &totalSize, 4);  ptr += 4;
3424
3425                 memcpy(ptr, &value, 4); ptr += 4;
3426                 memcpy(ptr, &invert, 1); ptr += 1;
3427
3428         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3429         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3430
3431 }
3432
3433 void glSampleCoveragex_enc(void *self , GLclampx value, GLboolean invert)
3434 {
3435
3436         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3437         IOStream *stream = ctx->m_stream;
3438         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3439         bool useChecksum = checksumCalculator->getVersion() > 0;
3440
3441          unsigned char *ptr;
3442          unsigned char *buf;
3443          const size_t sizeWithoutChecksum = 8 + 4 + 1;
3444          const size_t checksumSize = checksumCalculator->checksumByteSize();
3445          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3446         buf = stream->alloc(totalSize);
3447         ptr = buf;
3448         int tmp = OP_glSampleCoveragex;memcpy(ptr, &tmp, 4); ptr += 4;
3449         memcpy(ptr, &totalSize, 4);  ptr += 4;
3450
3451                 memcpy(ptr, &value, 4); ptr += 4;
3452                 memcpy(ptr, &invert, 1); ptr += 1;
3453
3454         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3455         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3456
3457 }
3458
3459 void glScalex_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
3460 {
3461
3462         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3463         IOStream *stream = ctx->m_stream;
3464         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3465         bool useChecksum = checksumCalculator->getVersion() > 0;
3466
3467          unsigned char *ptr;
3468          unsigned char *buf;
3469          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3470          const size_t checksumSize = checksumCalculator->checksumByteSize();
3471          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3472         buf = stream->alloc(totalSize);
3473         ptr = buf;
3474         int tmp = OP_glScalex;memcpy(ptr, &tmp, 4); ptr += 4;
3475         memcpy(ptr, &totalSize, 4);  ptr += 4;
3476
3477                 memcpy(ptr, &x, 4); ptr += 4;
3478                 memcpy(ptr, &y, 4); ptr += 4;
3479                 memcpy(ptr, &z, 4); ptr += 4;
3480
3481         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3482         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3483
3484 }
3485
3486 void glScissor_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height)
3487 {
3488
3489         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3490         IOStream *stream = ctx->m_stream;
3491         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3492         bool useChecksum = checksumCalculator->getVersion() > 0;
3493
3494          unsigned char *ptr;
3495          unsigned char *buf;
3496          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3497          const size_t checksumSize = checksumCalculator->checksumByteSize();
3498          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3499         buf = stream->alloc(totalSize);
3500         ptr = buf;
3501         int tmp = OP_glScissor;memcpy(ptr, &tmp, 4); ptr += 4;
3502         memcpy(ptr, &totalSize, 4);  ptr += 4;
3503
3504                 memcpy(ptr, &x, 4); ptr += 4;
3505                 memcpy(ptr, &y, 4); ptr += 4;
3506                 memcpy(ptr, &width, 4); ptr += 4;
3507                 memcpy(ptr, &height, 4); ptr += 4;
3508
3509         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3510         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3511
3512 }
3513
3514 void glShadeModel_enc(void *self , GLenum mode)
3515 {
3516
3517         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3518         IOStream *stream = ctx->m_stream;
3519         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3520         bool useChecksum = checksumCalculator->getVersion() > 0;
3521
3522          unsigned char *ptr;
3523          unsigned char *buf;
3524          const size_t sizeWithoutChecksum = 8 + 4;
3525          const size_t checksumSize = checksumCalculator->checksumByteSize();
3526          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3527         buf = stream->alloc(totalSize);
3528         ptr = buf;
3529         int tmp = OP_glShadeModel;memcpy(ptr, &tmp, 4); ptr += 4;
3530         memcpy(ptr, &totalSize, 4);  ptr += 4;
3531
3532                 memcpy(ptr, &mode, 4); ptr += 4;
3533
3534         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3535         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3536
3537 }
3538
3539 void glStencilFunc_enc(void *self , GLenum func, GLint ref, GLuint mask)
3540 {
3541
3542         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3543         IOStream *stream = ctx->m_stream;
3544         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3545         bool useChecksum = checksumCalculator->getVersion() > 0;
3546
3547          unsigned char *ptr;
3548          unsigned char *buf;
3549          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3550          const size_t checksumSize = checksumCalculator->checksumByteSize();
3551          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3552         buf = stream->alloc(totalSize);
3553         ptr = buf;
3554         int tmp = OP_glStencilFunc;memcpy(ptr, &tmp, 4); ptr += 4;
3555         memcpy(ptr, &totalSize, 4);  ptr += 4;
3556
3557                 memcpy(ptr, &func, 4); ptr += 4;
3558                 memcpy(ptr, &ref, 4); ptr += 4;
3559                 memcpy(ptr, &mask, 4); ptr += 4;
3560
3561         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3562         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3563
3564 }
3565
3566 void glStencilMask_enc(void *self , GLuint mask)
3567 {
3568
3569         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3570         IOStream *stream = ctx->m_stream;
3571         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3572         bool useChecksum = checksumCalculator->getVersion() > 0;
3573
3574          unsigned char *ptr;
3575          unsigned char *buf;
3576          const size_t sizeWithoutChecksum = 8 + 4;
3577          const size_t checksumSize = checksumCalculator->checksumByteSize();
3578          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3579         buf = stream->alloc(totalSize);
3580         ptr = buf;
3581         int tmp = OP_glStencilMask;memcpy(ptr, &tmp, 4); ptr += 4;
3582         memcpy(ptr, &totalSize, 4);  ptr += 4;
3583
3584                 memcpy(ptr, &mask, 4); ptr += 4;
3585
3586         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3587         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3588
3589 }
3590
3591 void glStencilOp_enc(void *self , GLenum fail, GLenum zfail, GLenum zpass)
3592 {
3593
3594         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3595         IOStream *stream = ctx->m_stream;
3596         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3597         bool useChecksum = checksumCalculator->getVersion() > 0;
3598
3599          unsigned char *ptr;
3600          unsigned char *buf;
3601          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3602          const size_t checksumSize = checksumCalculator->checksumByteSize();
3603          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3604         buf = stream->alloc(totalSize);
3605         ptr = buf;
3606         int tmp = OP_glStencilOp;memcpy(ptr, &tmp, 4); ptr += 4;
3607         memcpy(ptr, &totalSize, 4);  ptr += 4;
3608
3609                 memcpy(ptr, &fail, 4); ptr += 4;
3610                 memcpy(ptr, &zfail, 4); ptr += 4;
3611                 memcpy(ptr, &zpass, 4); ptr += 4;
3612
3613         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3614         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3615
3616 }
3617
3618 void glTexEnvi_enc(void *self , GLenum target, GLenum pname, GLint param)
3619 {
3620
3621         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3622         IOStream *stream = ctx->m_stream;
3623         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3624         bool useChecksum = checksumCalculator->getVersion() > 0;
3625
3626          unsigned char *ptr;
3627          unsigned char *buf;
3628          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3629          const size_t checksumSize = checksumCalculator->checksumByteSize();
3630          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3631         buf = stream->alloc(totalSize);
3632         ptr = buf;
3633         int tmp = OP_glTexEnvi;memcpy(ptr, &tmp, 4); ptr += 4;
3634         memcpy(ptr, &totalSize, 4);  ptr += 4;
3635
3636                 memcpy(ptr, &target, 4); ptr += 4;
3637                 memcpy(ptr, &pname, 4); ptr += 4;
3638                 memcpy(ptr, &param, 4); ptr += 4;
3639
3640         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3641         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3642
3643 }
3644
3645 void glTexEnvx_enc(void *self , GLenum target, GLenum pname, GLfixed param)
3646 {
3647
3648         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3649         IOStream *stream = ctx->m_stream;
3650         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3651         bool useChecksum = checksumCalculator->getVersion() > 0;
3652
3653          unsigned char *ptr;
3654          unsigned char *buf;
3655          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3656          const size_t checksumSize = checksumCalculator->checksumByteSize();
3657          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3658         buf = stream->alloc(totalSize);
3659         ptr = buf;
3660         int tmp = OP_glTexEnvx;memcpy(ptr, &tmp, 4); ptr += 4;
3661         memcpy(ptr, &totalSize, 4);  ptr += 4;
3662
3663                 memcpy(ptr, &target, 4); ptr += 4;
3664                 memcpy(ptr, &pname, 4); ptr += 4;
3665                 memcpy(ptr, &param, 4); ptr += 4;
3666
3667         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3668         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3669
3670 }
3671
3672 void glTexEnviv_enc(void *self , GLenum target, GLenum pname, const GLint* params)
3673 {
3674
3675         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3676         IOStream *stream = ctx->m_stream;
3677         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3678         bool useChecksum = checksumCalculator->getVersion() > 0;
3679
3680         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
3681          unsigned char *ptr;
3682          unsigned char *buf;
3683          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
3684          const size_t checksumSize = checksumCalculator->checksumByteSize();
3685          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3686         buf = stream->alloc(totalSize);
3687         ptr = buf;
3688         int tmp = OP_glTexEnviv;memcpy(ptr, &tmp, 4); ptr += 4;
3689         memcpy(ptr, &totalSize, 4);  ptr += 4;
3690
3691                 memcpy(ptr, &target, 4); ptr += 4;
3692                 memcpy(ptr, &pname, 4); ptr += 4;
3693         *(unsigned int *)(ptr) = __size_params; ptr += 4;
3694         memcpy(ptr, params, __size_params);ptr += __size_params;
3695
3696         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3697         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3698
3699 }
3700
3701 void glTexEnvxv_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
3702 {
3703
3704         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3705         IOStream *stream = ctx->m_stream;
3706         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3707         bool useChecksum = checksumCalculator->getVersion() > 0;
3708
3709         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
3710          unsigned char *ptr;
3711          unsigned char *buf;
3712          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
3713          const size_t checksumSize = checksumCalculator->checksumByteSize();
3714          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3715         buf = stream->alloc(totalSize);
3716         ptr = buf;
3717         int tmp = OP_glTexEnvxv;memcpy(ptr, &tmp, 4); ptr += 4;
3718         memcpy(ptr, &totalSize, 4);  ptr += 4;
3719
3720                 memcpy(ptr, &target, 4); ptr += 4;
3721                 memcpy(ptr, &pname, 4); ptr += 4;
3722         *(unsigned int *)(ptr) = __size_params; ptr += 4;
3723         memcpy(ptr, params, __size_params);ptr += __size_params;
3724
3725         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3726         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3727
3728 }
3729
3730 void glTexImage2D_enc(void *self , GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
3731 {
3732
3733         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3734         IOStream *stream = ctx->m_stream;
3735         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3736         bool useChecksum = checksumCalculator->getVersion() > 0;
3737
3738         const unsigned int __size_pixels = ((pixels != NULL) ?  glesv1_enc::pixelDataSize(self, width, height, format, type, 0) : 0);
3739          unsigned char *ptr;
3740          unsigned char *buf;
3741          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
3742          const size_t checksumSize = checksumCalculator->checksumByteSize();
3743          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3744         buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
3745         ptr = buf;
3746         int tmp = OP_glTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
3747         memcpy(ptr, &totalSize, 4);  ptr += 4;
3748
3749                 memcpy(ptr, &target, 4); ptr += 4;
3750                 memcpy(ptr, &level, 4); ptr += 4;
3751                 memcpy(ptr, &internalformat, 4); ptr += 4;
3752                 memcpy(ptr, &width, 4); ptr += 4;
3753                 memcpy(ptr, &height, 4); ptr += 4;
3754                 memcpy(ptr, &border, 4); ptr += 4;
3755                 memcpy(ptr, &format, 4); ptr += 4;
3756                 memcpy(ptr, &type, 4); ptr += 4;
3757
3758         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3759         stream->flush();
3760         stream->writeFully(&__size_pixels,4);
3761         if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4);
3762         if (pixels != NULL) {
3763                 stream->writeFully(pixels, __size_pixels);
3764                 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
3765         }
3766         buf = stream->alloc(checksumSize);
3767         if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
3768
3769 }
3770
3771 void glTexParameteri_enc(void *self , GLenum target, GLenum pname, GLint param)
3772 {
3773
3774         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3775         IOStream *stream = ctx->m_stream;
3776         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3777         bool useChecksum = checksumCalculator->getVersion() > 0;
3778
3779          unsigned char *ptr;
3780          unsigned char *buf;
3781          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3782          const size_t checksumSize = checksumCalculator->checksumByteSize();
3783          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3784         buf = stream->alloc(totalSize);
3785         ptr = buf;
3786         int tmp = OP_glTexParameteri;memcpy(ptr, &tmp, 4); ptr += 4;
3787         memcpy(ptr, &totalSize, 4);  ptr += 4;
3788
3789                 memcpy(ptr, &target, 4); ptr += 4;
3790                 memcpy(ptr, &pname, 4); ptr += 4;
3791                 memcpy(ptr, &param, 4); ptr += 4;
3792
3793         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3794         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3795
3796 }
3797
3798 void glTexParameterx_enc(void *self , GLenum target, GLenum pname, GLfixed param)
3799 {
3800
3801         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3802         IOStream *stream = ctx->m_stream;
3803         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3804         bool useChecksum = checksumCalculator->getVersion() > 0;
3805
3806          unsigned char *ptr;
3807          unsigned char *buf;
3808          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3809          const size_t checksumSize = checksumCalculator->checksumByteSize();
3810          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3811         buf = stream->alloc(totalSize);
3812         ptr = buf;
3813         int tmp = OP_glTexParameterx;memcpy(ptr, &tmp, 4); ptr += 4;
3814         memcpy(ptr, &totalSize, 4);  ptr += 4;
3815
3816                 memcpy(ptr, &target, 4); ptr += 4;
3817                 memcpy(ptr, &pname, 4); ptr += 4;
3818                 memcpy(ptr, &param, 4); ptr += 4;
3819
3820         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3821         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3822
3823 }
3824
3825 void glTexParameteriv_enc(void *self , GLenum target, GLenum pname, const GLint* params)
3826 {
3827
3828         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3829         IOStream *stream = ctx->m_stream;
3830         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3831         bool useChecksum = checksumCalculator->getVersion() > 0;
3832
3833         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
3834          unsigned char *ptr;
3835          unsigned char *buf;
3836          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
3837          const size_t checksumSize = checksumCalculator->checksumByteSize();
3838          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3839         buf = stream->alloc(totalSize);
3840         ptr = buf;
3841         int tmp = OP_glTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
3842         memcpy(ptr, &totalSize, 4);  ptr += 4;
3843
3844                 memcpy(ptr, &target, 4); ptr += 4;
3845                 memcpy(ptr, &pname, 4); ptr += 4;
3846         *(unsigned int *)(ptr) = __size_params; ptr += 4;
3847         memcpy(ptr, params, __size_params);ptr += __size_params;
3848
3849         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3850         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3851
3852 }
3853
3854 void glTexParameterxv_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
3855 {
3856
3857         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3858         IOStream *stream = ctx->m_stream;
3859         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3860         bool useChecksum = checksumCalculator->getVersion() > 0;
3861
3862         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
3863          unsigned char *ptr;
3864          unsigned char *buf;
3865          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
3866          const size_t checksumSize = checksumCalculator->checksumByteSize();
3867          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3868         buf = stream->alloc(totalSize);
3869         ptr = buf;
3870         int tmp = OP_glTexParameterxv;memcpy(ptr, &tmp, 4); ptr += 4;
3871         memcpy(ptr, &totalSize, 4);  ptr += 4;
3872
3873                 memcpy(ptr, &target, 4); ptr += 4;
3874                 memcpy(ptr, &pname, 4); ptr += 4;
3875         *(unsigned int *)(ptr) = __size_params; ptr += 4;
3876         memcpy(ptr, params, __size_params);ptr += __size_params;
3877
3878         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3879         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3880
3881 }
3882
3883 void glTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
3884 {
3885
3886         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3887         IOStream *stream = ctx->m_stream;
3888         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3889         bool useChecksum = checksumCalculator->getVersion() > 0;
3890
3891         const unsigned int __size_pixels = ((pixels != NULL) ?  glesv1_enc::pixelDataSize(self, width, height, format, type, 0) : 0);
3892          unsigned char *ptr;
3893          unsigned char *buf;
3894          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
3895          const size_t checksumSize = checksumCalculator->checksumByteSize();
3896          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3897         buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
3898         ptr = buf;
3899         int tmp = OP_glTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
3900         memcpy(ptr, &totalSize, 4);  ptr += 4;
3901
3902                 memcpy(ptr, &target, 4); ptr += 4;
3903                 memcpy(ptr, &level, 4); ptr += 4;
3904                 memcpy(ptr, &xoffset, 4); ptr += 4;
3905                 memcpy(ptr, &yoffset, 4); ptr += 4;
3906                 memcpy(ptr, &width, 4); ptr += 4;
3907                 memcpy(ptr, &height, 4); ptr += 4;
3908                 memcpy(ptr, &format, 4); ptr += 4;
3909                 memcpy(ptr, &type, 4); ptr += 4;
3910
3911         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3912         stream->flush();
3913         stream->writeFully(&__size_pixels,4);
3914         if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4);
3915         if (pixels != NULL) {
3916                 stream->writeFully(pixels, __size_pixels);
3917                 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
3918         }
3919         buf = stream->alloc(checksumSize);
3920         if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
3921
3922 }
3923
3924 void glTranslatex_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
3925 {
3926
3927         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3928         IOStream *stream = ctx->m_stream;
3929         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3930         bool useChecksum = checksumCalculator->getVersion() > 0;
3931
3932          unsigned char *ptr;
3933          unsigned char *buf;
3934          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3935          const size_t checksumSize = checksumCalculator->checksumByteSize();
3936          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3937         buf = stream->alloc(totalSize);
3938         ptr = buf;
3939         int tmp = OP_glTranslatex;memcpy(ptr, &tmp, 4); ptr += 4;
3940         memcpy(ptr, &totalSize, 4);  ptr += 4;
3941
3942                 memcpy(ptr, &x, 4); ptr += 4;
3943                 memcpy(ptr, &y, 4); ptr += 4;
3944                 memcpy(ptr, &z, 4); ptr += 4;
3945
3946         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3947         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3948
3949 }
3950
3951 void glViewport_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height)
3952 {
3953
3954         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3955         IOStream *stream = ctx->m_stream;
3956         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3957         bool useChecksum = checksumCalculator->getVersion() > 0;
3958
3959          unsigned char *ptr;
3960          unsigned char *buf;
3961          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3962          const size_t checksumSize = checksumCalculator->checksumByteSize();
3963          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3964         buf = stream->alloc(totalSize);
3965         ptr = buf;
3966         int tmp = OP_glViewport;memcpy(ptr, &tmp, 4); ptr += 4;
3967         memcpy(ptr, &totalSize, 4);  ptr += 4;
3968
3969                 memcpy(ptr, &x, 4); ptr += 4;
3970                 memcpy(ptr, &y, 4); ptr += 4;
3971                 memcpy(ptr, &width, 4); ptr += 4;
3972                 memcpy(ptr, &height, 4); ptr += 4;
3973
3974         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3975         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3976
3977 }
3978
3979 void glVertexPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
3980 {
3981
3982         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3983         IOStream *stream = ctx->m_stream;
3984         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3985         bool useChecksum = checksumCalculator->getVersion() > 0;
3986
3987          unsigned char *ptr;
3988          unsigned char *buf;
3989          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3990          const size_t checksumSize = checksumCalculator->checksumByteSize();
3991          const size_t totalSize = sizeWithoutChecksum + checksumSize;
3992         buf = stream->alloc(totalSize);
3993         ptr = buf;
3994         int tmp = OP_glVertexPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
3995         memcpy(ptr, &totalSize, 4);  ptr += 4;
3996
3997                 memcpy(ptr, &size, 4); ptr += 4;
3998                 memcpy(ptr, &type, 4); ptr += 4;
3999                 memcpy(ptr, &stride, 4); ptr += 4;
4000                 memcpy(ptr, &offset, 4); ptr += 4;
4001
4002         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4003         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4004
4005 }
4006
4007 void glColorPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
4008 {
4009
4010         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4011         IOStream *stream = ctx->m_stream;
4012         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4013         bool useChecksum = checksumCalculator->getVersion() > 0;
4014
4015          unsigned char *ptr;
4016          unsigned char *buf;
4017          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4018          const size_t checksumSize = checksumCalculator->checksumByteSize();
4019          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4020         buf = stream->alloc(totalSize);
4021         ptr = buf;
4022         int tmp = OP_glColorPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4023         memcpy(ptr, &totalSize, 4);  ptr += 4;
4024
4025                 memcpy(ptr, &size, 4); ptr += 4;
4026                 memcpy(ptr, &type, 4); ptr += 4;
4027                 memcpy(ptr, &stride, 4); ptr += 4;
4028                 memcpy(ptr, &offset, 4); ptr += 4;
4029
4030         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4031         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4032
4033 }
4034
4035 void glNormalPointerOffset_enc(void *self , GLenum type, GLsizei stride, GLuint offset)
4036 {
4037
4038         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4039         IOStream *stream = ctx->m_stream;
4040         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4041         bool useChecksum = checksumCalculator->getVersion() > 0;
4042
4043          unsigned char *ptr;
4044          unsigned char *buf;
4045          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
4046          const size_t checksumSize = checksumCalculator->checksumByteSize();
4047          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4048         buf = stream->alloc(totalSize);
4049         ptr = buf;
4050         int tmp = OP_glNormalPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4051         memcpy(ptr, &totalSize, 4);  ptr += 4;
4052
4053                 memcpy(ptr, &type, 4); ptr += 4;
4054                 memcpy(ptr, &stride, 4); ptr += 4;
4055                 memcpy(ptr, &offset, 4); ptr += 4;
4056
4057         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4058         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4059
4060 }
4061
4062 void glPointSizePointerOffset_enc(void *self , GLenum type, GLsizei stride, GLuint offset)
4063 {
4064
4065         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4066         IOStream *stream = ctx->m_stream;
4067         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4068         bool useChecksum = checksumCalculator->getVersion() > 0;
4069
4070          unsigned char *ptr;
4071          unsigned char *buf;
4072          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
4073          const size_t checksumSize = checksumCalculator->checksumByteSize();
4074          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4075         buf = stream->alloc(totalSize);
4076         ptr = buf;
4077         int tmp = OP_glPointSizePointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4078         memcpy(ptr, &totalSize, 4);  ptr += 4;
4079
4080                 memcpy(ptr, &type, 4); ptr += 4;
4081                 memcpy(ptr, &stride, 4); ptr += 4;
4082                 memcpy(ptr, &offset, 4); ptr += 4;
4083
4084         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4085         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4086
4087 }
4088
4089 void glTexCoordPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
4090 {
4091
4092         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4093         IOStream *stream = ctx->m_stream;
4094         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4095         bool useChecksum = checksumCalculator->getVersion() > 0;
4096
4097          unsigned char *ptr;
4098          unsigned char *buf;
4099          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4100          const size_t checksumSize = checksumCalculator->checksumByteSize();
4101          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4102         buf = stream->alloc(totalSize);
4103         ptr = buf;
4104         int tmp = OP_glTexCoordPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4105         memcpy(ptr, &totalSize, 4);  ptr += 4;
4106
4107                 memcpy(ptr, &size, 4); ptr += 4;
4108                 memcpy(ptr, &type, 4); ptr += 4;
4109                 memcpy(ptr, &stride, 4); ptr += 4;
4110                 memcpy(ptr, &offset, 4); ptr += 4;
4111
4112         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4113         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4114
4115 }
4116
4117 void glWeightPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
4118 {
4119
4120         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4121         IOStream *stream = ctx->m_stream;
4122         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4123         bool useChecksum = checksumCalculator->getVersion() > 0;
4124
4125          unsigned char *ptr;
4126          unsigned char *buf;
4127          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4128          const size_t checksumSize = checksumCalculator->checksumByteSize();
4129          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4130         buf = stream->alloc(totalSize);
4131         ptr = buf;
4132         int tmp = OP_glWeightPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4133         memcpy(ptr, &totalSize, 4);  ptr += 4;
4134
4135                 memcpy(ptr, &size, 4); ptr += 4;
4136                 memcpy(ptr, &type, 4); ptr += 4;
4137                 memcpy(ptr, &stride, 4); ptr += 4;
4138                 memcpy(ptr, &offset, 4); ptr += 4;
4139
4140         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4141         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4142
4143 }
4144
4145 void glMatrixIndexPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
4146 {
4147
4148         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4149         IOStream *stream = ctx->m_stream;
4150         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4151         bool useChecksum = checksumCalculator->getVersion() > 0;
4152
4153          unsigned char *ptr;
4154          unsigned char *buf;
4155          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4156          const size_t checksumSize = checksumCalculator->checksumByteSize();
4157          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4158         buf = stream->alloc(totalSize);
4159         ptr = buf;
4160         int tmp = OP_glMatrixIndexPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4161         memcpy(ptr, &totalSize, 4);  ptr += 4;
4162
4163                 memcpy(ptr, &size, 4); ptr += 4;
4164                 memcpy(ptr, &type, 4); ptr += 4;
4165                 memcpy(ptr, &stride, 4); ptr += 4;
4166                 memcpy(ptr, &offset, 4); ptr += 4;
4167
4168         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4169         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4170
4171 }
4172
4173 void glVertexPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
4174 {
4175
4176         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4177         IOStream *stream = ctx->m_stream;
4178         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4179         bool useChecksum = checksumCalculator->getVersion() > 0;
4180
4181         const unsigned int __size_data =  datalen;
4182          unsigned char *ptr;
4183          unsigned char *buf;
4184          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4185          const size_t checksumSize = checksumCalculator->checksumByteSize();
4186          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4187         buf = stream->alloc(totalSize);
4188         ptr = buf;
4189         int tmp = OP_glVertexPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4190         memcpy(ptr, &totalSize, 4);  ptr += 4;
4191
4192                 memcpy(ptr, &size, 4); ptr += 4;
4193                 memcpy(ptr, &type, 4); ptr += 4;
4194                 memcpy(ptr, &stride, 4); ptr += 4;
4195         *(unsigned int *)(ptr) = __size_data; ptr += 4;
4196          glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
4197                 memcpy(ptr, &datalen, 4); ptr += 4;
4198
4199         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4200         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4201
4202 }
4203
4204 void glColorPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
4205 {
4206
4207         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4208         IOStream *stream = ctx->m_stream;
4209         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4210         bool useChecksum = checksumCalculator->getVersion() > 0;
4211
4212         const unsigned int __size_data =  datalen;
4213          unsigned char *ptr;
4214          unsigned char *buf;
4215          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4216          const size_t checksumSize = checksumCalculator->checksumByteSize();
4217          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4218         buf = stream->alloc(totalSize);
4219         ptr = buf;
4220         int tmp = OP_glColorPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4221         memcpy(ptr, &totalSize, 4);  ptr += 4;
4222
4223                 memcpy(ptr, &size, 4); ptr += 4;
4224                 memcpy(ptr, &type, 4); ptr += 4;
4225                 memcpy(ptr, &stride, 4); ptr += 4;
4226         *(unsigned int *)(ptr) = __size_data; ptr += 4;
4227          glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
4228                 memcpy(ptr, &datalen, 4); ptr += 4;
4229
4230         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4231         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4232
4233 }
4234
4235 void glNormalPointerData_enc(void *self , GLenum type, GLsizei stride, void* data, GLuint datalen)
4236 {
4237
4238         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4239         IOStream *stream = ctx->m_stream;
4240         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4241         bool useChecksum = checksumCalculator->getVersion() > 0;
4242
4243         const unsigned int __size_data =  datalen;
4244          unsigned char *ptr;
4245          unsigned char *buf;
4246          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_data + 4 + 1*4;
4247          const size_t checksumSize = checksumCalculator->checksumByteSize();
4248          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4249         buf = stream->alloc(totalSize);
4250         ptr = buf;
4251         int tmp = OP_glNormalPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4252         memcpy(ptr, &totalSize, 4);  ptr += 4;
4253
4254                 memcpy(ptr, &type, 4); ptr += 4;
4255                 memcpy(ptr, &stride, 4); ptr += 4;
4256         *(unsigned int *)(ptr) = __size_data; ptr += 4;
4257          glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, 3, type, stride, datalen);ptr += __size_data;
4258                 memcpy(ptr, &datalen, 4); ptr += 4;
4259
4260         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4261         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4262
4263 }
4264
4265 void glTexCoordPointerData_enc(void *self , GLint unit, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
4266 {
4267
4268         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4269         IOStream *stream = ctx->m_stream;
4270         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4271         bool useChecksum = checksumCalculator->getVersion() > 0;
4272
4273         const unsigned int __size_data =  datalen;
4274          unsigned char *ptr;
4275          unsigned char *buf;
4276          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4277          const size_t checksumSize = checksumCalculator->checksumByteSize();
4278          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4279         buf = stream->alloc(totalSize);
4280         ptr = buf;
4281         int tmp = OP_glTexCoordPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4282         memcpy(ptr, &totalSize, 4);  ptr += 4;
4283
4284                 memcpy(ptr, &unit, 4); ptr += 4;
4285                 memcpy(ptr, &size, 4); ptr += 4;
4286                 memcpy(ptr, &type, 4); ptr += 4;
4287                 memcpy(ptr, &stride, 4); ptr += 4;
4288         *(unsigned int *)(ptr) = __size_data; ptr += 4;
4289          glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
4290                 memcpy(ptr, &datalen, 4); ptr += 4;
4291
4292         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4293         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4294
4295 }
4296
4297 void glPointSizePointerData_enc(void *self , GLenum type, GLsizei stride, void* data, GLuint datalen)
4298 {
4299
4300         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4301         IOStream *stream = ctx->m_stream;
4302         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4303         bool useChecksum = checksumCalculator->getVersion() > 0;
4304
4305         const unsigned int __size_data =  datalen;
4306          unsigned char *ptr;
4307          unsigned char *buf;
4308          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_data + 4 + 1*4;
4309          const size_t checksumSize = checksumCalculator->checksumByteSize();
4310          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4311         buf = stream->alloc(totalSize);
4312         ptr = buf;
4313         int tmp = OP_glPointSizePointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4314         memcpy(ptr, &totalSize, 4);  ptr += 4;
4315
4316                 memcpy(ptr, &type, 4); ptr += 4;
4317                 memcpy(ptr, &stride, 4); ptr += 4;
4318         *(unsigned int *)(ptr) = __size_data; ptr += 4;
4319          glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, 1, type, stride, datalen);ptr += __size_data;
4320                 memcpy(ptr, &datalen, 4); ptr += 4;
4321
4322         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4323         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4324
4325 }
4326
4327 void glWeightPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
4328 {
4329
4330         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4331         IOStream *stream = ctx->m_stream;
4332         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4333         bool useChecksum = checksumCalculator->getVersion() > 0;
4334
4335         const unsigned int __size_data =  datalen;
4336          unsigned char *ptr;
4337          unsigned char *buf;
4338          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4339          const size_t checksumSize = checksumCalculator->checksumByteSize();
4340          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4341         buf = stream->alloc(totalSize);
4342         ptr = buf;
4343         int tmp = OP_glWeightPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4344         memcpy(ptr, &totalSize, 4);  ptr += 4;
4345
4346                 memcpy(ptr, &size, 4); ptr += 4;
4347                 memcpy(ptr, &type, 4); ptr += 4;
4348                 memcpy(ptr, &stride, 4); ptr += 4;
4349         *(unsigned int *)(ptr) = __size_data; ptr += 4;
4350          glUtilsPackPointerData((unsigned char *)ptr, (unsigned char*)data, size, type, stride, datalen);ptr += __size_data;
4351                 memcpy(ptr, &datalen, 4); ptr += 4;
4352
4353         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4354         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4355
4356 }
4357
4358 void glMatrixIndexPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
4359 {
4360
4361         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4362         IOStream *stream = ctx->m_stream;
4363         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4364         bool useChecksum = checksumCalculator->getVersion() > 0;
4365
4366         const unsigned int __size_data =  datalen;
4367          unsigned char *ptr;
4368          unsigned char *buf;
4369          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4370          const size_t checksumSize = checksumCalculator->checksumByteSize();
4371          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4372         buf = stream->alloc(totalSize);
4373         ptr = buf;
4374         int tmp = OP_glMatrixIndexPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4375         memcpy(ptr, &totalSize, 4);  ptr += 4;
4376
4377                 memcpy(ptr, &size, 4); ptr += 4;
4378                 memcpy(ptr, &type, 4); ptr += 4;
4379                 memcpy(ptr, &stride, 4); ptr += 4;
4380         *(unsigned int *)(ptr) = __size_data; ptr += 4;
4381          glUtilsPackPointerData((unsigned char *)ptr, (unsigned char*)data, size, type, stride, datalen);ptr += __size_data;
4382                 memcpy(ptr, &datalen, 4); ptr += 4;
4383
4384         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4385         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4386
4387 }
4388
4389 void glDrawElementsOffset_enc(void *self , GLenum mode, GLsizei count, GLenum type, GLuint offset)
4390 {
4391
4392         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4393         IOStream *stream = ctx->m_stream;
4394         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4395         bool useChecksum = checksumCalculator->getVersion() > 0;
4396
4397          unsigned char *ptr;
4398          unsigned char *buf;
4399          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4400          const size_t checksumSize = checksumCalculator->checksumByteSize();
4401          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4402         buf = stream->alloc(totalSize);
4403         ptr = buf;
4404         int tmp = OP_glDrawElementsOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4405         memcpy(ptr, &totalSize, 4);  ptr += 4;
4406
4407                 memcpy(ptr, &mode, 4); ptr += 4;
4408                 memcpy(ptr, &count, 4); ptr += 4;
4409                 memcpy(ptr, &type, 4); ptr += 4;
4410                 memcpy(ptr, &offset, 4); ptr += 4;
4411
4412         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4413         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4414
4415 }
4416
4417 void glDrawElementsData_enc(void *self , GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen)
4418 {
4419
4420         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4421         IOStream *stream = ctx->m_stream;
4422         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4423         bool useChecksum = checksumCalculator->getVersion() > 0;
4424
4425         const unsigned int __size_data =  datalen;
4426          unsigned char *ptr;
4427          unsigned char *buf;
4428          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4429          const size_t checksumSize = checksumCalculator->checksumByteSize();
4430          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4431         buf = stream->alloc(totalSize);
4432         ptr = buf;
4433         int tmp = OP_glDrawElementsData;memcpy(ptr, &tmp, 4); ptr += 4;
4434         memcpy(ptr, &totalSize, 4);  ptr += 4;
4435
4436                 memcpy(ptr, &mode, 4); ptr += 4;
4437                 memcpy(ptr, &count, 4); ptr += 4;
4438                 memcpy(ptr, &type, 4); ptr += 4;
4439         *(unsigned int *)(ptr) = __size_data; ptr += 4;
4440         memcpy(ptr, data, __size_data);ptr += __size_data;
4441                 memcpy(ptr, &datalen, 4); ptr += 4;
4442
4443         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4444         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4445
4446 }
4447
4448 void glGetCompressedTextureFormats_enc(void *self , int count, GLint* formats)
4449 {
4450
4451         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4452         IOStream *stream = ctx->m_stream;
4453         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4454         bool useChecksum = checksumCalculator->getVersion() > 0;
4455
4456         const unsigned int __size_formats =  (count * sizeof(GLint));
4457          unsigned char *ptr;
4458          unsigned char *buf;
4459          const size_t sizeWithoutChecksum = 8 + 4 + __size_formats + 1*4;
4460          const size_t checksumSize = checksumCalculator->checksumByteSize();
4461          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4462         buf = stream->alloc(totalSize);
4463         ptr = buf;
4464         int tmp = OP_glGetCompressedTextureFormats;memcpy(ptr, &tmp, 4); ptr += 4;
4465         memcpy(ptr, &totalSize, 4);  ptr += 4;
4466
4467                 memcpy(ptr, &count, 4); ptr += 4;
4468         *(unsigned int *)(ptr) = __size_formats; ptr += 4;
4469
4470         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4471         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4472
4473         stream->readback(formats, __size_formats);
4474         if (useChecksum) checksumCalculator->addBuffer(formats, __size_formats);
4475         if (useChecksum) {
4476                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
4477                 stream->readback(checksumBuf.get(), checksumSize);
4478                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
4479                         ALOGE("glGetCompressedTextureFormats: GL communication error, please report this issue to b.android.com.\n");
4480                         abort();
4481                 }
4482         }
4483 }
4484
4485 int glFinishRoundTrip_enc(void *self )
4486 {
4487
4488         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4489         IOStream *stream = ctx->m_stream;
4490         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4491         bool useChecksum = checksumCalculator->getVersion() > 0;
4492
4493          unsigned char *ptr;
4494          unsigned char *buf;
4495          const size_t sizeWithoutChecksum = 8;
4496          const size_t checksumSize = checksumCalculator->checksumByteSize();
4497          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4498         buf = stream->alloc(totalSize);
4499         ptr = buf;
4500         int tmp = OP_glFinishRoundTrip;memcpy(ptr, &tmp, 4); ptr += 4;
4501         memcpy(ptr, &totalSize, 4);  ptr += 4;
4502
4503
4504         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4505         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4506
4507
4508         int retval;
4509         stream->readback(&retval, 4);
4510         if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
4511         if (useChecksum) {
4512                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
4513                 stream->readback(checksumBuf.get(), checksumSize);
4514                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
4515                         ALOGE("glFinishRoundTrip: GL communication error, please report this issue to b.android.com.\n");
4516                         abort();
4517                 }
4518         }
4519         return retval;
4520 }
4521
4522 void glBlendEquationSeparateOES_enc(void *self , GLenum modeRGB, GLenum modeAlpha)
4523 {
4524
4525         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4526         IOStream *stream = ctx->m_stream;
4527         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4528         bool useChecksum = checksumCalculator->getVersion() > 0;
4529
4530          unsigned char *ptr;
4531          unsigned char *buf;
4532          const size_t sizeWithoutChecksum = 8 + 4 + 4;
4533          const size_t checksumSize = checksumCalculator->checksumByteSize();
4534          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4535         buf = stream->alloc(totalSize);
4536         ptr = buf;
4537         int tmp = OP_glBlendEquationSeparateOES;memcpy(ptr, &tmp, 4); ptr += 4;
4538         memcpy(ptr, &totalSize, 4);  ptr += 4;
4539
4540                 memcpy(ptr, &modeRGB, 4); ptr += 4;
4541                 memcpy(ptr, &modeAlpha, 4); ptr += 4;
4542
4543         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4544         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4545
4546 }
4547
4548 void glBlendFuncSeparateOES_enc(void *self , GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
4549 {
4550
4551         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4552         IOStream *stream = ctx->m_stream;
4553         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4554         bool useChecksum = checksumCalculator->getVersion() > 0;
4555
4556          unsigned char *ptr;
4557          unsigned char *buf;
4558          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4559          const size_t checksumSize = checksumCalculator->checksumByteSize();
4560          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4561         buf = stream->alloc(totalSize);
4562         ptr = buf;
4563         int tmp = OP_glBlendFuncSeparateOES;memcpy(ptr, &tmp, 4); ptr += 4;
4564         memcpy(ptr, &totalSize, 4);  ptr += 4;
4565
4566                 memcpy(ptr, &srcRGB, 4); ptr += 4;
4567                 memcpy(ptr, &dstRGB, 4); ptr += 4;
4568                 memcpy(ptr, &srcAlpha, 4); ptr += 4;
4569                 memcpy(ptr, &dstAlpha, 4); ptr += 4;
4570
4571         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4572         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4573
4574 }
4575
4576 void glBlendEquationOES_enc(void *self , GLenum mode)
4577 {
4578
4579         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4580         IOStream *stream = ctx->m_stream;
4581         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4582         bool useChecksum = checksumCalculator->getVersion() > 0;
4583
4584          unsigned char *ptr;
4585          unsigned char *buf;
4586          const size_t sizeWithoutChecksum = 8 + 4;
4587          const size_t checksumSize = checksumCalculator->checksumByteSize();
4588          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4589         buf = stream->alloc(totalSize);
4590         ptr = buf;
4591         int tmp = OP_glBlendEquationOES;memcpy(ptr, &tmp, 4); ptr += 4;
4592         memcpy(ptr, &totalSize, 4);  ptr += 4;
4593
4594                 memcpy(ptr, &mode, 4); ptr += 4;
4595
4596         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4597         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4598
4599 }
4600
4601 void glDrawTexsOES_enc(void *self , GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
4602 {
4603
4604         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4605         IOStream *stream = ctx->m_stream;
4606         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4607         bool useChecksum = checksumCalculator->getVersion() > 0;
4608
4609          unsigned char *ptr;
4610          unsigned char *buf;
4611          const size_t sizeWithoutChecksum = 8 + 2 + 2 + 2 + 2 + 2;
4612          const size_t checksumSize = checksumCalculator->checksumByteSize();
4613          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4614         buf = stream->alloc(totalSize);
4615         ptr = buf;
4616         int tmp = OP_glDrawTexsOES;memcpy(ptr, &tmp, 4); ptr += 4;
4617         memcpy(ptr, &totalSize, 4);  ptr += 4;
4618
4619                 memcpy(ptr, &x, 2); ptr += 2;
4620                 memcpy(ptr, &y, 2); ptr += 2;
4621                 memcpy(ptr, &z, 2); ptr += 2;
4622                 memcpy(ptr, &width, 2); ptr += 2;
4623                 memcpy(ptr, &height, 2); ptr += 2;
4624
4625         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4626         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4627
4628 }
4629
4630 void glDrawTexiOES_enc(void *self , GLint x, GLint y, GLint z, GLint width, GLint height)
4631 {
4632
4633         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4634         IOStream *stream = ctx->m_stream;
4635         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4636         bool useChecksum = checksumCalculator->getVersion() > 0;
4637
4638          unsigned char *ptr;
4639          unsigned char *buf;
4640          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
4641          const size_t checksumSize = checksumCalculator->checksumByteSize();
4642          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4643         buf = stream->alloc(totalSize);
4644         ptr = buf;
4645         int tmp = OP_glDrawTexiOES;memcpy(ptr, &tmp, 4); ptr += 4;
4646         memcpy(ptr, &totalSize, 4);  ptr += 4;
4647
4648                 memcpy(ptr, &x, 4); ptr += 4;
4649                 memcpy(ptr, &y, 4); ptr += 4;
4650                 memcpy(ptr, &z, 4); ptr += 4;
4651                 memcpy(ptr, &width, 4); ptr += 4;
4652                 memcpy(ptr, &height, 4); ptr += 4;
4653
4654         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4655         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4656
4657 }
4658
4659 void glDrawTexxOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
4660 {
4661
4662         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4663         IOStream *stream = ctx->m_stream;
4664         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4665         bool useChecksum = checksumCalculator->getVersion() > 0;
4666
4667          unsigned char *ptr;
4668          unsigned char *buf;
4669          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
4670          const size_t checksumSize = checksumCalculator->checksumByteSize();
4671          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4672         buf = stream->alloc(totalSize);
4673         ptr = buf;
4674         int tmp = OP_glDrawTexxOES;memcpy(ptr, &tmp, 4); ptr += 4;
4675         memcpy(ptr, &totalSize, 4);  ptr += 4;
4676
4677                 memcpy(ptr, &x, 4); ptr += 4;
4678                 memcpy(ptr, &y, 4); ptr += 4;
4679                 memcpy(ptr, &z, 4); ptr += 4;
4680                 memcpy(ptr, &width, 4); ptr += 4;
4681                 memcpy(ptr, &height, 4); ptr += 4;
4682
4683         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4684         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4685
4686 }
4687
4688 void glDrawTexsvOES_enc(void *self , const GLshort* coords)
4689 {
4690
4691         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4692         IOStream *stream = ctx->m_stream;
4693         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4694         bool useChecksum = checksumCalculator->getVersion() > 0;
4695
4696         const unsigned int __size_coords =  (5 * sizeof(GLshort));
4697          unsigned char *ptr;
4698          unsigned char *buf;
4699          const size_t sizeWithoutChecksum = 8 + __size_coords + 1*4;
4700          const size_t checksumSize = checksumCalculator->checksumByteSize();
4701          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4702         buf = stream->alloc(totalSize);
4703         ptr = buf;
4704         int tmp = OP_glDrawTexsvOES;memcpy(ptr, &tmp, 4); ptr += 4;
4705         memcpy(ptr, &totalSize, 4);  ptr += 4;
4706
4707         *(unsigned int *)(ptr) = __size_coords; ptr += 4;
4708         memcpy(ptr, coords, __size_coords);ptr += __size_coords;
4709
4710         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4711         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4712
4713 }
4714
4715 void glDrawTexivOES_enc(void *self , const GLint* coords)
4716 {
4717
4718         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4719         IOStream *stream = ctx->m_stream;
4720         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4721         bool useChecksum = checksumCalculator->getVersion() > 0;
4722
4723         const unsigned int __size_coords =  (5 * sizeof(GLint));
4724          unsigned char *ptr;
4725          unsigned char *buf;
4726          const size_t sizeWithoutChecksum = 8 + __size_coords + 1*4;
4727          const size_t checksumSize = checksumCalculator->checksumByteSize();
4728          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4729         buf = stream->alloc(totalSize);
4730         ptr = buf;
4731         int tmp = OP_glDrawTexivOES;memcpy(ptr, &tmp, 4); ptr += 4;
4732         memcpy(ptr, &totalSize, 4);  ptr += 4;
4733
4734         *(unsigned int *)(ptr) = __size_coords; ptr += 4;
4735         memcpy(ptr, coords, __size_coords);ptr += __size_coords;
4736
4737         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4738         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4739
4740 }
4741
4742 void glDrawTexxvOES_enc(void *self , const GLfixed* coords)
4743 {
4744
4745         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4746         IOStream *stream = ctx->m_stream;
4747         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4748         bool useChecksum = checksumCalculator->getVersion() > 0;
4749
4750         const unsigned int __size_coords =  (5 * sizeof(GLfixed));
4751          unsigned char *ptr;
4752          unsigned char *buf;
4753          const size_t sizeWithoutChecksum = 8 + __size_coords + 1*4;
4754          const size_t checksumSize = checksumCalculator->checksumByteSize();
4755          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4756         buf = stream->alloc(totalSize);
4757         ptr = buf;
4758         int tmp = OP_glDrawTexxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
4759         memcpy(ptr, &totalSize, 4);  ptr += 4;
4760
4761         *(unsigned int *)(ptr) = __size_coords; ptr += 4;
4762         memcpy(ptr, coords, __size_coords);ptr += __size_coords;
4763
4764         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4765         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4766
4767 }
4768
4769 void glDrawTexfOES_enc(void *self , GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
4770 {
4771
4772         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4773         IOStream *stream = ctx->m_stream;
4774         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4775         bool useChecksum = checksumCalculator->getVersion() > 0;
4776
4777          unsigned char *ptr;
4778          unsigned char *buf;
4779          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
4780          const size_t checksumSize = checksumCalculator->checksumByteSize();
4781          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4782         buf = stream->alloc(totalSize);
4783         ptr = buf;
4784         int tmp = OP_glDrawTexfOES;memcpy(ptr, &tmp, 4); ptr += 4;
4785         memcpy(ptr, &totalSize, 4);  ptr += 4;
4786
4787                 memcpy(ptr, &x, 4); ptr += 4;
4788                 memcpy(ptr, &y, 4); ptr += 4;
4789                 memcpy(ptr, &z, 4); ptr += 4;
4790                 memcpy(ptr, &width, 4); ptr += 4;
4791                 memcpy(ptr, &height, 4); ptr += 4;
4792
4793         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4794         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4795
4796 }
4797
4798 void glDrawTexfvOES_enc(void *self , const GLfloat* coords)
4799 {
4800
4801         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4802         IOStream *stream = ctx->m_stream;
4803         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4804         bool useChecksum = checksumCalculator->getVersion() > 0;
4805
4806         const unsigned int __size_coords =  (5 * sizeof(GLfloat));
4807          unsigned char *ptr;
4808          unsigned char *buf;
4809          const size_t sizeWithoutChecksum = 8 + __size_coords + 1*4;
4810          const size_t checksumSize = checksumCalculator->checksumByteSize();
4811          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4812         buf = stream->alloc(totalSize);
4813         ptr = buf;
4814         int tmp = OP_glDrawTexfvOES;memcpy(ptr, &tmp, 4); ptr += 4;
4815         memcpy(ptr, &totalSize, 4);  ptr += 4;
4816
4817         *(unsigned int *)(ptr) = __size_coords; ptr += 4;
4818         memcpy(ptr, coords, __size_coords);ptr += __size_coords;
4819
4820         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4821         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4822
4823 }
4824
4825 void glEGLImageTargetTexture2DOES_enc(void *self , GLenum target, GLeglImageOES image)
4826 {
4827
4828         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4829         IOStream *stream = ctx->m_stream;
4830         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4831         bool useChecksum = checksumCalculator->getVersion() > 0;
4832
4833          unsigned char *ptr;
4834          unsigned char *buf;
4835          const size_t sizeWithoutChecksum = 8 + 4 + 4;
4836          const size_t checksumSize = checksumCalculator->checksumByteSize();
4837          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4838         buf = stream->alloc(totalSize);
4839         ptr = buf;
4840         int tmp = OP_glEGLImageTargetTexture2DOES;memcpy(ptr, &tmp, 4); ptr += 4;
4841         memcpy(ptr, &totalSize, 4);  ptr += 4;
4842
4843                 memcpy(ptr, &target, 4); ptr += 4;
4844                 memcpy(ptr, &image, 4); ptr += 4;
4845
4846         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4847         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4848
4849 }
4850
4851 void glEGLImageTargetRenderbufferStorageOES_enc(void *self , GLenum target, GLeglImageOES image)
4852 {
4853
4854         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4855         IOStream *stream = ctx->m_stream;
4856         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4857         bool useChecksum = checksumCalculator->getVersion() > 0;
4858
4859          unsigned char *ptr;
4860          unsigned char *buf;
4861          const size_t sizeWithoutChecksum = 8 + 4 + 4;
4862          const size_t checksumSize = checksumCalculator->checksumByteSize();
4863          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4864         buf = stream->alloc(totalSize);
4865         ptr = buf;
4866         int tmp = OP_glEGLImageTargetRenderbufferStorageOES;memcpy(ptr, &tmp, 4); ptr += 4;
4867         memcpy(ptr, &totalSize, 4);  ptr += 4;
4868
4869                 memcpy(ptr, &target, 4); ptr += 4;
4870                 memcpy(ptr, &image, 4); ptr += 4;
4871
4872         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4873         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4874
4875 }
4876
4877 void glAlphaFuncxOES_enc(void *self , GLenum func, GLclampx ref)
4878 {
4879
4880         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4881         IOStream *stream = ctx->m_stream;
4882         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4883         bool useChecksum = checksumCalculator->getVersion() > 0;
4884
4885          unsigned char *ptr;
4886          unsigned char *buf;
4887          const size_t sizeWithoutChecksum = 8 + 4 + 4;
4888          const size_t checksumSize = checksumCalculator->checksumByteSize();
4889          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4890         buf = stream->alloc(totalSize);
4891         ptr = buf;
4892         int tmp = OP_glAlphaFuncxOES;memcpy(ptr, &tmp, 4); ptr += 4;
4893         memcpy(ptr, &totalSize, 4);  ptr += 4;
4894
4895                 memcpy(ptr, &func, 4); ptr += 4;
4896                 memcpy(ptr, &ref, 4); ptr += 4;
4897
4898         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4899         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4900
4901 }
4902
4903 void glClearColorxOES_enc(void *self , GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
4904 {
4905
4906         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4907         IOStream *stream = ctx->m_stream;
4908         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4909         bool useChecksum = checksumCalculator->getVersion() > 0;
4910
4911          unsigned char *ptr;
4912          unsigned char *buf;
4913          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4914          const size_t checksumSize = checksumCalculator->checksumByteSize();
4915          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4916         buf = stream->alloc(totalSize);
4917         ptr = buf;
4918         int tmp = OP_glClearColorxOES;memcpy(ptr, &tmp, 4); ptr += 4;
4919         memcpy(ptr, &totalSize, 4);  ptr += 4;
4920
4921                 memcpy(ptr, &red, 4); ptr += 4;
4922                 memcpy(ptr, &green, 4); ptr += 4;
4923                 memcpy(ptr, &blue, 4); ptr += 4;
4924                 memcpy(ptr, &alpha, 4); ptr += 4;
4925
4926         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4927         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4928
4929 }
4930
4931 void glClearDepthxOES_enc(void *self , GLclampx depth)
4932 {
4933
4934         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4935         IOStream *stream = ctx->m_stream;
4936         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4937         bool useChecksum = checksumCalculator->getVersion() > 0;
4938
4939          unsigned char *ptr;
4940          unsigned char *buf;
4941          const size_t sizeWithoutChecksum = 8 + 4;
4942          const size_t checksumSize = checksumCalculator->checksumByteSize();
4943          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4944         buf = stream->alloc(totalSize);
4945         ptr = buf;
4946         int tmp = OP_glClearDepthxOES;memcpy(ptr, &tmp, 4); ptr += 4;
4947         memcpy(ptr, &totalSize, 4);  ptr += 4;
4948
4949                 memcpy(ptr, &depth, 4); ptr += 4;
4950
4951         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4952         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4953
4954 }
4955
4956 void glClipPlanexOES_enc(void *self , GLenum plane, const GLfixed* equation)
4957 {
4958
4959         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4960         IOStream *stream = ctx->m_stream;
4961         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4962         bool useChecksum = checksumCalculator->getVersion() > 0;
4963
4964         const unsigned int __size_equation =  (4 * sizeof(GLfixed));
4965          unsigned char *ptr;
4966          unsigned char *buf;
4967          const size_t sizeWithoutChecksum = 8 + 4 + __size_equation + 1*4;
4968          const size_t checksumSize = checksumCalculator->checksumByteSize();
4969          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4970         buf = stream->alloc(totalSize);
4971         ptr = buf;
4972         int tmp = OP_glClipPlanexOES;memcpy(ptr, &tmp, 4); ptr += 4;
4973         memcpy(ptr, &totalSize, 4);  ptr += 4;
4974
4975                 memcpy(ptr, &plane, 4); ptr += 4;
4976         *(unsigned int *)(ptr) = __size_equation; ptr += 4;
4977         memcpy(ptr, equation, __size_equation);ptr += __size_equation;
4978
4979         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4980         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4981
4982 }
4983
4984 void glClipPlanexIMG_enc(void *self , GLenum plane, const GLfixed* equation)
4985 {
4986
4987         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4988         IOStream *stream = ctx->m_stream;
4989         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4990         bool useChecksum = checksumCalculator->getVersion() > 0;
4991
4992         const unsigned int __size_equation =  (4 * sizeof(GLfixed));
4993          unsigned char *ptr;
4994          unsigned char *buf;
4995          const size_t sizeWithoutChecksum = 8 + 4 + __size_equation + 1*4;
4996          const size_t checksumSize = checksumCalculator->checksumByteSize();
4997          const size_t totalSize = sizeWithoutChecksum + checksumSize;
4998         buf = stream->alloc(totalSize);
4999         ptr = buf;
5000         int tmp = OP_glClipPlanexIMG;memcpy(ptr, &tmp, 4); ptr += 4;
5001         memcpy(ptr, &totalSize, 4);  ptr += 4;
5002
5003                 memcpy(ptr, &plane, 4); ptr += 4;
5004         *(unsigned int *)(ptr) = __size_equation; ptr += 4;
5005         memcpy(ptr, equation, __size_equation);ptr += __size_equation;
5006
5007         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5008         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5009
5010 }
5011
5012 void glColor4xOES_enc(void *self , GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
5013 {
5014
5015         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5016         IOStream *stream = ctx->m_stream;
5017         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5018         bool useChecksum = checksumCalculator->getVersion() > 0;
5019
5020          unsigned char *ptr;
5021          unsigned char *buf;
5022          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
5023          const size_t checksumSize = checksumCalculator->checksumByteSize();
5024          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5025         buf = stream->alloc(totalSize);
5026         ptr = buf;
5027         int tmp = OP_glColor4xOES;memcpy(ptr, &tmp, 4); ptr += 4;
5028         memcpy(ptr, &totalSize, 4);  ptr += 4;
5029
5030                 memcpy(ptr, &red, 4); ptr += 4;
5031                 memcpy(ptr, &green, 4); ptr += 4;
5032                 memcpy(ptr, &blue, 4); ptr += 4;
5033                 memcpy(ptr, &alpha, 4); ptr += 4;
5034
5035         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5036         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5037
5038 }
5039
5040 void glDepthRangexOES_enc(void *self , GLclampx zNear, GLclampx zFar)
5041 {
5042
5043         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5044         IOStream *stream = ctx->m_stream;
5045         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5046         bool useChecksum = checksumCalculator->getVersion() > 0;
5047
5048          unsigned char *ptr;
5049          unsigned char *buf;
5050          const size_t sizeWithoutChecksum = 8 + 4 + 4;
5051          const size_t checksumSize = checksumCalculator->checksumByteSize();
5052          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5053         buf = stream->alloc(totalSize);
5054         ptr = buf;
5055         int tmp = OP_glDepthRangexOES;memcpy(ptr, &tmp, 4); ptr += 4;
5056         memcpy(ptr, &totalSize, 4);  ptr += 4;
5057
5058                 memcpy(ptr, &zNear, 4); ptr += 4;
5059                 memcpy(ptr, &zFar, 4); ptr += 4;
5060
5061         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5062         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5063
5064 }
5065
5066 void glFogxOES_enc(void *self , GLenum pname, GLfixed param)
5067 {
5068
5069         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5070         IOStream *stream = ctx->m_stream;
5071         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5072         bool useChecksum = checksumCalculator->getVersion() > 0;
5073
5074          unsigned char *ptr;
5075          unsigned char *buf;
5076          const size_t sizeWithoutChecksum = 8 + 4 + 4;
5077          const size_t checksumSize = checksumCalculator->checksumByteSize();
5078          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5079         buf = stream->alloc(totalSize);
5080         ptr = buf;
5081         int tmp = OP_glFogxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5082         memcpy(ptr, &totalSize, 4);  ptr += 4;
5083
5084                 memcpy(ptr, &pname, 4); ptr += 4;
5085                 memcpy(ptr, &param, 4); ptr += 4;
5086
5087         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5088         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5089
5090 }
5091
5092 void glFogxvOES_enc(void *self , GLenum pname, const GLfixed* params)
5093 {
5094
5095         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5096         IOStream *stream = ctx->m_stream;
5097         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5098         bool useChecksum = checksumCalculator->getVersion() > 0;
5099
5100         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5101          unsigned char *ptr;
5102          unsigned char *buf;
5103          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
5104          const size_t checksumSize = checksumCalculator->checksumByteSize();
5105          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5106         buf = stream->alloc(totalSize);
5107         ptr = buf;
5108         int tmp = OP_glFogxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5109         memcpy(ptr, &totalSize, 4);  ptr += 4;
5110
5111                 memcpy(ptr, &pname, 4); ptr += 4;
5112         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5113         memcpy(ptr, params, __size_params);ptr += __size_params;
5114
5115         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5116         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5117
5118 }
5119
5120 void glFrustumxOES_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
5121 {
5122
5123         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5124         IOStream *stream = ctx->m_stream;
5125         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5126         bool useChecksum = checksumCalculator->getVersion() > 0;
5127
5128          unsigned char *ptr;
5129          unsigned char *buf;
5130          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
5131          const size_t checksumSize = checksumCalculator->checksumByteSize();
5132          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5133         buf = stream->alloc(totalSize);
5134         ptr = buf;
5135         int tmp = OP_glFrustumxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5136         memcpy(ptr, &totalSize, 4);  ptr += 4;
5137
5138                 memcpy(ptr, &left, 4); ptr += 4;
5139                 memcpy(ptr, &right, 4); ptr += 4;
5140                 memcpy(ptr, &bottom, 4); ptr += 4;
5141                 memcpy(ptr, &top, 4); ptr += 4;
5142                 memcpy(ptr, &zNear, 4); ptr += 4;
5143                 memcpy(ptr, &zFar, 4); ptr += 4;
5144
5145         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5146         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5147
5148 }
5149
5150 void glGetClipPlanexOES_enc(void *self , GLenum pname, GLfixed* eqn)
5151 {
5152
5153         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5154         IOStream *stream = ctx->m_stream;
5155         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5156         bool useChecksum = checksumCalculator->getVersion() > 0;
5157
5158         const unsigned int __size_eqn =  (4 * sizeof(GLfixed));
5159          unsigned char *ptr;
5160          unsigned char *buf;
5161          const size_t sizeWithoutChecksum = 8 + 4 + __size_eqn + 1*4;
5162          const size_t checksumSize = checksumCalculator->checksumByteSize();
5163          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5164         buf = stream->alloc(totalSize);
5165         ptr = buf;
5166         int tmp = OP_glGetClipPlanexOES;memcpy(ptr, &tmp, 4); ptr += 4;
5167         memcpy(ptr, &totalSize, 4);  ptr += 4;
5168
5169                 memcpy(ptr, &pname, 4); ptr += 4;
5170         *(unsigned int *)(ptr) = __size_eqn; ptr += 4;
5171
5172         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5173         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5174
5175         stream->readback(eqn, __size_eqn);
5176         if (useChecksum) checksumCalculator->addBuffer(eqn, __size_eqn);
5177         if (useChecksum) {
5178                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
5179                 stream->readback(checksumBuf.get(), checksumSize);
5180                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
5181                         ALOGE("glGetClipPlanexOES: GL communication error, please report this issue to b.android.com.\n");
5182                         abort();
5183                 }
5184         }
5185 }
5186
5187 void glGetClipPlanex_enc(void *self , GLenum pname, GLfixed* eqn)
5188 {
5189
5190         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5191         IOStream *stream = ctx->m_stream;
5192         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5193         bool useChecksum = checksumCalculator->getVersion() > 0;
5194
5195         const unsigned int __size_eqn =  (4 * sizeof(GLfixed));
5196          unsigned char *ptr;
5197          unsigned char *buf;
5198          const size_t sizeWithoutChecksum = 8 + 4 + __size_eqn + 1*4;
5199          const size_t checksumSize = checksumCalculator->checksumByteSize();
5200          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5201         buf = stream->alloc(totalSize);
5202         ptr = buf;
5203         int tmp = OP_glGetClipPlanex;memcpy(ptr, &tmp, 4); ptr += 4;
5204         memcpy(ptr, &totalSize, 4);  ptr += 4;
5205
5206                 memcpy(ptr, &pname, 4); ptr += 4;
5207         *(unsigned int *)(ptr) = __size_eqn; ptr += 4;
5208
5209         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5210         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5211
5212         stream->readback(eqn, __size_eqn);
5213         if (useChecksum) checksumCalculator->addBuffer(eqn, __size_eqn);
5214         if (useChecksum) {
5215                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
5216                 stream->readback(checksumBuf.get(), checksumSize);
5217                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
5218                         ALOGE("glGetClipPlanex: GL communication error, please report this issue to b.android.com.\n");
5219                         abort();
5220                 }
5221         }
5222 }
5223
5224 void glGetFixedvOES_enc(void *self , GLenum pname, GLfixed* params)
5225 {
5226
5227         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5228         IOStream *stream = ctx->m_stream;
5229         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5230         bool useChecksum = checksumCalculator->getVersion() > 0;
5231
5232         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5233          unsigned char *ptr;
5234          unsigned char *buf;
5235          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
5236          const size_t checksumSize = checksumCalculator->checksumByteSize();
5237          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5238         buf = stream->alloc(totalSize);
5239         ptr = buf;
5240         int tmp = OP_glGetFixedvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5241         memcpy(ptr, &totalSize, 4);  ptr += 4;
5242
5243                 memcpy(ptr, &pname, 4); ptr += 4;
5244         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5245
5246         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5247         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5248
5249         stream->readback(params, __size_params);
5250         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
5251         if (useChecksum) {
5252                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
5253                 stream->readback(checksumBuf.get(), checksumSize);
5254                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
5255                         ALOGE("glGetFixedvOES: GL communication error, please report this issue to b.android.com.\n");
5256                         abort();
5257                 }
5258         }
5259 }
5260
5261 void glGetLightxvOES_enc(void *self , GLenum light, GLenum pname, GLfixed* params)
5262 {
5263
5264         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5265         IOStream *stream = ctx->m_stream;
5266         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5267         bool useChecksum = checksumCalculator->getVersion() > 0;
5268
5269         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5270          unsigned char *ptr;
5271          unsigned char *buf;
5272          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
5273          const size_t checksumSize = checksumCalculator->checksumByteSize();
5274          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5275         buf = stream->alloc(totalSize);
5276         ptr = buf;
5277         int tmp = OP_glGetLightxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5278         memcpy(ptr, &totalSize, 4);  ptr += 4;
5279
5280                 memcpy(ptr, &light, 4); ptr += 4;
5281                 memcpy(ptr, &pname, 4); ptr += 4;
5282         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5283
5284         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5285         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5286
5287         stream->readback(params, __size_params);
5288         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
5289         if (useChecksum) {
5290                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
5291                 stream->readback(checksumBuf.get(), checksumSize);
5292                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
5293                         ALOGE("glGetLightxvOES: GL communication error, please report this issue to b.android.com.\n");
5294                         abort();
5295                 }
5296         }
5297 }
5298
5299 void glGetMaterialxvOES_enc(void *self , GLenum face, GLenum pname, GLfixed* params)
5300 {
5301
5302         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5303         IOStream *stream = ctx->m_stream;
5304         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5305         bool useChecksum = checksumCalculator->getVersion() > 0;
5306
5307         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5308          unsigned char *ptr;
5309          unsigned char *buf;
5310          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
5311          const size_t checksumSize = checksumCalculator->checksumByteSize();
5312          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5313         buf = stream->alloc(totalSize);
5314         ptr = buf;
5315         int tmp = OP_glGetMaterialxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5316         memcpy(ptr, &totalSize, 4);  ptr += 4;
5317
5318                 memcpy(ptr, &face, 4); ptr += 4;
5319                 memcpy(ptr, &pname, 4); ptr += 4;
5320         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5321
5322         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5323         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5324
5325         stream->readback(params, __size_params);
5326         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
5327         if (useChecksum) {
5328                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
5329                 stream->readback(checksumBuf.get(), checksumSize);
5330                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
5331                         ALOGE("glGetMaterialxvOES: GL communication error, please report this issue to b.android.com.\n");
5332                         abort();
5333                 }
5334         }
5335 }
5336
5337 void glGetTexEnvxvOES_enc(void *self , GLenum env, GLenum pname, GLfixed* params)
5338 {
5339
5340         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5341         IOStream *stream = ctx->m_stream;
5342         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5343         bool useChecksum = checksumCalculator->getVersion() > 0;
5344
5345         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5346          unsigned char *ptr;
5347          unsigned char *buf;
5348          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
5349          const size_t checksumSize = checksumCalculator->checksumByteSize();
5350          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5351         buf = stream->alloc(totalSize);
5352         ptr = buf;
5353         int tmp = OP_glGetTexEnvxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5354         memcpy(ptr, &totalSize, 4);  ptr += 4;
5355
5356                 memcpy(ptr, &env, 4); ptr += 4;
5357                 memcpy(ptr, &pname, 4); ptr += 4;
5358         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5359
5360         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5361         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5362
5363         stream->readback(params, __size_params);
5364         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
5365         if (useChecksum) {
5366                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
5367                 stream->readback(checksumBuf.get(), checksumSize);
5368                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
5369                         ALOGE("glGetTexEnvxvOES: GL communication error, please report this issue to b.android.com.\n");
5370                         abort();
5371                 }
5372         }
5373 }
5374
5375 void glGetTexParameterxvOES_enc(void *self , GLenum target, GLenum pname, GLfixed* params)
5376 {
5377
5378         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5379         IOStream *stream = ctx->m_stream;
5380         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5381         bool useChecksum = checksumCalculator->getVersion() > 0;
5382
5383         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5384          unsigned char *ptr;
5385          unsigned char *buf;
5386          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
5387          const size_t checksumSize = checksumCalculator->checksumByteSize();
5388          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5389         buf = stream->alloc(totalSize);
5390         ptr = buf;
5391         int tmp = OP_glGetTexParameterxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5392         memcpy(ptr, &totalSize, 4);  ptr += 4;
5393
5394                 memcpy(ptr, &target, 4); ptr += 4;
5395                 memcpy(ptr, &pname, 4); ptr += 4;
5396         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5397
5398         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5399         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5400
5401         stream->readback(params, __size_params);
5402         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
5403         if (useChecksum) {
5404                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
5405                 stream->readback(checksumBuf.get(), checksumSize);
5406                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
5407                         ALOGE("glGetTexParameterxvOES: GL communication error, please report this issue to b.android.com.\n");
5408                         abort();
5409                 }
5410         }
5411 }
5412
5413 void glLightModelxOES_enc(void *self , GLenum pname, GLfixed param)
5414 {
5415
5416         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5417         IOStream *stream = ctx->m_stream;
5418         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5419         bool useChecksum = checksumCalculator->getVersion() > 0;
5420
5421          unsigned char *ptr;
5422          unsigned char *buf;
5423          const size_t sizeWithoutChecksum = 8 + 4 + 4;
5424          const size_t checksumSize = checksumCalculator->checksumByteSize();
5425          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5426         buf = stream->alloc(totalSize);
5427         ptr = buf;
5428         int tmp = OP_glLightModelxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5429         memcpy(ptr, &totalSize, 4);  ptr += 4;
5430
5431                 memcpy(ptr, &pname, 4); ptr += 4;
5432                 memcpy(ptr, &param, 4); ptr += 4;
5433
5434         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5435         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5436
5437 }
5438
5439 void glLightModelxvOES_enc(void *self , GLenum pname, const GLfixed* params)
5440 {
5441
5442         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5443         IOStream *stream = ctx->m_stream;
5444         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5445         bool useChecksum = checksumCalculator->getVersion() > 0;
5446
5447         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5448          unsigned char *ptr;
5449          unsigned char *buf;
5450          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
5451          const size_t checksumSize = checksumCalculator->checksumByteSize();
5452          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5453         buf = stream->alloc(totalSize);
5454         ptr = buf;
5455         int tmp = OP_glLightModelxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5456         memcpy(ptr, &totalSize, 4);  ptr += 4;
5457
5458                 memcpy(ptr, &pname, 4); ptr += 4;
5459         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5460         memcpy(ptr, params, __size_params);ptr += __size_params;
5461
5462         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5463         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5464
5465 }
5466
5467 void glLightxOES_enc(void *self , GLenum light, GLenum pname, GLfixed param)
5468 {
5469
5470         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5471         IOStream *stream = ctx->m_stream;
5472         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5473         bool useChecksum = checksumCalculator->getVersion() > 0;
5474
5475          unsigned char *ptr;
5476          unsigned char *buf;
5477          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
5478          const size_t checksumSize = checksumCalculator->checksumByteSize();
5479          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5480         buf = stream->alloc(totalSize);
5481         ptr = buf;
5482         int tmp = OP_glLightxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5483         memcpy(ptr, &totalSize, 4);  ptr += 4;
5484
5485                 memcpy(ptr, &light, 4); ptr += 4;
5486                 memcpy(ptr, &pname, 4); ptr += 4;
5487                 memcpy(ptr, &param, 4); ptr += 4;
5488
5489         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5490         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5491
5492 }
5493
5494 void glLightxvOES_enc(void *self , GLenum light, GLenum pname, const GLfixed* params)
5495 {
5496
5497         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5498         IOStream *stream = ctx->m_stream;
5499         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5500         bool useChecksum = checksumCalculator->getVersion() > 0;
5501
5502         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5503          unsigned char *ptr;
5504          unsigned char *buf;
5505          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
5506          const size_t checksumSize = checksumCalculator->checksumByteSize();
5507          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5508         buf = stream->alloc(totalSize);
5509         ptr = buf;
5510         int tmp = OP_glLightxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5511         memcpy(ptr, &totalSize, 4);  ptr += 4;
5512
5513                 memcpy(ptr, &light, 4); ptr += 4;
5514                 memcpy(ptr, &pname, 4); ptr += 4;
5515         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5516         memcpy(ptr, params, __size_params);ptr += __size_params;
5517
5518         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5519         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5520
5521 }
5522
5523 void glLineWidthxOES_enc(void *self , GLfixed width)
5524 {
5525
5526         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5527         IOStream *stream = ctx->m_stream;
5528         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5529         bool useChecksum = checksumCalculator->getVersion() > 0;
5530
5531          unsigned char *ptr;
5532          unsigned char *buf;
5533          const size_t sizeWithoutChecksum = 8 + 4;
5534          const size_t checksumSize = checksumCalculator->checksumByteSize();
5535          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5536         buf = stream->alloc(totalSize);
5537         ptr = buf;
5538         int tmp = OP_glLineWidthxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5539         memcpy(ptr, &totalSize, 4);  ptr += 4;
5540
5541                 memcpy(ptr, &width, 4); ptr += 4;
5542
5543         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5544         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5545
5546 }
5547
5548 void glLoadMatrixxOES_enc(void *self , const GLfixed* m)
5549 {
5550
5551         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5552         IOStream *stream = ctx->m_stream;
5553         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5554         bool useChecksum = checksumCalculator->getVersion() > 0;
5555
5556         const unsigned int __size_m =  (16 * sizeof(GLfixed));
5557          unsigned char *ptr;
5558          unsigned char *buf;
5559          const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
5560          const size_t checksumSize = checksumCalculator->checksumByteSize();
5561          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5562         buf = stream->alloc(totalSize);
5563         ptr = buf;
5564         int tmp = OP_glLoadMatrixxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5565         memcpy(ptr, &totalSize, 4);  ptr += 4;
5566
5567         *(unsigned int *)(ptr) = __size_m; ptr += 4;
5568         memcpy(ptr, m, __size_m);ptr += __size_m;
5569
5570         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5571         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5572
5573 }
5574
5575 void glMaterialxOES_enc(void *self , GLenum face, GLenum pname, GLfixed param)
5576 {
5577
5578         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5579         IOStream *stream = ctx->m_stream;
5580         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5581         bool useChecksum = checksumCalculator->getVersion() > 0;
5582
5583          unsigned char *ptr;
5584          unsigned char *buf;
5585          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
5586          const size_t checksumSize = checksumCalculator->checksumByteSize();
5587          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5588         buf = stream->alloc(totalSize);
5589         ptr = buf;
5590         int tmp = OP_glMaterialxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5591         memcpy(ptr, &totalSize, 4);  ptr += 4;
5592
5593                 memcpy(ptr, &face, 4); ptr += 4;
5594                 memcpy(ptr, &pname, 4); ptr += 4;
5595                 memcpy(ptr, &param, 4); ptr += 4;
5596
5597         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5598         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5599
5600 }
5601
5602 void glMaterialxvOES_enc(void *self , GLenum face, GLenum pname, const GLfixed* params)
5603 {
5604
5605         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5606         IOStream *stream = ctx->m_stream;
5607         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5608         bool useChecksum = checksumCalculator->getVersion() > 0;
5609
5610         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5611          unsigned char *ptr;
5612          unsigned char *buf;
5613          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
5614          const size_t checksumSize = checksumCalculator->checksumByteSize();
5615          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5616         buf = stream->alloc(totalSize);
5617         ptr = buf;
5618         int tmp = OP_glMaterialxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5619         memcpy(ptr, &totalSize, 4);  ptr += 4;
5620
5621                 memcpy(ptr, &face, 4); ptr += 4;
5622                 memcpy(ptr, &pname, 4); ptr += 4;
5623         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5624         memcpy(ptr, params, __size_params);ptr += __size_params;
5625
5626         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5627         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5628
5629 }
5630
5631 void glMultMatrixxOES_enc(void *self , const GLfixed* m)
5632 {
5633
5634         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5635         IOStream *stream = ctx->m_stream;
5636         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5637         bool useChecksum = checksumCalculator->getVersion() > 0;
5638
5639         const unsigned int __size_m =  (16 * sizeof(GLfixed));
5640          unsigned char *ptr;
5641          unsigned char *buf;
5642          const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
5643          const size_t checksumSize = checksumCalculator->checksumByteSize();
5644          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5645         buf = stream->alloc(totalSize);
5646         ptr = buf;
5647         int tmp = OP_glMultMatrixxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5648         memcpy(ptr, &totalSize, 4);  ptr += 4;
5649
5650         *(unsigned int *)(ptr) = __size_m; ptr += 4;
5651         memcpy(ptr, m, __size_m);ptr += __size_m;
5652
5653         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5654         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5655
5656 }
5657
5658 void glMultiTexCoord4xOES_enc(void *self , GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
5659 {
5660
5661         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5662         IOStream *stream = ctx->m_stream;
5663         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5664         bool useChecksum = checksumCalculator->getVersion() > 0;
5665
5666          unsigned char *ptr;
5667          unsigned char *buf;
5668          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
5669          const size_t checksumSize = checksumCalculator->checksumByteSize();
5670          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5671         buf = stream->alloc(totalSize);
5672         ptr = buf;
5673         int tmp = OP_glMultiTexCoord4xOES;memcpy(ptr, &tmp, 4); ptr += 4;
5674         memcpy(ptr, &totalSize, 4);  ptr += 4;
5675
5676                 memcpy(ptr, &target, 4); ptr += 4;
5677                 memcpy(ptr, &s, 4); ptr += 4;
5678                 memcpy(ptr, &t, 4); ptr += 4;
5679                 memcpy(ptr, &r, 4); ptr += 4;
5680                 memcpy(ptr, &q, 4); ptr += 4;
5681
5682         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5683         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5684
5685 }
5686
5687 void glNormal3xOES_enc(void *self , GLfixed nx, GLfixed ny, GLfixed nz)
5688 {
5689
5690         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5691         IOStream *stream = ctx->m_stream;
5692         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5693         bool useChecksum = checksumCalculator->getVersion() > 0;
5694
5695          unsigned char *ptr;
5696          unsigned char *buf;
5697          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
5698          const size_t checksumSize = checksumCalculator->checksumByteSize();
5699          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5700         buf = stream->alloc(totalSize);
5701         ptr = buf;
5702         int tmp = OP_glNormal3xOES;memcpy(ptr, &tmp, 4); ptr += 4;
5703         memcpy(ptr, &totalSize, 4);  ptr += 4;
5704
5705                 memcpy(ptr, &nx, 4); ptr += 4;
5706                 memcpy(ptr, &ny, 4); ptr += 4;
5707                 memcpy(ptr, &nz, 4); ptr += 4;
5708
5709         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5710         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5711
5712 }
5713
5714 void glOrthoxOES_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
5715 {
5716
5717         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5718         IOStream *stream = ctx->m_stream;
5719         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5720         bool useChecksum = checksumCalculator->getVersion() > 0;
5721
5722          unsigned char *ptr;
5723          unsigned char *buf;
5724          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
5725          const size_t checksumSize = checksumCalculator->checksumByteSize();
5726          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5727         buf = stream->alloc(totalSize);
5728         ptr = buf;
5729         int tmp = OP_glOrthoxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5730         memcpy(ptr, &totalSize, 4);  ptr += 4;
5731
5732                 memcpy(ptr, &left, 4); ptr += 4;
5733                 memcpy(ptr, &right, 4); ptr += 4;
5734                 memcpy(ptr, &bottom, 4); ptr += 4;
5735                 memcpy(ptr, &top, 4); ptr += 4;
5736                 memcpy(ptr, &zNear, 4); ptr += 4;
5737                 memcpy(ptr, &zFar, 4); ptr += 4;
5738
5739         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5740         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5741
5742 }
5743
5744 void glPointParameterxOES_enc(void *self , GLenum pname, GLfixed param)
5745 {
5746
5747         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5748         IOStream *stream = ctx->m_stream;
5749         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5750         bool useChecksum = checksumCalculator->getVersion() > 0;
5751
5752          unsigned char *ptr;
5753          unsigned char *buf;
5754          const size_t sizeWithoutChecksum = 8 + 4 + 4;
5755          const size_t checksumSize = checksumCalculator->checksumByteSize();
5756          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5757         buf = stream->alloc(totalSize);
5758         ptr = buf;
5759         int tmp = OP_glPointParameterxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5760         memcpy(ptr, &totalSize, 4);  ptr += 4;
5761
5762                 memcpy(ptr, &pname, 4); ptr += 4;
5763                 memcpy(ptr, &param, 4); ptr += 4;
5764
5765         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5766         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5767
5768 }
5769
5770 void glPointParameterxvOES_enc(void *self , GLenum pname, const GLfixed* params)
5771 {
5772
5773         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5774         IOStream *stream = ctx->m_stream;
5775         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5776         bool useChecksum = checksumCalculator->getVersion() > 0;
5777
5778         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5779          unsigned char *ptr;
5780          unsigned char *buf;
5781          const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
5782          const size_t checksumSize = checksumCalculator->checksumByteSize();
5783          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5784         buf = stream->alloc(totalSize);
5785         ptr = buf;
5786         int tmp = OP_glPointParameterxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5787         memcpy(ptr, &totalSize, 4);  ptr += 4;
5788
5789                 memcpy(ptr, &pname, 4); ptr += 4;
5790         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5791         memcpy(ptr, params, __size_params);ptr += __size_params;
5792
5793         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5794         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5795
5796 }
5797
5798 void glPointSizexOES_enc(void *self , GLfixed size)
5799 {
5800
5801         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5802         IOStream *stream = ctx->m_stream;
5803         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5804         bool useChecksum = checksumCalculator->getVersion() > 0;
5805
5806          unsigned char *ptr;
5807          unsigned char *buf;
5808          const size_t sizeWithoutChecksum = 8 + 4;
5809          const size_t checksumSize = checksumCalculator->checksumByteSize();
5810          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5811         buf = stream->alloc(totalSize);
5812         ptr = buf;
5813         int tmp = OP_glPointSizexOES;memcpy(ptr, &tmp, 4); ptr += 4;
5814         memcpy(ptr, &totalSize, 4);  ptr += 4;
5815
5816                 memcpy(ptr, &size, 4); ptr += 4;
5817
5818         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5819         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5820
5821 }
5822
5823 void glPolygonOffsetxOES_enc(void *self , GLfixed factor, GLfixed units)
5824 {
5825
5826         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5827         IOStream *stream = ctx->m_stream;
5828         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5829         bool useChecksum = checksumCalculator->getVersion() > 0;
5830
5831          unsigned char *ptr;
5832          unsigned char *buf;
5833          const size_t sizeWithoutChecksum = 8 + 4 + 4;
5834          const size_t checksumSize = checksumCalculator->checksumByteSize();
5835          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5836         buf = stream->alloc(totalSize);
5837         ptr = buf;
5838         int tmp = OP_glPolygonOffsetxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5839         memcpy(ptr, &totalSize, 4);  ptr += 4;
5840
5841                 memcpy(ptr, &factor, 4); ptr += 4;
5842                 memcpy(ptr, &units, 4); ptr += 4;
5843
5844         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5845         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5846
5847 }
5848
5849 void glRotatexOES_enc(void *self , GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
5850 {
5851
5852         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5853         IOStream *stream = ctx->m_stream;
5854         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5855         bool useChecksum = checksumCalculator->getVersion() > 0;
5856
5857          unsigned char *ptr;
5858          unsigned char *buf;
5859          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
5860          const size_t checksumSize = checksumCalculator->checksumByteSize();
5861          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5862         buf = stream->alloc(totalSize);
5863         ptr = buf;
5864         int tmp = OP_glRotatexOES;memcpy(ptr, &tmp, 4); ptr += 4;
5865         memcpy(ptr, &totalSize, 4);  ptr += 4;
5866
5867                 memcpy(ptr, &angle, 4); ptr += 4;
5868                 memcpy(ptr, &x, 4); ptr += 4;
5869                 memcpy(ptr, &y, 4); ptr += 4;
5870                 memcpy(ptr, &z, 4); ptr += 4;
5871
5872         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5873         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5874
5875 }
5876
5877 void glSampleCoveragexOES_enc(void *self , GLclampx value, GLboolean invert)
5878 {
5879
5880         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5881         IOStream *stream = ctx->m_stream;
5882         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5883         bool useChecksum = checksumCalculator->getVersion() > 0;
5884
5885          unsigned char *ptr;
5886          unsigned char *buf;
5887          const size_t sizeWithoutChecksum = 8 + 4 + 1;
5888          const size_t checksumSize = checksumCalculator->checksumByteSize();
5889          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5890         buf = stream->alloc(totalSize);
5891         ptr = buf;
5892         int tmp = OP_glSampleCoveragexOES;memcpy(ptr, &tmp, 4); ptr += 4;
5893         memcpy(ptr, &totalSize, 4);  ptr += 4;
5894
5895                 memcpy(ptr, &value, 4); ptr += 4;
5896                 memcpy(ptr, &invert, 1); ptr += 1;
5897
5898         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5899         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5900
5901 }
5902
5903 void glScalexOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
5904 {
5905
5906         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5907         IOStream *stream = ctx->m_stream;
5908         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5909         bool useChecksum = checksumCalculator->getVersion() > 0;
5910
5911          unsigned char *ptr;
5912          unsigned char *buf;
5913          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
5914          const size_t checksumSize = checksumCalculator->checksumByteSize();
5915          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5916         buf = stream->alloc(totalSize);
5917         ptr = buf;
5918         int tmp = OP_glScalexOES;memcpy(ptr, &tmp, 4); ptr += 4;
5919         memcpy(ptr, &totalSize, 4);  ptr += 4;
5920
5921                 memcpy(ptr, &x, 4); ptr += 4;
5922                 memcpy(ptr, &y, 4); ptr += 4;
5923                 memcpy(ptr, &z, 4); ptr += 4;
5924
5925         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5926         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5927
5928 }
5929
5930 void glTexEnvxOES_enc(void *self , GLenum target, GLenum pname, GLfixed param)
5931 {
5932
5933         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5934         IOStream *stream = ctx->m_stream;
5935         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5936         bool useChecksum = checksumCalculator->getVersion() > 0;
5937
5938          unsigned char *ptr;
5939          unsigned char *buf;
5940          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
5941          const size_t checksumSize = checksumCalculator->checksumByteSize();
5942          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5943         buf = stream->alloc(totalSize);
5944         ptr = buf;
5945         int tmp = OP_glTexEnvxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5946         memcpy(ptr, &totalSize, 4);  ptr += 4;
5947
5948                 memcpy(ptr, &target, 4); ptr += 4;
5949                 memcpy(ptr, &pname, 4); ptr += 4;
5950                 memcpy(ptr, &param, 4); ptr += 4;
5951
5952         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5953         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5954
5955 }
5956
5957 void glTexEnvxvOES_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
5958 {
5959
5960         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5961         IOStream *stream = ctx->m_stream;
5962         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5963         bool useChecksum = checksumCalculator->getVersion() > 0;
5964
5965         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5966          unsigned char *ptr;
5967          unsigned char *buf;
5968          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
5969          const size_t checksumSize = checksumCalculator->checksumByteSize();
5970          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5971         buf = stream->alloc(totalSize);
5972         ptr = buf;
5973         int tmp = OP_glTexEnvxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5974         memcpy(ptr, &totalSize, 4);  ptr += 4;
5975
5976                 memcpy(ptr, &target, 4); ptr += 4;
5977                 memcpy(ptr, &pname, 4); ptr += 4;
5978         *(unsigned int *)(ptr) = __size_params; ptr += 4;
5979         memcpy(ptr, params, __size_params);ptr += __size_params;
5980
5981         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5982         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5983
5984 }
5985
5986 void glTexParameterxOES_enc(void *self , GLenum target, GLenum pname, GLfixed param)
5987 {
5988
5989         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5990         IOStream *stream = ctx->m_stream;
5991         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5992         bool useChecksum = checksumCalculator->getVersion() > 0;
5993
5994          unsigned char *ptr;
5995          unsigned char *buf;
5996          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
5997          const size_t checksumSize = checksumCalculator->checksumByteSize();
5998          const size_t totalSize = sizeWithoutChecksum + checksumSize;
5999         buf = stream->alloc(totalSize);
6000         ptr = buf;
6001         int tmp = OP_glTexParameterxOES;memcpy(ptr, &tmp, 4); ptr += 4;
6002         memcpy(ptr, &totalSize, 4);  ptr += 4;
6003
6004                 memcpy(ptr, &target, 4); ptr += 4;
6005                 memcpy(ptr, &pname, 4); ptr += 4;
6006                 memcpy(ptr, &param, 4); ptr += 4;
6007
6008         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6009         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6010
6011 }
6012
6013 void glTexParameterxvOES_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
6014 {
6015
6016         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6017         IOStream *stream = ctx->m_stream;
6018         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6019         bool useChecksum = checksumCalculator->getVersion() > 0;
6020
6021         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
6022          unsigned char *ptr;
6023          unsigned char *buf;
6024          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
6025          const size_t checksumSize = checksumCalculator->checksumByteSize();
6026          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6027         buf = stream->alloc(totalSize);
6028         ptr = buf;
6029         int tmp = OP_glTexParameterxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
6030         memcpy(ptr, &totalSize, 4);  ptr += 4;
6031
6032                 memcpy(ptr, &target, 4); ptr += 4;
6033                 memcpy(ptr, &pname, 4); ptr += 4;
6034         *(unsigned int *)(ptr) = __size_params; ptr += 4;
6035         memcpy(ptr, params, __size_params);ptr += __size_params;
6036
6037         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6038         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6039
6040 }
6041
6042 void glTranslatexOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
6043 {
6044
6045         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6046         IOStream *stream = ctx->m_stream;
6047         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6048         bool useChecksum = checksumCalculator->getVersion() > 0;
6049
6050          unsigned char *ptr;
6051          unsigned char *buf;
6052          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
6053          const size_t checksumSize = checksumCalculator->checksumByteSize();
6054          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6055         buf = stream->alloc(totalSize);
6056         ptr = buf;
6057         int tmp = OP_glTranslatexOES;memcpy(ptr, &tmp, 4); ptr += 4;
6058         memcpy(ptr, &totalSize, 4);  ptr += 4;
6059
6060                 memcpy(ptr, &x, 4); ptr += 4;
6061                 memcpy(ptr, &y, 4); ptr += 4;
6062                 memcpy(ptr, &z, 4); ptr += 4;
6063
6064         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6065         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6066
6067 }
6068
6069 GLboolean glIsRenderbufferOES_enc(void *self , GLuint renderbuffer)
6070 {
6071
6072         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6073         IOStream *stream = ctx->m_stream;
6074         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6075         bool useChecksum = checksumCalculator->getVersion() > 0;
6076
6077          unsigned char *ptr;
6078          unsigned char *buf;
6079          const size_t sizeWithoutChecksum = 8 + 4;
6080          const size_t checksumSize = checksumCalculator->checksumByteSize();
6081          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6082         buf = stream->alloc(totalSize);
6083         ptr = buf;
6084         int tmp = OP_glIsRenderbufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6085         memcpy(ptr, &totalSize, 4);  ptr += 4;
6086
6087                 memcpy(ptr, &renderbuffer, 4); ptr += 4;
6088
6089         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6090         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6091
6092
6093         GLboolean retval;
6094         stream->readback(&retval, 1);
6095         if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
6096         if (useChecksum) {
6097                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
6098                 stream->readback(checksumBuf.get(), checksumSize);
6099                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
6100                         ALOGE("glIsRenderbufferOES: GL communication error, please report this issue to b.android.com.\n");
6101                         abort();
6102                 }
6103         }
6104         return retval;
6105 }
6106
6107 void glBindRenderbufferOES_enc(void *self , GLenum target, GLuint renderbuffer)
6108 {
6109
6110         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6111         IOStream *stream = ctx->m_stream;
6112         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6113         bool useChecksum = checksumCalculator->getVersion() > 0;
6114
6115          unsigned char *ptr;
6116          unsigned char *buf;
6117          const size_t sizeWithoutChecksum = 8 + 4 + 4;
6118          const size_t checksumSize = checksumCalculator->checksumByteSize();
6119          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6120         buf = stream->alloc(totalSize);
6121         ptr = buf;
6122         int tmp = OP_glBindRenderbufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6123         memcpy(ptr, &totalSize, 4);  ptr += 4;
6124
6125                 memcpy(ptr, &target, 4); ptr += 4;
6126                 memcpy(ptr, &renderbuffer, 4); ptr += 4;
6127
6128         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6129         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6130
6131 }
6132
6133 void glDeleteRenderbuffersOES_enc(void *self , GLsizei n, const GLuint* renderbuffers)
6134 {
6135
6136         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6137         IOStream *stream = ctx->m_stream;
6138         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6139         bool useChecksum = checksumCalculator->getVersion() > 0;
6140
6141         const unsigned int __size_renderbuffers =  (n * sizeof(GLuint));
6142          unsigned char *ptr;
6143          unsigned char *buf;
6144          const size_t sizeWithoutChecksum = 8 + 4 + __size_renderbuffers + 1*4;
6145          const size_t checksumSize = checksumCalculator->checksumByteSize();
6146          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6147         buf = stream->alloc(totalSize);
6148         ptr = buf;
6149         int tmp = OP_glDeleteRenderbuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
6150         memcpy(ptr, &totalSize, 4);  ptr += 4;
6151
6152                 memcpy(ptr, &n, 4); ptr += 4;
6153         *(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4;
6154         memcpy(ptr, renderbuffers, __size_renderbuffers);ptr += __size_renderbuffers;
6155
6156         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6157         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6158
6159 }
6160
6161 void glGenRenderbuffersOES_enc(void *self , GLsizei n, GLuint* renderbuffers)
6162 {
6163
6164         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6165         IOStream *stream = ctx->m_stream;
6166         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6167         bool useChecksum = checksumCalculator->getVersion() > 0;
6168
6169         const unsigned int __size_renderbuffers =  (n * sizeof(GLuint));
6170          unsigned char *ptr;
6171          unsigned char *buf;
6172          const size_t sizeWithoutChecksum = 8 + 4 + __size_renderbuffers + 1*4;
6173          const size_t checksumSize = checksumCalculator->checksumByteSize();
6174          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6175         buf = stream->alloc(totalSize);
6176         ptr = buf;
6177         int tmp = OP_glGenRenderbuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
6178         memcpy(ptr, &totalSize, 4);  ptr += 4;
6179
6180                 memcpy(ptr, &n, 4); ptr += 4;
6181         *(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4;
6182
6183         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6184         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6185
6186         stream->readback(renderbuffers, __size_renderbuffers);
6187         if (useChecksum) checksumCalculator->addBuffer(renderbuffers, __size_renderbuffers);
6188         if (useChecksum) {
6189                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
6190                 stream->readback(checksumBuf.get(), checksumSize);
6191                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
6192                         ALOGE("glGenRenderbuffersOES: GL communication error, please report this issue to b.android.com.\n");
6193                         abort();
6194                 }
6195         }
6196 }
6197
6198 void glRenderbufferStorageOES_enc(void *self , GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
6199 {
6200
6201         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6202         IOStream *stream = ctx->m_stream;
6203         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6204         bool useChecksum = checksumCalculator->getVersion() > 0;
6205
6206          unsigned char *ptr;
6207          unsigned char *buf;
6208          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
6209          const size_t checksumSize = checksumCalculator->checksumByteSize();
6210          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6211         buf = stream->alloc(totalSize);
6212         ptr = buf;
6213         int tmp = OP_glRenderbufferStorageOES;memcpy(ptr, &tmp, 4); ptr += 4;
6214         memcpy(ptr, &totalSize, 4);  ptr += 4;
6215
6216                 memcpy(ptr, &target, 4); ptr += 4;
6217                 memcpy(ptr, &internalformat, 4); ptr += 4;
6218                 memcpy(ptr, &width, 4); ptr += 4;
6219                 memcpy(ptr, &height, 4); ptr += 4;
6220
6221         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6222         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6223
6224 }
6225
6226 void glGetRenderbufferParameterivOES_enc(void *self , GLenum target, GLenum pname, GLint* params)
6227 {
6228
6229         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6230         IOStream *stream = ctx->m_stream;
6231         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6232         bool useChecksum = checksumCalculator->getVersion() > 0;
6233
6234         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
6235          unsigned char *ptr;
6236          unsigned char *buf;
6237          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
6238          const size_t checksumSize = checksumCalculator->checksumByteSize();
6239          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6240         buf = stream->alloc(totalSize);
6241         ptr = buf;
6242         int tmp = OP_glGetRenderbufferParameterivOES;memcpy(ptr, &tmp, 4); ptr += 4;
6243         memcpy(ptr, &totalSize, 4);  ptr += 4;
6244
6245                 memcpy(ptr, &target, 4); ptr += 4;
6246                 memcpy(ptr, &pname, 4); ptr += 4;
6247         *(unsigned int *)(ptr) = __size_params; ptr += 4;
6248
6249         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6250         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6251
6252         stream->readback(params, __size_params);
6253         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
6254         if (useChecksum) {
6255                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
6256                 stream->readback(checksumBuf.get(), checksumSize);
6257                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
6258                         ALOGE("glGetRenderbufferParameterivOES: GL communication error, please report this issue to b.android.com.\n");
6259                         abort();
6260                 }
6261         }
6262 }
6263
6264 GLboolean glIsFramebufferOES_enc(void *self , GLuint framebuffer)
6265 {
6266
6267         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6268         IOStream *stream = ctx->m_stream;
6269         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6270         bool useChecksum = checksumCalculator->getVersion() > 0;
6271
6272          unsigned char *ptr;
6273          unsigned char *buf;
6274          const size_t sizeWithoutChecksum = 8 + 4;
6275          const size_t checksumSize = checksumCalculator->checksumByteSize();
6276          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6277         buf = stream->alloc(totalSize);
6278         ptr = buf;
6279         int tmp = OP_glIsFramebufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6280         memcpy(ptr, &totalSize, 4);  ptr += 4;
6281
6282                 memcpy(ptr, &framebuffer, 4); ptr += 4;
6283
6284         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6285         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6286
6287
6288         GLboolean retval;
6289         stream->readback(&retval, 1);
6290         if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
6291         if (useChecksum) {
6292                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
6293                 stream->readback(checksumBuf.get(), checksumSize);
6294                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
6295                         ALOGE("glIsFramebufferOES: GL communication error, please report this issue to b.android.com.\n");
6296                         abort();
6297                 }
6298         }
6299         return retval;
6300 }
6301
6302 void glBindFramebufferOES_enc(void *self , GLenum target, GLuint framebuffer)
6303 {
6304
6305         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6306         IOStream *stream = ctx->m_stream;
6307         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6308         bool useChecksum = checksumCalculator->getVersion() > 0;
6309
6310          unsigned char *ptr;
6311          unsigned char *buf;
6312          const size_t sizeWithoutChecksum = 8 + 4 + 4;
6313          const size_t checksumSize = checksumCalculator->checksumByteSize();
6314          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6315         buf = stream->alloc(totalSize);
6316         ptr = buf;
6317         int tmp = OP_glBindFramebufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6318         memcpy(ptr, &totalSize, 4);  ptr += 4;
6319
6320                 memcpy(ptr, &target, 4); ptr += 4;
6321                 memcpy(ptr, &framebuffer, 4); ptr += 4;
6322
6323         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6324         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6325
6326 }
6327
6328 void glDeleteFramebuffersOES_enc(void *self , GLsizei n, const GLuint* framebuffers)
6329 {
6330
6331         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6332         IOStream *stream = ctx->m_stream;
6333         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6334         bool useChecksum = checksumCalculator->getVersion() > 0;
6335
6336         const unsigned int __size_framebuffers =  (n * sizeof(GLuint));
6337          unsigned char *ptr;
6338          unsigned char *buf;
6339          const size_t sizeWithoutChecksum = 8 + 4 + __size_framebuffers + 1*4;
6340          const size_t checksumSize = checksumCalculator->checksumByteSize();
6341          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6342         buf = stream->alloc(totalSize);
6343         ptr = buf;
6344         int tmp = OP_glDeleteFramebuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
6345         memcpy(ptr, &totalSize, 4);  ptr += 4;
6346
6347                 memcpy(ptr, &n, 4); ptr += 4;
6348         *(unsigned int *)(ptr) = __size_framebuffers; ptr += 4;
6349         memcpy(ptr, framebuffers, __size_framebuffers);ptr += __size_framebuffers;
6350
6351         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6352         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6353
6354 }
6355
6356 void glGenFramebuffersOES_enc(void *self , GLsizei n, GLuint* framebuffers)
6357 {
6358
6359         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6360         IOStream *stream = ctx->m_stream;
6361         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6362         bool useChecksum = checksumCalculator->getVersion() > 0;
6363
6364         const unsigned int __size_framebuffers =  (n * sizeof(GLuint));
6365          unsigned char *ptr;
6366          unsigned char *buf;
6367          const size_t sizeWithoutChecksum = 8 + 4 + __size_framebuffers + 1*4;
6368          const size_t checksumSize = checksumCalculator->checksumByteSize();
6369          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6370         buf = stream->alloc(totalSize);
6371         ptr = buf;
6372         int tmp = OP_glGenFramebuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
6373         memcpy(ptr, &totalSize, 4);  ptr += 4;
6374
6375                 memcpy(ptr, &n, 4); ptr += 4;
6376         *(unsigned int *)(ptr) = __size_framebuffers; ptr += 4;
6377
6378         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6379         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6380
6381         stream->readback(framebuffers, __size_framebuffers);
6382         if (useChecksum) checksumCalculator->addBuffer(framebuffers, __size_framebuffers);
6383         if (useChecksum) {
6384                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
6385                 stream->readback(checksumBuf.get(), checksumSize);
6386                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
6387                         ALOGE("glGenFramebuffersOES: GL communication error, please report this issue to b.android.com.\n");
6388                         abort();
6389                 }
6390         }
6391 }
6392
6393 GLenum glCheckFramebufferStatusOES_enc(void *self , GLenum target)
6394 {
6395
6396         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6397         IOStream *stream = ctx->m_stream;
6398         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6399         bool useChecksum = checksumCalculator->getVersion() > 0;
6400
6401          unsigned char *ptr;
6402          unsigned char *buf;
6403          const size_t sizeWithoutChecksum = 8 + 4;
6404          const size_t checksumSize = checksumCalculator->checksumByteSize();
6405          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6406         buf = stream->alloc(totalSize);
6407         ptr = buf;
6408         int tmp = OP_glCheckFramebufferStatusOES;memcpy(ptr, &tmp, 4); ptr += 4;
6409         memcpy(ptr, &totalSize, 4);  ptr += 4;
6410
6411                 memcpy(ptr, &target, 4); ptr += 4;
6412
6413         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6414         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6415
6416
6417         GLenum retval;
6418         stream->readback(&retval, 4);
6419         if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
6420         if (useChecksum) {
6421                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
6422                 stream->readback(checksumBuf.get(), checksumSize);
6423                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
6424                         ALOGE("glCheckFramebufferStatusOES: GL communication error, please report this issue to b.android.com.\n");
6425                         abort();
6426                 }
6427         }
6428         return retval;
6429 }
6430
6431 void glFramebufferRenderbufferOES_enc(void *self , GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
6432 {
6433
6434         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6435         IOStream *stream = ctx->m_stream;
6436         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6437         bool useChecksum = checksumCalculator->getVersion() > 0;
6438
6439          unsigned char *ptr;
6440          unsigned char *buf;
6441          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
6442          const size_t checksumSize = checksumCalculator->checksumByteSize();
6443          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6444         buf = stream->alloc(totalSize);
6445         ptr = buf;
6446         int tmp = OP_glFramebufferRenderbufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6447         memcpy(ptr, &totalSize, 4);  ptr += 4;
6448
6449                 memcpy(ptr, &target, 4); ptr += 4;
6450                 memcpy(ptr, &attachment, 4); ptr += 4;
6451                 memcpy(ptr, &renderbuffertarget, 4); ptr += 4;
6452                 memcpy(ptr, &renderbuffer, 4); ptr += 4;
6453
6454         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6455         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6456
6457 }
6458
6459 void glFramebufferTexture2DOES_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
6460 {
6461
6462         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6463         IOStream *stream = ctx->m_stream;
6464         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6465         bool useChecksum = checksumCalculator->getVersion() > 0;
6466
6467          unsigned char *ptr;
6468          unsigned char *buf;
6469          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
6470          const size_t checksumSize = checksumCalculator->checksumByteSize();
6471          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6472         buf = stream->alloc(totalSize);
6473         ptr = buf;
6474         int tmp = OP_glFramebufferTexture2DOES;memcpy(ptr, &tmp, 4); ptr += 4;
6475         memcpy(ptr, &totalSize, 4);  ptr += 4;
6476
6477                 memcpy(ptr, &target, 4); ptr += 4;
6478                 memcpy(ptr, &attachment, 4); ptr += 4;
6479                 memcpy(ptr, &textarget, 4); ptr += 4;
6480                 memcpy(ptr, &texture, 4); ptr += 4;
6481                 memcpy(ptr, &level, 4); ptr += 4;
6482
6483         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6484         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6485
6486 }
6487
6488 void glGetFramebufferAttachmentParameterivOES_enc(void *self , GLenum target, GLenum attachment, GLenum pname, GLint* params)
6489 {
6490
6491         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6492         IOStream *stream = ctx->m_stream;
6493         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6494         bool useChecksum = checksumCalculator->getVersion() > 0;
6495
6496         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
6497          unsigned char *ptr;
6498          unsigned char *buf;
6499          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_params + 1*4;
6500          const size_t checksumSize = checksumCalculator->checksumByteSize();
6501          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6502         buf = stream->alloc(totalSize);
6503         ptr = buf;
6504         int tmp = OP_glGetFramebufferAttachmentParameterivOES;memcpy(ptr, &tmp, 4); ptr += 4;
6505         memcpy(ptr, &totalSize, 4);  ptr += 4;
6506
6507                 memcpy(ptr, &target, 4); ptr += 4;
6508                 memcpy(ptr, &attachment, 4); ptr += 4;
6509                 memcpy(ptr, &pname, 4); ptr += 4;
6510         *(unsigned int *)(ptr) = __size_params; ptr += 4;
6511
6512         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6513         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6514
6515         stream->readback(params, __size_params);
6516         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
6517         if (useChecksum) {
6518                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
6519                 stream->readback(checksumBuf.get(), checksumSize);
6520                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
6521                         ALOGE("glGetFramebufferAttachmentParameterivOES: GL communication error, please report this issue to b.android.com.\n");
6522                         abort();
6523                 }
6524         }
6525 }
6526
6527 void glGenerateMipmapOES_enc(void *self , GLenum target)
6528 {
6529
6530         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6531         IOStream *stream = ctx->m_stream;
6532         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6533         bool useChecksum = checksumCalculator->getVersion() > 0;
6534
6535          unsigned char *ptr;
6536          unsigned char *buf;
6537          const size_t sizeWithoutChecksum = 8 + 4;
6538          const size_t checksumSize = checksumCalculator->checksumByteSize();
6539          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6540         buf = stream->alloc(totalSize);
6541         ptr = buf;
6542         int tmp = OP_glGenerateMipmapOES;memcpy(ptr, &tmp, 4); ptr += 4;
6543         memcpy(ptr, &totalSize, 4);  ptr += 4;
6544
6545                 memcpy(ptr, &target, 4); ptr += 4;
6546
6547         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6548         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6549
6550 }
6551
6552 GLboolean glUnmapBufferOES_enc(void *self , GLenum target)
6553 {
6554
6555         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6556         IOStream *stream = ctx->m_stream;
6557         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6558         bool useChecksum = checksumCalculator->getVersion() > 0;
6559
6560          unsigned char *ptr;
6561          unsigned char *buf;
6562          const size_t sizeWithoutChecksum = 8 + 4;
6563          const size_t checksumSize = checksumCalculator->checksumByteSize();
6564          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6565         buf = stream->alloc(totalSize);
6566         ptr = buf;
6567         int tmp = OP_glUnmapBufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6568         memcpy(ptr, &totalSize, 4);  ptr += 4;
6569
6570                 memcpy(ptr, &target, 4); ptr += 4;
6571
6572         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6573         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6574
6575
6576         GLboolean retval;
6577         stream->readback(&retval, 1);
6578         if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
6579         if (useChecksum) {
6580                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
6581                 stream->readback(checksumBuf.get(), checksumSize);
6582                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
6583                         ALOGE("glUnmapBufferOES: GL communication error, please report this issue to b.android.com.\n");
6584                         abort();
6585                 }
6586         }
6587         return retval;
6588 }
6589
6590 void glCurrentPaletteMatrixOES_enc(void *self , GLuint matrixpaletteindex)
6591 {
6592
6593         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6594         IOStream *stream = ctx->m_stream;
6595         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6596         bool useChecksum = checksumCalculator->getVersion() > 0;
6597
6598          unsigned char *ptr;
6599          unsigned char *buf;
6600          const size_t sizeWithoutChecksum = 8 + 4;
6601          const size_t checksumSize = checksumCalculator->checksumByteSize();
6602          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6603         buf = stream->alloc(totalSize);
6604         ptr = buf;
6605         int tmp = OP_glCurrentPaletteMatrixOES;memcpy(ptr, &tmp, 4); ptr += 4;
6606         memcpy(ptr, &totalSize, 4);  ptr += 4;
6607
6608                 memcpy(ptr, &matrixpaletteindex, 4); ptr += 4;
6609
6610         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6611         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6612
6613 }
6614
6615 void glLoadPaletteFromModelViewMatrixOES_enc(void *self )
6616 {
6617
6618         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6619         IOStream *stream = ctx->m_stream;
6620         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6621         bool useChecksum = checksumCalculator->getVersion() > 0;
6622
6623          unsigned char *ptr;
6624          unsigned char *buf;
6625          const size_t sizeWithoutChecksum = 8;
6626          const size_t checksumSize = checksumCalculator->checksumByteSize();
6627          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6628         buf = stream->alloc(totalSize);
6629         ptr = buf;
6630         int tmp = OP_glLoadPaletteFromModelViewMatrixOES;memcpy(ptr, &tmp, 4); ptr += 4;
6631         memcpy(ptr, &totalSize, 4);  ptr += 4;
6632
6633
6634         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6635         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6636
6637 }
6638
6639 GLbitfield glQueryMatrixxOES_enc(void *self , GLfixed* mantissa, GLint* exponent)
6640 {
6641
6642         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6643         IOStream *stream = ctx->m_stream;
6644         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6645         bool useChecksum = checksumCalculator->getVersion() > 0;
6646
6647         const unsigned int __size_mantissa =  (16 * sizeof(GLfixed));
6648         const unsigned int __size_exponent =  (16 * sizeof(GLfixed));
6649          unsigned char *ptr;
6650          unsigned char *buf;
6651          const size_t sizeWithoutChecksum = 8 + __size_mantissa + __size_exponent + 2*4;
6652          const size_t checksumSize = checksumCalculator->checksumByteSize();
6653          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6654         buf = stream->alloc(totalSize);
6655         ptr = buf;
6656         int tmp = OP_glQueryMatrixxOES;memcpy(ptr, &tmp, 4); ptr += 4;
6657         memcpy(ptr, &totalSize, 4);  ptr += 4;
6658
6659         *(unsigned int *)(ptr) = __size_mantissa; ptr += 4;
6660         *(unsigned int *)(ptr) = __size_exponent; ptr += 4;
6661
6662         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6663         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6664
6665         stream->readback(mantissa, __size_mantissa);
6666         if (useChecksum) checksumCalculator->addBuffer(mantissa, __size_mantissa);
6667         stream->readback(exponent, __size_exponent);
6668         if (useChecksum) checksumCalculator->addBuffer(exponent, __size_exponent);
6669
6670         GLbitfield retval;
6671         stream->readback(&retval, 4);
6672         if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
6673         if (useChecksum) {
6674                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
6675                 stream->readback(checksumBuf.get(), checksumSize);
6676                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
6677                         ALOGE("glQueryMatrixxOES: GL communication error, please report this issue to b.android.com.\n");
6678                         abort();
6679                 }
6680         }
6681         return retval;
6682 }
6683
6684 void glDepthRangefOES_enc(void *self , GLclampf zNear, GLclampf zFar)
6685 {
6686
6687         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6688         IOStream *stream = ctx->m_stream;
6689         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6690         bool useChecksum = checksumCalculator->getVersion() > 0;
6691
6692          unsigned char *ptr;
6693          unsigned char *buf;
6694          const size_t sizeWithoutChecksum = 8 + 4 + 4;
6695          const size_t checksumSize = checksumCalculator->checksumByteSize();
6696          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6697         buf = stream->alloc(totalSize);
6698         ptr = buf;
6699         int tmp = OP_glDepthRangefOES;memcpy(ptr, &tmp, 4); ptr += 4;
6700         memcpy(ptr, &totalSize, 4);  ptr += 4;
6701
6702                 memcpy(ptr, &zNear, 4); ptr += 4;
6703                 memcpy(ptr, &zFar, 4); ptr += 4;
6704
6705         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6706         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6707
6708 }
6709
6710 void glFrustumfOES_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
6711 {
6712
6713         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6714         IOStream *stream = ctx->m_stream;
6715         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6716         bool useChecksum = checksumCalculator->getVersion() > 0;
6717
6718          unsigned char *ptr;
6719          unsigned char *buf;
6720          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
6721          const size_t checksumSize = checksumCalculator->checksumByteSize();
6722          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6723         buf = stream->alloc(totalSize);
6724         ptr = buf;
6725         int tmp = OP_glFrustumfOES;memcpy(ptr, &tmp, 4); ptr += 4;
6726         memcpy(ptr, &totalSize, 4);  ptr += 4;
6727
6728                 memcpy(ptr, &left, 4); ptr += 4;
6729                 memcpy(ptr, &right, 4); ptr += 4;
6730                 memcpy(ptr, &bottom, 4); ptr += 4;
6731                 memcpy(ptr, &top, 4); ptr += 4;
6732                 memcpy(ptr, &zNear, 4); ptr += 4;
6733                 memcpy(ptr, &zFar, 4); ptr += 4;
6734
6735         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6736         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6737
6738 }
6739
6740 void glOrthofOES_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
6741 {
6742
6743         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6744         IOStream *stream = ctx->m_stream;
6745         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6746         bool useChecksum = checksumCalculator->getVersion() > 0;
6747
6748          unsigned char *ptr;
6749          unsigned char *buf;
6750          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
6751          const size_t checksumSize = checksumCalculator->checksumByteSize();
6752          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6753         buf = stream->alloc(totalSize);
6754         ptr = buf;
6755         int tmp = OP_glOrthofOES;memcpy(ptr, &tmp, 4); ptr += 4;
6756         memcpy(ptr, &totalSize, 4);  ptr += 4;
6757
6758                 memcpy(ptr, &left, 4); ptr += 4;
6759                 memcpy(ptr, &right, 4); ptr += 4;
6760                 memcpy(ptr, &bottom, 4); ptr += 4;
6761                 memcpy(ptr, &top, 4); ptr += 4;
6762                 memcpy(ptr, &zNear, 4); ptr += 4;
6763                 memcpy(ptr, &zFar, 4); ptr += 4;
6764
6765         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6766         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6767
6768 }
6769
6770 void glClipPlanefOES_enc(void *self , GLenum plane, const GLfloat* equation)
6771 {
6772
6773         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6774         IOStream *stream = ctx->m_stream;
6775         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6776         bool useChecksum = checksumCalculator->getVersion() > 0;
6777
6778         const unsigned int __size_equation =  (4 * sizeof(GLfloat));
6779          unsigned char *ptr;
6780          unsigned char *buf;
6781          const size_t sizeWithoutChecksum = 8 + 4 + __size_equation + 1*4;
6782          const size_t checksumSize = checksumCalculator->checksumByteSize();
6783          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6784         buf = stream->alloc(totalSize);
6785         ptr = buf;
6786         int tmp = OP_glClipPlanefOES;memcpy(ptr, &tmp, 4); ptr += 4;
6787         memcpy(ptr, &totalSize, 4);  ptr += 4;
6788
6789                 memcpy(ptr, &plane, 4); ptr += 4;
6790         *(unsigned int *)(ptr) = __size_equation; ptr += 4;
6791         memcpy(ptr, equation, __size_equation);ptr += __size_equation;
6792
6793         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6794         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6795
6796 }
6797
6798 void glClipPlanefIMG_enc(void *self , GLenum plane, const GLfloat* equation)
6799 {
6800
6801         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6802         IOStream *stream = ctx->m_stream;
6803         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6804         bool useChecksum = checksumCalculator->getVersion() > 0;
6805
6806         const unsigned int __size_equation =  (4 * sizeof(GLfloat));
6807          unsigned char *ptr;
6808          unsigned char *buf;
6809          const size_t sizeWithoutChecksum = 8 + 4 + __size_equation + 1*4;
6810          const size_t checksumSize = checksumCalculator->checksumByteSize();
6811          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6812         buf = stream->alloc(totalSize);
6813         ptr = buf;
6814         int tmp = OP_glClipPlanefIMG;memcpy(ptr, &tmp, 4); ptr += 4;
6815         memcpy(ptr, &totalSize, 4);  ptr += 4;
6816
6817                 memcpy(ptr, &plane, 4); ptr += 4;
6818         *(unsigned int *)(ptr) = __size_equation; ptr += 4;
6819         memcpy(ptr, equation, __size_equation);ptr += __size_equation;
6820
6821         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6822         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6823
6824 }
6825
6826 void glGetClipPlanefOES_enc(void *self , GLenum pname, GLfloat* eqn)
6827 {
6828
6829         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6830         IOStream *stream = ctx->m_stream;
6831         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6832         bool useChecksum = checksumCalculator->getVersion() > 0;
6833
6834         const unsigned int __size_eqn =  (4 * sizeof(GLfloat));
6835          unsigned char *ptr;
6836          unsigned char *buf;
6837          const size_t sizeWithoutChecksum = 8 + 4 + __size_eqn + 1*4;
6838          const size_t checksumSize = checksumCalculator->checksumByteSize();
6839          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6840         buf = stream->alloc(totalSize);
6841         ptr = buf;
6842         int tmp = OP_glGetClipPlanefOES;memcpy(ptr, &tmp, 4); ptr += 4;
6843         memcpy(ptr, &totalSize, 4);  ptr += 4;
6844
6845                 memcpy(ptr, &pname, 4); ptr += 4;
6846         *(unsigned int *)(ptr) = __size_eqn; ptr += 4;
6847
6848         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6849         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6850
6851         stream->readback(eqn, __size_eqn);
6852         if (useChecksum) checksumCalculator->addBuffer(eqn, __size_eqn);
6853         if (useChecksum) {
6854                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
6855                 stream->readback(checksumBuf.get(), checksumSize);
6856                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
6857                         ALOGE("glGetClipPlanefOES: GL communication error, please report this issue to b.android.com.\n");
6858                         abort();
6859                 }
6860         }
6861 }
6862
6863 void glClearDepthfOES_enc(void *self , GLclampf depth)
6864 {
6865
6866         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6867         IOStream *stream = ctx->m_stream;
6868         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6869         bool useChecksum = checksumCalculator->getVersion() > 0;
6870
6871          unsigned char *ptr;
6872          unsigned char *buf;
6873          const size_t sizeWithoutChecksum = 8 + 4;
6874          const size_t checksumSize = checksumCalculator->checksumByteSize();
6875          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6876         buf = stream->alloc(totalSize);
6877         ptr = buf;
6878         int tmp = OP_glClearDepthfOES;memcpy(ptr, &tmp, 4); ptr += 4;
6879         memcpy(ptr, &totalSize, 4);  ptr += 4;
6880
6881                 memcpy(ptr, &depth, 4); ptr += 4;
6882
6883         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6884         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6885
6886 }
6887
6888 void glTexGenfOES_enc(void *self , GLenum coord, GLenum pname, GLfloat param)
6889 {
6890
6891         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6892         IOStream *stream = ctx->m_stream;
6893         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6894         bool useChecksum = checksumCalculator->getVersion() > 0;
6895
6896          unsigned char *ptr;
6897          unsigned char *buf;
6898          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
6899          const size_t checksumSize = checksumCalculator->checksumByteSize();
6900          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6901         buf = stream->alloc(totalSize);
6902         ptr = buf;
6903         int tmp = OP_glTexGenfOES;memcpy(ptr, &tmp, 4); ptr += 4;
6904         memcpy(ptr, &totalSize, 4);  ptr += 4;
6905
6906                 memcpy(ptr, &coord, 4); ptr += 4;
6907                 memcpy(ptr, &pname, 4); ptr += 4;
6908                 memcpy(ptr, &param, 4); ptr += 4;
6909
6910         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6911         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6912
6913 }
6914
6915 void glTexGenfvOES_enc(void *self , GLenum coord, GLenum pname, const GLfloat* params)
6916 {
6917
6918         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6919         IOStream *stream = ctx->m_stream;
6920         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6921         bool useChecksum = checksumCalculator->getVersion() > 0;
6922
6923         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
6924          unsigned char *ptr;
6925          unsigned char *buf;
6926          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
6927          const size_t checksumSize = checksumCalculator->checksumByteSize();
6928          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6929         buf = stream->alloc(totalSize);
6930         ptr = buf;
6931         int tmp = OP_glTexGenfvOES;memcpy(ptr, &tmp, 4); ptr += 4;
6932         memcpy(ptr, &totalSize, 4);  ptr += 4;
6933
6934                 memcpy(ptr, &coord, 4); ptr += 4;
6935                 memcpy(ptr, &pname, 4); ptr += 4;
6936         *(unsigned int *)(ptr) = __size_params; ptr += 4;
6937         memcpy(ptr, params, __size_params);ptr += __size_params;
6938
6939         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6940         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6941
6942 }
6943
6944 void glTexGeniOES_enc(void *self , GLenum coord, GLenum pname, GLint param)
6945 {
6946
6947         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6948         IOStream *stream = ctx->m_stream;
6949         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6950         bool useChecksum = checksumCalculator->getVersion() > 0;
6951
6952          unsigned char *ptr;
6953          unsigned char *buf;
6954          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
6955          const size_t checksumSize = checksumCalculator->checksumByteSize();
6956          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6957         buf = stream->alloc(totalSize);
6958         ptr = buf;
6959         int tmp = OP_glTexGeniOES;memcpy(ptr, &tmp, 4); ptr += 4;
6960         memcpy(ptr, &totalSize, 4);  ptr += 4;
6961
6962                 memcpy(ptr, &coord, 4); ptr += 4;
6963                 memcpy(ptr, &pname, 4); ptr += 4;
6964                 memcpy(ptr, &param, 4); ptr += 4;
6965
6966         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6967         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6968
6969 }
6970
6971 void glTexGenivOES_enc(void *self , GLenum coord, GLenum pname, const GLint* params)
6972 {
6973
6974         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6975         IOStream *stream = ctx->m_stream;
6976         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6977         bool useChecksum = checksumCalculator->getVersion() > 0;
6978
6979         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
6980          unsigned char *ptr;
6981          unsigned char *buf;
6982          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
6983          const size_t checksumSize = checksumCalculator->checksumByteSize();
6984          const size_t totalSize = sizeWithoutChecksum + checksumSize;
6985         buf = stream->alloc(totalSize);
6986         ptr = buf;
6987         int tmp = OP_glTexGenivOES;memcpy(ptr, &tmp, 4); ptr += 4;
6988         memcpy(ptr, &totalSize, 4);  ptr += 4;
6989
6990                 memcpy(ptr, &coord, 4); ptr += 4;
6991                 memcpy(ptr, &pname, 4); ptr += 4;
6992         *(unsigned int *)(ptr) = __size_params; ptr += 4;
6993         memcpy(ptr, params, __size_params);ptr += __size_params;
6994
6995         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6996         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6997
6998 }
6999
7000 void glTexGenxOES_enc(void *self , GLenum coord, GLenum pname, GLfixed param)
7001 {
7002
7003         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7004         IOStream *stream = ctx->m_stream;
7005         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7006         bool useChecksum = checksumCalculator->getVersion() > 0;
7007
7008          unsigned char *ptr;
7009          unsigned char *buf;
7010          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
7011          const size_t checksumSize = checksumCalculator->checksumByteSize();
7012          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7013         buf = stream->alloc(totalSize);
7014         ptr = buf;
7015         int tmp = OP_glTexGenxOES;memcpy(ptr, &tmp, 4); ptr += 4;
7016         memcpy(ptr, &totalSize, 4);  ptr += 4;
7017
7018                 memcpy(ptr, &coord, 4); ptr += 4;
7019                 memcpy(ptr, &pname, 4); ptr += 4;
7020                 memcpy(ptr, &param, 4); ptr += 4;
7021
7022         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7023         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7024
7025 }
7026
7027 void glTexGenxvOES_enc(void *self , GLenum coord, GLenum pname, const GLfixed* params)
7028 {
7029
7030         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7031         IOStream *stream = ctx->m_stream;
7032         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7033         bool useChecksum = checksumCalculator->getVersion() > 0;
7034
7035         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
7036          unsigned char *ptr;
7037          unsigned char *buf;
7038          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7039          const size_t checksumSize = checksumCalculator->checksumByteSize();
7040          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7041         buf = stream->alloc(totalSize);
7042         ptr = buf;
7043         int tmp = OP_glTexGenxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
7044         memcpy(ptr, &totalSize, 4);  ptr += 4;
7045
7046                 memcpy(ptr, &coord, 4); ptr += 4;
7047                 memcpy(ptr, &pname, 4); ptr += 4;
7048         *(unsigned int *)(ptr) = __size_params; ptr += 4;
7049         memcpy(ptr, params, __size_params);ptr += __size_params;
7050
7051         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7052         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7053
7054 }
7055
7056 void glGetTexGenfvOES_enc(void *self , GLenum coord, GLenum pname, GLfloat* params)
7057 {
7058
7059         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7060         IOStream *stream = ctx->m_stream;
7061         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7062         bool useChecksum = checksumCalculator->getVersion() > 0;
7063
7064         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
7065          unsigned char *ptr;
7066          unsigned char *buf;
7067          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7068          const size_t checksumSize = checksumCalculator->checksumByteSize();
7069          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7070         buf = stream->alloc(totalSize);
7071         ptr = buf;
7072         int tmp = OP_glGetTexGenfvOES;memcpy(ptr, &tmp, 4); ptr += 4;
7073         memcpy(ptr, &totalSize, 4);  ptr += 4;
7074
7075                 memcpy(ptr, &coord, 4); ptr += 4;
7076                 memcpy(ptr, &pname, 4); ptr += 4;
7077         *(unsigned int *)(ptr) = __size_params; ptr += 4;
7078         memcpy(ptr, params, __size_params);ptr += __size_params;
7079
7080         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7081         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7082
7083 }
7084
7085 void glGetTexGenivOES_enc(void *self , GLenum coord, GLenum pname, GLint* params)
7086 {
7087
7088         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7089         IOStream *stream = ctx->m_stream;
7090         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7091         bool useChecksum = checksumCalculator->getVersion() > 0;
7092
7093         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
7094          unsigned char *ptr;
7095          unsigned char *buf;
7096          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7097          const size_t checksumSize = checksumCalculator->checksumByteSize();
7098          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7099         buf = stream->alloc(totalSize);
7100         ptr = buf;
7101         int tmp = OP_glGetTexGenivOES;memcpy(ptr, &tmp, 4); ptr += 4;
7102         memcpy(ptr, &totalSize, 4);  ptr += 4;
7103
7104                 memcpy(ptr, &coord, 4); ptr += 4;
7105                 memcpy(ptr, &pname, 4); ptr += 4;
7106         *(unsigned int *)(ptr) = __size_params; ptr += 4;
7107         memcpy(ptr, params, __size_params);ptr += __size_params;
7108
7109         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7110         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7111
7112 }
7113
7114 void glGetTexGenxvOES_enc(void *self , GLenum coord, GLenum pname, GLfixed* params)
7115 {
7116
7117         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7118         IOStream *stream = ctx->m_stream;
7119         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7120         bool useChecksum = checksumCalculator->getVersion() > 0;
7121
7122         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
7123          unsigned char *ptr;
7124          unsigned char *buf;
7125          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7126          const size_t checksumSize = checksumCalculator->checksumByteSize();
7127          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7128         buf = stream->alloc(totalSize);
7129         ptr = buf;
7130         int tmp = OP_glGetTexGenxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
7131         memcpy(ptr, &totalSize, 4);  ptr += 4;
7132
7133                 memcpy(ptr, &coord, 4); ptr += 4;
7134                 memcpy(ptr, &pname, 4); ptr += 4;
7135         *(unsigned int *)(ptr) = __size_params; ptr += 4;
7136         memcpy(ptr, params, __size_params);ptr += __size_params;
7137
7138         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7139         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7140
7141 }
7142
7143 void glBindVertexArrayOES_enc(void *self , GLuint array)
7144 {
7145
7146         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7147         IOStream *stream = ctx->m_stream;
7148         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7149         bool useChecksum = checksumCalculator->getVersion() > 0;
7150
7151          unsigned char *ptr;
7152          unsigned char *buf;
7153          const size_t sizeWithoutChecksum = 8 + 4;
7154          const size_t checksumSize = checksumCalculator->checksumByteSize();
7155          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7156         buf = stream->alloc(totalSize);
7157         ptr = buf;
7158         int tmp = OP_glBindVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4;
7159         memcpy(ptr, &totalSize, 4);  ptr += 4;
7160
7161                 memcpy(ptr, &array, 4); ptr += 4;
7162
7163         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7164         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7165
7166 }
7167
7168 void glDeleteVertexArraysOES_enc(void *self , GLsizei n, const GLuint* arrays)
7169 {
7170
7171         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7172         IOStream *stream = ctx->m_stream;
7173         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7174         bool useChecksum = checksumCalculator->getVersion() > 0;
7175
7176         const unsigned int __size_arrays =  (n * sizeof(GLuint));
7177          unsigned char *ptr;
7178          unsigned char *buf;
7179          const size_t sizeWithoutChecksum = 8 + 4 + __size_arrays + 1*4;
7180          const size_t checksumSize = checksumCalculator->checksumByteSize();
7181          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7182         buf = stream->alloc(totalSize);
7183         ptr = buf;
7184         int tmp = OP_glDeleteVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4;
7185         memcpy(ptr, &totalSize, 4);  ptr += 4;
7186
7187                 memcpy(ptr, &n, 4); ptr += 4;
7188         *(unsigned int *)(ptr) = __size_arrays; ptr += 4;
7189         memcpy(ptr, arrays, __size_arrays);ptr += __size_arrays;
7190
7191         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7192         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7193
7194 }
7195
7196 void glGenVertexArraysOES_enc(void *self , GLsizei n, GLuint* arrays)
7197 {
7198
7199         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7200         IOStream *stream = ctx->m_stream;
7201         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7202         bool useChecksum = checksumCalculator->getVersion() > 0;
7203
7204         const unsigned int __size_arrays =  (n * sizeof(GLuint));
7205          unsigned char *ptr;
7206          unsigned char *buf;
7207          const size_t sizeWithoutChecksum = 8 + 4 + __size_arrays + 1*4;
7208          const size_t checksumSize = checksumCalculator->checksumByteSize();
7209          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7210         buf = stream->alloc(totalSize);
7211         ptr = buf;
7212         int tmp = OP_glGenVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4;
7213         memcpy(ptr, &totalSize, 4);  ptr += 4;
7214
7215                 memcpy(ptr, &n, 4); ptr += 4;
7216         *(unsigned int *)(ptr) = __size_arrays; ptr += 4;
7217
7218         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7219         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7220
7221         stream->readback(arrays, __size_arrays);
7222         if (useChecksum) checksumCalculator->addBuffer(arrays, __size_arrays);
7223         if (useChecksum) {
7224                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7225                 stream->readback(checksumBuf.get(), checksumSize);
7226                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7227                         ALOGE("glGenVertexArraysOES: GL communication error, please report this issue to b.android.com.\n");
7228                         abort();
7229                 }
7230         }
7231 }
7232
7233 GLboolean glIsVertexArrayOES_enc(void *self , GLuint array)
7234 {
7235
7236         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7237         IOStream *stream = ctx->m_stream;
7238         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7239         bool useChecksum = checksumCalculator->getVersion() > 0;
7240
7241          unsigned char *ptr;
7242          unsigned char *buf;
7243          const size_t sizeWithoutChecksum = 8 + 4;
7244          const size_t checksumSize = checksumCalculator->checksumByteSize();
7245          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7246         buf = stream->alloc(totalSize);
7247         ptr = buf;
7248         int tmp = OP_glIsVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4;
7249         memcpy(ptr, &totalSize, 4);  ptr += 4;
7250
7251                 memcpy(ptr, &array, 4); ptr += 4;
7252
7253         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7254         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7255
7256
7257         GLboolean retval;
7258         stream->readback(&retval, 1);
7259         if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
7260         if (useChecksum) {
7261                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7262                 stream->readback(checksumBuf.get(), checksumSize);
7263                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7264                         ALOGE("glIsVertexArrayOES: GL communication error, please report this issue to b.android.com.\n");
7265                         abort();
7266                 }
7267         }
7268         return retval;
7269 }
7270
7271 void glDiscardFramebufferEXT_enc(void *self , GLenum target, GLsizei numAttachments, const GLenum* attachments)
7272 {
7273
7274         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7275         IOStream *stream = ctx->m_stream;
7276         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7277         bool useChecksum = checksumCalculator->getVersion() > 0;
7278
7279         const unsigned int __size_attachments =  (numAttachments * sizeof(const GLenum));
7280          unsigned char *ptr;
7281          unsigned char *buf;
7282          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_attachments + 1*4;
7283          const size_t checksumSize = checksumCalculator->checksumByteSize();
7284          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7285         buf = stream->alloc(totalSize);
7286         ptr = buf;
7287         int tmp = OP_glDiscardFramebufferEXT;memcpy(ptr, &tmp, 4); ptr += 4;
7288         memcpy(ptr, &totalSize, 4);  ptr += 4;
7289
7290                 memcpy(ptr, &target, 4); ptr += 4;
7291                 memcpy(ptr, &numAttachments, 4); ptr += 4;
7292         *(unsigned int *)(ptr) = __size_attachments; ptr += 4;
7293         memcpy(ptr, attachments, __size_attachments);ptr += __size_attachments;
7294
7295         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7296         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7297
7298 }
7299
7300 void glRenderbufferStorageMultisampleIMG_enc(void *self , GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
7301 {
7302
7303         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7304         IOStream *stream = ctx->m_stream;
7305         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7306         bool useChecksum = checksumCalculator->getVersion() > 0;
7307
7308          unsigned char *ptr;
7309          unsigned char *buf;
7310          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
7311          const size_t checksumSize = checksumCalculator->checksumByteSize();
7312          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7313         buf = stream->alloc(totalSize);
7314         ptr = buf;
7315         int tmp = OP_glRenderbufferStorageMultisampleIMG;memcpy(ptr, &tmp, 4); ptr += 4;
7316         memcpy(ptr, &totalSize, 4);  ptr += 4;
7317
7318                 memcpy(ptr, &target, 4); ptr += 4;
7319                 memcpy(ptr, &samples, 4); ptr += 4;
7320                 memcpy(ptr, &internalformat, 4); ptr += 4;
7321                 memcpy(ptr, &width, 4); ptr += 4;
7322                 memcpy(ptr, &height, 4); ptr += 4;
7323
7324         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7325         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7326
7327 }
7328
7329 void glFramebufferTexture2DMultisampleIMG_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
7330 {
7331
7332         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7333         IOStream *stream = ctx->m_stream;
7334         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7335         bool useChecksum = checksumCalculator->getVersion() > 0;
7336
7337          unsigned char *ptr;
7338          unsigned char *buf;
7339          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
7340          const size_t checksumSize = checksumCalculator->checksumByteSize();
7341          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7342         buf = stream->alloc(totalSize);
7343         ptr = buf;
7344         int tmp = OP_glFramebufferTexture2DMultisampleIMG;memcpy(ptr, &tmp, 4); ptr += 4;
7345         memcpy(ptr, &totalSize, 4);  ptr += 4;
7346
7347                 memcpy(ptr, &target, 4); ptr += 4;
7348                 memcpy(ptr, &attachment, 4); ptr += 4;
7349                 memcpy(ptr, &textarget, 4); ptr += 4;
7350                 memcpy(ptr, &texture, 4); ptr += 4;
7351                 memcpy(ptr, &level, 4); ptr += 4;
7352                 memcpy(ptr, &samples, 4); ptr += 4;
7353
7354         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7355         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7356
7357 }
7358
7359 void glDeleteFencesNV_enc(void *self , GLsizei n, const GLuint* fences)
7360 {
7361
7362         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7363         IOStream *stream = ctx->m_stream;
7364         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7365         bool useChecksum = checksumCalculator->getVersion() > 0;
7366
7367         const unsigned int __size_fences =  (n * sizeof(GLuint));
7368          unsigned char *ptr;
7369          unsigned char *buf;
7370          const size_t sizeWithoutChecksum = 8 + 4 + __size_fences + 1*4;
7371          const size_t checksumSize = checksumCalculator->checksumByteSize();
7372          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7373         buf = stream->alloc(totalSize);
7374         ptr = buf;
7375         int tmp = OP_glDeleteFencesNV;memcpy(ptr, &tmp, 4); ptr += 4;
7376         memcpy(ptr, &totalSize, 4);  ptr += 4;
7377
7378                 memcpy(ptr, &n, 4); ptr += 4;
7379         *(unsigned int *)(ptr) = __size_fences; ptr += 4;
7380         memcpy(ptr, fences, __size_fences);ptr += __size_fences;
7381
7382         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7383         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7384
7385 }
7386
7387 void glGenFencesNV_enc(void *self , GLsizei n, GLuint* fences)
7388 {
7389
7390         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7391         IOStream *stream = ctx->m_stream;
7392         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7393         bool useChecksum = checksumCalculator->getVersion() > 0;
7394
7395         const unsigned int __size_fences =  (n * sizeof(GLuint));
7396          unsigned char *ptr;
7397          unsigned char *buf;
7398          const size_t sizeWithoutChecksum = 8 + 4 + __size_fences + 1*4;
7399          const size_t checksumSize = checksumCalculator->checksumByteSize();
7400          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7401         buf = stream->alloc(totalSize);
7402         ptr = buf;
7403         int tmp = OP_glGenFencesNV;memcpy(ptr, &tmp, 4); ptr += 4;
7404         memcpy(ptr, &totalSize, 4);  ptr += 4;
7405
7406                 memcpy(ptr, &n, 4); ptr += 4;
7407         *(unsigned int *)(ptr) = __size_fences; ptr += 4;
7408         memcpy(ptr, fences, __size_fences);ptr += __size_fences;
7409
7410         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7411         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7412
7413 }
7414
7415 GLboolean glIsFenceNV_enc(void *self , GLuint fence)
7416 {
7417
7418         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7419         IOStream *stream = ctx->m_stream;
7420         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7421         bool useChecksum = checksumCalculator->getVersion() > 0;
7422
7423          unsigned char *ptr;
7424          unsigned char *buf;
7425          const size_t sizeWithoutChecksum = 8 + 4;
7426          const size_t checksumSize = checksumCalculator->checksumByteSize();
7427          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7428         buf = stream->alloc(totalSize);
7429         ptr = buf;
7430         int tmp = OP_glIsFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
7431         memcpy(ptr, &totalSize, 4);  ptr += 4;
7432
7433                 memcpy(ptr, &fence, 4); ptr += 4;
7434
7435         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7436         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7437
7438
7439         GLboolean retval;
7440         stream->readback(&retval, 1);
7441         if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
7442         if (useChecksum) {
7443                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7444                 stream->readback(checksumBuf.get(), checksumSize);
7445                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7446                         ALOGE("glIsFenceNV: GL communication error, please report this issue to b.android.com.\n");
7447                         abort();
7448                 }
7449         }
7450         return retval;
7451 }
7452
7453 GLboolean glTestFenceNV_enc(void *self , GLuint fence)
7454 {
7455
7456         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7457         IOStream *stream = ctx->m_stream;
7458         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7459         bool useChecksum = checksumCalculator->getVersion() > 0;
7460
7461          unsigned char *ptr;
7462          unsigned char *buf;
7463          const size_t sizeWithoutChecksum = 8 + 4;
7464          const size_t checksumSize = checksumCalculator->checksumByteSize();
7465          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7466         buf = stream->alloc(totalSize);
7467         ptr = buf;
7468         int tmp = OP_glTestFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
7469         memcpy(ptr, &totalSize, 4);  ptr += 4;
7470
7471                 memcpy(ptr, &fence, 4); ptr += 4;
7472
7473         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7474         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7475
7476
7477         GLboolean retval;
7478         stream->readback(&retval, 1);
7479         if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
7480         if (useChecksum) {
7481                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7482                 stream->readback(checksumBuf.get(), checksumSize);
7483                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7484                         ALOGE("glTestFenceNV: GL communication error, please report this issue to b.android.com.\n");
7485                         abort();
7486                 }
7487         }
7488         return retval;
7489 }
7490
7491 void glGetFenceivNV_enc(void *self , GLuint fence, GLenum pname, GLint* params)
7492 {
7493
7494         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7495         IOStream *stream = ctx->m_stream;
7496         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7497         bool useChecksum = checksumCalculator->getVersion() > 0;
7498
7499         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
7500          unsigned char *ptr;
7501          unsigned char *buf;
7502          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7503          const size_t checksumSize = checksumCalculator->checksumByteSize();
7504          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7505         buf = stream->alloc(totalSize);
7506         ptr = buf;
7507         int tmp = OP_glGetFenceivNV;memcpy(ptr, &tmp, 4); ptr += 4;
7508         memcpy(ptr, &totalSize, 4);  ptr += 4;
7509
7510                 memcpy(ptr, &fence, 4); ptr += 4;
7511                 memcpy(ptr, &pname, 4); ptr += 4;
7512         *(unsigned int *)(ptr) = __size_params; ptr += 4;
7513
7514         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7515         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7516
7517         stream->readback(params, __size_params);
7518         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
7519         if (useChecksum) {
7520                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7521                 stream->readback(checksumBuf.get(), checksumSize);
7522                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7523                         ALOGE("glGetFenceivNV: GL communication error, please report this issue to b.android.com.\n");
7524                         abort();
7525                 }
7526         }
7527 }
7528
7529 void glFinishFenceNV_enc(void *self , GLuint fence)
7530 {
7531
7532         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7533         IOStream *stream = ctx->m_stream;
7534         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7535         bool useChecksum = checksumCalculator->getVersion() > 0;
7536
7537          unsigned char *ptr;
7538          unsigned char *buf;
7539          const size_t sizeWithoutChecksum = 8 + 4;
7540          const size_t checksumSize = checksumCalculator->checksumByteSize();
7541          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7542         buf = stream->alloc(totalSize);
7543         ptr = buf;
7544         int tmp = OP_glFinishFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
7545         memcpy(ptr, &totalSize, 4);  ptr += 4;
7546
7547                 memcpy(ptr, &fence, 4); ptr += 4;
7548
7549         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7550         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7551
7552 }
7553
7554 void glSetFenceNV_enc(void *self , GLuint fence, GLenum condition)
7555 {
7556
7557         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7558         IOStream *stream = ctx->m_stream;
7559         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7560         bool useChecksum = checksumCalculator->getVersion() > 0;
7561
7562          unsigned char *ptr;
7563          unsigned char *buf;
7564          const size_t sizeWithoutChecksum = 8 + 4 + 4;
7565          const size_t checksumSize = checksumCalculator->checksumByteSize();
7566          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7567         buf = stream->alloc(totalSize);
7568         ptr = buf;
7569         int tmp = OP_glSetFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
7570         memcpy(ptr, &totalSize, 4);  ptr += 4;
7571
7572                 memcpy(ptr, &fence, 4); ptr += 4;
7573                 memcpy(ptr, &condition, 4); ptr += 4;
7574
7575         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7576         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7577
7578 }
7579
7580 void glGetDriverControlsQCOM_enc(void *self , GLint* num, GLsizei size, GLuint* driverControls)
7581 {
7582
7583         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7584         IOStream *stream = ctx->m_stream;
7585         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7586         bool useChecksum = checksumCalculator->getVersion() > 0;
7587
7588         const unsigned int __size_num =  (1 * sizeof(GLint));
7589         const unsigned int __size_driverControls =  (size * sizeof(GLuint));
7590          unsigned char *ptr;
7591          unsigned char *buf;
7592          const size_t sizeWithoutChecksum = 8 + __size_num + 4 + __size_driverControls + 2*4;
7593          const size_t checksumSize = checksumCalculator->checksumByteSize();
7594          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7595         buf = stream->alloc(totalSize);
7596         ptr = buf;
7597         int tmp = OP_glGetDriverControlsQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7598         memcpy(ptr, &totalSize, 4);  ptr += 4;
7599
7600         *(unsigned int *)(ptr) = __size_num; ptr += 4;
7601                 memcpy(ptr, &size, 4); ptr += 4;
7602         *(unsigned int *)(ptr) = __size_driverControls; ptr += 4;
7603
7604         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7605         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7606
7607         stream->readback(num, __size_num);
7608         if (useChecksum) checksumCalculator->addBuffer(num, __size_num);
7609         stream->readback(driverControls, __size_driverControls);
7610         if (useChecksum) checksumCalculator->addBuffer(driverControls, __size_driverControls);
7611         if (useChecksum) {
7612                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7613                 stream->readback(checksumBuf.get(), checksumSize);
7614                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7615                         ALOGE("glGetDriverControlsQCOM: GL communication error, please report this issue to b.android.com.\n");
7616                         abort();
7617                 }
7618         }
7619 }
7620
7621 void glGetDriverControlStringQCOM_enc(void *self , GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString)
7622 {
7623
7624         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7625         IOStream *stream = ctx->m_stream;
7626         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7627         bool useChecksum = checksumCalculator->getVersion() > 0;
7628
7629         const unsigned int __size_length =  (1 * sizeof(GLsizei));
7630         const unsigned int __size_driverControlString =  (1 * sizeof(GLchar));
7631          unsigned char *ptr;
7632          unsigned char *buf;
7633          const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_length + __size_driverControlString + 2*4;
7634          const size_t checksumSize = checksumCalculator->checksumByteSize();
7635          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7636         buf = stream->alloc(totalSize);
7637         ptr = buf;
7638         int tmp = OP_glGetDriverControlStringQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7639         memcpy(ptr, &totalSize, 4);  ptr += 4;
7640
7641                 memcpy(ptr, &driverControl, 4); ptr += 4;
7642                 memcpy(ptr, &bufSize, 4); ptr += 4;
7643         *(unsigned int *)(ptr) = __size_length; ptr += 4;
7644         *(unsigned int *)(ptr) = __size_driverControlString; ptr += 4;
7645
7646         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7647         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7648
7649         stream->readback(length, __size_length);
7650         if (useChecksum) checksumCalculator->addBuffer(length, __size_length);
7651         stream->readback(driverControlString, __size_driverControlString);
7652         if (useChecksum) checksumCalculator->addBuffer(driverControlString, __size_driverControlString);
7653         if (useChecksum) {
7654                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7655                 stream->readback(checksumBuf.get(), checksumSize);
7656                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7657                         ALOGE("glGetDriverControlStringQCOM: GL communication error, please report this issue to b.android.com.\n");
7658                         abort();
7659                 }
7660         }
7661 }
7662
7663 void glEnableDriverControlQCOM_enc(void *self , GLuint driverControl)
7664 {
7665
7666         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7667         IOStream *stream = ctx->m_stream;
7668         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7669         bool useChecksum = checksumCalculator->getVersion() > 0;
7670
7671          unsigned char *ptr;
7672          unsigned char *buf;
7673          const size_t sizeWithoutChecksum = 8 + 4;
7674          const size_t checksumSize = checksumCalculator->checksumByteSize();
7675          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7676         buf = stream->alloc(totalSize);
7677         ptr = buf;
7678         int tmp = OP_glEnableDriverControlQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7679         memcpy(ptr, &totalSize, 4);  ptr += 4;
7680
7681                 memcpy(ptr, &driverControl, 4); ptr += 4;
7682
7683         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7684         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7685
7686 }
7687
7688 void glDisableDriverControlQCOM_enc(void *self , GLuint driverControl)
7689 {
7690
7691         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7692         IOStream *stream = ctx->m_stream;
7693         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7694         bool useChecksum = checksumCalculator->getVersion() > 0;
7695
7696          unsigned char *ptr;
7697          unsigned char *buf;
7698          const size_t sizeWithoutChecksum = 8 + 4;
7699          const size_t checksumSize = checksumCalculator->checksumByteSize();
7700          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7701         buf = stream->alloc(totalSize);
7702         ptr = buf;
7703         int tmp = OP_glDisableDriverControlQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7704         memcpy(ptr, &totalSize, 4);  ptr += 4;
7705
7706                 memcpy(ptr, &driverControl, 4); ptr += 4;
7707
7708         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7709         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7710
7711 }
7712
7713 void glExtGetTexturesQCOM_enc(void *self , GLuint* textures, GLint maxTextures, GLint* numTextures)
7714 {
7715
7716         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7717         IOStream *stream = ctx->m_stream;
7718         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7719         bool useChecksum = checksumCalculator->getVersion() > 0;
7720
7721         const unsigned int __size_textures =  (maxTextures * sizeof(GLuint));
7722         const unsigned int __size_numTextures =  (1 * sizeof(GLint));
7723          unsigned char *ptr;
7724          unsigned char *buf;
7725          const size_t sizeWithoutChecksum = 8 + __size_textures + 4 + __size_numTextures + 2*4;
7726          const size_t checksumSize = checksumCalculator->checksumByteSize();
7727          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7728         buf = stream->alloc(totalSize);
7729         ptr = buf;
7730         int tmp = OP_glExtGetTexturesQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7731         memcpy(ptr, &totalSize, 4);  ptr += 4;
7732
7733         *(unsigned int *)(ptr) = __size_textures; ptr += 4;
7734                 memcpy(ptr, &maxTextures, 4); ptr += 4;
7735         *(unsigned int *)(ptr) = __size_numTextures; ptr += 4;
7736
7737         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7738         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7739
7740         stream->readback(textures, __size_textures);
7741         if (useChecksum) checksumCalculator->addBuffer(textures, __size_textures);
7742         stream->readback(numTextures, __size_numTextures);
7743         if (useChecksum) checksumCalculator->addBuffer(numTextures, __size_numTextures);
7744         if (useChecksum) {
7745                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7746                 stream->readback(checksumBuf.get(), checksumSize);
7747                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7748                         ALOGE("glExtGetTexturesQCOM: GL communication error, please report this issue to b.android.com.\n");
7749                         abort();
7750                 }
7751         }
7752 }
7753
7754 void glExtGetBuffersQCOM_enc(void *self , GLuint* buffers, GLint maxBuffers, GLint* numBuffers)
7755 {
7756
7757         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7758         IOStream *stream = ctx->m_stream;
7759         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7760         bool useChecksum = checksumCalculator->getVersion() > 0;
7761
7762         const unsigned int __size_buffers =  (maxBuffers * sizeof(GLuint));
7763         const unsigned int __size_numBuffers =  (1 * sizeof(GLint));
7764          unsigned char *ptr;
7765          unsigned char *buf;
7766          const size_t sizeWithoutChecksum = 8 + __size_buffers + 4 + __size_numBuffers + 2*4;
7767          const size_t checksumSize = checksumCalculator->checksumByteSize();
7768          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7769         buf = stream->alloc(totalSize);
7770         ptr = buf;
7771         int tmp = OP_glExtGetBuffersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7772         memcpy(ptr, &totalSize, 4);  ptr += 4;
7773
7774         *(unsigned int *)(ptr) = __size_buffers; ptr += 4;
7775                 memcpy(ptr, &maxBuffers, 4); ptr += 4;
7776         *(unsigned int *)(ptr) = __size_numBuffers; ptr += 4;
7777
7778         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7779         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7780
7781         stream->readback(buffers, __size_buffers);
7782         if (useChecksum) checksumCalculator->addBuffer(buffers, __size_buffers);
7783         stream->readback(numBuffers, __size_numBuffers);
7784         if (useChecksum) checksumCalculator->addBuffer(numBuffers, __size_numBuffers);
7785         if (useChecksum) {
7786                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7787                 stream->readback(checksumBuf.get(), checksumSize);
7788                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7789                         ALOGE("glExtGetBuffersQCOM: GL communication error, please report this issue to b.android.com.\n");
7790                         abort();
7791                 }
7792         }
7793 }
7794
7795 void glExtGetRenderbuffersQCOM_enc(void *self , GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers)
7796 {
7797
7798         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7799         IOStream *stream = ctx->m_stream;
7800         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7801         bool useChecksum = checksumCalculator->getVersion() > 0;
7802
7803         const unsigned int __size_renderbuffers =  (maxRenderbuffers * sizeof(GLuint));
7804         const unsigned int __size_numRenderbuffers =  (1 * sizeof(GLint));
7805          unsigned char *ptr;
7806          unsigned char *buf;
7807          const size_t sizeWithoutChecksum = 8 + __size_renderbuffers + 4 + __size_numRenderbuffers + 2*4;
7808          const size_t checksumSize = checksumCalculator->checksumByteSize();
7809          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7810         buf = stream->alloc(totalSize);
7811         ptr = buf;
7812         int tmp = OP_glExtGetRenderbuffersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7813         memcpy(ptr, &totalSize, 4);  ptr += 4;
7814
7815         *(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4;
7816                 memcpy(ptr, &maxRenderbuffers, 4); ptr += 4;
7817         *(unsigned int *)(ptr) = __size_numRenderbuffers; ptr += 4;
7818
7819         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7820         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7821
7822         stream->readback(renderbuffers, __size_renderbuffers);
7823         if (useChecksum) checksumCalculator->addBuffer(renderbuffers, __size_renderbuffers);
7824         stream->readback(numRenderbuffers, __size_numRenderbuffers);
7825         if (useChecksum) checksumCalculator->addBuffer(numRenderbuffers, __size_numRenderbuffers);
7826         if (useChecksum) {
7827                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7828                 stream->readback(checksumBuf.get(), checksumSize);
7829                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7830                         ALOGE("glExtGetRenderbuffersQCOM: GL communication error, please report this issue to b.android.com.\n");
7831                         abort();
7832                 }
7833         }
7834 }
7835
7836 void glExtGetFramebuffersQCOM_enc(void *self , GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers)
7837 {
7838
7839         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7840         IOStream *stream = ctx->m_stream;
7841         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7842         bool useChecksum = checksumCalculator->getVersion() > 0;
7843
7844         const unsigned int __size_framebuffers =  (maxFramebuffers * sizeof(GLuint));
7845         const unsigned int __size_numFramebuffers =  (1 * sizeof(GLint));
7846          unsigned char *ptr;
7847          unsigned char *buf;
7848          const size_t sizeWithoutChecksum = 8 + __size_framebuffers + 4 + __size_numFramebuffers + 2*4;
7849          const size_t checksumSize = checksumCalculator->checksumByteSize();
7850          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7851         buf = stream->alloc(totalSize);
7852         ptr = buf;
7853         int tmp = OP_glExtGetFramebuffersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7854         memcpy(ptr, &totalSize, 4);  ptr += 4;
7855
7856         *(unsigned int *)(ptr) = __size_framebuffers; ptr += 4;
7857                 memcpy(ptr, &maxFramebuffers, 4); ptr += 4;
7858         *(unsigned int *)(ptr) = __size_numFramebuffers; ptr += 4;
7859
7860         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7861         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7862
7863         stream->readback(framebuffers, __size_framebuffers);
7864         if (useChecksum) checksumCalculator->addBuffer(framebuffers, __size_framebuffers);
7865         stream->readback(numFramebuffers, __size_numFramebuffers);
7866         if (useChecksum) checksumCalculator->addBuffer(numFramebuffers, __size_numFramebuffers);
7867         if (useChecksum) {
7868                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7869                 stream->readback(checksumBuf.get(), checksumSize);
7870                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7871                         ALOGE("glExtGetFramebuffersQCOM: GL communication error, please report this issue to b.android.com.\n");
7872                         abort();
7873                 }
7874         }
7875 }
7876
7877 void glExtGetTexLevelParameterivQCOM_enc(void *self , GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params)
7878 {
7879
7880         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7881         IOStream *stream = ctx->m_stream;
7882         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7883         bool useChecksum = checksumCalculator->getVersion() > 0;
7884
7885         const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
7886          unsigned char *ptr;
7887          unsigned char *buf;
7888          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + __size_params + 1*4;
7889          const size_t checksumSize = checksumCalculator->checksumByteSize();
7890          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7891         buf = stream->alloc(totalSize);
7892         ptr = buf;
7893         int tmp = OP_glExtGetTexLevelParameterivQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7894         memcpy(ptr, &totalSize, 4);  ptr += 4;
7895
7896                 memcpy(ptr, &texture, 4); ptr += 4;
7897                 memcpy(ptr, &face, 4); ptr += 4;
7898                 memcpy(ptr, &level, 4); ptr += 4;
7899                 memcpy(ptr, &pname, 4); ptr += 4;
7900         *(unsigned int *)(ptr) = __size_params; ptr += 4;
7901
7902         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7903         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7904
7905         stream->readback(params, __size_params);
7906         if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
7907         if (useChecksum) {
7908                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7909                 stream->readback(checksumBuf.get(), checksumSize);
7910                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7911                         ALOGE("glExtGetTexLevelParameterivQCOM: GL communication error, please report this issue to b.android.com.\n");
7912                         abort();
7913                 }
7914         }
7915 }
7916
7917 void glExtTexObjectStateOverrideiQCOM_enc(void *self , GLenum target, GLenum pname, GLint param)
7918 {
7919
7920         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7921         IOStream *stream = ctx->m_stream;
7922         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7923         bool useChecksum = checksumCalculator->getVersion() > 0;
7924
7925          unsigned char *ptr;
7926          unsigned char *buf;
7927          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
7928          const size_t checksumSize = checksumCalculator->checksumByteSize();
7929          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7930         buf = stream->alloc(totalSize);
7931         ptr = buf;
7932         int tmp = OP_glExtTexObjectStateOverrideiQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7933         memcpy(ptr, &totalSize, 4);  ptr += 4;
7934
7935                 memcpy(ptr, &target, 4); ptr += 4;
7936                 memcpy(ptr, &pname, 4); ptr += 4;
7937                 memcpy(ptr, &param, 4); ptr += 4;
7938
7939         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7940         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7941
7942 }
7943
7944 void glExtGetTexSubImageQCOM_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels)
7945 {
7946
7947         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7948         IOStream *stream = ctx->m_stream;
7949         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7950         bool useChecksum = checksumCalculator->getVersion() > 0;
7951
7952         const unsigned int __size_texels =  (depth * glesv1_enc::pixelDataSize(self, width, height, format, type, 0));
7953          unsigned char *ptr;
7954          unsigned char *buf;
7955          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_texels + 1*4;
7956          const size_t checksumSize = checksumCalculator->checksumByteSize();
7957          const size_t totalSize = sizeWithoutChecksum + checksumSize;
7958         buf = stream->alloc(totalSize);
7959         ptr = buf;
7960         int tmp = OP_glExtGetTexSubImageQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
7961         memcpy(ptr, &totalSize, 4);  ptr += 4;
7962
7963                 memcpy(ptr, &target, 4); ptr += 4;
7964                 memcpy(ptr, &level, 4); ptr += 4;
7965                 memcpy(ptr, &xoffset, 4); ptr += 4;
7966                 memcpy(ptr, &yoffset, 4); ptr += 4;
7967                 memcpy(ptr, &zoffset, 4); ptr += 4;
7968                 memcpy(ptr, &width, 4); ptr += 4;
7969                 memcpy(ptr, &height, 4); ptr += 4;
7970                 memcpy(ptr, &depth, 4); ptr += 4;
7971                 memcpy(ptr, &format, 4); ptr += 4;
7972                 memcpy(ptr, &type, 4); ptr += 4;
7973         *(unsigned int *)(ptr) = __size_texels; ptr += 4;
7974
7975         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7976         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7977
7978         stream->readback(texels, __size_texels);
7979         if (useChecksum) checksumCalculator->addBuffer(texels, __size_texels);
7980         if (useChecksum) {
7981                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
7982                 stream->readback(checksumBuf.get(), checksumSize);
7983                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
7984                         ALOGE("glExtGetTexSubImageQCOM: GL communication error, please report this issue to b.android.com.\n");
7985                         abort();
7986                 }
7987         }
7988 }
7989
7990 void glExtGetShadersQCOM_enc(void *self , GLuint* shaders, GLint maxShaders, GLint* numShaders)
7991 {
7992
7993         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7994         IOStream *stream = ctx->m_stream;
7995         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7996         bool useChecksum = checksumCalculator->getVersion() > 0;
7997
7998         const unsigned int __size_shaders =  (maxShaders * sizeof(GLuint));
7999         const unsigned int __size_numShaders =  (1 * sizeof(GLint));
8000          unsigned char *ptr;
8001          unsigned char *buf;
8002          const size_t sizeWithoutChecksum = 8 + __size_shaders + 4 + __size_numShaders + 2*4;
8003          const size_t checksumSize = checksumCalculator->checksumByteSize();
8004          const size_t totalSize = sizeWithoutChecksum + checksumSize;
8005         buf = stream->alloc(totalSize);
8006         ptr = buf;
8007         int tmp = OP_glExtGetShadersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8008         memcpy(ptr, &totalSize, 4);  ptr += 4;
8009
8010         *(unsigned int *)(ptr) = __size_shaders; ptr += 4;
8011                 memcpy(ptr, &maxShaders, 4); ptr += 4;
8012         *(unsigned int *)(ptr) = __size_numShaders; ptr += 4;
8013
8014         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8015         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8016
8017         stream->readback(shaders, __size_shaders);
8018         if (useChecksum) checksumCalculator->addBuffer(shaders, __size_shaders);
8019         stream->readback(numShaders, __size_numShaders);
8020         if (useChecksum) checksumCalculator->addBuffer(numShaders, __size_numShaders);
8021         if (useChecksum) {
8022                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
8023                 stream->readback(checksumBuf.get(), checksumSize);
8024                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
8025                         ALOGE("glExtGetShadersQCOM: GL communication error, please report this issue to b.android.com.\n");
8026                         abort();
8027                 }
8028         }
8029 }
8030
8031 void glExtGetProgramsQCOM_enc(void *self , GLuint* programs, GLint maxPrograms, GLint* numPrograms)
8032 {
8033
8034         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8035         IOStream *stream = ctx->m_stream;
8036         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8037         bool useChecksum = checksumCalculator->getVersion() > 0;
8038
8039         const unsigned int __size_programs =  (maxPrograms * sizeof(GLuint));
8040         const unsigned int __size_numPrograms =  (1 * sizeof(GLint));
8041          unsigned char *ptr;
8042          unsigned char *buf;
8043          const size_t sizeWithoutChecksum = 8 + __size_programs + 4 + __size_numPrograms + 2*4;
8044          const size_t checksumSize = checksumCalculator->checksumByteSize();
8045          const size_t totalSize = sizeWithoutChecksum + checksumSize;
8046         buf = stream->alloc(totalSize);
8047         ptr = buf;
8048         int tmp = OP_glExtGetProgramsQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8049         memcpy(ptr, &totalSize, 4);  ptr += 4;
8050
8051         *(unsigned int *)(ptr) = __size_programs; ptr += 4;
8052                 memcpy(ptr, &maxPrograms, 4); ptr += 4;
8053         *(unsigned int *)(ptr) = __size_numPrograms; ptr += 4;
8054
8055         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8056         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8057
8058         stream->readback(programs, __size_programs);
8059         if (useChecksum) checksumCalculator->addBuffer(programs, __size_programs);
8060         stream->readback(numPrograms, __size_numPrograms);
8061         if (useChecksum) checksumCalculator->addBuffer(numPrograms, __size_numPrograms);
8062         if (useChecksum) {
8063                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
8064                 stream->readback(checksumBuf.get(), checksumSize);
8065                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
8066                         ALOGE("glExtGetProgramsQCOM: GL communication error, please report this issue to b.android.com.\n");
8067                         abort();
8068                 }
8069         }
8070 }
8071
8072 GLboolean glExtIsProgramBinaryQCOM_enc(void *self , GLuint program)
8073 {
8074
8075         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8076         IOStream *stream = ctx->m_stream;
8077         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8078         bool useChecksum = checksumCalculator->getVersion() > 0;
8079
8080          unsigned char *ptr;
8081          unsigned char *buf;
8082          const size_t sizeWithoutChecksum = 8 + 4;
8083          const size_t checksumSize = checksumCalculator->checksumByteSize();
8084          const size_t totalSize = sizeWithoutChecksum + checksumSize;
8085         buf = stream->alloc(totalSize);
8086         ptr = buf;
8087         int tmp = OP_glExtIsProgramBinaryQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8088         memcpy(ptr, &totalSize, 4);  ptr += 4;
8089
8090                 memcpy(ptr, &program, 4); ptr += 4;
8091
8092         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8093         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8094
8095
8096         GLboolean retval;
8097         stream->readback(&retval, 1);
8098         if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
8099         if (useChecksum) {
8100                 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
8101                 stream->readback(checksumBuf.get(), checksumSize);
8102                 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
8103                         ALOGE("glExtIsProgramBinaryQCOM: GL communication error, please report this issue to b.android.com.\n");
8104                         abort();
8105                 }
8106         }
8107         return retval;
8108 }
8109
8110 void glStartTilingQCOM_enc(void *self , GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
8111 {
8112
8113         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8114         IOStream *stream = ctx->m_stream;
8115         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8116         bool useChecksum = checksumCalculator->getVersion() > 0;
8117
8118          unsigned char *ptr;
8119          unsigned char *buf;
8120          const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
8121          const size_t checksumSize = checksumCalculator->checksumByteSize();
8122          const size_t totalSize = sizeWithoutChecksum + checksumSize;
8123         buf = stream->alloc(totalSize);
8124         ptr = buf;
8125         int tmp = OP_glStartTilingQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8126         memcpy(ptr, &totalSize, 4);  ptr += 4;
8127
8128                 memcpy(ptr, &x, 4); ptr += 4;
8129                 memcpy(ptr, &y, 4); ptr += 4;
8130                 memcpy(ptr, &width, 4); ptr += 4;
8131                 memcpy(ptr, &height, 4); ptr += 4;
8132                 memcpy(ptr, &preserveMask, 4); ptr += 4;
8133
8134         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8135         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8136
8137 }
8138
8139 void glEndTilingQCOM_enc(void *self , GLbitfield preserveMask)
8140 {
8141
8142         gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8143         IOStream *stream = ctx->m_stream;
8144         ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8145         bool useChecksum = checksumCalculator->getVersion() > 0;
8146
8147          unsigned char *ptr;
8148          unsigned char *buf;
8149          const size_t sizeWithoutChecksum = 8 + 4;
8150          const size_t checksumSize = checksumCalculator->checksumByteSize();
8151          const size_t totalSize = sizeWithoutChecksum + checksumSize;
8152         buf = stream->alloc(totalSize);
8153         ptr = buf;
8154         int tmp = OP_glEndTilingQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8155         memcpy(ptr, &totalSize, 4);  ptr += 4;
8156
8157                 memcpy(ptr, &preserveMask, 4); ptr += 4;
8158
8159         if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8160         if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8161
8162 }
8163
8164 }  // namespace
8165
8166 gl_encoder_context_t::gl_encoder_context_t(IOStream *stream, ChecksumCalculator *checksumCalculator)
8167 {
8168         m_stream = stream;
8169         m_checksumCalculator = checksumCalculator;
8170
8171         this->glAlphaFunc = &glAlphaFunc_enc;
8172         this->glClearColor = &glClearColor_enc;
8173         this->glClearDepthf = &glClearDepthf_enc;
8174         this->glClipPlanef = &glClipPlanef_enc;
8175         this->glColor4f = &glColor4f_enc;
8176         this->glDepthRangef = &glDepthRangef_enc;
8177         this->glFogf = &glFogf_enc;
8178         this->glFogfv = &glFogfv_enc;
8179         this->glFrustumf = &glFrustumf_enc;
8180         this->glGetClipPlanef = &glGetClipPlanef_enc;
8181         this->glGetFloatv = &glGetFloatv_enc;
8182         this->glGetLightfv = &glGetLightfv_enc;
8183         this->glGetMaterialfv = &glGetMaterialfv_enc;
8184         this->glGetTexEnvfv = &glGetTexEnvfv_enc;
8185         this->glGetTexParameterfv = &glGetTexParameterfv_enc;
8186         this->glLightModelf = &glLightModelf_enc;
8187         this->glLightModelfv = &glLightModelfv_enc;
8188         this->glLightf = &glLightf_enc;
8189         this->glLightfv = &glLightfv_enc;
8190         this->glLineWidth = &glLineWidth_enc;
8191         this->glLoadMatrixf = &glLoadMatrixf_enc;
8192         this->glMaterialf = &glMaterialf_enc;
8193         this->glMaterialfv = &glMaterialfv_enc;
8194         this->glMultMatrixf = &glMultMatrixf_enc;
8195         this->glMultiTexCoord4f = &glMultiTexCoord4f_enc;
8196         this->glNormal3f = &glNormal3f_enc;
8197         this->glOrthof = &glOrthof_enc;
8198         this->glPointParameterf = &glPointParameterf_enc;
8199         this->glPointParameterfv = &glPointParameterfv_enc;
8200         this->glPointSize = &glPointSize_enc;
8201         this->glPolygonOffset = &glPolygonOffset_enc;
8202         this->glRotatef = &glRotatef_enc;
8203         this->glScalef = &glScalef_enc;
8204         this->glTexEnvf = &glTexEnvf_enc;
8205         this->glTexEnvfv = &glTexEnvfv_enc;
8206         this->glTexParameterf = &glTexParameterf_enc;
8207         this->glTexParameterfv = &glTexParameterfv_enc;
8208         this->glTranslatef = &glTranslatef_enc;
8209         this->glActiveTexture = &glActiveTexture_enc;
8210         this->glAlphaFuncx = &glAlphaFuncx_enc;
8211         this->glBindBuffer = &glBindBuffer_enc;
8212         this->glBindTexture = &glBindTexture_enc;
8213         this->glBlendFunc = &glBlendFunc_enc;
8214         this->glBufferData = &glBufferData_enc;
8215         this->glBufferSubData = &glBufferSubData_enc;
8216         this->glClear = &glClear_enc;
8217         this->glClearColorx = &glClearColorx_enc;
8218         this->glClearDepthx = &glClearDepthx_enc;
8219         this->glClearStencil = &glClearStencil_enc;
8220         this->glClientActiveTexture = &glClientActiveTexture_enc;
8221         this->glColor4ub = &glColor4ub_enc;
8222         this->glColor4x = &glColor4x_enc;
8223         this->glColorMask = &glColorMask_enc;
8224         this->glColorPointer = (glColorPointer_client_proc_t) &enc_unsupported;
8225         this->glCompressedTexImage2D = &glCompressedTexImage2D_enc;
8226         this->glCompressedTexSubImage2D = &glCompressedTexSubImage2D_enc;
8227         this->glCopyTexImage2D = &glCopyTexImage2D_enc;
8228         this->glCopyTexSubImage2D = &glCopyTexSubImage2D_enc;
8229         this->glCullFace = &glCullFace_enc;
8230         this->glDeleteBuffers = &glDeleteBuffers_enc;
8231         this->glDeleteTextures = &glDeleteTextures_enc;
8232         this->glDepthFunc = &glDepthFunc_enc;
8233         this->glDepthMask = &glDepthMask_enc;
8234         this->glDepthRangex = &glDepthRangex_enc;
8235         this->glDisable = &glDisable_enc;
8236         this->glDisableClientState = &glDisableClientState_enc;
8237         this->glDrawArrays = &glDrawArrays_enc;
8238         this->glDrawElements = (glDrawElements_client_proc_t) &enc_unsupported;
8239         this->glEnable = &glEnable_enc;
8240         this->glEnableClientState = &glEnableClientState_enc;
8241         this->glFinish = &glFinish_enc;
8242         this->glFlush = &glFlush_enc;
8243         this->glFogx = &glFogx_enc;
8244         this->glFogxv = &glFogxv_enc;
8245         this->glFrontFace = &glFrontFace_enc;
8246         this->glFrustumx = &glFrustumx_enc;
8247         this->glGetBooleanv = &glGetBooleanv_enc;
8248         this->glGetBufferParameteriv = &glGetBufferParameteriv_enc;
8249         this->glClipPlanex = &glClipPlanex_enc;
8250         this->glGenBuffers = &glGenBuffers_enc;
8251         this->glGenTextures = &glGenTextures_enc;
8252         this->glGetError = &glGetError_enc;
8253         this->glGetFixedv = &glGetFixedv_enc;
8254         this->glGetIntegerv = &glGetIntegerv_enc;
8255         this->glGetLightxv = &glGetLightxv_enc;
8256         this->glGetMaterialxv = &glGetMaterialxv_enc;
8257         this->glGetPointerv = (glGetPointerv_client_proc_t) &enc_unsupported;
8258         this->glGetString = (glGetString_client_proc_t) &enc_unsupported;
8259         this->glGetTexEnviv = &glGetTexEnviv_enc;
8260         this->glGetTexEnvxv = &glGetTexEnvxv_enc;
8261         this->glGetTexParameteriv = &glGetTexParameteriv_enc;
8262         this->glGetTexParameterxv = &glGetTexParameterxv_enc;
8263         this->glHint = &glHint_enc;
8264         this->glIsBuffer = &glIsBuffer_enc;
8265         this->glIsEnabled = &glIsEnabled_enc;
8266         this->glIsTexture = &glIsTexture_enc;
8267         this->glLightModelx = &glLightModelx_enc;
8268         this->glLightModelxv = &glLightModelxv_enc;
8269         this->glLightx = &glLightx_enc;
8270         this->glLightxv = &glLightxv_enc;
8271         this->glLineWidthx = &glLineWidthx_enc;
8272         this->glLoadIdentity = &glLoadIdentity_enc;
8273         this->glLoadMatrixx = &glLoadMatrixx_enc;
8274         this->glLogicOp = &glLogicOp_enc;
8275         this->glMaterialx = &glMaterialx_enc;
8276         this->glMaterialxv = &glMaterialxv_enc;
8277         this->glMatrixMode = &glMatrixMode_enc;
8278         this->glMultMatrixx = &glMultMatrixx_enc;
8279         this->glMultiTexCoord4x = &glMultiTexCoord4x_enc;
8280         this->glNormal3x = &glNormal3x_enc;
8281         this->glNormalPointer = (glNormalPointer_client_proc_t) &enc_unsupported;
8282         this->glOrthox = &glOrthox_enc;
8283         this->glPixelStorei = &glPixelStorei_enc;
8284         this->glPointParameterx = &glPointParameterx_enc;
8285         this->glPointParameterxv = &glPointParameterxv_enc;
8286         this->glPointSizex = &glPointSizex_enc;
8287         this->glPolygonOffsetx = &glPolygonOffsetx_enc;
8288         this->glPopMatrix = &glPopMatrix_enc;
8289         this->glPushMatrix = &glPushMatrix_enc;
8290         this->glReadPixels = &glReadPixels_enc;
8291         this->glRotatex = &glRotatex_enc;
8292         this->glSampleCoverage = &glSampleCoverage_enc;
8293         this->glSampleCoveragex = &glSampleCoveragex_enc;
8294         this->glScalex = &glScalex_enc;
8295         this->glScissor = &glScissor_enc;
8296         this->glShadeModel = &glShadeModel_enc;
8297         this->glStencilFunc = &glStencilFunc_enc;
8298         this->glStencilMask = &glStencilMask_enc;
8299         this->glStencilOp = &glStencilOp_enc;
8300         this->glTexCoordPointer = (glTexCoordPointer_client_proc_t) &enc_unsupported;
8301         this->glTexEnvi = &glTexEnvi_enc;
8302         this->glTexEnvx = &glTexEnvx_enc;
8303         this->glTexEnviv = &glTexEnviv_enc;
8304         this->glTexEnvxv = &glTexEnvxv_enc;
8305         this->glTexImage2D = &glTexImage2D_enc;
8306         this->glTexParameteri = &glTexParameteri_enc;
8307         this->glTexParameterx = &glTexParameterx_enc;
8308         this->glTexParameteriv = &glTexParameteriv_enc;
8309         this->glTexParameterxv = &glTexParameterxv_enc;
8310         this->glTexSubImage2D = &glTexSubImage2D_enc;
8311         this->glTranslatex = &glTranslatex_enc;
8312         this->glVertexPointer = (glVertexPointer_client_proc_t) &enc_unsupported;
8313         this->glViewport = &glViewport_enc;
8314         this->glPointSizePointerOES = (glPointSizePointerOES_client_proc_t) &enc_unsupported;
8315         this->glVertexPointerOffset = &glVertexPointerOffset_enc;
8316         this->glColorPointerOffset = &glColorPointerOffset_enc;
8317         this->glNormalPointerOffset = &glNormalPointerOffset_enc;
8318         this->glPointSizePointerOffset = &glPointSizePointerOffset_enc;
8319         this->glTexCoordPointerOffset = &glTexCoordPointerOffset_enc;
8320         this->glWeightPointerOffset = &glWeightPointerOffset_enc;
8321         this->glMatrixIndexPointerOffset = &glMatrixIndexPointerOffset_enc;
8322         this->glVertexPointerData = &glVertexPointerData_enc;
8323         this->glColorPointerData = &glColorPointerData_enc;
8324         this->glNormalPointerData = &glNormalPointerData_enc;
8325         this->glTexCoordPointerData = &glTexCoordPointerData_enc;
8326         this->glPointSizePointerData = &glPointSizePointerData_enc;
8327         this->glWeightPointerData = &glWeightPointerData_enc;
8328         this->glMatrixIndexPointerData = &glMatrixIndexPointerData_enc;
8329         this->glDrawElementsOffset = &glDrawElementsOffset_enc;
8330         this->glDrawElementsData = &glDrawElementsData_enc;
8331         this->glGetCompressedTextureFormats = &glGetCompressedTextureFormats_enc;
8332         this->glFinishRoundTrip = &glFinishRoundTrip_enc;
8333         this->glBlendEquationSeparateOES = &glBlendEquationSeparateOES_enc;
8334         this->glBlendFuncSeparateOES = &glBlendFuncSeparateOES_enc;
8335         this->glBlendEquationOES = &glBlendEquationOES_enc;
8336         this->glDrawTexsOES = &glDrawTexsOES_enc;
8337         this->glDrawTexiOES = &glDrawTexiOES_enc;
8338         this->glDrawTexxOES = &glDrawTexxOES_enc;
8339         this->glDrawTexsvOES = &glDrawTexsvOES_enc;
8340         this->glDrawTexivOES = &glDrawTexivOES_enc;
8341         this->glDrawTexxvOES = &glDrawTexxvOES_enc;
8342         this->glDrawTexfOES = &glDrawTexfOES_enc;
8343         this->glDrawTexfvOES = &glDrawTexfvOES_enc;
8344         this->glEGLImageTargetTexture2DOES = &glEGLImageTargetTexture2DOES_enc;
8345         this->glEGLImageTargetRenderbufferStorageOES = &glEGLImageTargetRenderbufferStorageOES_enc;
8346         this->glAlphaFuncxOES = &glAlphaFuncxOES_enc;
8347         this->glClearColorxOES = &glClearColorxOES_enc;
8348         this->glClearDepthxOES = &glClearDepthxOES_enc;
8349         this->glClipPlanexOES = &glClipPlanexOES_enc;
8350         this->glClipPlanexIMG = &glClipPlanexIMG_enc;
8351         this->glColor4xOES = &glColor4xOES_enc;
8352         this->glDepthRangexOES = &glDepthRangexOES_enc;
8353         this->glFogxOES = &glFogxOES_enc;
8354         this->glFogxvOES = &glFogxvOES_enc;
8355         this->glFrustumxOES = &glFrustumxOES_enc;
8356         this->glGetClipPlanexOES = &glGetClipPlanexOES_enc;
8357         this->glGetClipPlanex = &glGetClipPlanex_enc;
8358         this->glGetFixedvOES = &glGetFixedvOES_enc;
8359         this->glGetLightxvOES = &glGetLightxvOES_enc;
8360         this->glGetMaterialxvOES = &glGetMaterialxvOES_enc;
8361         this->glGetTexEnvxvOES = &glGetTexEnvxvOES_enc;
8362         this->glGetTexParameterxvOES = &glGetTexParameterxvOES_enc;
8363         this->glLightModelxOES = &glLightModelxOES_enc;
8364         this->glLightModelxvOES = &glLightModelxvOES_enc;
8365         this->glLightxOES = &glLightxOES_enc;
8366         this->glLightxvOES = &glLightxvOES_enc;
8367         this->glLineWidthxOES = &glLineWidthxOES_enc;
8368         this->glLoadMatrixxOES = &glLoadMatrixxOES_enc;
8369         this->glMaterialxOES = &glMaterialxOES_enc;
8370         this->glMaterialxvOES = &glMaterialxvOES_enc;
8371         this->glMultMatrixxOES = &glMultMatrixxOES_enc;
8372         this->glMultiTexCoord4xOES = &glMultiTexCoord4xOES_enc;
8373         this->glNormal3xOES = &glNormal3xOES_enc;
8374         this->glOrthoxOES = &glOrthoxOES_enc;
8375         this->glPointParameterxOES = &glPointParameterxOES_enc;
8376         this->glPointParameterxvOES = &glPointParameterxvOES_enc;
8377         this->glPointSizexOES = &glPointSizexOES_enc;
8378         this->glPolygonOffsetxOES = &glPolygonOffsetxOES_enc;
8379         this->glRotatexOES = &glRotatexOES_enc;
8380         this->glSampleCoveragexOES = &glSampleCoveragexOES_enc;
8381         this->glScalexOES = &glScalexOES_enc;
8382         this->glTexEnvxOES = &glTexEnvxOES_enc;
8383         this->glTexEnvxvOES = &glTexEnvxvOES_enc;
8384         this->glTexParameterxOES = &glTexParameterxOES_enc;
8385         this->glTexParameterxvOES = &glTexParameterxvOES_enc;
8386         this->glTranslatexOES = &glTranslatexOES_enc;
8387         this->glIsRenderbufferOES = &glIsRenderbufferOES_enc;
8388         this->glBindRenderbufferOES = &glBindRenderbufferOES_enc;
8389         this->glDeleteRenderbuffersOES = &glDeleteRenderbuffersOES_enc;
8390         this->glGenRenderbuffersOES = &glGenRenderbuffersOES_enc;
8391         this->glRenderbufferStorageOES = &glRenderbufferStorageOES_enc;
8392         this->glGetRenderbufferParameterivOES = &glGetRenderbufferParameterivOES_enc;
8393         this->glIsFramebufferOES = &glIsFramebufferOES_enc;
8394         this->glBindFramebufferOES = &glBindFramebufferOES_enc;
8395         this->glDeleteFramebuffersOES = &glDeleteFramebuffersOES_enc;
8396         this->glGenFramebuffersOES = &glGenFramebuffersOES_enc;
8397         this->glCheckFramebufferStatusOES = &glCheckFramebufferStatusOES_enc;
8398         this->glFramebufferRenderbufferOES = &glFramebufferRenderbufferOES_enc;
8399         this->glFramebufferTexture2DOES = &glFramebufferTexture2DOES_enc;
8400         this->glGetFramebufferAttachmentParameterivOES = &glGetFramebufferAttachmentParameterivOES_enc;
8401         this->glGenerateMipmapOES = &glGenerateMipmapOES_enc;
8402         this->glMapBufferOES = (glMapBufferOES_client_proc_t) &enc_unsupported;
8403         this->glUnmapBufferOES = &glUnmapBufferOES_enc;
8404         this->glGetBufferPointervOES = (glGetBufferPointervOES_client_proc_t) &enc_unsupported;
8405         this->glCurrentPaletteMatrixOES = &glCurrentPaletteMatrixOES_enc;
8406         this->glLoadPaletteFromModelViewMatrixOES = &glLoadPaletteFromModelViewMatrixOES_enc;
8407         this->glMatrixIndexPointerOES = (glMatrixIndexPointerOES_client_proc_t) &enc_unsupported;
8408         this->glWeightPointerOES = (glWeightPointerOES_client_proc_t) &enc_unsupported;
8409         this->glQueryMatrixxOES = &glQueryMatrixxOES_enc;
8410         this->glDepthRangefOES = &glDepthRangefOES_enc;
8411         this->glFrustumfOES = &glFrustumfOES_enc;
8412         this->glOrthofOES = &glOrthofOES_enc;
8413         this->glClipPlanefOES = &glClipPlanefOES_enc;
8414         this->glClipPlanefIMG = &glClipPlanefIMG_enc;
8415         this->glGetClipPlanefOES = &glGetClipPlanefOES_enc;
8416         this->glClearDepthfOES = &glClearDepthfOES_enc;
8417         this->glTexGenfOES = &glTexGenfOES_enc;
8418         this->glTexGenfvOES = &glTexGenfvOES_enc;
8419         this->glTexGeniOES = &glTexGeniOES_enc;
8420         this->glTexGenivOES = &glTexGenivOES_enc;
8421         this->glTexGenxOES = &glTexGenxOES_enc;
8422         this->glTexGenxvOES = &glTexGenxvOES_enc;
8423         this->glGetTexGenfvOES = &glGetTexGenfvOES_enc;
8424         this->glGetTexGenivOES = &glGetTexGenivOES_enc;
8425         this->glGetTexGenxvOES = &glGetTexGenxvOES_enc;
8426         this->glBindVertexArrayOES = &glBindVertexArrayOES_enc;
8427         this->glDeleteVertexArraysOES = &glDeleteVertexArraysOES_enc;
8428         this->glGenVertexArraysOES = &glGenVertexArraysOES_enc;
8429         this->glIsVertexArrayOES = &glIsVertexArrayOES_enc;
8430         this->glDiscardFramebufferEXT = &glDiscardFramebufferEXT_enc;
8431         this->glMultiDrawArraysEXT = (glMultiDrawArraysEXT_client_proc_t) &enc_unsupported;
8432         this->glMultiDrawElementsEXT = (glMultiDrawElementsEXT_client_proc_t) &enc_unsupported;
8433         this->glMultiDrawArraysSUN = (glMultiDrawArraysSUN_client_proc_t) &enc_unsupported;
8434         this->glMultiDrawElementsSUN = (glMultiDrawElementsSUN_client_proc_t) &enc_unsupported;
8435         this->glRenderbufferStorageMultisampleIMG = &glRenderbufferStorageMultisampleIMG_enc;
8436         this->glFramebufferTexture2DMultisampleIMG = &glFramebufferTexture2DMultisampleIMG_enc;
8437         this->glDeleteFencesNV = &glDeleteFencesNV_enc;
8438         this->glGenFencesNV = &glGenFencesNV_enc;
8439         this->glIsFenceNV = &glIsFenceNV_enc;
8440         this->glTestFenceNV = &glTestFenceNV_enc;
8441         this->glGetFenceivNV = &glGetFenceivNV_enc;
8442         this->glFinishFenceNV = &glFinishFenceNV_enc;
8443         this->glSetFenceNV = &glSetFenceNV_enc;
8444         this->glGetDriverControlsQCOM = &glGetDriverControlsQCOM_enc;
8445         this->glGetDriverControlStringQCOM = &glGetDriverControlStringQCOM_enc;
8446         this->glEnableDriverControlQCOM = &glEnableDriverControlQCOM_enc;
8447         this->glDisableDriverControlQCOM = &glDisableDriverControlQCOM_enc;
8448         this->glExtGetTexturesQCOM = &glExtGetTexturesQCOM_enc;
8449         this->glExtGetBuffersQCOM = &glExtGetBuffersQCOM_enc;
8450         this->glExtGetRenderbuffersQCOM = &glExtGetRenderbuffersQCOM_enc;
8451         this->glExtGetFramebuffersQCOM = &glExtGetFramebuffersQCOM_enc;
8452         this->glExtGetTexLevelParameterivQCOM = &glExtGetTexLevelParameterivQCOM_enc;
8453         this->glExtTexObjectStateOverrideiQCOM = &glExtTexObjectStateOverrideiQCOM_enc;
8454         this->glExtGetTexSubImageQCOM = &glExtGetTexSubImageQCOM_enc;
8455         this->glExtGetBufferPointervQCOM = (glExtGetBufferPointervQCOM_client_proc_t) &enc_unsupported;
8456         this->glExtGetShadersQCOM = &glExtGetShadersQCOM_enc;
8457         this->glExtGetProgramsQCOM = &glExtGetProgramsQCOM_enc;
8458         this->glExtIsProgramBinaryQCOM = &glExtIsProgramBinaryQCOM_enc;
8459         this->glExtGetProgramBinarySourceQCOM = (glExtGetProgramBinarySourceQCOM_client_proc_t) &enc_unsupported;
8460         this->glStartTilingQCOM = &glStartTilingQCOM_enc;
8461         this->glEndTilingQCOM = &glEndTilingQCOM_enc;
8462 }
8463