• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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, &param, 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, &param, 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, &param, 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