1 // Generated Code - DO NOT EDIT !!
2 // generated by 'emugen'
3
4
5 #include <vector>
6 #include <string.h>
7 #include "gl2_opcodes.h"
8
9 #include "gl2_enc.h"
10
11
12 #include <stdio.h>
13
14 namespace {
15
enc_unsupported()16 void enc_unsupported()
17 {
18 ALOGE("Function is unsupported\n");
19 }
20
glActiveTexture_enc(void * self,GLenum texture)21 void glActiveTexture_enc(void *self , GLenum texture)
22 {
23
24 gl2_encoder_context_t *ctx = (gl2_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;
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_glActiveTexture;memcpy(ptr, &tmp, 4); ptr += 4;
37 memcpy(ptr, &totalSize, 4); ptr += 4;
38
39 memcpy(ptr, &texture, 4); ptr += 4;
40
41 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
42 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
43
44 }
45
glAttachShader_enc(void * self,GLuint program,GLuint shader)46 void glAttachShader_enc(void *self , GLuint program, GLuint shader)
47 {
48
49 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
50 IOStream *stream = ctx->m_stream;
51 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
52 bool useChecksum = checksumCalculator->getVersion() > 0;
53
54 unsigned char *ptr;
55 unsigned char *buf;
56 const size_t sizeWithoutChecksum = 8 + 4 + 4;
57 const size_t checksumSize = checksumCalculator->checksumByteSize();
58 const size_t totalSize = sizeWithoutChecksum + checksumSize;
59 buf = stream->alloc(totalSize);
60 ptr = buf;
61 int tmp = OP_glAttachShader;memcpy(ptr, &tmp, 4); ptr += 4;
62 memcpy(ptr, &totalSize, 4); ptr += 4;
63
64 memcpy(ptr, &program, 4); ptr += 4;
65 memcpy(ptr, &shader, 4); ptr += 4;
66
67 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
68 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
69
70 }
71
glBindAttribLocation_enc(void * self,GLuint program,GLuint index,const GLchar * name)72 void glBindAttribLocation_enc(void *self , GLuint program, GLuint index, const GLchar* name)
73 {
74
75 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
76 IOStream *stream = ctx->m_stream;
77 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
78 bool useChecksum = checksumCalculator->getVersion() > 0;
79
80 const unsigned int __size_name = (strlen(name) + 1);
81 unsigned char *ptr;
82 unsigned char *buf;
83 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_name + 1*4;
84 const size_t checksumSize = checksumCalculator->checksumByteSize();
85 const size_t totalSize = sizeWithoutChecksum + checksumSize;
86 buf = stream->alloc(totalSize);
87 ptr = buf;
88 int tmp = OP_glBindAttribLocation;memcpy(ptr, &tmp, 4); ptr += 4;
89 memcpy(ptr, &totalSize, 4); ptr += 4;
90
91 memcpy(ptr, &program, 4); ptr += 4;
92 memcpy(ptr, &index, 4); ptr += 4;
93 *(unsigned int *)(ptr) = __size_name; ptr += 4;
94 memcpy(ptr, name, __size_name);ptr += __size_name;
95
96 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
97 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
98
99 }
100
glBindBuffer_enc(void * self,GLenum target,GLuint buffer)101 void glBindBuffer_enc(void *self , GLenum target, GLuint buffer)
102 {
103
104 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
105 IOStream *stream = ctx->m_stream;
106 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
107 bool useChecksum = checksumCalculator->getVersion() > 0;
108
109 unsigned char *ptr;
110 unsigned char *buf;
111 const size_t sizeWithoutChecksum = 8 + 4 + 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_glBindBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
117 memcpy(ptr, &totalSize, 4); ptr += 4;
118
119 memcpy(ptr, &target, 4); ptr += 4;
120 memcpy(ptr, &buffer, 4); ptr += 4;
121
122 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
123 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
124
125 }
126
glBindFramebuffer_enc(void * self,GLenum target,GLuint framebuffer)127 void glBindFramebuffer_enc(void *self , GLenum target, GLuint framebuffer)
128 {
129
130 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
131 IOStream *stream = ctx->m_stream;
132 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
133 bool useChecksum = checksumCalculator->getVersion() > 0;
134
135 unsigned char *ptr;
136 unsigned char *buf;
137 const size_t sizeWithoutChecksum = 8 + 4 + 4;
138 const size_t checksumSize = checksumCalculator->checksumByteSize();
139 const size_t totalSize = sizeWithoutChecksum + checksumSize;
140 buf = stream->alloc(totalSize);
141 ptr = buf;
142 int tmp = OP_glBindFramebuffer;memcpy(ptr, &tmp, 4); ptr += 4;
143 memcpy(ptr, &totalSize, 4); ptr += 4;
144
145 memcpy(ptr, &target, 4); ptr += 4;
146 memcpy(ptr, &framebuffer, 4); ptr += 4;
147
148 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
149 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
150
151 }
152
glBindRenderbuffer_enc(void * self,GLenum target,GLuint renderbuffer)153 void glBindRenderbuffer_enc(void *self , GLenum target, GLuint renderbuffer)
154 {
155
156 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
157 IOStream *stream = ctx->m_stream;
158 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
159 bool useChecksum = checksumCalculator->getVersion() > 0;
160
161 unsigned char *ptr;
162 unsigned char *buf;
163 const size_t sizeWithoutChecksum = 8 + 4 + 4;
164 const size_t checksumSize = checksumCalculator->checksumByteSize();
165 const size_t totalSize = sizeWithoutChecksum + checksumSize;
166 buf = stream->alloc(totalSize);
167 ptr = buf;
168 int tmp = OP_glBindRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4;
169 memcpy(ptr, &totalSize, 4); ptr += 4;
170
171 memcpy(ptr, &target, 4); ptr += 4;
172 memcpy(ptr, &renderbuffer, 4); ptr += 4;
173
174 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
175 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
176
177 }
178
glBindTexture_enc(void * self,GLenum target,GLuint texture)179 void glBindTexture_enc(void *self , GLenum target, GLuint texture)
180 {
181
182 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
183 IOStream *stream = ctx->m_stream;
184 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
185 bool useChecksum = checksumCalculator->getVersion() > 0;
186
187 unsigned char *ptr;
188 unsigned char *buf;
189 const size_t sizeWithoutChecksum = 8 + 4 + 4;
190 const size_t checksumSize = checksumCalculator->checksumByteSize();
191 const size_t totalSize = sizeWithoutChecksum + checksumSize;
192 buf = stream->alloc(totalSize);
193 ptr = buf;
194 int tmp = OP_glBindTexture;memcpy(ptr, &tmp, 4); ptr += 4;
195 memcpy(ptr, &totalSize, 4); ptr += 4;
196
197 memcpy(ptr, &target, 4); ptr += 4;
198 memcpy(ptr, &texture, 4); ptr += 4;
199
200 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
201 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
202
203 }
204
glBlendColor_enc(void * self,GLclampf red,GLclampf green,GLclampf blue,GLclampf alpha)205 void glBlendColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
206 {
207
208 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
209 IOStream *stream = ctx->m_stream;
210 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
211 bool useChecksum = checksumCalculator->getVersion() > 0;
212
213 unsigned char *ptr;
214 unsigned char *buf;
215 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
216 const size_t checksumSize = checksumCalculator->checksumByteSize();
217 const size_t totalSize = sizeWithoutChecksum + checksumSize;
218 buf = stream->alloc(totalSize);
219 ptr = buf;
220 int tmp = OP_glBlendColor;memcpy(ptr, &tmp, 4); ptr += 4;
221 memcpy(ptr, &totalSize, 4); ptr += 4;
222
223 memcpy(ptr, &red, 4); ptr += 4;
224 memcpy(ptr, &green, 4); ptr += 4;
225 memcpy(ptr, &blue, 4); ptr += 4;
226 memcpy(ptr, &alpha, 4); ptr += 4;
227
228 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
229 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
230
231 }
232
glBlendEquation_enc(void * self,GLenum mode)233 void glBlendEquation_enc(void *self , GLenum mode)
234 {
235
236 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
237 IOStream *stream = ctx->m_stream;
238 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
239 bool useChecksum = checksumCalculator->getVersion() > 0;
240
241 unsigned char *ptr;
242 unsigned char *buf;
243 const size_t sizeWithoutChecksum = 8 + 4;
244 const size_t checksumSize = checksumCalculator->checksumByteSize();
245 const size_t totalSize = sizeWithoutChecksum + checksumSize;
246 buf = stream->alloc(totalSize);
247 ptr = buf;
248 int tmp = OP_glBlendEquation;memcpy(ptr, &tmp, 4); ptr += 4;
249 memcpy(ptr, &totalSize, 4); ptr += 4;
250
251 memcpy(ptr, &mode, 4); ptr += 4;
252
253 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
254 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
255
256 }
257
glBlendEquationSeparate_enc(void * self,GLenum modeRGB,GLenum modeAlpha)258 void glBlendEquationSeparate_enc(void *self , GLenum modeRGB, GLenum modeAlpha)
259 {
260
261 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
262 IOStream *stream = ctx->m_stream;
263 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
264 bool useChecksum = checksumCalculator->getVersion() > 0;
265
266 unsigned char *ptr;
267 unsigned char *buf;
268 const size_t sizeWithoutChecksum = 8 + 4 + 4;
269 const size_t checksumSize = checksumCalculator->checksumByteSize();
270 const size_t totalSize = sizeWithoutChecksum + checksumSize;
271 buf = stream->alloc(totalSize);
272 ptr = buf;
273 int tmp = OP_glBlendEquationSeparate;memcpy(ptr, &tmp, 4); ptr += 4;
274 memcpy(ptr, &totalSize, 4); ptr += 4;
275
276 memcpy(ptr, &modeRGB, 4); ptr += 4;
277 memcpy(ptr, &modeAlpha, 4); ptr += 4;
278
279 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
280 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
281
282 }
283
glBlendFunc_enc(void * self,GLenum sfactor,GLenum dfactor)284 void glBlendFunc_enc(void *self , GLenum sfactor, GLenum dfactor)
285 {
286
287 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
288 IOStream *stream = ctx->m_stream;
289 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
290 bool useChecksum = checksumCalculator->getVersion() > 0;
291
292 unsigned char *ptr;
293 unsigned char *buf;
294 const size_t sizeWithoutChecksum = 8 + 4 + 4;
295 const size_t checksumSize = checksumCalculator->checksumByteSize();
296 const size_t totalSize = sizeWithoutChecksum + checksumSize;
297 buf = stream->alloc(totalSize);
298 ptr = buf;
299 int tmp = OP_glBlendFunc;memcpy(ptr, &tmp, 4); ptr += 4;
300 memcpy(ptr, &totalSize, 4); ptr += 4;
301
302 memcpy(ptr, &sfactor, 4); ptr += 4;
303 memcpy(ptr, &dfactor, 4); ptr += 4;
304
305 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
306 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
307
308 }
309
glBlendFuncSeparate_enc(void * self,GLenum srcRGB,GLenum dstRGB,GLenum srcAlpha,GLenum dstAlpha)310 void glBlendFuncSeparate_enc(void *self , GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
311 {
312
313 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
314 IOStream *stream = ctx->m_stream;
315 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
316 bool useChecksum = checksumCalculator->getVersion() > 0;
317
318 unsigned char *ptr;
319 unsigned char *buf;
320 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
321 const size_t checksumSize = checksumCalculator->checksumByteSize();
322 const size_t totalSize = sizeWithoutChecksum + checksumSize;
323 buf = stream->alloc(totalSize);
324 ptr = buf;
325 int tmp = OP_glBlendFuncSeparate;memcpy(ptr, &tmp, 4); ptr += 4;
326 memcpy(ptr, &totalSize, 4); ptr += 4;
327
328 memcpy(ptr, &srcRGB, 4); ptr += 4;
329 memcpy(ptr, &dstRGB, 4); ptr += 4;
330 memcpy(ptr, &srcAlpha, 4); ptr += 4;
331 memcpy(ptr, &dstAlpha, 4); ptr += 4;
332
333 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
334 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
335
336 }
337
glBufferData_enc(void * self,GLenum target,GLsizeiptr size,const GLvoid * data,GLenum usage)338 void glBufferData_enc(void *self , GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
339 {
340
341 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
342 IOStream *stream = ctx->m_stream;
343 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
344 bool useChecksum = checksumCalculator->getVersion() > 0;
345
346 const unsigned int __size_data = ((data != NULL) ? size : 0);
347 unsigned char *ptr;
348 unsigned char *buf;
349 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_data + 4 + 1*4;
350 const size_t checksumSize = checksumCalculator->checksumByteSize();
351 const size_t totalSize = sizeWithoutChecksum + checksumSize;
352 buf = stream->alloc(8 + 4 + 4);
353 ptr = buf;
354 int tmp = OP_glBufferData;memcpy(ptr, &tmp, 4); ptr += 4;
355 memcpy(ptr, &totalSize, 4); ptr += 4;
356
357 memcpy(ptr, &target, 4); ptr += 4;
358 memcpy(ptr, &size, 4); ptr += 4;
359
360 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
361 stream->flush();
362 stream->writeFully(&__size_data,4);
363 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4);
364 if (data != NULL) {
365 stream->writeFully(data, __size_data);
366 if (useChecksum) checksumCalculator->addBuffer(data, __size_data);
367 }
368 buf = stream->alloc(4);
369 ptr = buf;
370 memcpy(ptr, &usage, 4); ptr += 4;
371
372 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
373 buf = stream->alloc(checksumSize);
374 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
375
376 }
377
glBufferSubData_enc(void * self,GLenum target,GLintptr offset,GLsizeiptr size,const GLvoid * data)378 void glBufferSubData_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
379 {
380
381 gl2_encoder_context_t *ctx = (gl2_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_data = ((data != NULL) ? size : 0);
387 unsigned char *ptr;
388 unsigned char *buf;
389 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 1*4;
390 const size_t checksumSize = checksumCalculator->checksumByteSize();
391 const size_t totalSize = sizeWithoutChecksum + checksumSize;
392 buf = stream->alloc(8 + 4 + 4 + 4);
393 ptr = buf;
394 int tmp = OP_glBufferSubData;memcpy(ptr, &tmp, 4); ptr += 4;
395 memcpy(ptr, &totalSize, 4); ptr += 4;
396
397 memcpy(ptr, &target, 4); ptr += 4;
398 memcpy(ptr, &offset, 4); ptr += 4;
399 memcpy(ptr, &size, 4); ptr += 4;
400
401 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
402 stream->flush();
403 stream->writeFully(&__size_data,4);
404 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4);
405 if (data != NULL) {
406 stream->writeFully(data, __size_data);
407 if (useChecksum) checksumCalculator->addBuffer(data, __size_data);
408 }
409 buf = stream->alloc(checksumSize);
410 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
411
412 }
413
glCheckFramebufferStatus_enc(void * self,GLenum target)414 GLenum glCheckFramebufferStatus_enc(void *self , GLenum target)
415 {
416
417 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
418 IOStream *stream = ctx->m_stream;
419 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
420 bool useChecksum = checksumCalculator->getVersion() > 0;
421
422 unsigned char *ptr;
423 unsigned char *buf;
424 const size_t sizeWithoutChecksum = 8 + 4;
425 const size_t checksumSize = checksumCalculator->checksumByteSize();
426 const size_t totalSize = sizeWithoutChecksum + checksumSize;
427 buf = stream->alloc(totalSize);
428 ptr = buf;
429 int tmp = OP_glCheckFramebufferStatus;memcpy(ptr, &tmp, 4); ptr += 4;
430 memcpy(ptr, &totalSize, 4); ptr += 4;
431
432 memcpy(ptr, &target, 4); ptr += 4;
433
434 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
435 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
436
437
438 GLenum retval;
439 stream->readback(&retval, 4);
440 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
441 if (useChecksum) {
442 unsigned char *checksumBufPtr = NULL;
443 std::vector<unsigned char> checksumBuf(checksumSize);
444 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
445 stream->readback(checksumBufPtr, checksumSize);
446 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
447 ALOGE("glCheckFramebufferStatus: GL communication error, please report this issue to b.android.com.\n");
448 abort();
449 }
450 }
451 return retval;
452 }
453
glClear_enc(void * self,GLbitfield mask)454 void glClear_enc(void *self , GLbitfield mask)
455 {
456
457 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
458 IOStream *stream = ctx->m_stream;
459 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
460 bool useChecksum = checksumCalculator->getVersion() > 0;
461
462 unsigned char *ptr;
463 unsigned char *buf;
464 const size_t sizeWithoutChecksum = 8 + 4;
465 const size_t checksumSize = checksumCalculator->checksumByteSize();
466 const size_t totalSize = sizeWithoutChecksum + checksumSize;
467 buf = stream->alloc(totalSize);
468 ptr = buf;
469 int tmp = OP_glClear;memcpy(ptr, &tmp, 4); ptr += 4;
470 memcpy(ptr, &totalSize, 4); ptr += 4;
471
472 memcpy(ptr, &mask, 4); ptr += 4;
473
474 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
475 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
476
477 }
478
glClearColor_enc(void * self,GLclampf red,GLclampf green,GLclampf blue,GLclampf alpha)479 void glClearColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
480 {
481
482 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
483 IOStream *stream = ctx->m_stream;
484 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
485 bool useChecksum = checksumCalculator->getVersion() > 0;
486
487 unsigned char *ptr;
488 unsigned char *buf;
489 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
490 const size_t checksumSize = checksumCalculator->checksumByteSize();
491 const size_t totalSize = sizeWithoutChecksum + checksumSize;
492 buf = stream->alloc(totalSize);
493 ptr = buf;
494 int tmp = OP_glClearColor;memcpy(ptr, &tmp, 4); ptr += 4;
495 memcpy(ptr, &totalSize, 4); ptr += 4;
496
497 memcpy(ptr, &red, 4); ptr += 4;
498 memcpy(ptr, &green, 4); ptr += 4;
499 memcpy(ptr, &blue, 4); ptr += 4;
500 memcpy(ptr, &alpha, 4); ptr += 4;
501
502 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
503 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
504
505 }
506
glClearDepthf_enc(void * self,GLclampf depth)507 void glClearDepthf_enc(void *self , GLclampf depth)
508 {
509
510 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
511 IOStream *stream = ctx->m_stream;
512 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
513 bool useChecksum = checksumCalculator->getVersion() > 0;
514
515 unsigned char *ptr;
516 unsigned char *buf;
517 const size_t sizeWithoutChecksum = 8 + 4;
518 const size_t checksumSize = checksumCalculator->checksumByteSize();
519 const size_t totalSize = sizeWithoutChecksum + checksumSize;
520 buf = stream->alloc(totalSize);
521 ptr = buf;
522 int tmp = OP_glClearDepthf;memcpy(ptr, &tmp, 4); ptr += 4;
523 memcpy(ptr, &totalSize, 4); ptr += 4;
524
525 memcpy(ptr, &depth, 4); ptr += 4;
526
527 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
528 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
529
530 }
531
glClearStencil_enc(void * self,GLint s)532 void glClearStencil_enc(void *self , GLint s)
533 {
534
535 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
536 IOStream *stream = ctx->m_stream;
537 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
538 bool useChecksum = checksumCalculator->getVersion() > 0;
539
540 unsigned char *ptr;
541 unsigned char *buf;
542 const size_t sizeWithoutChecksum = 8 + 4;
543 const size_t checksumSize = checksumCalculator->checksumByteSize();
544 const size_t totalSize = sizeWithoutChecksum + checksumSize;
545 buf = stream->alloc(totalSize);
546 ptr = buf;
547 int tmp = OP_glClearStencil;memcpy(ptr, &tmp, 4); ptr += 4;
548 memcpy(ptr, &totalSize, 4); ptr += 4;
549
550 memcpy(ptr, &s, 4); ptr += 4;
551
552 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
553 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
554
555 }
556
glColorMask_enc(void * self,GLboolean red,GLboolean green,GLboolean blue,GLboolean alpha)557 void glColorMask_enc(void *self , GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
558 {
559
560 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
561 IOStream *stream = ctx->m_stream;
562 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
563 bool useChecksum = checksumCalculator->getVersion() > 0;
564
565 unsigned char *ptr;
566 unsigned char *buf;
567 const size_t sizeWithoutChecksum = 8 + 1 + 1 + 1 + 1;
568 const size_t checksumSize = checksumCalculator->checksumByteSize();
569 const size_t totalSize = sizeWithoutChecksum + checksumSize;
570 buf = stream->alloc(totalSize);
571 ptr = buf;
572 int tmp = OP_glColorMask;memcpy(ptr, &tmp, 4); ptr += 4;
573 memcpy(ptr, &totalSize, 4); ptr += 4;
574
575 memcpy(ptr, &red, 1); ptr += 1;
576 memcpy(ptr, &green, 1); ptr += 1;
577 memcpy(ptr, &blue, 1); ptr += 1;
578 memcpy(ptr, &alpha, 1); ptr += 1;
579
580 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
581 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
582
583 }
584
glCompileShader_enc(void * self,GLuint shader)585 void glCompileShader_enc(void *self , GLuint shader)
586 {
587
588 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
589 IOStream *stream = ctx->m_stream;
590 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
591 bool useChecksum = checksumCalculator->getVersion() > 0;
592
593 unsigned char *ptr;
594 unsigned char *buf;
595 const size_t sizeWithoutChecksum = 8 + 4;
596 const size_t checksumSize = checksumCalculator->checksumByteSize();
597 const size_t totalSize = sizeWithoutChecksum + checksumSize;
598 buf = stream->alloc(totalSize);
599 ptr = buf;
600 int tmp = OP_glCompileShader;memcpy(ptr, &tmp, 4); ptr += 4;
601 memcpy(ptr, &totalSize, 4); ptr += 4;
602
603 memcpy(ptr, &shader, 4); ptr += 4;
604
605 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
606 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
607
608 }
609
glCompressedTexImage2D_enc(void * self,GLenum target,GLint level,GLenum internalformat,GLsizei width,GLsizei height,GLint border,GLsizei imageSize,const GLvoid * data)610 void glCompressedTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
611 {
612
613 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
614 IOStream *stream = ctx->m_stream;
615 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
616 bool useChecksum = checksumCalculator->getVersion() > 0;
617
618 const unsigned int __size_data = ((data != NULL) ? imageSize : 0);
619 unsigned char *ptr;
620 unsigned char *buf;
621 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
622 const size_t checksumSize = checksumCalculator->checksumByteSize();
623 const size_t totalSize = sizeWithoutChecksum + checksumSize;
624 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
625 ptr = buf;
626 int tmp = OP_glCompressedTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
627 memcpy(ptr, &totalSize, 4); ptr += 4;
628
629 memcpy(ptr, &target, 4); ptr += 4;
630 memcpy(ptr, &level, 4); ptr += 4;
631 memcpy(ptr, &internalformat, 4); ptr += 4;
632 memcpy(ptr, &width, 4); ptr += 4;
633 memcpy(ptr, &height, 4); ptr += 4;
634 memcpy(ptr, &border, 4); ptr += 4;
635 memcpy(ptr, &imageSize, 4); ptr += 4;
636
637 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
638 stream->flush();
639 stream->writeFully(&__size_data,4);
640 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4);
641 if (data != NULL) {
642 stream->writeFully(data, __size_data);
643 if (useChecksum) checksumCalculator->addBuffer(data, __size_data);
644 }
645 buf = stream->alloc(checksumSize);
646 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
647
648 }
649
glCompressedTexSubImage2D_enc(void * self,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLsizei width,GLsizei height,GLenum format,GLsizei imageSize,const GLvoid * data)650 void glCompressedTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
651 {
652
653 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
654 IOStream *stream = ctx->m_stream;
655 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
656 bool useChecksum = checksumCalculator->getVersion() > 0;
657
658 const unsigned int __size_data = ((data != NULL) ? imageSize : 0);
659 unsigned char *ptr;
660 unsigned char *buf;
661 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
662 const size_t checksumSize = checksumCalculator->checksumByteSize();
663 const size_t totalSize = sizeWithoutChecksum + checksumSize;
664 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
665 ptr = buf;
666 int tmp = OP_glCompressedTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
667 memcpy(ptr, &totalSize, 4); ptr += 4;
668
669 memcpy(ptr, &target, 4); ptr += 4;
670 memcpy(ptr, &level, 4); ptr += 4;
671 memcpy(ptr, &xoffset, 4); ptr += 4;
672 memcpy(ptr, &yoffset, 4); ptr += 4;
673 memcpy(ptr, &width, 4); ptr += 4;
674 memcpy(ptr, &height, 4); ptr += 4;
675 memcpy(ptr, &format, 4); ptr += 4;
676 memcpy(ptr, &imageSize, 4); ptr += 4;
677
678 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
679 stream->flush();
680 stream->writeFully(&__size_data,4);
681 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4);
682 if (data != NULL) {
683 stream->writeFully(data, __size_data);
684 if (useChecksum) checksumCalculator->addBuffer(data, __size_data);
685 }
686 buf = stream->alloc(checksumSize);
687 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
688
689 }
690
glCopyTexImage2D_enc(void * self,GLenum target,GLint level,GLenum internalformat,GLint x,GLint y,GLsizei width,GLsizei height,GLint border)691 void glCopyTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
692 {
693
694 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
695 IOStream *stream = ctx->m_stream;
696 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
697 bool useChecksum = checksumCalculator->getVersion() > 0;
698
699 unsigned char *ptr;
700 unsigned char *buf;
701 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
702 const size_t checksumSize = checksumCalculator->checksumByteSize();
703 const size_t totalSize = sizeWithoutChecksum + checksumSize;
704 buf = stream->alloc(totalSize);
705 ptr = buf;
706 int tmp = OP_glCopyTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
707 memcpy(ptr, &totalSize, 4); ptr += 4;
708
709 memcpy(ptr, &target, 4); ptr += 4;
710 memcpy(ptr, &level, 4); ptr += 4;
711 memcpy(ptr, &internalformat, 4); ptr += 4;
712 memcpy(ptr, &x, 4); ptr += 4;
713 memcpy(ptr, &y, 4); ptr += 4;
714 memcpy(ptr, &width, 4); ptr += 4;
715 memcpy(ptr, &height, 4); ptr += 4;
716 memcpy(ptr, &border, 4); ptr += 4;
717
718 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
719 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
720
721 }
722
glCopyTexSubImage2D_enc(void * self,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLint x,GLint y,GLsizei width,GLsizei height)723 void glCopyTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
724 {
725
726 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
727 IOStream *stream = ctx->m_stream;
728 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
729 bool useChecksum = checksumCalculator->getVersion() > 0;
730
731 unsigned char *ptr;
732 unsigned char *buf;
733 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
734 const size_t checksumSize = checksumCalculator->checksumByteSize();
735 const size_t totalSize = sizeWithoutChecksum + checksumSize;
736 buf = stream->alloc(totalSize);
737 ptr = buf;
738 int tmp = OP_glCopyTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
739 memcpy(ptr, &totalSize, 4); ptr += 4;
740
741 memcpy(ptr, &target, 4); ptr += 4;
742 memcpy(ptr, &level, 4); ptr += 4;
743 memcpy(ptr, &xoffset, 4); ptr += 4;
744 memcpy(ptr, &yoffset, 4); ptr += 4;
745 memcpy(ptr, &x, 4); ptr += 4;
746 memcpy(ptr, &y, 4); ptr += 4;
747 memcpy(ptr, &width, 4); ptr += 4;
748 memcpy(ptr, &height, 4); ptr += 4;
749
750 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
751 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
752
753 }
754
glCreateProgram_enc(void * self)755 GLuint glCreateProgram_enc(void *self )
756 {
757
758 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
759 IOStream *stream = ctx->m_stream;
760 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
761 bool useChecksum = checksumCalculator->getVersion() > 0;
762
763 unsigned char *ptr;
764 unsigned char *buf;
765 const size_t sizeWithoutChecksum = 8;
766 const size_t checksumSize = checksumCalculator->checksumByteSize();
767 const size_t totalSize = sizeWithoutChecksum + checksumSize;
768 buf = stream->alloc(totalSize);
769 ptr = buf;
770 int tmp = OP_glCreateProgram;memcpy(ptr, &tmp, 4); ptr += 4;
771 memcpy(ptr, &totalSize, 4); ptr += 4;
772
773
774 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
775 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
776
777
778 GLuint retval;
779 stream->readback(&retval, 4);
780 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
781 if (useChecksum) {
782 unsigned char *checksumBufPtr = NULL;
783 std::vector<unsigned char> checksumBuf(checksumSize);
784 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
785 stream->readback(checksumBufPtr, checksumSize);
786 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
787 ALOGE("glCreateProgram: GL communication error, please report this issue to b.android.com.\n");
788 abort();
789 }
790 }
791 return retval;
792 }
793
glCreateShader_enc(void * self,GLenum type)794 GLuint glCreateShader_enc(void *self , GLenum type)
795 {
796
797 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
798 IOStream *stream = ctx->m_stream;
799 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
800 bool useChecksum = checksumCalculator->getVersion() > 0;
801
802 unsigned char *ptr;
803 unsigned char *buf;
804 const size_t sizeWithoutChecksum = 8 + 4;
805 const size_t checksumSize = checksumCalculator->checksumByteSize();
806 const size_t totalSize = sizeWithoutChecksum + checksumSize;
807 buf = stream->alloc(totalSize);
808 ptr = buf;
809 int tmp = OP_glCreateShader;memcpy(ptr, &tmp, 4); ptr += 4;
810 memcpy(ptr, &totalSize, 4); ptr += 4;
811
812 memcpy(ptr, &type, 4); ptr += 4;
813
814 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
815 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
816
817
818 GLuint retval;
819 stream->readback(&retval, 4);
820 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
821 if (useChecksum) {
822 unsigned char *checksumBufPtr = NULL;
823 std::vector<unsigned char> checksumBuf(checksumSize);
824 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
825 stream->readback(checksumBufPtr, checksumSize);
826 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
827 ALOGE("glCreateShader: GL communication error, please report this issue to b.android.com.\n");
828 abort();
829 }
830 }
831 return retval;
832 }
833
glCullFace_enc(void * self,GLenum mode)834 void glCullFace_enc(void *self , GLenum mode)
835 {
836
837 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
838 IOStream *stream = ctx->m_stream;
839 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
840 bool useChecksum = checksumCalculator->getVersion() > 0;
841
842 unsigned char *ptr;
843 unsigned char *buf;
844 const size_t sizeWithoutChecksum = 8 + 4;
845 const size_t checksumSize = checksumCalculator->checksumByteSize();
846 const size_t totalSize = sizeWithoutChecksum + checksumSize;
847 buf = stream->alloc(totalSize);
848 ptr = buf;
849 int tmp = OP_glCullFace;memcpy(ptr, &tmp, 4); ptr += 4;
850 memcpy(ptr, &totalSize, 4); ptr += 4;
851
852 memcpy(ptr, &mode, 4); ptr += 4;
853
854 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
855 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
856
857 }
858
glDeleteBuffers_enc(void * self,GLsizei n,const GLuint * buffers)859 void glDeleteBuffers_enc(void *self , GLsizei n, const GLuint* buffers)
860 {
861
862 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
863 IOStream *stream = ctx->m_stream;
864 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
865 bool useChecksum = checksumCalculator->getVersion() > 0;
866
867 const unsigned int __size_buffers = (n * sizeof(GLuint));
868 unsigned char *ptr;
869 unsigned char *buf;
870 const size_t sizeWithoutChecksum = 8 + 4 + __size_buffers + 1*4;
871 const size_t checksumSize = checksumCalculator->checksumByteSize();
872 const size_t totalSize = sizeWithoutChecksum + checksumSize;
873 buf = stream->alloc(totalSize);
874 ptr = buf;
875 int tmp = OP_glDeleteBuffers;memcpy(ptr, &tmp, 4); ptr += 4;
876 memcpy(ptr, &totalSize, 4); ptr += 4;
877
878 memcpy(ptr, &n, 4); ptr += 4;
879 *(unsigned int *)(ptr) = __size_buffers; ptr += 4;
880 memcpy(ptr, buffers, __size_buffers);ptr += __size_buffers;
881
882 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
883 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
884
885 }
886
glDeleteFramebuffers_enc(void * self,GLsizei n,const GLuint * framebuffers)887 void glDeleteFramebuffers_enc(void *self , GLsizei n, const GLuint* framebuffers)
888 {
889
890 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
891 IOStream *stream = ctx->m_stream;
892 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
893 bool useChecksum = checksumCalculator->getVersion() > 0;
894
895 const unsigned int __size_framebuffers = (n * sizeof(GLuint));
896 unsigned char *ptr;
897 unsigned char *buf;
898 const size_t sizeWithoutChecksum = 8 + 4 + __size_framebuffers + 1*4;
899 const size_t checksumSize = checksumCalculator->checksumByteSize();
900 const size_t totalSize = sizeWithoutChecksum + checksumSize;
901 buf = stream->alloc(totalSize);
902 ptr = buf;
903 int tmp = OP_glDeleteFramebuffers;memcpy(ptr, &tmp, 4); ptr += 4;
904 memcpy(ptr, &totalSize, 4); ptr += 4;
905
906 memcpy(ptr, &n, 4); ptr += 4;
907 *(unsigned int *)(ptr) = __size_framebuffers; ptr += 4;
908 memcpy(ptr, framebuffers, __size_framebuffers);ptr += __size_framebuffers;
909
910 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
911 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
912
913 }
914
glDeleteProgram_enc(void * self,GLuint program)915 void glDeleteProgram_enc(void *self , GLuint program)
916 {
917
918 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
919 IOStream *stream = ctx->m_stream;
920 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
921 bool useChecksum = checksumCalculator->getVersion() > 0;
922
923 unsigned char *ptr;
924 unsigned char *buf;
925 const size_t sizeWithoutChecksum = 8 + 4;
926 const size_t checksumSize = checksumCalculator->checksumByteSize();
927 const size_t totalSize = sizeWithoutChecksum + checksumSize;
928 buf = stream->alloc(totalSize);
929 ptr = buf;
930 int tmp = OP_glDeleteProgram;memcpy(ptr, &tmp, 4); ptr += 4;
931 memcpy(ptr, &totalSize, 4); ptr += 4;
932
933 memcpy(ptr, &program, 4); ptr += 4;
934
935 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
936 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
937
938 }
939
glDeleteRenderbuffers_enc(void * self,GLsizei n,const GLuint * renderbuffers)940 void glDeleteRenderbuffers_enc(void *self , GLsizei n, const GLuint* renderbuffers)
941 {
942
943 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
944 IOStream *stream = ctx->m_stream;
945 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
946 bool useChecksum = checksumCalculator->getVersion() > 0;
947
948 const unsigned int __size_renderbuffers = (n * sizeof(GLuint));
949 unsigned char *ptr;
950 unsigned char *buf;
951 const size_t sizeWithoutChecksum = 8 + 4 + __size_renderbuffers + 1*4;
952 const size_t checksumSize = checksumCalculator->checksumByteSize();
953 const size_t totalSize = sizeWithoutChecksum + checksumSize;
954 buf = stream->alloc(totalSize);
955 ptr = buf;
956 int tmp = OP_glDeleteRenderbuffers;memcpy(ptr, &tmp, 4); ptr += 4;
957 memcpy(ptr, &totalSize, 4); ptr += 4;
958
959 memcpy(ptr, &n, 4); ptr += 4;
960 *(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4;
961 memcpy(ptr, renderbuffers, __size_renderbuffers);ptr += __size_renderbuffers;
962
963 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
964 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
965
966 }
967
glDeleteShader_enc(void * self,GLuint shader)968 void glDeleteShader_enc(void *self , GLuint shader)
969 {
970
971 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
972 IOStream *stream = ctx->m_stream;
973 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
974 bool useChecksum = checksumCalculator->getVersion() > 0;
975
976 unsigned char *ptr;
977 unsigned char *buf;
978 const size_t sizeWithoutChecksum = 8 + 4;
979 const size_t checksumSize = checksumCalculator->checksumByteSize();
980 const size_t totalSize = sizeWithoutChecksum + checksumSize;
981 buf = stream->alloc(totalSize);
982 ptr = buf;
983 int tmp = OP_glDeleteShader;memcpy(ptr, &tmp, 4); ptr += 4;
984 memcpy(ptr, &totalSize, 4); ptr += 4;
985
986 memcpy(ptr, &shader, 4); ptr += 4;
987
988 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
989 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
990
991 }
992
glDeleteTextures_enc(void * self,GLsizei n,const GLuint * textures)993 void glDeleteTextures_enc(void *self , GLsizei n, const GLuint* textures)
994 {
995
996 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
997 IOStream *stream = ctx->m_stream;
998 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
999 bool useChecksum = checksumCalculator->getVersion() > 0;
1000
1001 const unsigned int __size_textures = (n * sizeof(GLuint));
1002 unsigned char *ptr;
1003 unsigned char *buf;
1004 const size_t sizeWithoutChecksum = 8 + 4 + __size_textures + 1*4;
1005 const size_t checksumSize = checksumCalculator->checksumByteSize();
1006 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1007 buf = stream->alloc(totalSize);
1008 ptr = buf;
1009 int tmp = OP_glDeleteTextures;memcpy(ptr, &tmp, 4); ptr += 4;
1010 memcpy(ptr, &totalSize, 4); ptr += 4;
1011
1012 memcpy(ptr, &n, 4); ptr += 4;
1013 *(unsigned int *)(ptr) = __size_textures; ptr += 4;
1014 memcpy(ptr, textures, __size_textures);ptr += __size_textures;
1015
1016 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1017 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1018
1019 }
1020
glDepthFunc_enc(void * self,GLenum func)1021 void glDepthFunc_enc(void *self , GLenum func)
1022 {
1023
1024 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1025 IOStream *stream = ctx->m_stream;
1026 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1027 bool useChecksum = checksumCalculator->getVersion() > 0;
1028
1029 unsigned char *ptr;
1030 unsigned char *buf;
1031 const size_t sizeWithoutChecksum = 8 + 4;
1032 const size_t checksumSize = checksumCalculator->checksumByteSize();
1033 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1034 buf = stream->alloc(totalSize);
1035 ptr = buf;
1036 int tmp = OP_glDepthFunc;memcpy(ptr, &tmp, 4); ptr += 4;
1037 memcpy(ptr, &totalSize, 4); ptr += 4;
1038
1039 memcpy(ptr, &func, 4); ptr += 4;
1040
1041 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1042 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1043
1044 }
1045
glDepthMask_enc(void * self,GLboolean flag)1046 void glDepthMask_enc(void *self , GLboolean flag)
1047 {
1048
1049 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1050 IOStream *stream = ctx->m_stream;
1051 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1052 bool useChecksum = checksumCalculator->getVersion() > 0;
1053
1054 unsigned char *ptr;
1055 unsigned char *buf;
1056 const size_t sizeWithoutChecksum = 8 + 1;
1057 const size_t checksumSize = checksumCalculator->checksumByteSize();
1058 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1059 buf = stream->alloc(totalSize);
1060 ptr = buf;
1061 int tmp = OP_glDepthMask;memcpy(ptr, &tmp, 4); ptr += 4;
1062 memcpy(ptr, &totalSize, 4); ptr += 4;
1063
1064 memcpy(ptr, &flag, 1); ptr += 1;
1065
1066 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1067 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1068
1069 }
1070
glDepthRangef_enc(void * self,GLclampf zNear,GLclampf zFar)1071 void glDepthRangef_enc(void *self , GLclampf zNear, GLclampf zFar)
1072 {
1073
1074 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1075 IOStream *stream = ctx->m_stream;
1076 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1077 bool useChecksum = checksumCalculator->getVersion() > 0;
1078
1079 unsigned char *ptr;
1080 unsigned char *buf;
1081 const size_t sizeWithoutChecksum = 8 + 4 + 4;
1082 const size_t checksumSize = checksumCalculator->checksumByteSize();
1083 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1084 buf = stream->alloc(totalSize);
1085 ptr = buf;
1086 int tmp = OP_glDepthRangef;memcpy(ptr, &tmp, 4); ptr += 4;
1087 memcpy(ptr, &totalSize, 4); ptr += 4;
1088
1089 memcpy(ptr, &zNear, 4); ptr += 4;
1090 memcpy(ptr, &zFar, 4); ptr += 4;
1091
1092 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1093 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1094
1095 }
1096
glDetachShader_enc(void * self,GLuint program,GLuint shader)1097 void glDetachShader_enc(void *self , GLuint program, GLuint shader)
1098 {
1099
1100 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1101 IOStream *stream = ctx->m_stream;
1102 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1103 bool useChecksum = checksumCalculator->getVersion() > 0;
1104
1105 unsigned char *ptr;
1106 unsigned char *buf;
1107 const size_t sizeWithoutChecksum = 8 + 4 + 4;
1108 const size_t checksumSize = checksumCalculator->checksumByteSize();
1109 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1110 buf = stream->alloc(totalSize);
1111 ptr = buf;
1112 int tmp = OP_glDetachShader;memcpy(ptr, &tmp, 4); ptr += 4;
1113 memcpy(ptr, &totalSize, 4); ptr += 4;
1114
1115 memcpy(ptr, &program, 4); ptr += 4;
1116 memcpy(ptr, &shader, 4); ptr += 4;
1117
1118 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1119 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1120
1121 }
1122
glDisable_enc(void * self,GLenum cap)1123 void glDisable_enc(void *self , GLenum cap)
1124 {
1125
1126 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1127 IOStream *stream = ctx->m_stream;
1128 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1129 bool useChecksum = checksumCalculator->getVersion() > 0;
1130
1131 unsigned char *ptr;
1132 unsigned char *buf;
1133 const size_t sizeWithoutChecksum = 8 + 4;
1134 const size_t checksumSize = checksumCalculator->checksumByteSize();
1135 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1136 buf = stream->alloc(totalSize);
1137 ptr = buf;
1138 int tmp = OP_glDisable;memcpy(ptr, &tmp, 4); ptr += 4;
1139 memcpy(ptr, &totalSize, 4); ptr += 4;
1140
1141 memcpy(ptr, &cap, 4); ptr += 4;
1142
1143 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1144 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1145
1146 }
1147
glDisableVertexAttribArray_enc(void * self,GLuint index)1148 void glDisableVertexAttribArray_enc(void *self , GLuint index)
1149 {
1150
1151 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1152 IOStream *stream = ctx->m_stream;
1153 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1154 bool useChecksum = checksumCalculator->getVersion() > 0;
1155
1156 unsigned char *ptr;
1157 unsigned char *buf;
1158 const size_t sizeWithoutChecksum = 8 + 4;
1159 const size_t checksumSize = checksumCalculator->checksumByteSize();
1160 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1161 buf = stream->alloc(totalSize);
1162 ptr = buf;
1163 int tmp = OP_glDisableVertexAttribArray;memcpy(ptr, &tmp, 4); ptr += 4;
1164 memcpy(ptr, &totalSize, 4); ptr += 4;
1165
1166 memcpy(ptr, &index, 4); ptr += 4;
1167
1168 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1169 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1170
1171 }
1172
glDrawArrays_enc(void * self,GLenum mode,GLint first,GLsizei count)1173 void glDrawArrays_enc(void *self , GLenum mode, GLint first, GLsizei count)
1174 {
1175
1176 gl2_encoder_context_t *ctx = (gl2_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 + 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_glDrawArrays;memcpy(ptr, &tmp, 4); ptr += 4;
1189 memcpy(ptr, &totalSize, 4); ptr += 4;
1190
1191 memcpy(ptr, &mode, 4); ptr += 4;
1192 memcpy(ptr, &first, 4); ptr += 4;
1193 memcpy(ptr, &count, 4); ptr += 4;
1194
1195 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1196 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1197
1198 }
1199
glEnable_enc(void * self,GLenum cap)1200 void glEnable_enc(void *self , GLenum cap)
1201 {
1202
1203 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1204 IOStream *stream = ctx->m_stream;
1205 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1206 bool useChecksum = checksumCalculator->getVersion() > 0;
1207
1208 unsigned char *ptr;
1209 unsigned char *buf;
1210 const size_t sizeWithoutChecksum = 8 + 4;
1211 const size_t checksumSize = checksumCalculator->checksumByteSize();
1212 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1213 buf = stream->alloc(totalSize);
1214 ptr = buf;
1215 int tmp = OP_glEnable;memcpy(ptr, &tmp, 4); ptr += 4;
1216 memcpy(ptr, &totalSize, 4); ptr += 4;
1217
1218 memcpy(ptr, &cap, 4); ptr += 4;
1219
1220 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1221 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1222
1223 }
1224
glEnableVertexAttribArray_enc(void * self,GLuint index)1225 void glEnableVertexAttribArray_enc(void *self , GLuint index)
1226 {
1227
1228 gl2_encoder_context_t *ctx = (gl2_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;
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_glEnableVertexAttribArray;memcpy(ptr, &tmp, 4); ptr += 4;
1241 memcpy(ptr, &totalSize, 4); ptr += 4;
1242
1243 memcpy(ptr, &index, 4); ptr += 4;
1244
1245 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1246 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1247
1248 }
1249
glFinish_enc(void * self)1250 void glFinish_enc(void *self )
1251 {
1252
1253 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1254 IOStream *stream = ctx->m_stream;
1255 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1256 bool useChecksum = checksumCalculator->getVersion() > 0;
1257
1258 unsigned char *ptr;
1259 unsigned char *buf;
1260 const size_t sizeWithoutChecksum = 8;
1261 const size_t checksumSize = checksumCalculator->checksumByteSize();
1262 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1263 buf = stream->alloc(totalSize);
1264 ptr = buf;
1265 int tmp = OP_glFinish;memcpy(ptr, &tmp, 4); ptr += 4;
1266 memcpy(ptr, &totalSize, 4); ptr += 4;
1267
1268
1269 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1270 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1271
1272 }
1273
glFlush_enc(void * self)1274 void glFlush_enc(void *self )
1275 {
1276
1277 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1278 IOStream *stream = ctx->m_stream;
1279 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1280 bool useChecksum = checksumCalculator->getVersion() > 0;
1281
1282 unsigned char *ptr;
1283 unsigned char *buf;
1284 const size_t sizeWithoutChecksum = 8;
1285 const size_t checksumSize = checksumCalculator->checksumByteSize();
1286 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1287 buf = stream->alloc(totalSize);
1288 ptr = buf;
1289 int tmp = OP_glFlush;memcpy(ptr, &tmp, 4); ptr += 4;
1290 memcpy(ptr, &totalSize, 4); ptr += 4;
1291
1292
1293 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1294 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1295
1296 }
1297
glFramebufferRenderbuffer_enc(void * self,GLenum target,GLenum attachment,GLenum renderbuffertarget,GLuint renderbuffer)1298 void glFramebufferRenderbuffer_enc(void *self , GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
1299 {
1300
1301 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1302 IOStream *stream = ctx->m_stream;
1303 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1304 bool useChecksum = checksumCalculator->getVersion() > 0;
1305
1306 unsigned char *ptr;
1307 unsigned char *buf;
1308 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
1309 const size_t checksumSize = checksumCalculator->checksumByteSize();
1310 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1311 buf = stream->alloc(totalSize);
1312 ptr = buf;
1313 int tmp = OP_glFramebufferRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4;
1314 memcpy(ptr, &totalSize, 4); ptr += 4;
1315
1316 memcpy(ptr, &target, 4); ptr += 4;
1317 memcpy(ptr, &attachment, 4); ptr += 4;
1318 memcpy(ptr, &renderbuffertarget, 4); ptr += 4;
1319 memcpy(ptr, &renderbuffer, 4); ptr += 4;
1320
1321 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1322 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1323
1324 }
1325
glFramebufferTexture2D_enc(void * self,GLenum target,GLenum attachment,GLenum textarget,GLuint texture,GLint level)1326 void glFramebufferTexture2D_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
1327 {
1328
1329 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1330 IOStream *stream = ctx->m_stream;
1331 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1332 bool useChecksum = checksumCalculator->getVersion() > 0;
1333
1334 unsigned char *ptr;
1335 unsigned char *buf;
1336 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
1337 const size_t checksumSize = checksumCalculator->checksumByteSize();
1338 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1339 buf = stream->alloc(totalSize);
1340 ptr = buf;
1341 int tmp = OP_glFramebufferTexture2D;memcpy(ptr, &tmp, 4); ptr += 4;
1342 memcpy(ptr, &totalSize, 4); ptr += 4;
1343
1344 memcpy(ptr, &target, 4); ptr += 4;
1345 memcpy(ptr, &attachment, 4); ptr += 4;
1346 memcpy(ptr, &textarget, 4); ptr += 4;
1347 memcpy(ptr, &texture, 4); ptr += 4;
1348 memcpy(ptr, &level, 4); ptr += 4;
1349
1350 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1351 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1352
1353 }
1354
glFrontFace_enc(void * self,GLenum mode)1355 void glFrontFace_enc(void *self , GLenum mode)
1356 {
1357
1358 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1359 IOStream *stream = ctx->m_stream;
1360 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1361 bool useChecksum = checksumCalculator->getVersion() > 0;
1362
1363 unsigned char *ptr;
1364 unsigned char *buf;
1365 const size_t sizeWithoutChecksum = 8 + 4;
1366 const size_t checksumSize = checksumCalculator->checksumByteSize();
1367 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1368 buf = stream->alloc(totalSize);
1369 ptr = buf;
1370 int tmp = OP_glFrontFace;memcpy(ptr, &tmp, 4); ptr += 4;
1371 memcpy(ptr, &totalSize, 4); ptr += 4;
1372
1373 memcpy(ptr, &mode, 4); ptr += 4;
1374
1375 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1376 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1377
1378 }
1379
glGenBuffers_enc(void * self,GLsizei n,GLuint * buffers)1380 void glGenBuffers_enc(void *self , GLsizei n, GLuint* buffers)
1381 {
1382
1383 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1384 IOStream *stream = ctx->m_stream;
1385 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1386 bool useChecksum = checksumCalculator->getVersion() > 0;
1387
1388 const unsigned int __size_buffers = (n * sizeof(GLuint));
1389 unsigned char *ptr;
1390 unsigned char *buf;
1391 const size_t sizeWithoutChecksum = 8 + 4 + __size_buffers + 1*4;
1392 const size_t checksumSize = checksumCalculator->checksumByteSize();
1393 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1394 buf = stream->alloc(totalSize);
1395 ptr = buf;
1396 int tmp = OP_glGenBuffers;memcpy(ptr, &tmp, 4); ptr += 4;
1397 memcpy(ptr, &totalSize, 4); ptr += 4;
1398
1399 memcpy(ptr, &n, 4); ptr += 4;
1400 *(unsigned int *)(ptr) = __size_buffers; ptr += 4;
1401
1402 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1403 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1404
1405 stream->readback(buffers, __size_buffers);
1406 if (useChecksum) checksumCalculator->addBuffer(buffers, __size_buffers);
1407 if (useChecksum) {
1408 unsigned char *checksumBufPtr = NULL;
1409 std::vector<unsigned char> checksumBuf(checksumSize);
1410 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1411 stream->readback(checksumBufPtr, checksumSize);
1412 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1413 ALOGE("glGenBuffers: GL communication error, please report this issue to b.android.com.\n");
1414 abort();
1415 }
1416 }
1417 }
1418
glGenerateMipmap_enc(void * self,GLenum target)1419 void glGenerateMipmap_enc(void *self , GLenum target)
1420 {
1421
1422 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1423 IOStream *stream = ctx->m_stream;
1424 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1425 bool useChecksum = checksumCalculator->getVersion() > 0;
1426
1427 unsigned char *ptr;
1428 unsigned char *buf;
1429 const size_t sizeWithoutChecksum = 8 + 4;
1430 const size_t checksumSize = checksumCalculator->checksumByteSize();
1431 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1432 buf = stream->alloc(totalSize);
1433 ptr = buf;
1434 int tmp = OP_glGenerateMipmap;memcpy(ptr, &tmp, 4); ptr += 4;
1435 memcpy(ptr, &totalSize, 4); ptr += 4;
1436
1437 memcpy(ptr, &target, 4); ptr += 4;
1438
1439 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1440 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1441
1442 }
1443
glGenFramebuffers_enc(void * self,GLsizei n,GLuint * framebuffers)1444 void glGenFramebuffers_enc(void *self , GLsizei n, GLuint* framebuffers)
1445 {
1446
1447 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1448 IOStream *stream = ctx->m_stream;
1449 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1450 bool useChecksum = checksumCalculator->getVersion() > 0;
1451
1452 const unsigned int __size_framebuffers = (n * sizeof(GLuint));
1453 unsigned char *ptr;
1454 unsigned char *buf;
1455 const size_t sizeWithoutChecksum = 8 + 4 + __size_framebuffers + 1*4;
1456 const size_t checksumSize = checksumCalculator->checksumByteSize();
1457 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1458 buf = stream->alloc(totalSize);
1459 ptr = buf;
1460 int tmp = OP_glGenFramebuffers;memcpy(ptr, &tmp, 4); ptr += 4;
1461 memcpy(ptr, &totalSize, 4); ptr += 4;
1462
1463 memcpy(ptr, &n, 4); ptr += 4;
1464 *(unsigned int *)(ptr) = __size_framebuffers; ptr += 4;
1465
1466 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1467 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1468
1469 stream->readback(framebuffers, __size_framebuffers);
1470 if (useChecksum) checksumCalculator->addBuffer(framebuffers, __size_framebuffers);
1471 if (useChecksum) {
1472 unsigned char *checksumBufPtr = NULL;
1473 std::vector<unsigned char> checksumBuf(checksumSize);
1474 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1475 stream->readback(checksumBufPtr, checksumSize);
1476 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1477 ALOGE("glGenFramebuffers: GL communication error, please report this issue to b.android.com.\n");
1478 abort();
1479 }
1480 }
1481 }
1482
glGenRenderbuffers_enc(void * self,GLsizei n,GLuint * renderbuffers)1483 void glGenRenderbuffers_enc(void *self , GLsizei n, GLuint* renderbuffers)
1484 {
1485
1486 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1487 IOStream *stream = ctx->m_stream;
1488 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1489 bool useChecksum = checksumCalculator->getVersion() > 0;
1490
1491 const unsigned int __size_renderbuffers = (n * sizeof(GLuint));
1492 unsigned char *ptr;
1493 unsigned char *buf;
1494 const size_t sizeWithoutChecksum = 8 + 4 + __size_renderbuffers + 1*4;
1495 const size_t checksumSize = checksumCalculator->checksumByteSize();
1496 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1497 buf = stream->alloc(totalSize);
1498 ptr = buf;
1499 int tmp = OP_glGenRenderbuffers;memcpy(ptr, &tmp, 4); ptr += 4;
1500 memcpy(ptr, &totalSize, 4); ptr += 4;
1501
1502 memcpy(ptr, &n, 4); ptr += 4;
1503 *(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4;
1504
1505 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1506 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1507
1508 stream->readback(renderbuffers, __size_renderbuffers);
1509 if (useChecksum) checksumCalculator->addBuffer(renderbuffers, __size_renderbuffers);
1510 if (useChecksum) {
1511 unsigned char *checksumBufPtr = NULL;
1512 std::vector<unsigned char> checksumBuf(checksumSize);
1513 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1514 stream->readback(checksumBufPtr, checksumSize);
1515 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1516 ALOGE("glGenRenderbuffers: GL communication error, please report this issue to b.android.com.\n");
1517 abort();
1518 }
1519 }
1520 }
1521
glGenTextures_enc(void * self,GLsizei n,GLuint * textures)1522 void glGenTextures_enc(void *self , GLsizei n, GLuint* textures)
1523 {
1524
1525 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1526 IOStream *stream = ctx->m_stream;
1527 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1528 bool useChecksum = checksumCalculator->getVersion() > 0;
1529
1530 const unsigned int __size_textures = (n * sizeof(GLuint));
1531 unsigned char *ptr;
1532 unsigned char *buf;
1533 const size_t sizeWithoutChecksum = 8 + 4 + __size_textures + 1*4;
1534 const size_t checksumSize = checksumCalculator->checksumByteSize();
1535 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1536 buf = stream->alloc(totalSize);
1537 ptr = buf;
1538 int tmp = OP_glGenTextures;memcpy(ptr, &tmp, 4); ptr += 4;
1539 memcpy(ptr, &totalSize, 4); ptr += 4;
1540
1541 memcpy(ptr, &n, 4); ptr += 4;
1542 *(unsigned int *)(ptr) = __size_textures; ptr += 4;
1543
1544 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1545 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1546
1547 stream->readback(textures, __size_textures);
1548 if (useChecksum) checksumCalculator->addBuffer(textures, __size_textures);
1549 if (useChecksum) {
1550 unsigned char *checksumBufPtr = NULL;
1551 std::vector<unsigned char> checksumBuf(checksumSize);
1552 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1553 stream->readback(checksumBufPtr, checksumSize);
1554 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1555 ALOGE("glGenTextures: GL communication error, please report this issue to b.android.com.\n");
1556 abort();
1557 }
1558 }
1559 }
1560
glGetActiveAttrib_enc(void * self,GLuint program,GLuint index,GLsizei bufsize,GLsizei * length,GLint * size,GLenum * type,GLchar * name)1561 void glGetActiveAttrib_enc(void *self , GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
1562 {
1563
1564 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1565 IOStream *stream = ctx->m_stream;
1566 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1567 bool useChecksum = checksumCalculator->getVersion() > 0;
1568
1569 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0);
1570 const unsigned int __size_size = ((size != NULL) ? (sizeof(GLint)) : 0);
1571 const unsigned int __size_type = ((type != NULL) ? (sizeof(GLenum)) : 0);
1572 const unsigned int __size_name = ((name != NULL) ? bufsize : 0);
1573 unsigned char *ptr;
1574 unsigned char *buf;
1575 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_length + __size_size + __size_type + __size_name + 4*4;
1576 const size_t checksumSize = checksumCalculator->checksumByteSize();
1577 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1578 buf = stream->alloc(totalSize);
1579 ptr = buf;
1580 int tmp = OP_glGetActiveAttrib;memcpy(ptr, &tmp, 4); ptr += 4;
1581 memcpy(ptr, &totalSize, 4); ptr += 4;
1582
1583 memcpy(ptr, &program, 4); ptr += 4;
1584 memcpy(ptr, &index, 4); ptr += 4;
1585 memcpy(ptr, &bufsize, 4); ptr += 4;
1586 *(unsigned int *)(ptr) = __size_length; ptr += 4;
1587 *(unsigned int *)(ptr) = __size_size; ptr += 4;
1588 *(unsigned int *)(ptr) = __size_type; ptr += 4;
1589 *(unsigned int *)(ptr) = __size_name; ptr += 4;
1590
1591 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1592 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1593
1594 if (length != NULL) {
1595 stream->readback(length, __size_length);
1596 if (useChecksum) checksumCalculator->addBuffer(length, __size_length);
1597 }
1598 if (size != NULL) {
1599 stream->readback(size, __size_size);
1600 if (useChecksum) checksumCalculator->addBuffer(size, __size_size);
1601 }
1602 if (type != NULL) {
1603 stream->readback(type, __size_type);
1604 if (useChecksum) checksumCalculator->addBuffer(type, __size_type);
1605 }
1606 if (name != NULL) {
1607 stream->readback(name, __size_name);
1608 if (useChecksum) checksumCalculator->addBuffer(name, __size_name);
1609 }
1610 if (useChecksum) {
1611 unsigned char *checksumBufPtr = NULL;
1612 std::vector<unsigned char> checksumBuf(checksumSize);
1613 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1614 stream->readback(checksumBufPtr, checksumSize);
1615 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1616 ALOGE("glGetActiveAttrib: GL communication error, please report this issue to b.android.com.\n");
1617 abort();
1618 }
1619 }
1620 }
1621
glGetActiveUniform_enc(void * self,GLuint program,GLuint index,GLsizei bufsize,GLsizei * length,GLint * size,GLenum * type,GLchar * name)1622 void glGetActiveUniform_enc(void *self , GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
1623 {
1624
1625 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1626 IOStream *stream = ctx->m_stream;
1627 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1628 bool useChecksum = checksumCalculator->getVersion() > 0;
1629
1630 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0);
1631 const unsigned int __size_size = ((size != NULL) ? (sizeof(GLint)) : 0);
1632 const unsigned int __size_type = ((type != NULL) ? (sizeof(GLenum)) : 0);
1633 const unsigned int __size_name = ((name != NULL) ? bufsize : 0);
1634 unsigned char *ptr;
1635 unsigned char *buf;
1636 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_length + __size_size + __size_type + __size_name + 4*4;
1637 const size_t checksumSize = checksumCalculator->checksumByteSize();
1638 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1639 buf = stream->alloc(totalSize);
1640 ptr = buf;
1641 int tmp = OP_glGetActiveUniform;memcpy(ptr, &tmp, 4); ptr += 4;
1642 memcpy(ptr, &totalSize, 4); ptr += 4;
1643
1644 memcpy(ptr, &program, 4); ptr += 4;
1645 memcpy(ptr, &index, 4); ptr += 4;
1646 memcpy(ptr, &bufsize, 4); ptr += 4;
1647 *(unsigned int *)(ptr) = __size_length; ptr += 4;
1648 *(unsigned int *)(ptr) = __size_size; ptr += 4;
1649 *(unsigned int *)(ptr) = __size_type; ptr += 4;
1650 *(unsigned int *)(ptr) = __size_name; ptr += 4;
1651
1652 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1653 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1654
1655 if (length != NULL) {
1656 stream->readback(length, __size_length);
1657 if (useChecksum) checksumCalculator->addBuffer(length, __size_length);
1658 }
1659 if (size != NULL) {
1660 stream->readback(size, __size_size);
1661 if (useChecksum) checksumCalculator->addBuffer(size, __size_size);
1662 }
1663 if (type != NULL) {
1664 stream->readback(type, __size_type);
1665 if (useChecksum) checksumCalculator->addBuffer(type, __size_type);
1666 }
1667 if (name != NULL) {
1668 stream->readback(name, __size_name);
1669 if (useChecksum) checksumCalculator->addBuffer(name, __size_name);
1670 }
1671 if (useChecksum) {
1672 unsigned char *checksumBufPtr = NULL;
1673 std::vector<unsigned char> checksumBuf(checksumSize);
1674 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1675 stream->readback(checksumBufPtr, checksumSize);
1676 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1677 ALOGE("glGetActiveUniform: GL communication error, please report this issue to b.android.com.\n");
1678 abort();
1679 }
1680 }
1681 }
1682
glGetAttachedShaders_enc(void * self,GLuint program,GLsizei maxcount,GLsizei * count,GLuint * shaders)1683 void glGetAttachedShaders_enc(void *self , GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
1684 {
1685
1686 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1687 IOStream *stream = ctx->m_stream;
1688 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1689 bool useChecksum = checksumCalculator->getVersion() > 0;
1690
1691 const unsigned int __size_count = ((count != NULL) ? (sizeof(GLsizei)) : 0);
1692 const unsigned int __size_shaders = (maxcount*sizeof(GLuint));
1693 unsigned char *ptr;
1694 unsigned char *buf;
1695 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_count + __size_shaders + 2*4;
1696 const size_t checksumSize = checksumCalculator->checksumByteSize();
1697 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1698 buf = stream->alloc(totalSize);
1699 ptr = buf;
1700 int tmp = OP_glGetAttachedShaders;memcpy(ptr, &tmp, 4); ptr += 4;
1701 memcpy(ptr, &totalSize, 4); ptr += 4;
1702
1703 memcpy(ptr, &program, 4); ptr += 4;
1704 memcpy(ptr, &maxcount, 4); ptr += 4;
1705 *(unsigned int *)(ptr) = __size_count; ptr += 4;
1706 *(unsigned int *)(ptr) = __size_shaders; ptr += 4;
1707
1708 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1709 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1710
1711 if (count != NULL) {
1712 stream->readback(count, __size_count);
1713 if (useChecksum) checksumCalculator->addBuffer(count, __size_count);
1714 }
1715 stream->readback(shaders, __size_shaders);
1716 if (useChecksum) checksumCalculator->addBuffer(shaders, __size_shaders);
1717 if (useChecksum) {
1718 unsigned char *checksumBufPtr = NULL;
1719 std::vector<unsigned char> checksumBuf(checksumSize);
1720 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1721 stream->readback(checksumBufPtr, checksumSize);
1722 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1723 ALOGE("glGetAttachedShaders: GL communication error, please report this issue to b.android.com.\n");
1724 abort();
1725 }
1726 }
1727 }
1728
glGetAttribLocation_enc(void * self,GLuint program,const GLchar * name)1729 int glGetAttribLocation_enc(void *self , GLuint program, const GLchar* name)
1730 {
1731
1732 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1733 IOStream *stream = ctx->m_stream;
1734 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1735 bool useChecksum = checksumCalculator->getVersion() > 0;
1736
1737 const unsigned int __size_name = (strlen(name) + 1);
1738 unsigned char *ptr;
1739 unsigned char *buf;
1740 const size_t sizeWithoutChecksum = 8 + 4 + __size_name + 1*4;
1741 const size_t checksumSize = checksumCalculator->checksumByteSize();
1742 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1743 buf = stream->alloc(totalSize);
1744 ptr = buf;
1745 int tmp = OP_glGetAttribLocation;memcpy(ptr, &tmp, 4); ptr += 4;
1746 memcpy(ptr, &totalSize, 4); ptr += 4;
1747
1748 memcpy(ptr, &program, 4); ptr += 4;
1749 *(unsigned int *)(ptr) = __size_name; ptr += 4;
1750 memcpy(ptr, name, __size_name);ptr += __size_name;
1751
1752 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1753 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1754
1755
1756 int retval;
1757 stream->readback(&retval, 4);
1758 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
1759 if (useChecksum) {
1760 unsigned char *checksumBufPtr = NULL;
1761 std::vector<unsigned char> checksumBuf(checksumSize);
1762 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1763 stream->readback(checksumBufPtr, checksumSize);
1764 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1765 ALOGE("glGetAttribLocation: GL communication error, please report this issue to b.android.com.\n");
1766 abort();
1767 }
1768 }
1769 return retval;
1770 }
1771
glGetBooleanv_enc(void * self,GLenum pname,GLboolean * params)1772 void glGetBooleanv_enc(void *self , GLenum pname, GLboolean* params)
1773 {
1774
1775 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1776 IOStream *stream = ctx->m_stream;
1777 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1778 bool useChecksum = checksumCalculator->getVersion() > 0;
1779
1780 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLboolean));
1781 unsigned char *ptr;
1782 unsigned char *buf;
1783 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
1784 const size_t checksumSize = checksumCalculator->checksumByteSize();
1785 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1786 buf = stream->alloc(totalSize);
1787 ptr = buf;
1788 int tmp = OP_glGetBooleanv;memcpy(ptr, &tmp, 4); ptr += 4;
1789 memcpy(ptr, &totalSize, 4); ptr += 4;
1790
1791 memcpy(ptr, &pname, 4); ptr += 4;
1792 *(unsigned int *)(ptr) = __size_params; ptr += 4;
1793
1794 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1795 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1796
1797 stream->readback(params, __size_params);
1798 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
1799 if (useChecksum) {
1800 unsigned char *checksumBufPtr = NULL;
1801 std::vector<unsigned char> checksumBuf(checksumSize);
1802 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1803 stream->readback(checksumBufPtr, checksumSize);
1804 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1805 ALOGE("glGetBooleanv: GL communication error, please report this issue to b.android.com.\n");
1806 abort();
1807 }
1808 }
1809 }
1810
glGetBufferParameteriv_enc(void * self,GLenum target,GLenum pname,GLint * params)1811 void glGetBufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
1812 {
1813
1814 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1815 IOStream *stream = ctx->m_stream;
1816 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1817 bool useChecksum = checksumCalculator->getVersion() > 0;
1818
1819 const unsigned int __size_params = (sizeof(GLint));
1820 unsigned char *ptr;
1821 unsigned char *buf;
1822 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
1823 const size_t checksumSize = checksumCalculator->checksumByteSize();
1824 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1825 buf = stream->alloc(totalSize);
1826 ptr = buf;
1827 int tmp = OP_glGetBufferParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
1828 memcpy(ptr, &totalSize, 4); ptr += 4;
1829
1830 memcpy(ptr, &target, 4); ptr += 4;
1831 memcpy(ptr, &pname, 4); ptr += 4;
1832 *(unsigned int *)(ptr) = __size_params; ptr += 4;
1833
1834 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1835 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1836
1837 stream->readback(params, __size_params);
1838 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
1839 if (useChecksum) {
1840 unsigned char *checksumBufPtr = NULL;
1841 std::vector<unsigned char> checksumBuf(checksumSize);
1842 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1843 stream->readback(checksumBufPtr, checksumSize);
1844 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1845 ALOGE("glGetBufferParameteriv: GL communication error, please report this issue to b.android.com.\n");
1846 abort();
1847 }
1848 }
1849 }
1850
glGetError_enc(void * self)1851 GLenum glGetError_enc(void *self )
1852 {
1853
1854 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1855 IOStream *stream = ctx->m_stream;
1856 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1857 bool useChecksum = checksumCalculator->getVersion() > 0;
1858
1859 unsigned char *ptr;
1860 unsigned char *buf;
1861 const size_t sizeWithoutChecksum = 8;
1862 const size_t checksumSize = checksumCalculator->checksumByteSize();
1863 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1864 buf = stream->alloc(totalSize);
1865 ptr = buf;
1866 int tmp = OP_glGetError;memcpy(ptr, &tmp, 4); ptr += 4;
1867 memcpy(ptr, &totalSize, 4); ptr += 4;
1868
1869
1870 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1871 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1872
1873
1874 GLenum retval;
1875 stream->readback(&retval, 4);
1876 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
1877 if (useChecksum) {
1878 unsigned char *checksumBufPtr = NULL;
1879 std::vector<unsigned char> checksumBuf(checksumSize);
1880 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1881 stream->readback(checksumBufPtr, checksumSize);
1882 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1883 ALOGE("glGetError: GL communication error, please report this issue to b.android.com.\n");
1884 abort();
1885 }
1886 }
1887 return retval;
1888 }
1889
glGetFloatv_enc(void * self,GLenum pname,GLfloat * params)1890 void glGetFloatv_enc(void *self , GLenum pname, GLfloat* params)
1891 {
1892
1893 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1894 IOStream *stream = ctx->m_stream;
1895 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1896 bool useChecksum = checksumCalculator->getVersion() > 0;
1897
1898 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLfloat));
1899 unsigned char *ptr;
1900 unsigned char *buf;
1901 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
1902 const size_t checksumSize = checksumCalculator->checksumByteSize();
1903 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1904 buf = stream->alloc(totalSize);
1905 ptr = buf;
1906 int tmp = OP_glGetFloatv;memcpy(ptr, &tmp, 4); ptr += 4;
1907 memcpy(ptr, &totalSize, 4); ptr += 4;
1908
1909 memcpy(ptr, &pname, 4); ptr += 4;
1910 *(unsigned int *)(ptr) = __size_params; ptr += 4;
1911
1912 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1913 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1914
1915 stream->readback(params, __size_params);
1916 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
1917 if (useChecksum) {
1918 unsigned char *checksumBufPtr = NULL;
1919 std::vector<unsigned char> checksumBuf(checksumSize);
1920 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1921 stream->readback(checksumBufPtr, checksumSize);
1922 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1923 ALOGE("glGetFloatv: GL communication error, please report this issue to b.android.com.\n");
1924 abort();
1925 }
1926 }
1927 }
1928
glGetFramebufferAttachmentParameteriv_enc(void * self,GLenum target,GLenum attachment,GLenum pname,GLint * params)1929 void glGetFramebufferAttachmentParameteriv_enc(void *self , GLenum target, GLenum attachment, GLenum pname, GLint* params)
1930 {
1931
1932 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1933 IOStream *stream = ctx->m_stream;
1934 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1935 bool useChecksum = checksumCalculator->getVersion() > 0;
1936
1937 const unsigned int __size_params = (sizeof(GLint));
1938 unsigned char *ptr;
1939 unsigned char *buf;
1940 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_params + 1*4;
1941 const size_t checksumSize = checksumCalculator->checksumByteSize();
1942 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1943 buf = stream->alloc(totalSize);
1944 ptr = buf;
1945 int tmp = OP_glGetFramebufferAttachmentParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
1946 memcpy(ptr, &totalSize, 4); ptr += 4;
1947
1948 memcpy(ptr, &target, 4); ptr += 4;
1949 memcpy(ptr, &attachment, 4); ptr += 4;
1950 memcpy(ptr, &pname, 4); ptr += 4;
1951 *(unsigned int *)(ptr) = __size_params; ptr += 4;
1952
1953 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1954 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1955
1956 stream->readback(params, __size_params);
1957 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
1958 if (useChecksum) {
1959 unsigned char *checksumBufPtr = NULL;
1960 std::vector<unsigned char> checksumBuf(checksumSize);
1961 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
1962 stream->readback(checksumBufPtr, checksumSize);
1963 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
1964 ALOGE("glGetFramebufferAttachmentParameteriv: GL communication error, please report this issue to b.android.com.\n");
1965 abort();
1966 }
1967 }
1968 }
1969
glGetIntegerv_enc(void * self,GLenum pname,GLint * params)1970 void glGetIntegerv_enc(void *self , GLenum pname, GLint* params)
1971 {
1972
1973 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
1974 IOStream *stream = ctx->m_stream;
1975 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1976 bool useChecksum = checksumCalculator->getVersion() > 0;
1977
1978 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint));
1979 unsigned char *ptr;
1980 unsigned char *buf;
1981 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
1982 const size_t checksumSize = checksumCalculator->checksumByteSize();
1983 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1984 buf = stream->alloc(totalSize);
1985 ptr = buf;
1986 int tmp = OP_glGetIntegerv;memcpy(ptr, &tmp, 4); ptr += 4;
1987 memcpy(ptr, &totalSize, 4); ptr += 4;
1988
1989 memcpy(ptr, &pname, 4); ptr += 4;
1990 *(unsigned int *)(ptr) = __size_params; ptr += 4;
1991
1992 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1993 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1994
1995 stream->readback(params, __size_params);
1996 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
1997 if (useChecksum) {
1998 unsigned char *checksumBufPtr = NULL;
1999 std::vector<unsigned char> checksumBuf(checksumSize);
2000 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2001 stream->readback(checksumBufPtr, checksumSize);
2002 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2003 ALOGE("glGetIntegerv: GL communication error, please report this issue to b.android.com.\n");
2004 abort();
2005 }
2006 }
2007 }
2008
glGetProgramiv_enc(void * self,GLuint program,GLenum pname,GLint * params)2009 void glGetProgramiv_enc(void *self , GLuint program, GLenum pname, GLint* params)
2010 {
2011
2012 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2013 IOStream *stream = ctx->m_stream;
2014 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2015 bool useChecksum = checksumCalculator->getVersion() > 0;
2016
2017 const unsigned int __size_params = sizeof(GLint);
2018 unsigned char *ptr;
2019 unsigned char *buf;
2020 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2021 const size_t checksumSize = checksumCalculator->checksumByteSize();
2022 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2023 buf = stream->alloc(totalSize);
2024 ptr = buf;
2025 int tmp = OP_glGetProgramiv;memcpy(ptr, &tmp, 4); ptr += 4;
2026 memcpy(ptr, &totalSize, 4); ptr += 4;
2027
2028 memcpy(ptr, &program, 4); ptr += 4;
2029 memcpy(ptr, &pname, 4); ptr += 4;
2030 *(unsigned int *)(ptr) = __size_params; ptr += 4;
2031
2032 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2033 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2034
2035 stream->readback(params, __size_params);
2036 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2037 if (useChecksum) {
2038 unsigned char *checksumBufPtr = NULL;
2039 std::vector<unsigned char> checksumBuf(checksumSize);
2040 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2041 stream->readback(checksumBufPtr, checksumSize);
2042 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2043 ALOGE("glGetProgramiv: GL communication error, please report this issue to b.android.com.\n");
2044 abort();
2045 }
2046 }
2047 }
2048
glGetProgramInfoLog_enc(void * self,GLuint program,GLsizei bufsize,GLsizei * length,GLchar * infolog)2049 void glGetProgramInfoLog_enc(void *self , GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog)
2050 {
2051
2052 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2053 IOStream *stream = ctx->m_stream;
2054 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2055 bool useChecksum = checksumCalculator->getVersion() > 0;
2056
2057 const unsigned int __size_length = ((length != NULL) ? sizeof(GLsizei) : 0);
2058 const unsigned int __size_infolog = bufsize;
2059 unsigned char *ptr;
2060 unsigned char *buf;
2061 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_length + __size_infolog + 2*4;
2062 const size_t checksumSize = checksumCalculator->checksumByteSize();
2063 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2064 buf = stream->alloc(totalSize);
2065 ptr = buf;
2066 int tmp = OP_glGetProgramInfoLog;memcpy(ptr, &tmp, 4); ptr += 4;
2067 memcpy(ptr, &totalSize, 4); ptr += 4;
2068
2069 memcpy(ptr, &program, 4); ptr += 4;
2070 memcpy(ptr, &bufsize, 4); ptr += 4;
2071 *(unsigned int *)(ptr) = __size_length; ptr += 4;
2072 *(unsigned int *)(ptr) = __size_infolog; ptr += 4;
2073
2074 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2075 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2076
2077 if (length != NULL) {
2078 stream->readback(length, __size_length);
2079 if (useChecksum) checksumCalculator->addBuffer(length, __size_length);
2080 }
2081 stream->readback(infolog, __size_infolog);
2082 if (useChecksum) checksumCalculator->addBuffer(infolog, __size_infolog);
2083 if (useChecksum) {
2084 unsigned char *checksumBufPtr = NULL;
2085 std::vector<unsigned char> checksumBuf(checksumSize);
2086 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2087 stream->readback(checksumBufPtr, checksumSize);
2088 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2089 ALOGE("glGetProgramInfoLog: GL communication error, please report this issue to b.android.com.\n");
2090 abort();
2091 }
2092 }
2093 }
2094
glGetRenderbufferParameteriv_enc(void * self,GLenum target,GLenum pname,GLint * params)2095 void glGetRenderbufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
2096 {
2097
2098 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2099 IOStream *stream = ctx->m_stream;
2100 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2101 bool useChecksum = checksumCalculator->getVersion() > 0;
2102
2103 const unsigned int __size_params = sizeof(GLint);
2104 unsigned char *ptr;
2105 unsigned char *buf;
2106 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2107 const size_t checksumSize = checksumCalculator->checksumByteSize();
2108 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2109 buf = stream->alloc(totalSize);
2110 ptr = buf;
2111 int tmp = OP_glGetRenderbufferParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
2112 memcpy(ptr, &totalSize, 4); ptr += 4;
2113
2114 memcpy(ptr, &target, 4); ptr += 4;
2115 memcpy(ptr, &pname, 4); ptr += 4;
2116 *(unsigned int *)(ptr) = __size_params; ptr += 4;
2117
2118 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2119 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2120
2121 stream->readback(params, __size_params);
2122 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2123 if (useChecksum) {
2124 unsigned char *checksumBufPtr = NULL;
2125 std::vector<unsigned char> checksumBuf(checksumSize);
2126 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2127 stream->readback(checksumBufPtr, checksumSize);
2128 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2129 ALOGE("glGetRenderbufferParameteriv: GL communication error, please report this issue to b.android.com.\n");
2130 abort();
2131 }
2132 }
2133 }
2134
glGetShaderiv_enc(void * self,GLuint shader,GLenum pname,GLint * params)2135 void glGetShaderiv_enc(void *self , GLuint shader, GLenum pname, GLint* params)
2136 {
2137
2138 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2139 IOStream *stream = ctx->m_stream;
2140 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2141 bool useChecksum = checksumCalculator->getVersion() > 0;
2142
2143 const unsigned int __size_params = sizeof(GLint);
2144 unsigned char *ptr;
2145 unsigned char *buf;
2146 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2147 const size_t checksumSize = checksumCalculator->checksumByteSize();
2148 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2149 buf = stream->alloc(totalSize);
2150 ptr = buf;
2151 int tmp = OP_glGetShaderiv;memcpy(ptr, &tmp, 4); ptr += 4;
2152 memcpy(ptr, &totalSize, 4); ptr += 4;
2153
2154 memcpy(ptr, &shader, 4); ptr += 4;
2155 memcpy(ptr, &pname, 4); ptr += 4;
2156 *(unsigned int *)(ptr) = __size_params; ptr += 4;
2157
2158 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2159 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2160
2161 stream->readback(params, __size_params);
2162 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2163 if (useChecksum) {
2164 unsigned char *checksumBufPtr = NULL;
2165 std::vector<unsigned char> checksumBuf(checksumSize);
2166 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2167 stream->readback(checksumBufPtr, checksumSize);
2168 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2169 ALOGE("glGetShaderiv: GL communication error, please report this issue to b.android.com.\n");
2170 abort();
2171 }
2172 }
2173 }
2174
glGetShaderInfoLog_enc(void * self,GLuint shader,GLsizei bufsize,GLsizei * length,GLchar * infolog)2175 void glGetShaderInfoLog_enc(void *self , GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog)
2176 {
2177
2178 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2179 IOStream *stream = ctx->m_stream;
2180 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2181 bool useChecksum = checksumCalculator->getVersion() > 0;
2182
2183 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0);
2184 const unsigned int __size_infolog = bufsize;
2185 unsigned char *ptr;
2186 unsigned char *buf;
2187 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_length + __size_infolog + 2*4;
2188 const size_t checksumSize = checksumCalculator->checksumByteSize();
2189 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2190 buf = stream->alloc(totalSize);
2191 ptr = buf;
2192 int tmp = OP_glGetShaderInfoLog;memcpy(ptr, &tmp, 4); ptr += 4;
2193 memcpy(ptr, &totalSize, 4); ptr += 4;
2194
2195 memcpy(ptr, &shader, 4); ptr += 4;
2196 memcpy(ptr, &bufsize, 4); ptr += 4;
2197 *(unsigned int *)(ptr) = __size_length; ptr += 4;
2198 *(unsigned int *)(ptr) = __size_infolog; ptr += 4;
2199
2200 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2201 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2202
2203 if (length != NULL) {
2204 stream->readback(length, __size_length);
2205 if (useChecksum) checksumCalculator->addBuffer(length, __size_length);
2206 }
2207 stream->readback(infolog, __size_infolog);
2208 if (useChecksum) checksumCalculator->addBuffer(infolog, __size_infolog);
2209 if (useChecksum) {
2210 unsigned char *checksumBufPtr = NULL;
2211 std::vector<unsigned char> checksumBuf(checksumSize);
2212 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2213 stream->readback(checksumBufPtr, checksumSize);
2214 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2215 ALOGE("glGetShaderInfoLog: GL communication error, please report this issue to b.android.com.\n");
2216 abort();
2217 }
2218 }
2219 }
2220
glGetShaderPrecisionFormat_enc(void * self,GLenum shadertype,GLenum precisiontype,GLint * range,GLint * precision)2221 void glGetShaderPrecisionFormat_enc(void *self , GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
2222 {
2223
2224 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2225 IOStream *stream = ctx->m_stream;
2226 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2227 bool useChecksum = checksumCalculator->getVersion() > 0;
2228
2229 const unsigned int __size_range = (2 * sizeof(GLint));
2230 const unsigned int __size_precision = (sizeof(GLint));
2231 unsigned char *ptr;
2232 unsigned char *buf;
2233 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_range + __size_precision + 2*4;
2234 const size_t checksumSize = checksumCalculator->checksumByteSize();
2235 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2236 buf = stream->alloc(totalSize);
2237 ptr = buf;
2238 int tmp = OP_glGetShaderPrecisionFormat;memcpy(ptr, &tmp, 4); ptr += 4;
2239 memcpy(ptr, &totalSize, 4); ptr += 4;
2240
2241 memcpy(ptr, &shadertype, 4); ptr += 4;
2242 memcpy(ptr, &precisiontype, 4); ptr += 4;
2243 *(unsigned int *)(ptr) = __size_range; ptr += 4;
2244 *(unsigned int *)(ptr) = __size_precision; ptr += 4;
2245
2246 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2247 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2248
2249 stream->readback(range, __size_range);
2250 if (useChecksum) checksumCalculator->addBuffer(range, __size_range);
2251 stream->readback(precision, __size_precision);
2252 if (useChecksum) checksumCalculator->addBuffer(precision, __size_precision);
2253 if (useChecksum) {
2254 unsigned char *checksumBufPtr = NULL;
2255 std::vector<unsigned char> checksumBuf(checksumSize);
2256 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2257 stream->readback(checksumBufPtr, checksumSize);
2258 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2259 ALOGE("glGetShaderPrecisionFormat: GL communication error, please report this issue to b.android.com.\n");
2260 abort();
2261 }
2262 }
2263 }
2264
glGetShaderSource_enc(void * self,GLuint shader,GLsizei bufsize,GLsizei * length,GLchar * source)2265 void glGetShaderSource_enc(void *self , GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source)
2266 {
2267
2268 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2269 IOStream *stream = ctx->m_stream;
2270 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2271 bool useChecksum = checksumCalculator->getVersion() > 0;
2272
2273 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0);
2274 const unsigned int __size_source = bufsize;
2275 unsigned char *ptr;
2276 unsigned char *buf;
2277 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_length + __size_source + 2*4;
2278 const size_t checksumSize = checksumCalculator->checksumByteSize();
2279 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2280 buf = stream->alloc(totalSize);
2281 ptr = buf;
2282 int tmp = OP_glGetShaderSource;memcpy(ptr, &tmp, 4); ptr += 4;
2283 memcpy(ptr, &totalSize, 4); ptr += 4;
2284
2285 memcpy(ptr, &shader, 4); ptr += 4;
2286 memcpy(ptr, &bufsize, 4); ptr += 4;
2287 *(unsigned int *)(ptr) = __size_length; ptr += 4;
2288 *(unsigned int *)(ptr) = __size_source; ptr += 4;
2289
2290 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2291 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2292
2293 if (length != NULL) {
2294 stream->readback(length, __size_length);
2295 if (useChecksum) checksumCalculator->addBuffer(length, __size_length);
2296 }
2297 stream->readback(source, __size_source);
2298 if (useChecksum) checksumCalculator->addBuffer(source, __size_source);
2299 if (useChecksum) {
2300 unsigned char *checksumBufPtr = NULL;
2301 std::vector<unsigned char> checksumBuf(checksumSize);
2302 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2303 stream->readback(checksumBufPtr, checksumSize);
2304 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2305 ALOGE("glGetShaderSource: GL communication error, please report this issue to b.android.com.\n");
2306 abort();
2307 }
2308 }
2309 }
2310
glGetTexParameterfv_enc(void * self,GLenum target,GLenum pname,GLfloat * params)2311 void glGetTexParameterfv_enc(void *self , GLenum target, GLenum pname, GLfloat* params)
2312 {
2313
2314 gl2_encoder_context_t *ctx = (gl2_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(GLfloat));
2320 unsigned char *ptr;
2321 unsigned char *buf;
2322 const size_t sizeWithoutChecksum = 8 + 4 + 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_glGetTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
2328 memcpy(ptr, &totalSize, 4); ptr += 4;
2329
2330 memcpy(ptr, &target, 4); ptr += 4;
2331 memcpy(ptr, &pname, 4); ptr += 4;
2332 *(unsigned int *)(ptr) = __size_params; ptr += 4;
2333
2334 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2335 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2336
2337 stream->readback(params, __size_params);
2338 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2339 if (useChecksum) {
2340 unsigned char *checksumBufPtr = NULL;
2341 std::vector<unsigned char> checksumBuf(checksumSize);
2342 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2343 stream->readback(checksumBufPtr, checksumSize);
2344 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2345 ALOGE("glGetTexParameterfv: GL communication error, please report this issue to b.android.com.\n");
2346 abort();
2347 }
2348 }
2349 }
2350
glGetTexParameteriv_enc(void * self,GLenum target,GLenum pname,GLint * params)2351 void glGetTexParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
2352 {
2353
2354 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2355 IOStream *stream = ctx->m_stream;
2356 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2357 bool useChecksum = checksumCalculator->getVersion() > 0;
2358
2359 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint));
2360 unsigned char *ptr;
2361 unsigned char *buf;
2362 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2363 const size_t checksumSize = checksumCalculator->checksumByteSize();
2364 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2365 buf = stream->alloc(totalSize);
2366 ptr = buf;
2367 int tmp = OP_glGetTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
2368 memcpy(ptr, &totalSize, 4); ptr += 4;
2369
2370 memcpy(ptr, &target, 4); ptr += 4;
2371 memcpy(ptr, &pname, 4); ptr += 4;
2372 *(unsigned int *)(ptr) = __size_params; ptr += 4;
2373
2374 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2375 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2376
2377 stream->readback(params, __size_params);
2378 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2379 if (useChecksum) {
2380 unsigned char *checksumBufPtr = NULL;
2381 std::vector<unsigned char> checksumBuf(checksumSize);
2382 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2383 stream->readback(checksumBufPtr, checksumSize);
2384 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2385 ALOGE("glGetTexParameteriv: GL communication error, please report this issue to b.android.com.\n");
2386 abort();
2387 }
2388 }
2389 }
2390
glGetUniformfv_enc(void * self,GLuint program,GLint location,GLfloat * params)2391 void glGetUniformfv_enc(void *self , GLuint program, GLint location, GLfloat* params)
2392 {
2393
2394 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2395 IOStream *stream = ctx->m_stream;
2396 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2397 bool useChecksum = checksumCalculator->getVersion() > 0;
2398
2399 const unsigned int __size_params = glSizeof(glesv2_enc::uniformType(self, program, location));
2400 unsigned char *ptr;
2401 unsigned char *buf;
2402 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2403 const size_t checksumSize = checksumCalculator->checksumByteSize();
2404 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2405 buf = stream->alloc(totalSize);
2406 ptr = buf;
2407 int tmp = OP_glGetUniformfv;memcpy(ptr, &tmp, 4); ptr += 4;
2408 memcpy(ptr, &totalSize, 4); ptr += 4;
2409
2410 memcpy(ptr, &program, 4); ptr += 4;
2411 memcpy(ptr, &location, 4); ptr += 4;
2412 *(unsigned int *)(ptr) = __size_params; ptr += 4;
2413
2414 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2415 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2416
2417 stream->readback(params, __size_params);
2418 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2419 if (useChecksum) {
2420 unsigned char *checksumBufPtr = NULL;
2421 std::vector<unsigned char> checksumBuf(checksumSize);
2422 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2423 stream->readback(checksumBufPtr, checksumSize);
2424 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2425 ALOGE("glGetUniformfv: GL communication error, please report this issue to b.android.com.\n");
2426 abort();
2427 }
2428 }
2429 }
2430
glGetUniformiv_enc(void * self,GLuint program,GLint location,GLint * params)2431 void glGetUniformiv_enc(void *self , GLuint program, GLint location, GLint* params)
2432 {
2433
2434 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2435 IOStream *stream = ctx->m_stream;
2436 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2437 bool useChecksum = checksumCalculator->getVersion() > 0;
2438
2439 const unsigned int __size_params = glSizeof(glesv2_enc::uniformType(self, program, location));
2440 unsigned char *ptr;
2441 unsigned char *buf;
2442 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2443 const size_t checksumSize = checksumCalculator->checksumByteSize();
2444 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2445 buf = stream->alloc(totalSize);
2446 ptr = buf;
2447 int tmp = OP_glGetUniformiv;memcpy(ptr, &tmp, 4); ptr += 4;
2448 memcpy(ptr, &totalSize, 4); ptr += 4;
2449
2450 memcpy(ptr, &program, 4); ptr += 4;
2451 memcpy(ptr, &location, 4); ptr += 4;
2452 *(unsigned int *)(ptr) = __size_params; ptr += 4;
2453
2454 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2455 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2456
2457 stream->readback(params, __size_params);
2458 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2459 if (useChecksum) {
2460 unsigned char *checksumBufPtr = NULL;
2461 std::vector<unsigned char> checksumBuf(checksumSize);
2462 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2463 stream->readback(checksumBufPtr, checksumSize);
2464 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2465 ALOGE("glGetUniformiv: GL communication error, please report this issue to b.android.com.\n");
2466 abort();
2467 }
2468 }
2469 }
2470
glGetUniformLocation_enc(void * self,GLuint program,const GLchar * name)2471 int glGetUniformLocation_enc(void *self , GLuint program, const GLchar* name)
2472 {
2473
2474 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2475 IOStream *stream = ctx->m_stream;
2476 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2477 bool useChecksum = checksumCalculator->getVersion() > 0;
2478
2479 const unsigned int __size_name = (strlen(name) + 1);
2480 unsigned char *ptr;
2481 unsigned char *buf;
2482 const size_t sizeWithoutChecksum = 8 + 4 + __size_name + 1*4;
2483 const size_t checksumSize = checksumCalculator->checksumByteSize();
2484 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2485 buf = stream->alloc(totalSize);
2486 ptr = buf;
2487 int tmp = OP_glGetUniformLocation;memcpy(ptr, &tmp, 4); ptr += 4;
2488 memcpy(ptr, &totalSize, 4); ptr += 4;
2489
2490 memcpy(ptr, &program, 4); ptr += 4;
2491 *(unsigned int *)(ptr) = __size_name; ptr += 4;
2492 memcpy(ptr, name, __size_name);ptr += __size_name;
2493
2494 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2495 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2496
2497
2498 int retval;
2499 stream->readback(&retval, 4);
2500 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
2501 if (useChecksum) {
2502 unsigned char *checksumBufPtr = NULL;
2503 std::vector<unsigned char> checksumBuf(checksumSize);
2504 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2505 stream->readback(checksumBufPtr, checksumSize);
2506 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2507 ALOGE("glGetUniformLocation: GL communication error, please report this issue to b.android.com.\n");
2508 abort();
2509 }
2510 }
2511 return retval;
2512 }
2513
glGetVertexAttribfv_enc(void * self,GLuint index,GLenum pname,GLfloat * params)2514 void glGetVertexAttribfv_enc(void *self , GLuint index, GLenum pname, GLfloat* params)
2515 {
2516
2517 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2518 IOStream *stream = ctx->m_stream;
2519 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2520 bool useChecksum = checksumCalculator->getVersion() > 0;
2521
2522 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLfloat));
2523 unsigned char *ptr;
2524 unsigned char *buf;
2525 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2526 const size_t checksumSize = checksumCalculator->checksumByteSize();
2527 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2528 buf = stream->alloc(totalSize);
2529 ptr = buf;
2530 int tmp = OP_glGetVertexAttribfv;memcpy(ptr, &tmp, 4); ptr += 4;
2531 memcpy(ptr, &totalSize, 4); ptr += 4;
2532
2533 memcpy(ptr, &index, 4); ptr += 4;
2534 memcpy(ptr, &pname, 4); ptr += 4;
2535 *(unsigned int *)(ptr) = __size_params; ptr += 4;
2536
2537 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2538 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2539
2540 stream->readback(params, __size_params);
2541 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2542 if (useChecksum) {
2543 unsigned char *checksumBufPtr = NULL;
2544 std::vector<unsigned char> checksumBuf(checksumSize);
2545 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2546 stream->readback(checksumBufPtr, checksumSize);
2547 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2548 ALOGE("glGetVertexAttribfv: GL communication error, please report this issue to b.android.com.\n");
2549 abort();
2550 }
2551 }
2552 }
2553
glGetVertexAttribiv_enc(void * self,GLuint index,GLenum pname,GLint * params)2554 void glGetVertexAttribiv_enc(void *self , GLuint index, GLenum pname, GLint* params)
2555 {
2556
2557 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2558 IOStream *stream = ctx->m_stream;
2559 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2560 bool useChecksum = checksumCalculator->getVersion() > 0;
2561
2562 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint));
2563 unsigned char *ptr;
2564 unsigned char *buf;
2565 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
2566 const size_t checksumSize = checksumCalculator->checksumByteSize();
2567 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2568 buf = stream->alloc(totalSize);
2569 ptr = buf;
2570 int tmp = OP_glGetVertexAttribiv;memcpy(ptr, &tmp, 4); ptr += 4;
2571 memcpy(ptr, &totalSize, 4); ptr += 4;
2572
2573 memcpy(ptr, &index, 4); ptr += 4;
2574 memcpy(ptr, &pname, 4); ptr += 4;
2575 *(unsigned int *)(ptr) = __size_params; ptr += 4;
2576
2577 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2578 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2579
2580 stream->readback(params, __size_params);
2581 if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2582 if (useChecksum) {
2583 unsigned char *checksumBufPtr = NULL;
2584 std::vector<unsigned char> checksumBuf(checksumSize);
2585 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2586 stream->readback(checksumBufPtr, checksumSize);
2587 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2588 ALOGE("glGetVertexAttribiv: GL communication error, please report this issue to b.android.com.\n");
2589 abort();
2590 }
2591 }
2592 }
2593
glHint_enc(void * self,GLenum target,GLenum mode)2594 void glHint_enc(void *self , GLenum target, GLenum mode)
2595 {
2596
2597 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2598 IOStream *stream = ctx->m_stream;
2599 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2600 bool useChecksum = checksumCalculator->getVersion() > 0;
2601
2602 unsigned char *ptr;
2603 unsigned char *buf;
2604 const size_t sizeWithoutChecksum = 8 + 4 + 4;
2605 const size_t checksumSize = checksumCalculator->checksumByteSize();
2606 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2607 buf = stream->alloc(totalSize);
2608 ptr = buf;
2609 int tmp = OP_glHint;memcpy(ptr, &tmp, 4); ptr += 4;
2610 memcpy(ptr, &totalSize, 4); ptr += 4;
2611
2612 memcpy(ptr, &target, 4); ptr += 4;
2613 memcpy(ptr, &mode, 4); ptr += 4;
2614
2615 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2616 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2617
2618 }
2619
glIsBuffer_enc(void * self,GLuint buffer)2620 GLboolean glIsBuffer_enc(void *self , GLuint buffer)
2621 {
2622
2623 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2624 IOStream *stream = ctx->m_stream;
2625 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2626 bool useChecksum = checksumCalculator->getVersion() > 0;
2627
2628 unsigned char *ptr;
2629 unsigned char *buf;
2630 const size_t sizeWithoutChecksum = 8 + 4;
2631 const size_t checksumSize = checksumCalculator->checksumByteSize();
2632 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2633 buf = stream->alloc(totalSize);
2634 ptr = buf;
2635 int tmp = OP_glIsBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
2636 memcpy(ptr, &totalSize, 4); ptr += 4;
2637
2638 memcpy(ptr, &buffer, 4); ptr += 4;
2639
2640 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2641 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2642
2643
2644 GLboolean retval;
2645 stream->readback(&retval, 1);
2646 if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2647 if (useChecksum) {
2648 unsigned char *checksumBufPtr = NULL;
2649 std::vector<unsigned char> checksumBuf(checksumSize);
2650 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2651 stream->readback(checksumBufPtr, checksumSize);
2652 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2653 ALOGE("glIsBuffer: GL communication error, please report this issue to b.android.com.\n");
2654 abort();
2655 }
2656 }
2657 return retval;
2658 }
2659
glIsEnabled_enc(void * self,GLenum cap)2660 GLboolean glIsEnabled_enc(void *self , GLenum cap)
2661 {
2662
2663 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2664 IOStream *stream = ctx->m_stream;
2665 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2666 bool useChecksum = checksumCalculator->getVersion() > 0;
2667
2668 unsigned char *ptr;
2669 unsigned char *buf;
2670 const size_t sizeWithoutChecksum = 8 + 4;
2671 const size_t checksumSize = checksumCalculator->checksumByteSize();
2672 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2673 buf = stream->alloc(totalSize);
2674 ptr = buf;
2675 int tmp = OP_glIsEnabled;memcpy(ptr, &tmp, 4); ptr += 4;
2676 memcpy(ptr, &totalSize, 4); ptr += 4;
2677
2678 memcpy(ptr, &cap, 4); ptr += 4;
2679
2680 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2681 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2682
2683
2684 GLboolean retval;
2685 stream->readback(&retval, 1);
2686 if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2687 if (useChecksum) {
2688 unsigned char *checksumBufPtr = NULL;
2689 std::vector<unsigned char> checksumBuf(checksumSize);
2690 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2691 stream->readback(checksumBufPtr, checksumSize);
2692 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2693 ALOGE("glIsEnabled: GL communication error, please report this issue to b.android.com.\n");
2694 abort();
2695 }
2696 }
2697 return retval;
2698 }
2699
glIsFramebuffer_enc(void * self,GLuint framebuffer)2700 GLboolean glIsFramebuffer_enc(void *self , GLuint framebuffer)
2701 {
2702
2703 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2704 IOStream *stream = ctx->m_stream;
2705 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2706 bool useChecksum = checksumCalculator->getVersion() > 0;
2707
2708 unsigned char *ptr;
2709 unsigned char *buf;
2710 const size_t sizeWithoutChecksum = 8 + 4;
2711 const size_t checksumSize = checksumCalculator->checksumByteSize();
2712 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2713 buf = stream->alloc(totalSize);
2714 ptr = buf;
2715 int tmp = OP_glIsFramebuffer;memcpy(ptr, &tmp, 4); ptr += 4;
2716 memcpy(ptr, &totalSize, 4); ptr += 4;
2717
2718 memcpy(ptr, &framebuffer, 4); ptr += 4;
2719
2720 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2721 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2722
2723
2724 GLboolean retval;
2725 stream->readback(&retval, 1);
2726 if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2727 if (useChecksum) {
2728 unsigned char *checksumBufPtr = NULL;
2729 std::vector<unsigned char> checksumBuf(checksumSize);
2730 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2731 stream->readback(checksumBufPtr, checksumSize);
2732 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2733 ALOGE("glIsFramebuffer: GL communication error, please report this issue to b.android.com.\n");
2734 abort();
2735 }
2736 }
2737 return retval;
2738 }
2739
glIsProgram_enc(void * self,GLuint program)2740 GLboolean glIsProgram_enc(void *self , GLuint program)
2741 {
2742
2743 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2744 IOStream *stream = ctx->m_stream;
2745 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2746 bool useChecksum = checksumCalculator->getVersion() > 0;
2747
2748 unsigned char *ptr;
2749 unsigned char *buf;
2750 const size_t sizeWithoutChecksum = 8 + 4;
2751 const size_t checksumSize = checksumCalculator->checksumByteSize();
2752 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2753 buf = stream->alloc(totalSize);
2754 ptr = buf;
2755 int tmp = OP_glIsProgram;memcpy(ptr, &tmp, 4); ptr += 4;
2756 memcpy(ptr, &totalSize, 4); ptr += 4;
2757
2758 memcpy(ptr, &program, 4); ptr += 4;
2759
2760 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2761 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2762
2763
2764 GLboolean retval;
2765 stream->readback(&retval, 1);
2766 if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2767 if (useChecksum) {
2768 unsigned char *checksumBufPtr = NULL;
2769 std::vector<unsigned char> checksumBuf(checksumSize);
2770 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2771 stream->readback(checksumBufPtr, checksumSize);
2772 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2773 ALOGE("glIsProgram: GL communication error, please report this issue to b.android.com.\n");
2774 abort();
2775 }
2776 }
2777 return retval;
2778 }
2779
glIsRenderbuffer_enc(void * self,GLuint renderbuffer)2780 GLboolean glIsRenderbuffer_enc(void *self , GLuint renderbuffer)
2781 {
2782
2783 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2784 IOStream *stream = ctx->m_stream;
2785 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2786 bool useChecksum = checksumCalculator->getVersion() > 0;
2787
2788 unsigned char *ptr;
2789 unsigned char *buf;
2790 const size_t sizeWithoutChecksum = 8 + 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_glIsRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4;
2796 memcpy(ptr, &totalSize, 4); ptr += 4;
2797
2798 memcpy(ptr, &renderbuffer, 4); ptr += 4;
2799
2800 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2801 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2802
2803
2804 GLboolean retval;
2805 stream->readback(&retval, 1);
2806 if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2807 if (useChecksum) {
2808 unsigned char *checksumBufPtr = NULL;
2809 std::vector<unsigned char> checksumBuf(checksumSize);
2810 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2811 stream->readback(checksumBufPtr, checksumSize);
2812 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2813 ALOGE("glIsRenderbuffer: GL communication error, please report this issue to b.android.com.\n");
2814 abort();
2815 }
2816 }
2817 return retval;
2818 }
2819
glIsShader_enc(void * self,GLuint shader)2820 GLboolean glIsShader_enc(void *self , GLuint shader)
2821 {
2822
2823 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2824 IOStream *stream = ctx->m_stream;
2825 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2826 bool useChecksum = checksumCalculator->getVersion() > 0;
2827
2828 unsigned char *ptr;
2829 unsigned char *buf;
2830 const size_t sizeWithoutChecksum = 8 + 4;
2831 const size_t checksumSize = checksumCalculator->checksumByteSize();
2832 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2833 buf = stream->alloc(totalSize);
2834 ptr = buf;
2835 int tmp = OP_glIsShader;memcpy(ptr, &tmp, 4); ptr += 4;
2836 memcpy(ptr, &totalSize, 4); ptr += 4;
2837
2838 memcpy(ptr, &shader, 4); ptr += 4;
2839
2840 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2841 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2842
2843
2844 GLboolean retval;
2845 stream->readback(&retval, 1);
2846 if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2847 if (useChecksum) {
2848 unsigned char *checksumBufPtr = NULL;
2849 std::vector<unsigned char> checksumBuf(checksumSize);
2850 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2851 stream->readback(checksumBufPtr, checksumSize);
2852 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2853 ALOGE("glIsShader: GL communication error, please report this issue to b.android.com.\n");
2854 abort();
2855 }
2856 }
2857 return retval;
2858 }
2859
glIsTexture_enc(void * self,GLuint texture)2860 GLboolean glIsTexture_enc(void *self , GLuint texture)
2861 {
2862
2863 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2864 IOStream *stream = ctx->m_stream;
2865 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2866 bool useChecksum = checksumCalculator->getVersion() > 0;
2867
2868 unsigned char *ptr;
2869 unsigned char *buf;
2870 const size_t sizeWithoutChecksum = 8 + 4;
2871 const size_t checksumSize = checksumCalculator->checksumByteSize();
2872 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2873 buf = stream->alloc(totalSize);
2874 ptr = buf;
2875 int tmp = OP_glIsTexture;memcpy(ptr, &tmp, 4); ptr += 4;
2876 memcpy(ptr, &totalSize, 4); ptr += 4;
2877
2878 memcpy(ptr, &texture, 4); ptr += 4;
2879
2880 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2881 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2882
2883
2884 GLboolean retval;
2885 stream->readback(&retval, 1);
2886 if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2887 if (useChecksum) {
2888 unsigned char *checksumBufPtr = NULL;
2889 std::vector<unsigned char> checksumBuf(checksumSize);
2890 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2891 stream->readback(checksumBufPtr, checksumSize);
2892 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2893 ALOGE("glIsTexture: GL communication error, please report this issue to b.android.com.\n");
2894 abort();
2895 }
2896 }
2897 return retval;
2898 }
2899
glLineWidth_enc(void * self,GLfloat width)2900 void glLineWidth_enc(void *self , GLfloat width)
2901 {
2902
2903 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2904 IOStream *stream = ctx->m_stream;
2905 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2906 bool useChecksum = checksumCalculator->getVersion() > 0;
2907
2908 unsigned char *ptr;
2909 unsigned char *buf;
2910 const size_t sizeWithoutChecksum = 8 + 4;
2911 const size_t checksumSize = checksumCalculator->checksumByteSize();
2912 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2913 buf = stream->alloc(totalSize);
2914 ptr = buf;
2915 int tmp = OP_glLineWidth;memcpy(ptr, &tmp, 4); ptr += 4;
2916 memcpy(ptr, &totalSize, 4); ptr += 4;
2917
2918 memcpy(ptr, &width, 4); ptr += 4;
2919
2920 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2921 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2922
2923 }
2924
glLinkProgram_enc(void * self,GLuint program)2925 void glLinkProgram_enc(void *self , GLuint program)
2926 {
2927
2928 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2929 IOStream *stream = ctx->m_stream;
2930 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2931 bool useChecksum = checksumCalculator->getVersion() > 0;
2932
2933 unsigned char *ptr;
2934 unsigned char *buf;
2935 const size_t sizeWithoutChecksum = 8 + 4;
2936 const size_t checksumSize = checksumCalculator->checksumByteSize();
2937 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2938 buf = stream->alloc(totalSize);
2939 ptr = buf;
2940 int tmp = OP_glLinkProgram;memcpy(ptr, &tmp, 4); ptr += 4;
2941 memcpy(ptr, &totalSize, 4); ptr += 4;
2942
2943 memcpy(ptr, &program, 4); ptr += 4;
2944
2945 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2946 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2947
2948 }
2949
glPixelStorei_enc(void * self,GLenum pname,GLint param)2950 void glPixelStorei_enc(void *self , GLenum pname, GLint param)
2951 {
2952
2953 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2954 IOStream *stream = ctx->m_stream;
2955 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2956 bool useChecksum = checksumCalculator->getVersion() > 0;
2957
2958 unsigned char *ptr;
2959 unsigned char *buf;
2960 const size_t sizeWithoutChecksum = 8 + 4 + 4;
2961 const size_t checksumSize = checksumCalculator->checksumByteSize();
2962 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2963 buf = stream->alloc(totalSize);
2964 ptr = buf;
2965 int tmp = OP_glPixelStorei;memcpy(ptr, &tmp, 4); ptr += 4;
2966 memcpy(ptr, &totalSize, 4); ptr += 4;
2967
2968 memcpy(ptr, &pname, 4); ptr += 4;
2969 memcpy(ptr, ¶m, 4); ptr += 4;
2970
2971 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2972 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2973
2974 }
2975
glPolygonOffset_enc(void * self,GLfloat factor,GLfloat units)2976 void glPolygonOffset_enc(void *self , GLfloat factor, GLfloat units)
2977 {
2978
2979 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
2980 IOStream *stream = ctx->m_stream;
2981 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2982 bool useChecksum = checksumCalculator->getVersion() > 0;
2983
2984 unsigned char *ptr;
2985 unsigned char *buf;
2986 const size_t sizeWithoutChecksum = 8 + 4 + 4;
2987 const size_t checksumSize = checksumCalculator->checksumByteSize();
2988 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2989 buf = stream->alloc(totalSize);
2990 ptr = buf;
2991 int tmp = OP_glPolygonOffset;memcpy(ptr, &tmp, 4); ptr += 4;
2992 memcpy(ptr, &totalSize, 4); ptr += 4;
2993
2994 memcpy(ptr, &factor, 4); ptr += 4;
2995 memcpy(ptr, &units, 4); ptr += 4;
2996
2997 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2998 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2999
3000 }
3001
glReadPixels_enc(void * self,GLint x,GLint y,GLsizei width,GLsizei height,GLenum format,GLenum type,GLvoid * pixels)3002 void glReadPixels_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
3003 {
3004
3005 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3006 IOStream *stream = ctx->m_stream;
3007 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3008 bool useChecksum = checksumCalculator->getVersion() > 0;
3009
3010 const unsigned int __size_pixels = glesv2_enc::pixelDataSize(self, width, height, format, type, 1);
3011 unsigned char *ptr;
3012 unsigned char *buf;
3013 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
3014 const size_t checksumSize = checksumCalculator->checksumByteSize();
3015 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3016 buf = stream->alloc(totalSize);
3017 ptr = buf;
3018 int tmp = OP_glReadPixels;memcpy(ptr, &tmp, 4); ptr += 4;
3019 memcpy(ptr, &totalSize, 4); ptr += 4;
3020
3021 memcpy(ptr, &x, 4); ptr += 4;
3022 memcpy(ptr, &y, 4); ptr += 4;
3023 memcpy(ptr, &width, 4); ptr += 4;
3024 memcpy(ptr, &height, 4); ptr += 4;
3025 memcpy(ptr, &format, 4); ptr += 4;
3026 memcpy(ptr, &type, 4); ptr += 4;
3027 *(unsigned int *)(ptr) = __size_pixels; ptr += 4;
3028
3029 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3030 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3031
3032 stream->readback(pixels, __size_pixels);
3033 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
3034 if (useChecksum) {
3035 unsigned char *checksumBufPtr = NULL;
3036 std::vector<unsigned char> checksumBuf(checksumSize);
3037 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
3038 stream->readback(checksumBufPtr, checksumSize);
3039 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
3040 ALOGE("glReadPixels: GL communication error, please report this issue to b.android.com.\n");
3041 abort();
3042 }
3043 }
3044 }
3045
glReleaseShaderCompiler_enc(void * self)3046 void glReleaseShaderCompiler_enc(void *self )
3047 {
3048
3049 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3050 IOStream *stream = ctx->m_stream;
3051 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3052 bool useChecksum = checksumCalculator->getVersion() > 0;
3053
3054 unsigned char *ptr;
3055 unsigned char *buf;
3056 const size_t sizeWithoutChecksum = 8;
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_glReleaseShaderCompiler;memcpy(ptr, &tmp, 4); ptr += 4;
3062 memcpy(ptr, &totalSize, 4); ptr += 4;
3063
3064
3065 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3066 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3067
3068 }
3069
glRenderbufferStorage_enc(void * self,GLenum target,GLenum internalformat,GLsizei width,GLsizei height)3070 void glRenderbufferStorage_enc(void *self , GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
3071 {
3072
3073 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3074 IOStream *stream = ctx->m_stream;
3075 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3076 bool useChecksum = checksumCalculator->getVersion() > 0;
3077
3078 unsigned char *ptr;
3079 unsigned char *buf;
3080 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3081 const size_t checksumSize = checksumCalculator->checksumByteSize();
3082 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3083 buf = stream->alloc(totalSize);
3084 ptr = buf;
3085 int tmp = OP_glRenderbufferStorage;memcpy(ptr, &tmp, 4); ptr += 4;
3086 memcpy(ptr, &totalSize, 4); ptr += 4;
3087
3088 memcpy(ptr, &target, 4); ptr += 4;
3089 memcpy(ptr, &internalformat, 4); ptr += 4;
3090 memcpy(ptr, &width, 4); ptr += 4;
3091 memcpy(ptr, &height, 4); ptr += 4;
3092
3093 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3094 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3095
3096 }
3097
glSampleCoverage_enc(void * self,GLclampf value,GLboolean invert)3098 void glSampleCoverage_enc(void *self , GLclampf value, GLboolean invert)
3099 {
3100
3101 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3102 IOStream *stream = ctx->m_stream;
3103 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3104 bool useChecksum = checksumCalculator->getVersion() > 0;
3105
3106 unsigned char *ptr;
3107 unsigned char *buf;
3108 const size_t sizeWithoutChecksum = 8 + 4 + 1;
3109 const size_t checksumSize = checksumCalculator->checksumByteSize();
3110 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3111 buf = stream->alloc(totalSize);
3112 ptr = buf;
3113 int tmp = OP_glSampleCoverage;memcpy(ptr, &tmp, 4); ptr += 4;
3114 memcpy(ptr, &totalSize, 4); ptr += 4;
3115
3116 memcpy(ptr, &value, 4); ptr += 4;
3117 memcpy(ptr, &invert, 1); ptr += 1;
3118
3119 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3120 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3121
3122 }
3123
glScissor_enc(void * self,GLint x,GLint y,GLsizei width,GLsizei height)3124 void glScissor_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height)
3125 {
3126
3127 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3128 IOStream *stream = ctx->m_stream;
3129 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3130 bool useChecksum = checksumCalculator->getVersion() > 0;
3131
3132 unsigned char *ptr;
3133 unsigned char *buf;
3134 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3135 const size_t checksumSize = checksumCalculator->checksumByteSize();
3136 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3137 buf = stream->alloc(totalSize);
3138 ptr = buf;
3139 int tmp = OP_glScissor;memcpy(ptr, &tmp, 4); ptr += 4;
3140 memcpy(ptr, &totalSize, 4); ptr += 4;
3141
3142 memcpy(ptr, &x, 4); ptr += 4;
3143 memcpy(ptr, &y, 4); ptr += 4;
3144 memcpy(ptr, &width, 4); ptr += 4;
3145 memcpy(ptr, &height, 4); ptr += 4;
3146
3147 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3148 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3149
3150 }
3151
glStencilFunc_enc(void * self,GLenum func,GLint ref,GLuint mask)3152 void glStencilFunc_enc(void *self , GLenum func, GLint ref, GLuint mask)
3153 {
3154
3155 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3156 IOStream *stream = ctx->m_stream;
3157 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3158 bool useChecksum = checksumCalculator->getVersion() > 0;
3159
3160 unsigned char *ptr;
3161 unsigned char *buf;
3162 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3163 const size_t checksumSize = checksumCalculator->checksumByteSize();
3164 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3165 buf = stream->alloc(totalSize);
3166 ptr = buf;
3167 int tmp = OP_glStencilFunc;memcpy(ptr, &tmp, 4); ptr += 4;
3168 memcpy(ptr, &totalSize, 4); ptr += 4;
3169
3170 memcpy(ptr, &func, 4); ptr += 4;
3171 memcpy(ptr, &ref, 4); ptr += 4;
3172 memcpy(ptr, &mask, 4); ptr += 4;
3173
3174 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3175 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3176
3177 }
3178
glStencilFuncSeparate_enc(void * self,GLenum face,GLenum func,GLint ref,GLuint mask)3179 void glStencilFuncSeparate_enc(void *self , GLenum face, GLenum func, GLint ref, GLuint mask)
3180 {
3181
3182 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3183 IOStream *stream = ctx->m_stream;
3184 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3185 bool useChecksum = checksumCalculator->getVersion() > 0;
3186
3187 unsigned char *ptr;
3188 unsigned char *buf;
3189 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3190 const size_t checksumSize = checksumCalculator->checksumByteSize();
3191 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3192 buf = stream->alloc(totalSize);
3193 ptr = buf;
3194 int tmp = OP_glStencilFuncSeparate;memcpy(ptr, &tmp, 4); ptr += 4;
3195 memcpy(ptr, &totalSize, 4); ptr += 4;
3196
3197 memcpy(ptr, &face, 4); ptr += 4;
3198 memcpy(ptr, &func, 4); ptr += 4;
3199 memcpy(ptr, &ref, 4); ptr += 4;
3200 memcpy(ptr, &mask, 4); ptr += 4;
3201
3202 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3203 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3204
3205 }
3206
glStencilMask_enc(void * self,GLuint mask)3207 void glStencilMask_enc(void *self , GLuint mask)
3208 {
3209
3210 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3211 IOStream *stream = ctx->m_stream;
3212 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3213 bool useChecksum = checksumCalculator->getVersion() > 0;
3214
3215 unsigned char *ptr;
3216 unsigned char *buf;
3217 const size_t sizeWithoutChecksum = 8 + 4;
3218 const size_t checksumSize = checksumCalculator->checksumByteSize();
3219 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3220 buf = stream->alloc(totalSize);
3221 ptr = buf;
3222 int tmp = OP_glStencilMask;memcpy(ptr, &tmp, 4); ptr += 4;
3223 memcpy(ptr, &totalSize, 4); ptr += 4;
3224
3225 memcpy(ptr, &mask, 4); ptr += 4;
3226
3227 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3228 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3229
3230 }
3231
glStencilMaskSeparate_enc(void * self,GLenum face,GLuint mask)3232 void glStencilMaskSeparate_enc(void *self , GLenum face, GLuint mask)
3233 {
3234
3235 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3236 IOStream *stream = ctx->m_stream;
3237 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3238 bool useChecksum = checksumCalculator->getVersion() > 0;
3239
3240 unsigned char *ptr;
3241 unsigned char *buf;
3242 const size_t sizeWithoutChecksum = 8 + 4 + 4;
3243 const size_t checksumSize = checksumCalculator->checksumByteSize();
3244 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3245 buf = stream->alloc(totalSize);
3246 ptr = buf;
3247 int tmp = OP_glStencilMaskSeparate;memcpy(ptr, &tmp, 4); ptr += 4;
3248 memcpy(ptr, &totalSize, 4); ptr += 4;
3249
3250 memcpy(ptr, &face, 4); ptr += 4;
3251 memcpy(ptr, &mask, 4); ptr += 4;
3252
3253 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3254 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3255
3256 }
3257
glStencilOp_enc(void * self,GLenum fail,GLenum zfail,GLenum zpass)3258 void glStencilOp_enc(void *self , GLenum fail, GLenum zfail, GLenum zpass)
3259 {
3260
3261 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3262 IOStream *stream = ctx->m_stream;
3263 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3264 bool useChecksum = checksumCalculator->getVersion() > 0;
3265
3266 unsigned char *ptr;
3267 unsigned char *buf;
3268 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3269 const size_t checksumSize = checksumCalculator->checksumByteSize();
3270 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3271 buf = stream->alloc(totalSize);
3272 ptr = buf;
3273 int tmp = OP_glStencilOp;memcpy(ptr, &tmp, 4); ptr += 4;
3274 memcpy(ptr, &totalSize, 4); ptr += 4;
3275
3276 memcpy(ptr, &fail, 4); ptr += 4;
3277 memcpy(ptr, &zfail, 4); ptr += 4;
3278 memcpy(ptr, &zpass, 4); ptr += 4;
3279
3280 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3281 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3282
3283 }
3284
glStencilOpSeparate_enc(void * self,GLenum face,GLenum fail,GLenum zfail,GLenum zpass)3285 void glStencilOpSeparate_enc(void *self , GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
3286 {
3287
3288 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3289 IOStream *stream = ctx->m_stream;
3290 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3291 bool useChecksum = checksumCalculator->getVersion() > 0;
3292
3293 unsigned char *ptr;
3294 unsigned char *buf;
3295 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3296 const size_t checksumSize = checksumCalculator->checksumByteSize();
3297 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3298 buf = stream->alloc(totalSize);
3299 ptr = buf;
3300 int tmp = OP_glStencilOpSeparate;memcpy(ptr, &tmp, 4); ptr += 4;
3301 memcpy(ptr, &totalSize, 4); ptr += 4;
3302
3303 memcpy(ptr, &face, 4); ptr += 4;
3304 memcpy(ptr, &fail, 4); ptr += 4;
3305 memcpy(ptr, &zfail, 4); ptr += 4;
3306 memcpy(ptr, &zpass, 4); ptr += 4;
3307
3308 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3309 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3310
3311 }
3312
glTexImage2D_enc(void * self,GLenum target,GLint level,GLint internalformat,GLsizei width,GLsizei height,GLint border,GLenum format,GLenum type,const GLvoid * pixels)3313 void glTexImage2D_enc(void *self , GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
3314 {
3315
3316 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3317 IOStream *stream = ctx->m_stream;
3318 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3319 bool useChecksum = checksumCalculator->getVersion() > 0;
3320
3321 const unsigned int __size_pixels = ((pixels != NULL) ? glesv2_enc::pixelDataSize(self, width, height, format, type, 0) : 0);
3322 unsigned char *ptr;
3323 unsigned char *buf;
3324 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
3325 const size_t checksumSize = checksumCalculator->checksumByteSize();
3326 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3327 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
3328 ptr = buf;
3329 int tmp = OP_glTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
3330 memcpy(ptr, &totalSize, 4); ptr += 4;
3331
3332 memcpy(ptr, &target, 4); ptr += 4;
3333 memcpy(ptr, &level, 4); ptr += 4;
3334 memcpy(ptr, &internalformat, 4); ptr += 4;
3335 memcpy(ptr, &width, 4); ptr += 4;
3336 memcpy(ptr, &height, 4); ptr += 4;
3337 memcpy(ptr, &border, 4); ptr += 4;
3338 memcpy(ptr, &format, 4); ptr += 4;
3339 memcpy(ptr, &type, 4); ptr += 4;
3340
3341 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3342 stream->flush();
3343 stream->writeFully(&__size_pixels,4);
3344 if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4);
3345 if (pixels != NULL) {
3346 stream->writeFully(pixels, __size_pixels);
3347 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
3348 }
3349 buf = stream->alloc(checksumSize);
3350 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
3351
3352 }
3353
glTexParameterf_enc(void * self,GLenum target,GLenum pname,GLfloat param)3354 void glTexParameterf_enc(void *self , GLenum target, GLenum pname, GLfloat param)
3355 {
3356
3357 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3358 IOStream *stream = ctx->m_stream;
3359 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3360 bool useChecksum = checksumCalculator->getVersion() > 0;
3361
3362 unsigned char *ptr;
3363 unsigned char *buf;
3364 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3365 const size_t checksumSize = checksumCalculator->checksumByteSize();
3366 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3367 buf = stream->alloc(totalSize);
3368 ptr = buf;
3369 int tmp = OP_glTexParameterf;memcpy(ptr, &tmp, 4); ptr += 4;
3370 memcpy(ptr, &totalSize, 4); ptr += 4;
3371
3372 memcpy(ptr, &target, 4); ptr += 4;
3373 memcpy(ptr, &pname, 4); ptr += 4;
3374 memcpy(ptr, ¶m, 4); ptr += 4;
3375
3376 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3377 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3378
3379 }
3380
glTexParameterfv_enc(void * self,GLenum target,GLenum pname,const GLfloat * params)3381 void glTexParameterfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params)
3382 {
3383
3384 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3385 IOStream *stream = ctx->m_stream;
3386 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3387 bool useChecksum = checksumCalculator->getVersion() > 0;
3388
3389 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLfloat));
3390 unsigned char *ptr;
3391 unsigned char *buf;
3392 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
3393 const size_t checksumSize = checksumCalculator->checksumByteSize();
3394 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3395 buf = stream->alloc(totalSize);
3396 ptr = buf;
3397 int tmp = OP_glTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
3398 memcpy(ptr, &totalSize, 4); ptr += 4;
3399
3400 memcpy(ptr, &target, 4); ptr += 4;
3401 memcpy(ptr, &pname, 4); ptr += 4;
3402 *(unsigned int *)(ptr) = __size_params; ptr += 4;
3403 memcpy(ptr, params, __size_params);ptr += __size_params;
3404
3405 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3406 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3407
3408 }
3409
glTexParameteri_enc(void * self,GLenum target,GLenum pname,GLint param)3410 void glTexParameteri_enc(void *self , GLenum target, GLenum pname, GLint param)
3411 {
3412
3413 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3414 IOStream *stream = ctx->m_stream;
3415 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3416 bool useChecksum = checksumCalculator->getVersion() > 0;
3417
3418 unsigned char *ptr;
3419 unsigned char *buf;
3420 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3421 const size_t checksumSize = checksumCalculator->checksumByteSize();
3422 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3423 buf = stream->alloc(totalSize);
3424 ptr = buf;
3425 int tmp = OP_glTexParameteri;memcpy(ptr, &tmp, 4); ptr += 4;
3426 memcpy(ptr, &totalSize, 4); ptr += 4;
3427
3428 memcpy(ptr, &target, 4); ptr += 4;
3429 memcpy(ptr, &pname, 4); ptr += 4;
3430 memcpy(ptr, ¶m, 4); ptr += 4;
3431
3432 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3433 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3434
3435 }
3436
glTexParameteriv_enc(void * self,GLenum target,GLenum pname,const GLint * params)3437 void glTexParameteriv_enc(void *self , GLenum target, GLenum pname, const GLint* params)
3438 {
3439
3440 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3441 IOStream *stream = ctx->m_stream;
3442 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3443 bool useChecksum = checksumCalculator->getVersion() > 0;
3444
3445 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint));
3446 unsigned char *ptr;
3447 unsigned char *buf;
3448 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
3449 const size_t checksumSize = checksumCalculator->checksumByteSize();
3450 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3451 buf = stream->alloc(totalSize);
3452 ptr = buf;
3453 int tmp = OP_glTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
3454 memcpy(ptr, &totalSize, 4); ptr += 4;
3455
3456 memcpy(ptr, &target, 4); ptr += 4;
3457 memcpy(ptr, &pname, 4); ptr += 4;
3458 *(unsigned int *)(ptr) = __size_params; ptr += 4;
3459 memcpy(ptr, params, __size_params);ptr += __size_params;
3460
3461 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3462 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3463
3464 }
3465
glTexSubImage2D_enc(void * self,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLsizei width,GLsizei height,GLenum format,GLenum type,const GLvoid * pixels)3466 void glTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
3467 {
3468
3469 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3470 IOStream *stream = ctx->m_stream;
3471 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3472 bool useChecksum = checksumCalculator->getVersion() > 0;
3473
3474 const unsigned int __size_pixels = ((pixels != NULL) ? glesv2_enc::pixelDataSize(self, width, height, format, type, 0) : 0);
3475 unsigned char *ptr;
3476 unsigned char *buf;
3477 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
3478 const size_t checksumSize = checksumCalculator->checksumByteSize();
3479 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3480 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
3481 ptr = buf;
3482 int tmp = OP_glTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
3483 memcpy(ptr, &totalSize, 4); ptr += 4;
3484
3485 memcpy(ptr, &target, 4); ptr += 4;
3486 memcpy(ptr, &level, 4); ptr += 4;
3487 memcpy(ptr, &xoffset, 4); ptr += 4;
3488 memcpy(ptr, &yoffset, 4); ptr += 4;
3489 memcpy(ptr, &width, 4); ptr += 4;
3490 memcpy(ptr, &height, 4); ptr += 4;
3491 memcpy(ptr, &format, 4); ptr += 4;
3492 memcpy(ptr, &type, 4); ptr += 4;
3493
3494 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3495 stream->flush();
3496 stream->writeFully(&__size_pixels,4);
3497 if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4);
3498 if (pixels != NULL) {
3499 stream->writeFully(pixels, __size_pixels);
3500 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
3501 }
3502 buf = stream->alloc(checksumSize);
3503 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
3504
3505 }
3506
glUniform1f_enc(void * self,GLint location,GLfloat x)3507 void glUniform1f_enc(void *self , GLint location, GLfloat x)
3508 {
3509
3510 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3511 IOStream *stream = ctx->m_stream;
3512 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3513 bool useChecksum = checksumCalculator->getVersion() > 0;
3514
3515 unsigned char *ptr;
3516 unsigned char *buf;
3517 const size_t sizeWithoutChecksum = 8 + 4 + 4;
3518 const size_t checksumSize = checksumCalculator->checksumByteSize();
3519 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3520 buf = stream->alloc(totalSize);
3521 ptr = buf;
3522 int tmp = OP_glUniform1f;memcpy(ptr, &tmp, 4); ptr += 4;
3523 memcpy(ptr, &totalSize, 4); ptr += 4;
3524
3525 memcpy(ptr, &location, 4); ptr += 4;
3526 memcpy(ptr, &x, 4); ptr += 4;
3527
3528 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3529 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3530
3531 }
3532
glUniform1fv_enc(void * self,GLint location,GLsizei count,const GLfloat * v)3533 void glUniform1fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v)
3534 {
3535
3536 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3537 IOStream *stream = ctx->m_stream;
3538 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3539 bool useChecksum = checksumCalculator->getVersion() > 0;
3540
3541 const unsigned int __size_v = (count * sizeof(GLfloat));
3542 unsigned char *ptr;
3543 unsigned char *buf;
3544 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4;
3545 const size_t checksumSize = checksumCalculator->checksumByteSize();
3546 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3547 buf = stream->alloc(totalSize);
3548 ptr = buf;
3549 int tmp = OP_glUniform1fv;memcpy(ptr, &tmp, 4); ptr += 4;
3550 memcpy(ptr, &totalSize, 4); ptr += 4;
3551
3552 memcpy(ptr, &location, 4); ptr += 4;
3553 memcpy(ptr, &count, 4); ptr += 4;
3554 *(unsigned int *)(ptr) = __size_v; ptr += 4;
3555 memcpy(ptr, v, __size_v);ptr += __size_v;
3556
3557 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3558 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3559
3560 }
3561
glUniform1i_enc(void * self,GLint location,GLint x)3562 void glUniform1i_enc(void *self , GLint location, GLint x)
3563 {
3564
3565 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3566 IOStream *stream = ctx->m_stream;
3567 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3568 bool useChecksum = checksumCalculator->getVersion() > 0;
3569
3570 unsigned char *ptr;
3571 unsigned char *buf;
3572 const size_t sizeWithoutChecksum = 8 + 4 + 4;
3573 const size_t checksumSize = checksumCalculator->checksumByteSize();
3574 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3575 buf = stream->alloc(totalSize);
3576 ptr = buf;
3577 int tmp = OP_glUniform1i;memcpy(ptr, &tmp, 4); ptr += 4;
3578 memcpy(ptr, &totalSize, 4); ptr += 4;
3579
3580 memcpy(ptr, &location, 4); ptr += 4;
3581 memcpy(ptr, &x, 4); ptr += 4;
3582
3583 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3584 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3585
3586 }
3587
glUniform1iv_enc(void * self,GLint location,GLsizei count,const GLint * v)3588 void glUniform1iv_enc(void *self , GLint location, GLsizei count, const GLint* v)
3589 {
3590
3591 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3592 IOStream *stream = ctx->m_stream;
3593 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3594 bool useChecksum = checksumCalculator->getVersion() > 0;
3595
3596 const unsigned int __size_v = (count * sizeof(GLint));
3597 unsigned char *ptr;
3598 unsigned char *buf;
3599 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4;
3600 const size_t checksumSize = checksumCalculator->checksumByteSize();
3601 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3602 buf = stream->alloc(totalSize);
3603 ptr = buf;
3604 int tmp = OP_glUniform1iv;memcpy(ptr, &tmp, 4); ptr += 4;
3605 memcpy(ptr, &totalSize, 4); ptr += 4;
3606
3607 memcpy(ptr, &location, 4); ptr += 4;
3608 memcpy(ptr, &count, 4); ptr += 4;
3609 *(unsigned int *)(ptr) = __size_v; ptr += 4;
3610 memcpy(ptr, v, __size_v);ptr += __size_v;
3611
3612 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3613 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3614
3615 }
3616
glUniform2f_enc(void * self,GLint location,GLfloat x,GLfloat y)3617 void glUniform2f_enc(void *self , GLint location, GLfloat x, GLfloat y)
3618 {
3619
3620 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3621 IOStream *stream = ctx->m_stream;
3622 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3623 bool useChecksum = checksumCalculator->getVersion() > 0;
3624
3625 unsigned char *ptr;
3626 unsigned char *buf;
3627 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3628 const size_t checksumSize = checksumCalculator->checksumByteSize();
3629 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3630 buf = stream->alloc(totalSize);
3631 ptr = buf;
3632 int tmp = OP_glUniform2f;memcpy(ptr, &tmp, 4); ptr += 4;
3633 memcpy(ptr, &totalSize, 4); ptr += 4;
3634
3635 memcpy(ptr, &location, 4); ptr += 4;
3636 memcpy(ptr, &x, 4); ptr += 4;
3637 memcpy(ptr, &y, 4); ptr += 4;
3638
3639 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3640 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3641
3642 }
3643
glUniform2fv_enc(void * self,GLint location,GLsizei count,const GLfloat * v)3644 void glUniform2fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v)
3645 {
3646
3647 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3648 IOStream *stream = ctx->m_stream;
3649 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3650 bool useChecksum = checksumCalculator->getVersion() > 0;
3651
3652 const unsigned int __size_v = (count * 2 * sizeof(GLfloat));
3653 unsigned char *ptr;
3654 unsigned char *buf;
3655 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*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_glUniform2fv;memcpy(ptr, &tmp, 4); ptr += 4;
3661 memcpy(ptr, &totalSize, 4); ptr += 4;
3662
3663 memcpy(ptr, &location, 4); ptr += 4;
3664 memcpy(ptr, &count, 4); ptr += 4;
3665 *(unsigned int *)(ptr) = __size_v; ptr += 4;
3666 memcpy(ptr, v, __size_v);ptr += __size_v;
3667
3668 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3669 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3670
3671 }
3672
glUniform2i_enc(void * self,GLint location,GLint x,GLint y)3673 void glUniform2i_enc(void *self , GLint location, GLint x, GLint y)
3674 {
3675
3676 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3677 IOStream *stream = ctx->m_stream;
3678 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3679 bool useChecksum = checksumCalculator->getVersion() > 0;
3680
3681 unsigned char *ptr;
3682 unsigned char *buf;
3683 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 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_glUniform2i;memcpy(ptr, &tmp, 4); ptr += 4;
3689 memcpy(ptr, &totalSize, 4); ptr += 4;
3690
3691 memcpy(ptr, &location, 4); ptr += 4;
3692 memcpy(ptr, &x, 4); ptr += 4;
3693 memcpy(ptr, &y, 4); ptr += 4;
3694
3695 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3696 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3697
3698 }
3699
glUniform2iv_enc(void * self,GLint location,GLsizei count,const GLint * v)3700 void glUniform2iv_enc(void *self , GLint location, GLsizei count, const GLint* v)
3701 {
3702
3703 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3704 IOStream *stream = ctx->m_stream;
3705 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3706 bool useChecksum = checksumCalculator->getVersion() > 0;
3707
3708 const unsigned int __size_v = (count * 2 * sizeof(GLint));
3709 unsigned char *ptr;
3710 unsigned char *buf;
3711 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4;
3712 const size_t checksumSize = checksumCalculator->checksumByteSize();
3713 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3714 buf = stream->alloc(totalSize);
3715 ptr = buf;
3716 int tmp = OP_glUniform2iv;memcpy(ptr, &tmp, 4); ptr += 4;
3717 memcpy(ptr, &totalSize, 4); ptr += 4;
3718
3719 memcpy(ptr, &location, 4); ptr += 4;
3720 memcpy(ptr, &count, 4); ptr += 4;
3721 *(unsigned int *)(ptr) = __size_v; ptr += 4;
3722 memcpy(ptr, v, __size_v);ptr += __size_v;
3723
3724 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3725 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3726
3727 }
3728
glUniform3f_enc(void * self,GLint location,GLfloat x,GLfloat y,GLfloat z)3729 void glUniform3f_enc(void *self , GLint location, GLfloat x, GLfloat y, GLfloat z)
3730 {
3731
3732 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3733 IOStream *stream = ctx->m_stream;
3734 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3735 bool useChecksum = checksumCalculator->getVersion() > 0;
3736
3737 unsigned char *ptr;
3738 unsigned char *buf;
3739 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3740 const size_t checksumSize = checksumCalculator->checksumByteSize();
3741 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3742 buf = stream->alloc(totalSize);
3743 ptr = buf;
3744 int tmp = OP_glUniform3f;memcpy(ptr, &tmp, 4); ptr += 4;
3745 memcpy(ptr, &totalSize, 4); ptr += 4;
3746
3747 memcpy(ptr, &location, 4); ptr += 4;
3748 memcpy(ptr, &x, 4); ptr += 4;
3749 memcpy(ptr, &y, 4); ptr += 4;
3750 memcpy(ptr, &z, 4); ptr += 4;
3751
3752 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3753 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3754
3755 }
3756
glUniform3fv_enc(void * self,GLint location,GLsizei count,const GLfloat * v)3757 void glUniform3fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v)
3758 {
3759
3760 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3761 IOStream *stream = ctx->m_stream;
3762 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3763 bool useChecksum = checksumCalculator->getVersion() > 0;
3764
3765 const unsigned int __size_v = (count * 3 * sizeof(GLfloat));
3766 unsigned char *ptr;
3767 unsigned char *buf;
3768 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4;
3769 const size_t checksumSize = checksumCalculator->checksumByteSize();
3770 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3771 buf = stream->alloc(totalSize);
3772 ptr = buf;
3773 int tmp = OP_glUniform3fv;memcpy(ptr, &tmp, 4); ptr += 4;
3774 memcpy(ptr, &totalSize, 4); ptr += 4;
3775
3776 memcpy(ptr, &location, 4); ptr += 4;
3777 memcpy(ptr, &count, 4); ptr += 4;
3778 *(unsigned int *)(ptr) = __size_v; ptr += 4;
3779 memcpy(ptr, v, __size_v);ptr += __size_v;
3780
3781 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3782 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3783
3784 }
3785
glUniform3i_enc(void * self,GLint location,GLint x,GLint y,GLint z)3786 void glUniform3i_enc(void *self , GLint location, GLint x, GLint y, GLint z)
3787 {
3788
3789 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3790 IOStream *stream = ctx->m_stream;
3791 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3792 bool useChecksum = checksumCalculator->getVersion() > 0;
3793
3794 unsigned char *ptr;
3795 unsigned char *buf;
3796 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3797 const size_t checksumSize = checksumCalculator->checksumByteSize();
3798 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3799 buf = stream->alloc(totalSize);
3800 ptr = buf;
3801 int tmp = OP_glUniform3i;memcpy(ptr, &tmp, 4); ptr += 4;
3802 memcpy(ptr, &totalSize, 4); ptr += 4;
3803
3804 memcpy(ptr, &location, 4); ptr += 4;
3805 memcpy(ptr, &x, 4); ptr += 4;
3806 memcpy(ptr, &y, 4); ptr += 4;
3807 memcpy(ptr, &z, 4); ptr += 4;
3808
3809 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3810 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3811
3812 }
3813
glUniform3iv_enc(void * self,GLint location,GLsizei count,const GLint * v)3814 void glUniform3iv_enc(void *self , GLint location, GLsizei count, const GLint* v)
3815 {
3816
3817 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3818 IOStream *stream = ctx->m_stream;
3819 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3820 bool useChecksum = checksumCalculator->getVersion() > 0;
3821
3822 const unsigned int __size_v = (3 * count * sizeof(GLint));
3823 unsigned char *ptr;
3824 unsigned char *buf;
3825 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4;
3826 const size_t checksumSize = checksumCalculator->checksumByteSize();
3827 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3828 buf = stream->alloc(totalSize);
3829 ptr = buf;
3830 int tmp = OP_glUniform3iv;memcpy(ptr, &tmp, 4); ptr += 4;
3831 memcpy(ptr, &totalSize, 4); ptr += 4;
3832
3833 memcpy(ptr, &location, 4); ptr += 4;
3834 memcpy(ptr, &count, 4); ptr += 4;
3835 *(unsigned int *)(ptr) = __size_v; ptr += 4;
3836 memcpy(ptr, v, __size_v);ptr += __size_v;
3837
3838 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3839 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3840
3841 }
3842
glUniform4f_enc(void * self,GLint location,GLfloat x,GLfloat y,GLfloat z,GLfloat w)3843 void glUniform4f_enc(void *self , GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
3844 {
3845
3846 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3847 IOStream *stream = ctx->m_stream;
3848 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3849 bool useChecksum = checksumCalculator->getVersion() > 0;
3850
3851 unsigned char *ptr;
3852 unsigned char *buf;
3853 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
3854 const size_t checksumSize = checksumCalculator->checksumByteSize();
3855 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3856 buf = stream->alloc(totalSize);
3857 ptr = buf;
3858 int tmp = OP_glUniform4f;memcpy(ptr, &tmp, 4); ptr += 4;
3859 memcpy(ptr, &totalSize, 4); ptr += 4;
3860
3861 memcpy(ptr, &location, 4); ptr += 4;
3862 memcpy(ptr, &x, 4); ptr += 4;
3863 memcpy(ptr, &y, 4); ptr += 4;
3864 memcpy(ptr, &z, 4); ptr += 4;
3865 memcpy(ptr, &w, 4); ptr += 4;
3866
3867 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3868 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3869
3870 }
3871
glUniform4fv_enc(void * self,GLint location,GLsizei count,const GLfloat * v)3872 void glUniform4fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v)
3873 {
3874
3875 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3876 IOStream *stream = ctx->m_stream;
3877 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3878 bool useChecksum = checksumCalculator->getVersion() > 0;
3879
3880 const unsigned int __size_v = (4 * count * sizeof(GLfloat));
3881 unsigned char *ptr;
3882 unsigned char *buf;
3883 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4;
3884 const size_t checksumSize = checksumCalculator->checksumByteSize();
3885 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3886 buf = stream->alloc(totalSize);
3887 ptr = buf;
3888 int tmp = OP_glUniform4fv;memcpy(ptr, &tmp, 4); ptr += 4;
3889 memcpy(ptr, &totalSize, 4); ptr += 4;
3890
3891 memcpy(ptr, &location, 4); ptr += 4;
3892 memcpy(ptr, &count, 4); ptr += 4;
3893 *(unsigned int *)(ptr) = __size_v; ptr += 4;
3894 memcpy(ptr, v, __size_v);ptr += __size_v;
3895
3896 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3897 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3898
3899 }
3900
glUniform4i_enc(void * self,GLint location,GLint x,GLint y,GLint z,GLint w)3901 void glUniform4i_enc(void *self , GLint location, GLint x, GLint y, GLint z, GLint w)
3902 {
3903
3904 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3905 IOStream *stream = ctx->m_stream;
3906 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3907 bool useChecksum = checksumCalculator->getVersion() > 0;
3908
3909 unsigned char *ptr;
3910 unsigned char *buf;
3911 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
3912 const size_t checksumSize = checksumCalculator->checksumByteSize();
3913 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3914 buf = stream->alloc(totalSize);
3915 ptr = buf;
3916 int tmp = OP_glUniform4i;memcpy(ptr, &tmp, 4); ptr += 4;
3917 memcpy(ptr, &totalSize, 4); ptr += 4;
3918
3919 memcpy(ptr, &location, 4); ptr += 4;
3920 memcpy(ptr, &x, 4); ptr += 4;
3921 memcpy(ptr, &y, 4); ptr += 4;
3922 memcpy(ptr, &z, 4); ptr += 4;
3923 memcpy(ptr, &w, 4); ptr += 4;
3924
3925 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3926 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3927
3928 }
3929
glUniform4iv_enc(void * self,GLint location,GLsizei count,const GLint * v)3930 void glUniform4iv_enc(void *self , GLint location, GLsizei count, const GLint* v)
3931 {
3932
3933 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3934 IOStream *stream = ctx->m_stream;
3935 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3936 bool useChecksum = checksumCalculator->getVersion() > 0;
3937
3938 const unsigned int __size_v = (4 * count * sizeof(GLint));
3939 unsigned char *ptr;
3940 unsigned char *buf;
3941 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4;
3942 const size_t checksumSize = checksumCalculator->checksumByteSize();
3943 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3944 buf = stream->alloc(totalSize);
3945 ptr = buf;
3946 int tmp = OP_glUniform4iv;memcpy(ptr, &tmp, 4); ptr += 4;
3947 memcpy(ptr, &totalSize, 4); ptr += 4;
3948
3949 memcpy(ptr, &location, 4); ptr += 4;
3950 memcpy(ptr, &count, 4); ptr += 4;
3951 *(unsigned int *)(ptr) = __size_v; ptr += 4;
3952 memcpy(ptr, v, __size_v);ptr += __size_v;
3953
3954 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3955 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3956
3957 }
3958
glUniformMatrix2fv_enc(void * self,GLint location,GLsizei count,GLboolean transpose,const GLfloat * value)3959 void glUniformMatrix2fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
3960 {
3961
3962 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3963 IOStream *stream = ctx->m_stream;
3964 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3965 bool useChecksum = checksumCalculator->getVersion() > 0;
3966
3967 const unsigned int __size_value = (count * 4 * sizeof(GLfloat));
3968 unsigned char *ptr;
3969 unsigned char *buf;
3970 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4;
3971 const size_t checksumSize = checksumCalculator->checksumByteSize();
3972 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3973 buf = stream->alloc(totalSize);
3974 ptr = buf;
3975 int tmp = OP_glUniformMatrix2fv;memcpy(ptr, &tmp, 4); ptr += 4;
3976 memcpy(ptr, &totalSize, 4); ptr += 4;
3977
3978 memcpy(ptr, &location, 4); ptr += 4;
3979 memcpy(ptr, &count, 4); ptr += 4;
3980 memcpy(ptr, &transpose, 1); ptr += 1;
3981 *(unsigned int *)(ptr) = __size_value; ptr += 4;
3982 memcpy(ptr, value, __size_value);ptr += __size_value;
3983
3984 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3985 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3986
3987 }
3988
glUniformMatrix3fv_enc(void * self,GLint location,GLsizei count,GLboolean transpose,const GLfloat * value)3989 void glUniformMatrix3fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
3990 {
3991
3992 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
3993 IOStream *stream = ctx->m_stream;
3994 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3995 bool useChecksum = checksumCalculator->getVersion() > 0;
3996
3997 const unsigned int __size_value = (count * 9 * sizeof(GLfloat));
3998 unsigned char *ptr;
3999 unsigned char *buf;
4000 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4;
4001 const size_t checksumSize = checksumCalculator->checksumByteSize();
4002 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4003 buf = stream->alloc(totalSize);
4004 ptr = buf;
4005 int tmp = OP_glUniformMatrix3fv;memcpy(ptr, &tmp, 4); ptr += 4;
4006 memcpy(ptr, &totalSize, 4); ptr += 4;
4007
4008 memcpy(ptr, &location, 4); ptr += 4;
4009 memcpy(ptr, &count, 4); ptr += 4;
4010 memcpy(ptr, &transpose, 1); ptr += 1;
4011 *(unsigned int *)(ptr) = __size_value; ptr += 4;
4012 memcpy(ptr, value, __size_value);ptr += __size_value;
4013
4014 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4015 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4016
4017 }
4018
glUniformMatrix4fv_enc(void * self,GLint location,GLsizei count,GLboolean transpose,const GLfloat * value)4019 void glUniformMatrix4fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
4020 {
4021
4022 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4023 IOStream *stream = ctx->m_stream;
4024 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4025 bool useChecksum = checksumCalculator->getVersion() > 0;
4026
4027 const unsigned int __size_value = (count * 16 * sizeof(GLfloat));
4028 unsigned char *ptr;
4029 unsigned char *buf;
4030 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4;
4031 const size_t checksumSize = checksumCalculator->checksumByteSize();
4032 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4033 buf = stream->alloc(totalSize);
4034 ptr = buf;
4035 int tmp = OP_glUniformMatrix4fv;memcpy(ptr, &tmp, 4); ptr += 4;
4036 memcpy(ptr, &totalSize, 4); ptr += 4;
4037
4038 memcpy(ptr, &location, 4); ptr += 4;
4039 memcpy(ptr, &count, 4); ptr += 4;
4040 memcpy(ptr, &transpose, 1); ptr += 1;
4041 *(unsigned int *)(ptr) = __size_value; ptr += 4;
4042 memcpy(ptr, value, __size_value);ptr += __size_value;
4043
4044 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4045 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4046
4047 }
4048
glUseProgram_enc(void * self,GLuint program)4049 void glUseProgram_enc(void *self , GLuint program)
4050 {
4051
4052 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4053 IOStream *stream = ctx->m_stream;
4054 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4055 bool useChecksum = checksumCalculator->getVersion() > 0;
4056
4057 unsigned char *ptr;
4058 unsigned char *buf;
4059 const size_t sizeWithoutChecksum = 8 + 4;
4060 const size_t checksumSize = checksumCalculator->checksumByteSize();
4061 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4062 buf = stream->alloc(totalSize);
4063 ptr = buf;
4064 int tmp = OP_glUseProgram;memcpy(ptr, &tmp, 4); ptr += 4;
4065 memcpy(ptr, &totalSize, 4); ptr += 4;
4066
4067 memcpy(ptr, &program, 4); ptr += 4;
4068
4069 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4070 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4071
4072 }
4073
glValidateProgram_enc(void * self,GLuint program)4074 void glValidateProgram_enc(void *self , GLuint program)
4075 {
4076
4077 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4078 IOStream *stream = ctx->m_stream;
4079 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4080 bool useChecksum = checksumCalculator->getVersion() > 0;
4081
4082 unsigned char *ptr;
4083 unsigned char *buf;
4084 const size_t sizeWithoutChecksum = 8 + 4;
4085 const size_t checksumSize = checksumCalculator->checksumByteSize();
4086 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4087 buf = stream->alloc(totalSize);
4088 ptr = buf;
4089 int tmp = OP_glValidateProgram;memcpy(ptr, &tmp, 4); ptr += 4;
4090 memcpy(ptr, &totalSize, 4); ptr += 4;
4091
4092 memcpy(ptr, &program, 4); ptr += 4;
4093
4094 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4095 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4096
4097 }
4098
glVertexAttrib1f_enc(void * self,GLuint indx,GLfloat x)4099 void glVertexAttrib1f_enc(void *self , GLuint indx, GLfloat x)
4100 {
4101
4102 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4103 IOStream *stream = ctx->m_stream;
4104 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4105 bool useChecksum = checksumCalculator->getVersion() > 0;
4106
4107 unsigned char *ptr;
4108 unsigned char *buf;
4109 const size_t sizeWithoutChecksum = 8 + 4 + 4;
4110 const size_t checksumSize = checksumCalculator->checksumByteSize();
4111 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4112 buf = stream->alloc(totalSize);
4113 ptr = buf;
4114 int tmp = OP_glVertexAttrib1f;memcpy(ptr, &tmp, 4); ptr += 4;
4115 memcpy(ptr, &totalSize, 4); ptr += 4;
4116
4117 memcpy(ptr, &indx, 4); ptr += 4;
4118 memcpy(ptr, &x, 4); ptr += 4;
4119
4120 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4121 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4122
4123 }
4124
glVertexAttrib1fv_enc(void * self,GLuint indx,const GLfloat * values)4125 void glVertexAttrib1fv_enc(void *self , GLuint indx, const GLfloat* values)
4126 {
4127
4128 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4129 IOStream *stream = ctx->m_stream;
4130 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4131 bool useChecksum = checksumCalculator->getVersion() > 0;
4132
4133 const unsigned int __size_values = (sizeof(GLfloat));
4134 unsigned char *ptr;
4135 unsigned char *buf;
4136 const size_t sizeWithoutChecksum = 8 + 4 + __size_values + 1*4;
4137 const size_t checksumSize = checksumCalculator->checksumByteSize();
4138 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4139 buf = stream->alloc(totalSize);
4140 ptr = buf;
4141 int tmp = OP_glVertexAttrib1fv;memcpy(ptr, &tmp, 4); ptr += 4;
4142 memcpy(ptr, &totalSize, 4); ptr += 4;
4143
4144 memcpy(ptr, &indx, 4); ptr += 4;
4145 *(unsigned int *)(ptr) = __size_values; ptr += 4;
4146 memcpy(ptr, values, __size_values);ptr += __size_values;
4147
4148 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4149 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4150
4151 }
4152
glVertexAttrib2f_enc(void * self,GLuint indx,GLfloat x,GLfloat y)4153 void glVertexAttrib2f_enc(void *self , GLuint indx, GLfloat x, GLfloat y)
4154 {
4155
4156 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4157 IOStream *stream = ctx->m_stream;
4158 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4159 bool useChecksum = checksumCalculator->getVersion() > 0;
4160
4161 unsigned char *ptr;
4162 unsigned char *buf;
4163 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
4164 const size_t checksumSize = checksumCalculator->checksumByteSize();
4165 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4166 buf = stream->alloc(totalSize);
4167 ptr = buf;
4168 int tmp = OP_glVertexAttrib2f;memcpy(ptr, &tmp, 4); ptr += 4;
4169 memcpy(ptr, &totalSize, 4); ptr += 4;
4170
4171 memcpy(ptr, &indx, 4); ptr += 4;
4172 memcpy(ptr, &x, 4); ptr += 4;
4173 memcpy(ptr, &y, 4); ptr += 4;
4174
4175 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4176 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4177
4178 }
4179
glVertexAttrib2fv_enc(void * self,GLuint indx,const GLfloat * values)4180 void glVertexAttrib2fv_enc(void *self , GLuint indx, const GLfloat* values)
4181 {
4182
4183 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4184 IOStream *stream = ctx->m_stream;
4185 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4186 bool useChecksum = checksumCalculator->getVersion() > 0;
4187
4188 const unsigned int __size_values = (2 * sizeof(GLfloat));
4189 unsigned char *ptr;
4190 unsigned char *buf;
4191 const size_t sizeWithoutChecksum = 8 + 4 + __size_values + 1*4;
4192 const size_t checksumSize = checksumCalculator->checksumByteSize();
4193 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4194 buf = stream->alloc(totalSize);
4195 ptr = buf;
4196 int tmp = OP_glVertexAttrib2fv;memcpy(ptr, &tmp, 4); ptr += 4;
4197 memcpy(ptr, &totalSize, 4); ptr += 4;
4198
4199 memcpy(ptr, &indx, 4); ptr += 4;
4200 *(unsigned int *)(ptr) = __size_values; ptr += 4;
4201 memcpy(ptr, values, __size_values);ptr += __size_values;
4202
4203 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4204 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4205
4206 }
4207
glVertexAttrib3f_enc(void * self,GLuint indx,GLfloat x,GLfloat y,GLfloat z)4208 void glVertexAttrib3f_enc(void *self , GLuint indx, GLfloat x, GLfloat y, GLfloat z)
4209 {
4210
4211 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4212 IOStream *stream = ctx->m_stream;
4213 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4214 bool useChecksum = checksumCalculator->getVersion() > 0;
4215
4216 unsigned char *ptr;
4217 unsigned char *buf;
4218 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4219 const size_t checksumSize = checksumCalculator->checksumByteSize();
4220 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4221 buf = stream->alloc(totalSize);
4222 ptr = buf;
4223 int tmp = OP_glVertexAttrib3f;memcpy(ptr, &tmp, 4); ptr += 4;
4224 memcpy(ptr, &totalSize, 4); ptr += 4;
4225
4226 memcpy(ptr, &indx, 4); ptr += 4;
4227 memcpy(ptr, &x, 4); ptr += 4;
4228 memcpy(ptr, &y, 4); ptr += 4;
4229 memcpy(ptr, &z, 4); ptr += 4;
4230
4231 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4232 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4233
4234 }
4235
glVertexAttrib3fv_enc(void * self,GLuint indx,const GLfloat * values)4236 void glVertexAttrib3fv_enc(void *self , GLuint indx, const GLfloat* values)
4237 {
4238
4239 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4240 IOStream *stream = ctx->m_stream;
4241 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4242 bool useChecksum = checksumCalculator->getVersion() > 0;
4243
4244 const unsigned int __size_values = (3 * sizeof(GLfloat));
4245 unsigned char *ptr;
4246 unsigned char *buf;
4247 const size_t sizeWithoutChecksum = 8 + 4 + __size_values + 1*4;
4248 const size_t checksumSize = checksumCalculator->checksumByteSize();
4249 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4250 buf = stream->alloc(totalSize);
4251 ptr = buf;
4252 int tmp = OP_glVertexAttrib3fv;memcpy(ptr, &tmp, 4); ptr += 4;
4253 memcpy(ptr, &totalSize, 4); ptr += 4;
4254
4255 memcpy(ptr, &indx, 4); ptr += 4;
4256 *(unsigned int *)(ptr) = __size_values; ptr += 4;
4257 memcpy(ptr, values, __size_values);ptr += __size_values;
4258
4259 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4260 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4261
4262 }
4263
glVertexAttrib4f_enc(void * self,GLuint indx,GLfloat x,GLfloat y,GLfloat z,GLfloat w)4264 void glVertexAttrib4f_enc(void *self , GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
4265 {
4266
4267 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4268 IOStream *stream = ctx->m_stream;
4269 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4270 bool useChecksum = checksumCalculator->getVersion() > 0;
4271
4272 unsigned char *ptr;
4273 unsigned char *buf;
4274 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
4275 const size_t checksumSize = checksumCalculator->checksumByteSize();
4276 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4277 buf = stream->alloc(totalSize);
4278 ptr = buf;
4279 int tmp = OP_glVertexAttrib4f;memcpy(ptr, &tmp, 4); ptr += 4;
4280 memcpy(ptr, &totalSize, 4); ptr += 4;
4281
4282 memcpy(ptr, &indx, 4); ptr += 4;
4283 memcpy(ptr, &x, 4); ptr += 4;
4284 memcpy(ptr, &y, 4); ptr += 4;
4285 memcpy(ptr, &z, 4); ptr += 4;
4286 memcpy(ptr, &w, 4); ptr += 4;
4287
4288 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4289 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4290
4291 }
4292
glVertexAttrib4fv_enc(void * self,GLuint indx,const GLfloat * values)4293 void glVertexAttrib4fv_enc(void *self , GLuint indx, const GLfloat* values)
4294 {
4295
4296 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4297 IOStream *stream = ctx->m_stream;
4298 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4299 bool useChecksum = checksumCalculator->getVersion() > 0;
4300
4301 const unsigned int __size_values = (4 * sizeof(GLfloat));
4302 unsigned char *ptr;
4303 unsigned char *buf;
4304 const size_t sizeWithoutChecksum = 8 + 4 + __size_values + 1*4;
4305 const size_t checksumSize = checksumCalculator->checksumByteSize();
4306 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4307 buf = stream->alloc(totalSize);
4308 ptr = buf;
4309 int tmp = OP_glVertexAttrib4fv;memcpy(ptr, &tmp, 4); ptr += 4;
4310 memcpy(ptr, &totalSize, 4); ptr += 4;
4311
4312 memcpy(ptr, &indx, 4); ptr += 4;
4313 *(unsigned int *)(ptr) = __size_values; ptr += 4;
4314 memcpy(ptr, values, __size_values);ptr += __size_values;
4315
4316 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4317 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4318
4319 }
4320
glViewport_enc(void * self,GLint x,GLint y,GLsizei width,GLsizei height)4321 void glViewport_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height)
4322 {
4323
4324 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4325 IOStream *stream = ctx->m_stream;
4326 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4327 bool useChecksum = checksumCalculator->getVersion() > 0;
4328
4329 unsigned char *ptr;
4330 unsigned char *buf;
4331 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4332 const size_t checksumSize = checksumCalculator->checksumByteSize();
4333 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4334 buf = stream->alloc(totalSize);
4335 ptr = buf;
4336 int tmp = OP_glViewport;memcpy(ptr, &tmp, 4); ptr += 4;
4337 memcpy(ptr, &totalSize, 4); ptr += 4;
4338
4339 memcpy(ptr, &x, 4); ptr += 4;
4340 memcpy(ptr, &y, 4); ptr += 4;
4341 memcpy(ptr, &width, 4); ptr += 4;
4342 memcpy(ptr, &height, 4); ptr += 4;
4343
4344 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4345 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4346
4347 }
4348
glEGLImageTargetTexture2DOES_enc(void * self,GLenum target,GLeglImageOES image)4349 void glEGLImageTargetTexture2DOES_enc(void *self , GLenum target, GLeglImageOES image)
4350 {
4351
4352 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4353 IOStream *stream = ctx->m_stream;
4354 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4355 bool useChecksum = checksumCalculator->getVersion() > 0;
4356
4357 unsigned char *ptr;
4358 unsigned char *buf;
4359 const size_t sizeWithoutChecksum = 8 + 4 + 4;
4360 const size_t checksumSize = checksumCalculator->checksumByteSize();
4361 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4362 buf = stream->alloc(totalSize);
4363 ptr = buf;
4364 int tmp = OP_glEGLImageTargetTexture2DOES;memcpy(ptr, &tmp, 4); ptr += 4;
4365 memcpy(ptr, &totalSize, 4); ptr += 4;
4366
4367 memcpy(ptr, &target, 4); ptr += 4;
4368 memcpy(ptr, &image, 4); ptr += 4;
4369
4370 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4371 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4372
4373 }
4374
glEGLImageTargetRenderbufferStorageOES_enc(void * self,GLenum target,GLeglImageOES image)4375 void glEGLImageTargetRenderbufferStorageOES_enc(void *self , GLenum target, GLeglImageOES image)
4376 {
4377
4378 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4379 IOStream *stream = ctx->m_stream;
4380 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4381 bool useChecksum = checksumCalculator->getVersion() > 0;
4382
4383 unsigned char *ptr;
4384 unsigned char *buf;
4385 const size_t sizeWithoutChecksum = 8 + 4 + 4;
4386 const size_t checksumSize = checksumCalculator->checksumByteSize();
4387 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4388 buf = stream->alloc(totalSize);
4389 ptr = buf;
4390 int tmp = OP_glEGLImageTargetRenderbufferStorageOES;memcpy(ptr, &tmp, 4); ptr += 4;
4391 memcpy(ptr, &totalSize, 4); ptr += 4;
4392
4393 memcpy(ptr, &target, 4); ptr += 4;
4394 memcpy(ptr, &image, 4); ptr += 4;
4395
4396 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4397 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4398
4399 }
4400
glUnmapBufferOES_enc(void * self,GLenum target)4401 GLboolean glUnmapBufferOES_enc(void *self , GLenum target)
4402 {
4403
4404 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4405 IOStream *stream = ctx->m_stream;
4406 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4407 bool useChecksum = checksumCalculator->getVersion() > 0;
4408
4409 unsigned char *ptr;
4410 unsigned char *buf;
4411 const size_t sizeWithoutChecksum = 8 + 4;
4412 const size_t checksumSize = checksumCalculator->checksumByteSize();
4413 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4414 buf = stream->alloc(totalSize);
4415 ptr = buf;
4416 int tmp = OP_glUnmapBufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
4417 memcpy(ptr, &totalSize, 4); ptr += 4;
4418
4419 memcpy(ptr, &target, 4); ptr += 4;
4420
4421 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4422 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4423
4424
4425 GLboolean retval;
4426 stream->readback(&retval, 1);
4427 if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
4428 if (useChecksum) {
4429 unsigned char *checksumBufPtr = NULL;
4430 std::vector<unsigned char> checksumBuf(checksumSize);
4431 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
4432 stream->readback(checksumBufPtr, checksumSize);
4433 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
4434 ALOGE("glUnmapBufferOES: GL communication error, please report this issue to b.android.com.\n");
4435 abort();
4436 }
4437 }
4438 return retval;
4439 }
4440
glTexImage3DOES_enc(void * self,GLenum target,GLint level,GLenum internalformat,GLsizei width,GLsizei height,GLsizei depth,GLint border,GLenum format,GLenum type,const GLvoid * pixels)4441 void glTexImage3DOES_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
4442 {
4443
4444 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4445 IOStream *stream = ctx->m_stream;
4446 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4447 bool useChecksum = checksumCalculator->getVersion() > 0;
4448
4449 const unsigned int __size_pixels = ((pixels != NULL) ? glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0) : 0);
4450 unsigned char *ptr;
4451 unsigned char *buf;
4452 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
4453 const size_t checksumSize = checksumCalculator->checksumByteSize();
4454 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4455 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
4456 ptr = buf;
4457 int tmp = OP_glTexImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
4458 memcpy(ptr, &totalSize, 4); ptr += 4;
4459
4460 memcpy(ptr, &target, 4); ptr += 4;
4461 memcpy(ptr, &level, 4); ptr += 4;
4462 memcpy(ptr, &internalformat, 4); ptr += 4;
4463 memcpy(ptr, &width, 4); ptr += 4;
4464 memcpy(ptr, &height, 4); ptr += 4;
4465 memcpy(ptr, &depth, 4); ptr += 4;
4466 memcpy(ptr, &border, 4); ptr += 4;
4467 memcpy(ptr, &format, 4); ptr += 4;
4468 memcpy(ptr, &type, 4); ptr += 4;
4469
4470 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4471 stream->flush();
4472 stream->writeFully(&__size_pixels,4);
4473 if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4);
4474 if (pixels != NULL) {
4475 stream->writeFully(pixels, __size_pixels);
4476 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
4477 }
4478 buf = stream->alloc(checksumSize);
4479 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
4480
4481 }
4482
glTexSubImage3DOES_enc(void * self,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLint zoffset,GLsizei width,GLsizei height,GLsizei depth,GLenum format,GLenum type,const GLvoid * pixels)4483 void glTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels)
4484 {
4485
4486 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4487 IOStream *stream = ctx->m_stream;
4488 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4489 bool useChecksum = checksumCalculator->getVersion() > 0;
4490
4491 const unsigned int __size_pixels = ((pixels != NULL) ? glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0) : 0);
4492 unsigned char *ptr;
4493 unsigned char *buf;
4494 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
4495 const size_t checksumSize = checksumCalculator->checksumByteSize();
4496 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4497 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
4498 ptr = buf;
4499 int tmp = OP_glTexSubImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
4500 memcpy(ptr, &totalSize, 4); ptr += 4;
4501
4502 memcpy(ptr, &target, 4); ptr += 4;
4503 memcpy(ptr, &level, 4); ptr += 4;
4504 memcpy(ptr, &xoffset, 4); ptr += 4;
4505 memcpy(ptr, &yoffset, 4); ptr += 4;
4506 memcpy(ptr, &zoffset, 4); ptr += 4;
4507 memcpy(ptr, &width, 4); ptr += 4;
4508 memcpy(ptr, &height, 4); ptr += 4;
4509 memcpy(ptr, &depth, 4); ptr += 4;
4510 memcpy(ptr, &format, 4); ptr += 4;
4511 memcpy(ptr, &type, 4); ptr += 4;
4512
4513 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4514 stream->flush();
4515 stream->writeFully(&__size_pixels,4);
4516 if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4);
4517 if (pixels != NULL) {
4518 stream->writeFully(pixels, __size_pixels);
4519 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
4520 }
4521 buf = stream->alloc(checksumSize);
4522 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
4523
4524 }
4525
glCopyTexSubImage3DOES_enc(void * self,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLint zoffset,GLint x,GLint y,GLsizei width,GLsizei height)4526 void glCopyTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
4527 {
4528
4529 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4530 IOStream *stream = ctx->m_stream;
4531 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4532 bool useChecksum = checksumCalculator->getVersion() > 0;
4533
4534 unsigned char *ptr;
4535 unsigned char *buf;
4536 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
4537 const size_t checksumSize = checksumCalculator->checksumByteSize();
4538 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4539 buf = stream->alloc(totalSize);
4540 ptr = buf;
4541 int tmp = OP_glCopyTexSubImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
4542 memcpy(ptr, &totalSize, 4); ptr += 4;
4543
4544 memcpy(ptr, &target, 4); ptr += 4;
4545 memcpy(ptr, &level, 4); ptr += 4;
4546 memcpy(ptr, &xoffset, 4); ptr += 4;
4547 memcpy(ptr, &yoffset, 4); ptr += 4;
4548 memcpy(ptr, &zoffset, 4); ptr += 4;
4549 memcpy(ptr, &x, 4); ptr += 4;
4550 memcpy(ptr, &y, 4); ptr += 4;
4551 memcpy(ptr, &width, 4); ptr += 4;
4552 memcpy(ptr, &height, 4); ptr += 4;
4553
4554 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4555 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4556
4557 }
4558
glCompressedTexImage3DOES_enc(void * self,GLenum target,GLint level,GLenum internalformat,GLsizei width,GLsizei height,GLsizei depth,GLint border,GLsizei imageSize,const GLvoid * data)4559 void glCompressedTexImage3DOES_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
4560 {
4561
4562 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4563 IOStream *stream = ctx->m_stream;
4564 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4565 bool useChecksum = checksumCalculator->getVersion() > 0;
4566
4567 const unsigned int __size_data = ((data != NULL) ? imageSize : 0);
4568 unsigned char *ptr;
4569 unsigned char *buf;
4570 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
4571 const size_t checksumSize = checksumCalculator->checksumByteSize();
4572 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4573 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
4574 ptr = buf;
4575 int tmp = OP_glCompressedTexImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
4576 memcpy(ptr, &totalSize, 4); ptr += 4;
4577
4578 memcpy(ptr, &target, 4); ptr += 4;
4579 memcpy(ptr, &level, 4); ptr += 4;
4580 memcpy(ptr, &internalformat, 4); ptr += 4;
4581 memcpy(ptr, &width, 4); ptr += 4;
4582 memcpy(ptr, &height, 4); ptr += 4;
4583 memcpy(ptr, &depth, 4); ptr += 4;
4584 memcpy(ptr, &border, 4); ptr += 4;
4585 memcpy(ptr, &imageSize, 4); ptr += 4;
4586
4587 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4588 stream->flush();
4589 stream->writeFully(&__size_data,4);
4590 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4);
4591 if (data != NULL) {
4592 stream->writeFully(data, __size_data);
4593 if (useChecksum) checksumCalculator->addBuffer(data, __size_data);
4594 }
4595 buf = stream->alloc(checksumSize);
4596 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
4597
4598 }
4599
glCompressedTexSubImage3DOES_enc(void * self,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLint zoffset,GLsizei width,GLsizei height,GLsizei depth,GLenum format,GLsizei imageSize,const GLvoid * data)4600 void glCompressedTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data)
4601 {
4602
4603 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4604 IOStream *stream = ctx->m_stream;
4605 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4606 bool useChecksum = checksumCalculator->getVersion() > 0;
4607
4608 const unsigned int __size_data = ((data != NULL) ? imageSize : 0);
4609 unsigned char *ptr;
4610 unsigned char *buf;
4611 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
4612 const size_t checksumSize = checksumCalculator->checksumByteSize();
4613 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4614 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
4615 ptr = buf;
4616 int tmp = OP_glCompressedTexSubImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
4617 memcpy(ptr, &totalSize, 4); ptr += 4;
4618
4619 memcpy(ptr, &target, 4); ptr += 4;
4620 memcpy(ptr, &level, 4); ptr += 4;
4621 memcpy(ptr, &xoffset, 4); ptr += 4;
4622 memcpy(ptr, &yoffset, 4); ptr += 4;
4623 memcpy(ptr, &zoffset, 4); ptr += 4;
4624 memcpy(ptr, &width, 4); ptr += 4;
4625 memcpy(ptr, &height, 4); ptr += 4;
4626 memcpy(ptr, &depth, 4); ptr += 4;
4627 memcpy(ptr, &format, 4); ptr += 4;
4628 memcpy(ptr, &imageSize, 4); ptr += 4;
4629
4630 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4631 stream->flush();
4632 stream->writeFully(&__size_data,4);
4633 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4);
4634 if (data != NULL) {
4635 stream->writeFully(data, __size_data);
4636 if (useChecksum) checksumCalculator->addBuffer(data, __size_data);
4637 }
4638 buf = stream->alloc(checksumSize);
4639 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
4640
4641 }
4642
glFramebufferTexture3DOES_enc(void * self,GLenum target,GLenum attachment,GLenum textarget,GLuint texture,GLint level,GLint zoffset)4643 void glFramebufferTexture3DOES_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
4644 {
4645
4646 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4647 IOStream *stream = ctx->m_stream;
4648 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4649 bool useChecksum = checksumCalculator->getVersion() > 0;
4650
4651 unsigned char *ptr;
4652 unsigned char *buf;
4653 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
4654 const size_t checksumSize = checksumCalculator->checksumByteSize();
4655 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4656 buf = stream->alloc(totalSize);
4657 ptr = buf;
4658 int tmp = OP_glFramebufferTexture3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
4659 memcpy(ptr, &totalSize, 4); ptr += 4;
4660
4661 memcpy(ptr, &target, 4); ptr += 4;
4662 memcpy(ptr, &attachment, 4); ptr += 4;
4663 memcpy(ptr, &textarget, 4); ptr += 4;
4664 memcpy(ptr, &texture, 4); ptr += 4;
4665 memcpy(ptr, &level, 4); ptr += 4;
4666 memcpy(ptr, &zoffset, 4); ptr += 4;
4667
4668 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4669 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4670
4671 }
4672
glBindVertexArrayOES_enc(void * self,GLuint array)4673 void glBindVertexArrayOES_enc(void *self , GLuint array)
4674 {
4675
4676 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4677 IOStream *stream = ctx->m_stream;
4678 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4679 bool useChecksum = checksumCalculator->getVersion() > 0;
4680
4681 unsigned char *ptr;
4682 unsigned char *buf;
4683 const size_t sizeWithoutChecksum = 8 + 4;
4684 const size_t checksumSize = checksumCalculator->checksumByteSize();
4685 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4686 buf = stream->alloc(totalSize);
4687 ptr = buf;
4688 int tmp = OP_glBindVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4;
4689 memcpy(ptr, &totalSize, 4); ptr += 4;
4690
4691 memcpy(ptr, &array, 4); ptr += 4;
4692
4693 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4694 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4695
4696 }
4697
glDeleteVertexArraysOES_enc(void * self,GLsizei n,const GLuint * arrays)4698 void glDeleteVertexArraysOES_enc(void *self , GLsizei n, const GLuint* arrays)
4699 {
4700
4701 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4702 IOStream *stream = ctx->m_stream;
4703 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4704 bool useChecksum = checksumCalculator->getVersion() > 0;
4705
4706 const unsigned int __size_arrays = (n * sizeof(GLuint));
4707 unsigned char *ptr;
4708 unsigned char *buf;
4709 const size_t sizeWithoutChecksum = 8 + 4 + __size_arrays + 1*4;
4710 const size_t checksumSize = checksumCalculator->checksumByteSize();
4711 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4712 buf = stream->alloc(totalSize);
4713 ptr = buf;
4714 int tmp = OP_glDeleteVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4;
4715 memcpy(ptr, &totalSize, 4); ptr += 4;
4716
4717 memcpy(ptr, &n, 4); ptr += 4;
4718 *(unsigned int *)(ptr) = __size_arrays; ptr += 4;
4719 memcpy(ptr, arrays, __size_arrays);ptr += __size_arrays;
4720
4721 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4722 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4723
4724 }
4725
glGenVertexArraysOES_enc(void * self,GLsizei n,GLuint * arrays)4726 void glGenVertexArraysOES_enc(void *self , GLsizei n, GLuint* arrays)
4727 {
4728
4729 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4730 IOStream *stream = ctx->m_stream;
4731 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4732 bool useChecksum = checksumCalculator->getVersion() > 0;
4733
4734 const unsigned int __size_arrays = (n * sizeof(GLuint));
4735 unsigned char *ptr;
4736 unsigned char *buf;
4737 const size_t sizeWithoutChecksum = 8 + 4 + __size_arrays + 1*4;
4738 const size_t checksumSize = checksumCalculator->checksumByteSize();
4739 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4740 buf = stream->alloc(totalSize);
4741 ptr = buf;
4742 int tmp = OP_glGenVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4;
4743 memcpy(ptr, &totalSize, 4); ptr += 4;
4744
4745 memcpy(ptr, &n, 4); ptr += 4;
4746 *(unsigned int *)(ptr) = __size_arrays; ptr += 4;
4747
4748 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4749 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4750
4751 stream->readback(arrays, __size_arrays);
4752 if (useChecksum) checksumCalculator->addBuffer(arrays, __size_arrays);
4753 if (useChecksum) {
4754 unsigned char *checksumBufPtr = NULL;
4755 std::vector<unsigned char> checksumBuf(checksumSize);
4756 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
4757 stream->readback(checksumBufPtr, checksumSize);
4758 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
4759 ALOGE("glGenVertexArraysOES: GL communication error, please report this issue to b.android.com.\n");
4760 abort();
4761 }
4762 }
4763 }
4764
glIsVertexArrayOES_enc(void * self,GLuint array)4765 GLboolean glIsVertexArrayOES_enc(void *self , GLuint array)
4766 {
4767
4768 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4769 IOStream *stream = ctx->m_stream;
4770 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4771 bool useChecksum = checksumCalculator->getVersion() > 0;
4772
4773 unsigned char *ptr;
4774 unsigned char *buf;
4775 const size_t sizeWithoutChecksum = 8 + 4;
4776 const size_t checksumSize = checksumCalculator->checksumByteSize();
4777 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4778 buf = stream->alloc(totalSize);
4779 ptr = buf;
4780 int tmp = OP_glIsVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4;
4781 memcpy(ptr, &totalSize, 4); ptr += 4;
4782
4783 memcpy(ptr, &array, 4); ptr += 4;
4784
4785 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4786 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4787
4788
4789 GLboolean retval;
4790 stream->readback(&retval, 1);
4791 if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
4792 if (useChecksum) {
4793 unsigned char *checksumBufPtr = NULL;
4794 std::vector<unsigned char> checksumBuf(checksumSize);
4795 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
4796 stream->readback(checksumBufPtr, checksumSize);
4797 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
4798 ALOGE("glIsVertexArrayOES: GL communication error, please report this issue to b.android.com.\n");
4799 abort();
4800 }
4801 }
4802 return retval;
4803 }
4804
glDiscardFramebufferEXT_enc(void * self,GLenum target,GLsizei numAttachments,const GLenum * attachments)4805 void glDiscardFramebufferEXT_enc(void *self , GLenum target, GLsizei numAttachments, const GLenum* attachments)
4806 {
4807
4808 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4809 IOStream *stream = ctx->m_stream;
4810 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4811 bool useChecksum = checksumCalculator->getVersion() > 0;
4812
4813 const unsigned int __size_attachments = (numAttachments * sizeof(GLenum));
4814 unsigned char *ptr;
4815 unsigned char *buf;
4816 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_attachments + 1*4;
4817 const size_t checksumSize = checksumCalculator->checksumByteSize();
4818 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4819 buf = stream->alloc(totalSize);
4820 ptr = buf;
4821 int tmp = OP_glDiscardFramebufferEXT;memcpy(ptr, &tmp, 4); ptr += 4;
4822 memcpy(ptr, &totalSize, 4); ptr += 4;
4823
4824 memcpy(ptr, &target, 4); ptr += 4;
4825 memcpy(ptr, &numAttachments, 4); ptr += 4;
4826 *(unsigned int *)(ptr) = __size_attachments; ptr += 4;
4827 memcpy(ptr, attachments, __size_attachments);ptr += __size_attachments;
4828
4829 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4830 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4831
4832 }
4833
glVertexAttribPointerData_enc(void * self,GLuint indx,GLint size,GLenum type,GLboolean normalized,GLsizei stride,void * data,GLuint datalen)4834 void glVertexAttribPointerData_enc(void *self , GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen)
4835 {
4836
4837 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4838 IOStream *stream = ctx->m_stream;
4839 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4840 bool useChecksum = checksumCalculator->getVersion() > 0;
4841
4842 const unsigned int __size_data = datalen;
4843 unsigned char *ptr;
4844 unsigned char *buf;
4845 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + 4 + __size_data + 4 + 1*4;
4846 const size_t checksumSize = checksumCalculator->checksumByteSize();
4847 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4848 buf = stream->alloc(totalSize);
4849 ptr = buf;
4850 int tmp = OP_glVertexAttribPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4851 memcpy(ptr, &totalSize, 4); ptr += 4;
4852
4853 memcpy(ptr, &indx, 4); ptr += 4;
4854 memcpy(ptr, &size, 4); ptr += 4;
4855 memcpy(ptr, &type, 4); ptr += 4;
4856 memcpy(ptr, &normalized, 1); ptr += 1;
4857 memcpy(ptr, &stride, 4); ptr += 4;
4858 *(unsigned int *)(ptr) = __size_data; ptr += 4;
4859 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
4860 memcpy(ptr, &datalen, 4); ptr += 4;
4861
4862 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4863 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4864
4865 }
4866
glVertexAttribPointerOffset_enc(void * self,GLuint indx,GLint size,GLenum type,GLboolean normalized,GLsizei stride,GLuint offset)4867 void glVertexAttribPointerOffset_enc(void *self , GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset)
4868 {
4869
4870 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4871 IOStream *stream = ctx->m_stream;
4872 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4873 bool useChecksum = checksumCalculator->getVersion() > 0;
4874
4875 unsigned char *ptr;
4876 unsigned char *buf;
4877 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + 4 + 4;
4878 const size_t checksumSize = checksumCalculator->checksumByteSize();
4879 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4880 buf = stream->alloc(totalSize);
4881 ptr = buf;
4882 int tmp = OP_glVertexAttribPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4883 memcpy(ptr, &totalSize, 4); ptr += 4;
4884
4885 memcpy(ptr, &indx, 4); ptr += 4;
4886 memcpy(ptr, &size, 4); ptr += 4;
4887 memcpy(ptr, &type, 4); ptr += 4;
4888 memcpy(ptr, &normalized, 1); ptr += 1;
4889 memcpy(ptr, &stride, 4); ptr += 4;
4890 memcpy(ptr, &offset, 4); ptr += 4;
4891
4892 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4893 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4894
4895 }
4896
glDrawElementsOffset_enc(void * self,GLenum mode,GLsizei count,GLenum type,GLuint offset)4897 void glDrawElementsOffset_enc(void *self , GLenum mode, GLsizei count, GLenum type, GLuint offset)
4898 {
4899
4900 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4901 IOStream *stream = ctx->m_stream;
4902 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4903 bool useChecksum = checksumCalculator->getVersion() > 0;
4904
4905 unsigned char *ptr;
4906 unsigned char *buf;
4907 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4908 const size_t checksumSize = checksumCalculator->checksumByteSize();
4909 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4910 buf = stream->alloc(totalSize);
4911 ptr = buf;
4912 int tmp = OP_glDrawElementsOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4913 memcpy(ptr, &totalSize, 4); ptr += 4;
4914
4915 memcpy(ptr, &mode, 4); ptr += 4;
4916 memcpy(ptr, &count, 4); ptr += 4;
4917 memcpy(ptr, &type, 4); ptr += 4;
4918 memcpy(ptr, &offset, 4); ptr += 4;
4919
4920 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4921 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4922
4923 }
4924
glDrawElementsData_enc(void * self,GLenum mode,GLsizei count,GLenum type,void * data,GLuint datalen)4925 void glDrawElementsData_enc(void *self , GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen)
4926 {
4927
4928 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4929 IOStream *stream = ctx->m_stream;
4930 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4931 bool useChecksum = checksumCalculator->getVersion() > 0;
4932
4933 const unsigned int __size_data = datalen;
4934 unsigned char *ptr;
4935 unsigned char *buf;
4936 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4937 const size_t checksumSize = checksumCalculator->checksumByteSize();
4938 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4939 buf = stream->alloc(totalSize);
4940 ptr = buf;
4941 int tmp = OP_glDrawElementsData;memcpy(ptr, &tmp, 4); ptr += 4;
4942 memcpy(ptr, &totalSize, 4); ptr += 4;
4943
4944 memcpy(ptr, &mode, 4); ptr += 4;
4945 memcpy(ptr, &count, 4); ptr += 4;
4946 memcpy(ptr, &type, 4); ptr += 4;
4947 *(unsigned int *)(ptr) = __size_data; ptr += 4;
4948 memcpy(ptr, data, __size_data);ptr += __size_data;
4949 memcpy(ptr, &datalen, 4); ptr += 4;
4950
4951 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4952 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4953
4954 }
4955
glGetCompressedTextureFormats_enc(void * self,int count,GLint * formats)4956 void glGetCompressedTextureFormats_enc(void *self , int count, GLint* formats)
4957 {
4958
4959 gl2_encoder_context_t *ctx = (gl2_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_formats = (count * sizeof(GLint));
4965 unsigned char *ptr;
4966 unsigned char *buf;
4967 const size_t sizeWithoutChecksum = 8 + 4 + __size_formats + 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_glGetCompressedTextureFormats;memcpy(ptr, &tmp, 4); ptr += 4;
4973 memcpy(ptr, &totalSize, 4); ptr += 4;
4974
4975 memcpy(ptr, &count, 4); ptr += 4;
4976 *(unsigned int *)(ptr) = __size_formats; ptr += 4;
4977
4978 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4979 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4980
4981 stream->readback(formats, __size_formats);
4982 if (useChecksum) checksumCalculator->addBuffer(formats, __size_formats);
4983 if (useChecksum) {
4984 unsigned char *checksumBufPtr = NULL;
4985 std::vector<unsigned char> checksumBuf(checksumSize);
4986 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
4987 stream->readback(checksumBufPtr, checksumSize);
4988 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
4989 ALOGE("glGetCompressedTextureFormats: GL communication error, please report this issue to b.android.com.\n");
4990 abort();
4991 }
4992 }
4993 }
4994
glShaderString_enc(void * self,GLuint shader,const GLchar * string,GLsizei len)4995 void glShaderString_enc(void *self , GLuint shader, const GLchar* string, GLsizei len)
4996 {
4997
4998 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
4999 IOStream *stream = ctx->m_stream;
5000 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5001 bool useChecksum = checksumCalculator->getVersion() > 0;
5002
5003 const unsigned int __size_string = len;
5004 unsigned char *ptr;
5005 unsigned char *buf;
5006 const size_t sizeWithoutChecksum = 8 + 4 + __size_string + 4 + 1*4;
5007 const size_t checksumSize = checksumCalculator->checksumByteSize();
5008 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5009 buf = stream->alloc(totalSize);
5010 ptr = buf;
5011 int tmp = OP_glShaderString;memcpy(ptr, &tmp, 4); ptr += 4;
5012 memcpy(ptr, &totalSize, 4); ptr += 4;
5013
5014 memcpy(ptr, &shader, 4); ptr += 4;
5015 *(unsigned int *)(ptr) = __size_string; ptr += 4;
5016 memcpy(ptr, string, __size_string);ptr += __size_string;
5017 memcpy(ptr, &len, 4); ptr += 4;
5018
5019 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5020 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5021
5022 }
5023
glFinishRoundTrip_enc(void * self)5024 int glFinishRoundTrip_enc(void *self )
5025 {
5026
5027 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
5028 IOStream *stream = ctx->m_stream;
5029 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5030 bool useChecksum = checksumCalculator->getVersion() > 0;
5031
5032 unsigned char *ptr;
5033 unsigned char *buf;
5034 const size_t sizeWithoutChecksum = 8;
5035 const size_t checksumSize = checksumCalculator->checksumByteSize();
5036 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5037 buf = stream->alloc(totalSize);
5038 ptr = buf;
5039 int tmp = OP_glFinishRoundTrip;memcpy(ptr, &tmp, 4); ptr += 4;
5040 memcpy(ptr, &totalSize, 4); ptr += 4;
5041
5042
5043 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5044 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5045
5046
5047 int retval;
5048 stream->readback(&retval, 4);
5049 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
5050 if (useChecksum) {
5051 unsigned char *checksumBufPtr = NULL;
5052 std::vector<unsigned char> checksumBuf(checksumSize);
5053 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
5054 stream->readback(checksumBufPtr, checksumSize);
5055 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
5056 ALOGE("glFinishRoundTrip: GL communication error, please report this issue to b.android.com.\n");
5057 abort();
5058 }
5059 }
5060 return retval;
5061 }
5062
5063 } // namespace
5064
gl2_encoder_context_t(IOStream * stream,ChecksumCalculator * checksumCalculator)5065 gl2_encoder_context_t::gl2_encoder_context_t(IOStream *stream, ChecksumCalculator *checksumCalculator)
5066 {
5067 m_stream = stream;
5068 m_checksumCalculator = checksumCalculator;
5069
5070 this->glActiveTexture = &glActiveTexture_enc;
5071 this->glAttachShader = &glAttachShader_enc;
5072 this->glBindAttribLocation = &glBindAttribLocation_enc;
5073 this->glBindBuffer = &glBindBuffer_enc;
5074 this->glBindFramebuffer = &glBindFramebuffer_enc;
5075 this->glBindRenderbuffer = &glBindRenderbuffer_enc;
5076 this->glBindTexture = &glBindTexture_enc;
5077 this->glBlendColor = &glBlendColor_enc;
5078 this->glBlendEquation = &glBlendEquation_enc;
5079 this->glBlendEquationSeparate = &glBlendEquationSeparate_enc;
5080 this->glBlendFunc = &glBlendFunc_enc;
5081 this->glBlendFuncSeparate = &glBlendFuncSeparate_enc;
5082 this->glBufferData = &glBufferData_enc;
5083 this->glBufferSubData = &glBufferSubData_enc;
5084 this->glCheckFramebufferStatus = &glCheckFramebufferStatus_enc;
5085 this->glClear = &glClear_enc;
5086 this->glClearColor = &glClearColor_enc;
5087 this->glClearDepthf = &glClearDepthf_enc;
5088 this->glClearStencil = &glClearStencil_enc;
5089 this->glColorMask = &glColorMask_enc;
5090 this->glCompileShader = &glCompileShader_enc;
5091 this->glCompressedTexImage2D = &glCompressedTexImage2D_enc;
5092 this->glCompressedTexSubImage2D = &glCompressedTexSubImage2D_enc;
5093 this->glCopyTexImage2D = &glCopyTexImage2D_enc;
5094 this->glCopyTexSubImage2D = &glCopyTexSubImage2D_enc;
5095 this->glCreateProgram = &glCreateProgram_enc;
5096 this->glCreateShader = &glCreateShader_enc;
5097 this->glCullFace = &glCullFace_enc;
5098 this->glDeleteBuffers = &glDeleteBuffers_enc;
5099 this->glDeleteFramebuffers = &glDeleteFramebuffers_enc;
5100 this->glDeleteProgram = &glDeleteProgram_enc;
5101 this->glDeleteRenderbuffers = &glDeleteRenderbuffers_enc;
5102 this->glDeleteShader = &glDeleteShader_enc;
5103 this->glDeleteTextures = &glDeleteTextures_enc;
5104 this->glDepthFunc = &glDepthFunc_enc;
5105 this->glDepthMask = &glDepthMask_enc;
5106 this->glDepthRangef = &glDepthRangef_enc;
5107 this->glDetachShader = &glDetachShader_enc;
5108 this->glDisable = &glDisable_enc;
5109 this->glDisableVertexAttribArray = &glDisableVertexAttribArray_enc;
5110 this->glDrawArrays = &glDrawArrays_enc;
5111 this->glDrawElements = (glDrawElements_client_proc_t) &enc_unsupported;
5112 this->glEnable = &glEnable_enc;
5113 this->glEnableVertexAttribArray = &glEnableVertexAttribArray_enc;
5114 this->glFinish = &glFinish_enc;
5115 this->glFlush = &glFlush_enc;
5116 this->glFramebufferRenderbuffer = &glFramebufferRenderbuffer_enc;
5117 this->glFramebufferTexture2D = &glFramebufferTexture2D_enc;
5118 this->glFrontFace = &glFrontFace_enc;
5119 this->glGenBuffers = &glGenBuffers_enc;
5120 this->glGenerateMipmap = &glGenerateMipmap_enc;
5121 this->glGenFramebuffers = &glGenFramebuffers_enc;
5122 this->glGenRenderbuffers = &glGenRenderbuffers_enc;
5123 this->glGenTextures = &glGenTextures_enc;
5124 this->glGetActiveAttrib = &glGetActiveAttrib_enc;
5125 this->glGetActiveUniform = &glGetActiveUniform_enc;
5126 this->glGetAttachedShaders = &glGetAttachedShaders_enc;
5127 this->glGetAttribLocation = &glGetAttribLocation_enc;
5128 this->glGetBooleanv = &glGetBooleanv_enc;
5129 this->glGetBufferParameteriv = &glGetBufferParameteriv_enc;
5130 this->glGetError = &glGetError_enc;
5131 this->glGetFloatv = &glGetFloatv_enc;
5132 this->glGetFramebufferAttachmentParameteriv = &glGetFramebufferAttachmentParameteriv_enc;
5133 this->glGetIntegerv = &glGetIntegerv_enc;
5134 this->glGetProgramiv = &glGetProgramiv_enc;
5135 this->glGetProgramInfoLog = &glGetProgramInfoLog_enc;
5136 this->glGetRenderbufferParameteriv = &glGetRenderbufferParameteriv_enc;
5137 this->glGetShaderiv = &glGetShaderiv_enc;
5138 this->glGetShaderInfoLog = &glGetShaderInfoLog_enc;
5139 this->glGetShaderPrecisionFormat = &glGetShaderPrecisionFormat_enc;
5140 this->glGetShaderSource = &glGetShaderSource_enc;
5141 this->glGetString = (glGetString_client_proc_t) &enc_unsupported;
5142 this->glGetTexParameterfv = &glGetTexParameterfv_enc;
5143 this->glGetTexParameteriv = &glGetTexParameteriv_enc;
5144 this->glGetUniformfv = &glGetUniformfv_enc;
5145 this->glGetUniformiv = &glGetUniformiv_enc;
5146 this->glGetUniformLocation = &glGetUniformLocation_enc;
5147 this->glGetVertexAttribfv = &glGetVertexAttribfv_enc;
5148 this->glGetVertexAttribiv = &glGetVertexAttribiv_enc;
5149 this->glGetVertexAttribPointerv = (glGetVertexAttribPointerv_client_proc_t) &enc_unsupported;
5150 this->glHint = &glHint_enc;
5151 this->glIsBuffer = &glIsBuffer_enc;
5152 this->glIsEnabled = &glIsEnabled_enc;
5153 this->glIsFramebuffer = &glIsFramebuffer_enc;
5154 this->glIsProgram = &glIsProgram_enc;
5155 this->glIsRenderbuffer = &glIsRenderbuffer_enc;
5156 this->glIsShader = &glIsShader_enc;
5157 this->glIsTexture = &glIsTexture_enc;
5158 this->glLineWidth = &glLineWidth_enc;
5159 this->glLinkProgram = &glLinkProgram_enc;
5160 this->glPixelStorei = &glPixelStorei_enc;
5161 this->glPolygonOffset = &glPolygonOffset_enc;
5162 this->glReadPixels = &glReadPixels_enc;
5163 this->glReleaseShaderCompiler = &glReleaseShaderCompiler_enc;
5164 this->glRenderbufferStorage = &glRenderbufferStorage_enc;
5165 this->glSampleCoverage = &glSampleCoverage_enc;
5166 this->glScissor = &glScissor_enc;
5167 this->glShaderBinary = (glShaderBinary_client_proc_t) &enc_unsupported;
5168 this->glShaderSource = (glShaderSource_client_proc_t) &enc_unsupported;
5169 this->glStencilFunc = &glStencilFunc_enc;
5170 this->glStencilFuncSeparate = &glStencilFuncSeparate_enc;
5171 this->glStencilMask = &glStencilMask_enc;
5172 this->glStencilMaskSeparate = &glStencilMaskSeparate_enc;
5173 this->glStencilOp = &glStencilOp_enc;
5174 this->glStencilOpSeparate = &glStencilOpSeparate_enc;
5175 this->glTexImage2D = &glTexImage2D_enc;
5176 this->glTexParameterf = &glTexParameterf_enc;
5177 this->glTexParameterfv = &glTexParameterfv_enc;
5178 this->glTexParameteri = &glTexParameteri_enc;
5179 this->glTexParameteriv = &glTexParameteriv_enc;
5180 this->glTexSubImage2D = &glTexSubImage2D_enc;
5181 this->glUniform1f = &glUniform1f_enc;
5182 this->glUniform1fv = &glUniform1fv_enc;
5183 this->glUniform1i = &glUniform1i_enc;
5184 this->glUniform1iv = &glUniform1iv_enc;
5185 this->glUniform2f = &glUniform2f_enc;
5186 this->glUniform2fv = &glUniform2fv_enc;
5187 this->glUniform2i = &glUniform2i_enc;
5188 this->glUniform2iv = &glUniform2iv_enc;
5189 this->glUniform3f = &glUniform3f_enc;
5190 this->glUniform3fv = &glUniform3fv_enc;
5191 this->glUniform3i = &glUniform3i_enc;
5192 this->glUniform3iv = &glUniform3iv_enc;
5193 this->glUniform4f = &glUniform4f_enc;
5194 this->glUniform4fv = &glUniform4fv_enc;
5195 this->glUniform4i = &glUniform4i_enc;
5196 this->glUniform4iv = &glUniform4iv_enc;
5197 this->glUniformMatrix2fv = &glUniformMatrix2fv_enc;
5198 this->glUniformMatrix3fv = &glUniformMatrix3fv_enc;
5199 this->glUniformMatrix4fv = &glUniformMatrix4fv_enc;
5200 this->glUseProgram = &glUseProgram_enc;
5201 this->glValidateProgram = &glValidateProgram_enc;
5202 this->glVertexAttrib1f = &glVertexAttrib1f_enc;
5203 this->glVertexAttrib1fv = &glVertexAttrib1fv_enc;
5204 this->glVertexAttrib2f = &glVertexAttrib2f_enc;
5205 this->glVertexAttrib2fv = &glVertexAttrib2fv_enc;
5206 this->glVertexAttrib3f = &glVertexAttrib3f_enc;
5207 this->glVertexAttrib3fv = &glVertexAttrib3fv_enc;
5208 this->glVertexAttrib4f = &glVertexAttrib4f_enc;
5209 this->glVertexAttrib4fv = &glVertexAttrib4fv_enc;
5210 this->glVertexAttribPointer = (glVertexAttribPointer_client_proc_t) &enc_unsupported;
5211 this->glViewport = &glViewport_enc;
5212 this->glEGLImageTargetTexture2DOES = &glEGLImageTargetTexture2DOES_enc;
5213 this->glEGLImageTargetRenderbufferStorageOES = &glEGLImageTargetRenderbufferStorageOES_enc;
5214 this->glGetProgramBinaryOES = (glGetProgramBinaryOES_client_proc_t) &enc_unsupported;
5215 this->glProgramBinaryOES = (glProgramBinaryOES_client_proc_t) &enc_unsupported;
5216 this->glMapBufferOES = (glMapBufferOES_client_proc_t) &enc_unsupported;
5217 this->glUnmapBufferOES = &glUnmapBufferOES_enc;
5218 this->glTexImage3DOES = &glTexImage3DOES_enc;
5219 this->glTexSubImage3DOES = &glTexSubImage3DOES_enc;
5220 this->glCopyTexSubImage3DOES = &glCopyTexSubImage3DOES_enc;
5221 this->glCompressedTexImage3DOES = &glCompressedTexImage3DOES_enc;
5222 this->glCompressedTexSubImage3DOES = &glCompressedTexSubImage3DOES_enc;
5223 this->glFramebufferTexture3DOES = &glFramebufferTexture3DOES_enc;
5224 this->glBindVertexArrayOES = &glBindVertexArrayOES_enc;
5225 this->glDeleteVertexArraysOES = &glDeleteVertexArraysOES_enc;
5226 this->glGenVertexArraysOES = &glGenVertexArraysOES_enc;
5227 this->glIsVertexArrayOES = &glIsVertexArrayOES_enc;
5228 this->glDiscardFramebufferEXT = &glDiscardFramebufferEXT_enc;
5229 this->glMultiDrawArraysEXT = (glMultiDrawArraysEXT_client_proc_t) &enc_unsupported;
5230 this->glMultiDrawElementsEXT = (glMultiDrawElementsEXT_client_proc_t) &enc_unsupported;
5231 this->glGetPerfMonitorGroupsAMD = (glGetPerfMonitorGroupsAMD_client_proc_t) &enc_unsupported;
5232 this->glGetPerfMonitorCountersAMD = (glGetPerfMonitorCountersAMD_client_proc_t) &enc_unsupported;
5233 this->glGetPerfMonitorGroupStringAMD = (glGetPerfMonitorGroupStringAMD_client_proc_t) &enc_unsupported;
5234 this->glGetPerfMonitorCounterStringAMD = (glGetPerfMonitorCounterStringAMD_client_proc_t) &enc_unsupported;
5235 this->glGetPerfMonitorCounterInfoAMD = (glGetPerfMonitorCounterInfoAMD_client_proc_t) &enc_unsupported;
5236 this->glGenPerfMonitorsAMD = (glGenPerfMonitorsAMD_client_proc_t) &enc_unsupported;
5237 this->glDeletePerfMonitorsAMD = (glDeletePerfMonitorsAMD_client_proc_t) &enc_unsupported;
5238 this->glSelectPerfMonitorCountersAMD = (glSelectPerfMonitorCountersAMD_client_proc_t) &enc_unsupported;
5239 this->glBeginPerfMonitorAMD = (glBeginPerfMonitorAMD_client_proc_t) &enc_unsupported;
5240 this->glEndPerfMonitorAMD = (glEndPerfMonitorAMD_client_proc_t) &enc_unsupported;
5241 this->glGetPerfMonitorCounterDataAMD = (glGetPerfMonitorCounterDataAMD_client_proc_t) &enc_unsupported;
5242 this->glRenderbufferStorageMultisampleIMG = (glRenderbufferStorageMultisampleIMG_client_proc_t) &enc_unsupported;
5243 this->glFramebufferTexture2DMultisampleIMG = (glFramebufferTexture2DMultisampleIMG_client_proc_t) &enc_unsupported;
5244 this->glDeleteFencesNV = (glDeleteFencesNV_client_proc_t) &enc_unsupported;
5245 this->glGenFencesNV = (glGenFencesNV_client_proc_t) &enc_unsupported;
5246 this->glIsFenceNV = (glIsFenceNV_client_proc_t) &enc_unsupported;
5247 this->glTestFenceNV = (glTestFenceNV_client_proc_t) &enc_unsupported;
5248 this->glGetFenceivNV = (glGetFenceivNV_client_proc_t) &enc_unsupported;
5249 this->glFinishFenceNV = (glFinishFenceNV_client_proc_t) &enc_unsupported;
5250 this->glSetFenceNV = (glSetFenceNV_client_proc_t) &enc_unsupported;
5251 this->glCoverageMaskNV = (glCoverageMaskNV_client_proc_t) &enc_unsupported;
5252 this->glCoverageOperationNV = (glCoverageOperationNV_client_proc_t) &enc_unsupported;
5253 this->glGetDriverControlsQCOM = (glGetDriverControlsQCOM_client_proc_t) &enc_unsupported;
5254 this->glGetDriverControlStringQCOM = (glGetDriverControlStringQCOM_client_proc_t) &enc_unsupported;
5255 this->glEnableDriverControlQCOM = (glEnableDriverControlQCOM_client_proc_t) &enc_unsupported;
5256 this->glDisableDriverControlQCOM = (glDisableDriverControlQCOM_client_proc_t) &enc_unsupported;
5257 this->glExtGetTexturesQCOM = (glExtGetTexturesQCOM_client_proc_t) &enc_unsupported;
5258 this->glExtGetBuffersQCOM = (glExtGetBuffersQCOM_client_proc_t) &enc_unsupported;
5259 this->glExtGetRenderbuffersQCOM = (glExtGetRenderbuffersQCOM_client_proc_t) &enc_unsupported;
5260 this->glExtGetFramebuffersQCOM = (glExtGetFramebuffersQCOM_client_proc_t) &enc_unsupported;
5261 this->glExtGetTexLevelParameterivQCOM = (glExtGetTexLevelParameterivQCOM_client_proc_t) &enc_unsupported;
5262 this->glExtTexObjectStateOverrideiQCOM = (glExtTexObjectStateOverrideiQCOM_client_proc_t) &enc_unsupported;
5263 this->glExtGetTexSubImageQCOM = (glExtGetTexSubImageQCOM_client_proc_t) &enc_unsupported;
5264 this->glExtGetBufferPointervQCOM = (glExtGetBufferPointervQCOM_client_proc_t) &enc_unsupported;
5265 this->glExtGetShadersQCOM = (glExtGetShadersQCOM_client_proc_t) &enc_unsupported;
5266 this->glExtGetProgramsQCOM = (glExtGetProgramsQCOM_client_proc_t) &enc_unsupported;
5267 this->glExtIsProgramBinaryQCOM = (glExtIsProgramBinaryQCOM_client_proc_t) &enc_unsupported;
5268 this->glExtGetProgramBinarySourceQCOM = (glExtGetProgramBinarySourceQCOM_client_proc_t) &enc_unsupported;
5269 this->glStartTilingQCOM = (glStartTilingQCOM_client_proc_t) &enc_unsupported;
5270 this->glEndTilingQCOM = (glEndTilingQCOM_client_proc_t) &enc_unsupported;
5271 this->glVertexAttribPointerData = &glVertexAttribPointerData_enc;
5272 this->glVertexAttribPointerOffset = &glVertexAttribPointerOffset_enc;
5273 this->glDrawElementsOffset = &glDrawElementsOffset_enc;
5274 this->glDrawElementsData = &glDrawElementsData_enc;
5275 this->glGetCompressedTextureFormats = &glGetCompressedTextureFormats_enc;
5276 this->glShaderString = &glShaderString_enc;
5277 this->glFinishRoundTrip = &glFinishRoundTrip_enc;
5278 }
5279
5280