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