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 using gfxstream::guest::ChecksumCalculator;
20 
21 using gfxstream::guest::IOStream;
22 
23 namespace {
24 
enc_unsupported()25 void enc_unsupported()
26 {
27 	ALOGE("Function is unsupported\n");
28 }
29 
glAlphaFunc_enc(void * self,GLenum func,GLclampf ref)30 void glAlphaFunc_enc(void *self , GLenum func, GLclampf ref)
31 {
32 	ENCODER_DEBUG_LOG("glAlphaFunc(func:0x%08x, ref:%f)", func, ref);
33 	AEMU_SCOPED_TRACE("glAlphaFunc encode");
34 
35 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
36 	IOStream *stream = ctx->m_stream;
37 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
38 	bool useChecksum = checksumCalculator->getVersion() > 0;
39 
40 	 unsigned char *ptr;
41 	 unsigned char *buf;
42 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
43 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
44 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
45 	buf = stream->alloc(totalSize);
46 	ptr = buf;
47 	int tmp = OP_glAlphaFunc;memcpy(ptr, &tmp, 4); ptr += 4;
48 	memcpy(ptr, &totalSize, 4);  ptr += 4;
49 
50 		memcpy(ptr, &func, 4); ptr += 4;
51 		memcpy(ptr, &ref, 4); ptr += 4;
52 
53 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
54 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
55 
56 }
57 
glClearColor_enc(void * self,GLclampf red,GLclampf green,GLclampf blue,GLclampf alpha)58 void glClearColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
59 {
60 	ENCODER_DEBUG_LOG("glClearColor(red:%f, green:%f, blue:%f, alpha:%f)", red, green, blue, alpha);
61 	AEMU_SCOPED_TRACE("glClearColor encode");
62 
63 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
64 	IOStream *stream = ctx->m_stream;
65 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
66 	bool useChecksum = checksumCalculator->getVersion() > 0;
67 
68 	 unsigned char *ptr;
69 	 unsigned char *buf;
70 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
71 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
72 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
73 	buf = stream->alloc(totalSize);
74 	ptr = buf;
75 	int tmp = OP_glClearColor;memcpy(ptr, &tmp, 4); ptr += 4;
76 	memcpy(ptr, &totalSize, 4);  ptr += 4;
77 
78 		memcpy(ptr, &red, 4); ptr += 4;
79 		memcpy(ptr, &green, 4); ptr += 4;
80 		memcpy(ptr, &blue, 4); ptr += 4;
81 		memcpy(ptr, &alpha, 4); ptr += 4;
82 
83 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
84 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
85 
86 }
87 
glClearDepthf_enc(void * self,GLclampf depth)88 void glClearDepthf_enc(void *self , GLclampf depth)
89 {
90 	ENCODER_DEBUG_LOG("glClearDepthf(depth:%f)", depth);
91 	AEMU_SCOPED_TRACE("glClearDepthf encode");
92 
93 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
94 	IOStream *stream = ctx->m_stream;
95 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
96 	bool useChecksum = checksumCalculator->getVersion() > 0;
97 
98 	 unsigned char *ptr;
99 	 unsigned char *buf;
100 	 const size_t sizeWithoutChecksum = 8 + 4;
101 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
102 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
103 	buf = stream->alloc(totalSize);
104 	ptr = buf;
105 	int tmp = OP_glClearDepthf;memcpy(ptr, &tmp, 4); ptr += 4;
106 	memcpy(ptr, &totalSize, 4);  ptr += 4;
107 
108 		memcpy(ptr, &depth, 4); ptr += 4;
109 
110 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
111 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
112 
113 }
114 
glClipPlanef_enc(void * self,GLenum plane,const GLfloat * equation)115 void glClipPlanef_enc(void *self , GLenum plane, const GLfloat* equation)
116 {
117 	ENCODER_DEBUG_LOG("glClipPlanef(plane:0x%08x, equation:0x%08x)", plane, equation);
118 	AEMU_SCOPED_TRACE("glClipPlanef encode");
119 
120 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
121 	IOStream *stream = ctx->m_stream;
122 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
123 	bool useChecksum = checksumCalculator->getVersion() > 0;
124 
125 	const unsigned int __size_equation =  (4 * sizeof(float));
126 	 unsigned char *ptr;
127 	 unsigned char *buf;
128 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_equation + 1*4;
129 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
130 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
131 	buf = stream->alloc(totalSize);
132 	ptr = buf;
133 	int tmp = OP_glClipPlanef;memcpy(ptr, &tmp, 4); ptr += 4;
134 	memcpy(ptr, &totalSize, 4);  ptr += 4;
135 
136 		memcpy(ptr, &plane, 4); ptr += 4;
137 	memcpy(ptr, &__size_equation, 4); ptr += 4;
138 	memcpy(ptr, equation, __size_equation);ptr += __size_equation;
139 
140 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
141 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
142 
143 }
144 
glColor4f_enc(void * self,GLfloat red,GLfloat green,GLfloat blue,GLfloat alpha)145 void glColor4f_enc(void *self , GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
146 {
147 	ENCODER_DEBUG_LOG("glColor4f(red:%f, green:%f, blue:%f, alpha:%f)", red, green, blue, alpha);
148 	AEMU_SCOPED_TRACE("glColor4f encode");
149 
150 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
151 	IOStream *stream = ctx->m_stream;
152 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
153 	bool useChecksum = checksumCalculator->getVersion() > 0;
154 
155 	 unsigned char *ptr;
156 	 unsigned char *buf;
157 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
158 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
159 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
160 	buf = stream->alloc(totalSize);
161 	ptr = buf;
162 	int tmp = OP_glColor4f;memcpy(ptr, &tmp, 4); ptr += 4;
163 	memcpy(ptr, &totalSize, 4);  ptr += 4;
164 
165 		memcpy(ptr, &red, 4); ptr += 4;
166 		memcpy(ptr, &green, 4); ptr += 4;
167 		memcpy(ptr, &blue, 4); ptr += 4;
168 		memcpy(ptr, &alpha, 4); ptr += 4;
169 
170 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
171 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
172 
173 }
174 
glDepthRangef_enc(void * self,GLclampf zNear,GLclampf zFar)175 void glDepthRangef_enc(void *self , GLclampf zNear, GLclampf zFar)
176 {
177 	ENCODER_DEBUG_LOG("glDepthRangef(zNear:%f, zFar:%f)", zNear, zFar);
178 	AEMU_SCOPED_TRACE("glDepthRangef encode");
179 
180 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
181 	IOStream *stream = ctx->m_stream;
182 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
183 	bool useChecksum = checksumCalculator->getVersion() > 0;
184 
185 	 unsigned char *ptr;
186 	 unsigned char *buf;
187 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
188 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
189 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
190 	buf = stream->alloc(totalSize);
191 	ptr = buf;
192 	int tmp = OP_glDepthRangef;memcpy(ptr, &tmp, 4); ptr += 4;
193 	memcpy(ptr, &totalSize, 4);  ptr += 4;
194 
195 		memcpy(ptr, &zNear, 4); ptr += 4;
196 		memcpy(ptr, &zFar, 4); ptr += 4;
197 
198 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
199 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
200 
201 }
202 
glFogf_enc(void * self,GLenum pname,GLfloat param)203 void glFogf_enc(void *self , GLenum pname, GLfloat param)
204 {
205 	ENCODER_DEBUG_LOG("glFogf(pname:0x%08x, param:%f)", pname, param);
206 	AEMU_SCOPED_TRACE("glFogf encode");
207 
208 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
209 	IOStream *stream = ctx->m_stream;
210 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
211 	bool useChecksum = checksumCalculator->getVersion() > 0;
212 
213 	 unsigned char *ptr;
214 	 unsigned char *buf;
215 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
216 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
217 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
218 	buf = stream->alloc(totalSize);
219 	ptr = buf;
220 	int tmp = OP_glFogf;memcpy(ptr, &tmp, 4); ptr += 4;
221 	memcpy(ptr, &totalSize, 4);  ptr += 4;
222 
223 		memcpy(ptr, &pname, 4); ptr += 4;
224 		memcpy(ptr, &param, 4); ptr += 4;
225 
226 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
227 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
228 
229 }
230 
glFogfv_enc(void * self,GLenum pname,const GLfloat * params)231 void glFogfv_enc(void *self , GLenum pname, const GLfloat* params)
232 {
233 	ENCODER_DEBUG_LOG("glFogfv(pname:0x%08x, params:0x%08x)", pname, params);
234 	AEMU_SCOPED_TRACE("glFogfv encode");
235 
236 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
237 	IOStream *stream = ctx->m_stream;
238 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
239 	bool useChecksum = checksumCalculator->getVersion() > 0;
240 
241 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
242 	 unsigned char *ptr;
243 	 unsigned char *buf;
244 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
245 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
246 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
247 	buf = stream->alloc(totalSize);
248 	ptr = buf;
249 	int tmp = OP_glFogfv;memcpy(ptr, &tmp, 4); ptr += 4;
250 	memcpy(ptr, &totalSize, 4);  ptr += 4;
251 
252 		memcpy(ptr, &pname, 4); ptr += 4;
253 	memcpy(ptr, &__size_params, 4); ptr += 4;
254 	memcpy(ptr, params, __size_params);ptr += __size_params;
255 
256 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
257 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
258 
259 }
260 
glFrustumf_enc(void * self,GLfloat left,GLfloat right,GLfloat bottom,GLfloat top,GLfloat zNear,GLfloat zFar)261 void glFrustumf_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
262 {
263 	ENCODER_DEBUG_LOG("glFrustumf(left:%f, right:%f, bottom:%f, top:%f, zNear:%f, zFar:%f)", left, right, bottom, top, zNear, zFar);
264 	AEMU_SCOPED_TRACE("glFrustumf encode");
265 
266 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
267 	IOStream *stream = ctx->m_stream;
268 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
269 	bool useChecksum = checksumCalculator->getVersion() > 0;
270 
271 	 unsigned char *ptr;
272 	 unsigned char *buf;
273 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
274 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
275 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
276 	buf = stream->alloc(totalSize);
277 	ptr = buf;
278 	int tmp = OP_glFrustumf;memcpy(ptr, &tmp, 4); ptr += 4;
279 	memcpy(ptr, &totalSize, 4);  ptr += 4;
280 
281 		memcpy(ptr, &left, 4); ptr += 4;
282 		memcpy(ptr, &right, 4); ptr += 4;
283 		memcpy(ptr, &bottom, 4); ptr += 4;
284 		memcpy(ptr, &top, 4); ptr += 4;
285 		memcpy(ptr, &zNear, 4); ptr += 4;
286 		memcpy(ptr, &zFar, 4); ptr += 4;
287 
288 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
289 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
290 
291 }
292 
glGetClipPlanef_enc(void * self,GLenum pname,GLfloat * eqn)293 void glGetClipPlanef_enc(void *self , GLenum pname, GLfloat* eqn)
294 {
295 	ENCODER_DEBUG_LOG("glGetClipPlanef(pname:0x%08x, eqn:0x%08x)", pname, eqn);
296 	AEMU_SCOPED_TRACE("glGetClipPlanef encode");
297 
298 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
299 	IOStream *stream = ctx->m_stream;
300 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
301 	bool useChecksum = checksumCalculator->getVersion() > 0;
302 
303 	const unsigned int __size_eqn =  (4 * sizeof(GLfloat));
304 	 unsigned char *ptr;
305 	 unsigned char *buf;
306 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
307 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
308 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
309 	buf = stream->alloc(totalSize);
310 	ptr = buf;
311 	int tmp = OP_glGetClipPlanef;memcpy(ptr, &tmp, 4); ptr += 4;
312 	memcpy(ptr, &totalSize, 4);  ptr += 4;
313 
314 		memcpy(ptr, &pname, 4); ptr += 4;
315 	memcpy(ptr, &__size_eqn, 4); ptr += 4;
316 
317 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
318 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
319 
320 	stream->readback(eqn, __size_eqn);
321 	if (useChecksum) checksumCalculator->addBuffer(eqn, __size_eqn);
322 	if (useChecksum) {
323 		unsigned char *checksumBufPtr = NULL;
324 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
325 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
326 		stream->readback(checksumBufPtr, checksumSize);
327 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
328 			ALOGE("glGetClipPlanef: GL communication error, please report this issue to b.android.com.\n");
329 			abort();
330 		}
331 	}
332 }
333 
glGetFloatv_enc(void * self,GLenum pname,GLfloat * params)334 void glGetFloatv_enc(void *self , GLenum pname, GLfloat* params)
335 {
336 	ENCODER_DEBUG_LOG("glGetFloatv(pname:0x%08x, params:0x%08x)", pname, params);
337 	AEMU_SCOPED_TRACE("glGetFloatv encode");
338 
339 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
340 	IOStream *stream = ctx->m_stream;
341 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
342 	bool useChecksum = checksumCalculator->getVersion() > 0;
343 
344 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
345 	 unsigned char *ptr;
346 	 unsigned char *buf;
347 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
348 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
349 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
350 	buf = stream->alloc(totalSize);
351 	ptr = buf;
352 	int tmp = OP_glGetFloatv;memcpy(ptr, &tmp, 4); ptr += 4;
353 	memcpy(ptr, &totalSize, 4);  ptr += 4;
354 
355 		memcpy(ptr, &pname, 4); ptr += 4;
356 	memcpy(ptr, &__size_params, 4); ptr += 4;
357 
358 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
359 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
360 
361 	stream->readback(params, __size_params);
362 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
363 	if (useChecksum) {
364 		unsigned char *checksumBufPtr = NULL;
365 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
366 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
367 		stream->readback(checksumBufPtr, checksumSize);
368 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
369 			ALOGE("glGetFloatv: GL communication error, please report this issue to b.android.com.\n");
370 			abort();
371 		}
372 	}
373 }
374 
glGetLightfv_enc(void * self,GLenum light,GLenum pname,GLfloat * params)375 void glGetLightfv_enc(void *self , GLenum light, GLenum pname, GLfloat* params)
376 {
377 	ENCODER_DEBUG_LOG("glGetLightfv(light:0x%08x, pname:0x%08x, params:0x%08x)", light, pname, params);
378 	AEMU_SCOPED_TRACE("glGetLightfv encode");
379 
380 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
381 	IOStream *stream = ctx->m_stream;
382 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
383 	bool useChecksum = checksumCalculator->getVersion() > 0;
384 
385 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
386 	 unsigned char *ptr;
387 	 unsigned char *buf;
388 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
389 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
390 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
391 	buf = stream->alloc(totalSize);
392 	ptr = buf;
393 	int tmp = OP_glGetLightfv;memcpy(ptr, &tmp, 4); ptr += 4;
394 	memcpy(ptr, &totalSize, 4);  ptr += 4;
395 
396 		memcpy(ptr, &light, 4); ptr += 4;
397 		memcpy(ptr, &pname, 4); ptr += 4;
398 	memcpy(ptr, &__size_params, 4); ptr += 4;
399 
400 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
401 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
402 
403 	stream->readback(params, __size_params);
404 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
405 	if (useChecksum) {
406 		unsigned char *checksumBufPtr = NULL;
407 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
408 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
409 		stream->readback(checksumBufPtr, checksumSize);
410 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
411 			ALOGE("glGetLightfv: GL communication error, please report this issue to b.android.com.\n");
412 			abort();
413 		}
414 	}
415 }
416 
glGetMaterialfv_enc(void * self,GLenum face,GLenum pname,GLfloat * params)417 void glGetMaterialfv_enc(void *self , GLenum face, GLenum pname, GLfloat* params)
418 {
419 	ENCODER_DEBUG_LOG("glGetMaterialfv(face:0x%08x, pname:0x%08x, params:0x%08x)", face, pname, params);
420 	AEMU_SCOPED_TRACE("glGetMaterialfv encode");
421 
422 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
423 	IOStream *stream = ctx->m_stream;
424 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
425 	bool useChecksum = checksumCalculator->getVersion() > 0;
426 
427 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
428 	 unsigned char *ptr;
429 	 unsigned char *buf;
430 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
431 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
432 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
433 	buf = stream->alloc(totalSize);
434 	ptr = buf;
435 	int tmp = OP_glGetMaterialfv;memcpy(ptr, &tmp, 4); ptr += 4;
436 	memcpy(ptr, &totalSize, 4);  ptr += 4;
437 
438 		memcpy(ptr, &face, 4); ptr += 4;
439 		memcpy(ptr, &pname, 4); ptr += 4;
440 	memcpy(ptr, &__size_params, 4); ptr += 4;
441 
442 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
443 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
444 
445 	stream->readback(params, __size_params);
446 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
447 	if (useChecksum) {
448 		unsigned char *checksumBufPtr = NULL;
449 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
450 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
451 		stream->readback(checksumBufPtr, checksumSize);
452 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
453 			ALOGE("glGetMaterialfv: GL communication error, please report this issue to b.android.com.\n");
454 			abort();
455 		}
456 	}
457 }
458 
glGetTexEnvfv_enc(void * self,GLenum env,GLenum pname,GLfloat * params)459 void glGetTexEnvfv_enc(void *self , GLenum env, GLenum pname, GLfloat* params)
460 {
461 	ENCODER_DEBUG_LOG("glGetTexEnvfv(env:0x%08x, pname:0x%08x, params:0x%08x)", env, pname, params);
462 	AEMU_SCOPED_TRACE("glGetTexEnvfv encode");
463 
464 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
465 	IOStream *stream = ctx->m_stream;
466 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
467 	bool useChecksum = checksumCalculator->getVersion() > 0;
468 
469 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
470 	 unsigned char *ptr;
471 	 unsigned char *buf;
472 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
473 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
474 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
475 	buf = stream->alloc(totalSize);
476 	ptr = buf;
477 	int tmp = OP_glGetTexEnvfv;memcpy(ptr, &tmp, 4); ptr += 4;
478 	memcpy(ptr, &totalSize, 4);  ptr += 4;
479 
480 		memcpy(ptr, &env, 4); ptr += 4;
481 		memcpy(ptr, &pname, 4); ptr += 4;
482 	memcpy(ptr, &__size_params, 4); ptr += 4;
483 
484 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
485 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
486 
487 	stream->readback(params, __size_params);
488 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
489 	if (useChecksum) {
490 		unsigned char *checksumBufPtr = NULL;
491 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
492 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
493 		stream->readback(checksumBufPtr, checksumSize);
494 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
495 			ALOGE("glGetTexEnvfv: GL communication error, please report this issue to b.android.com.\n");
496 			abort();
497 		}
498 	}
499 }
500 
glGetTexParameterfv_enc(void * self,GLenum target,GLenum pname,GLfloat * params)501 void glGetTexParameterfv_enc(void *self , GLenum target, GLenum pname, GLfloat* params)
502 {
503 	ENCODER_DEBUG_LOG("glGetTexParameterfv(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
504 	AEMU_SCOPED_TRACE("glGetTexParameterfv encode");
505 
506 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
507 	IOStream *stream = ctx->m_stream;
508 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
509 	bool useChecksum = checksumCalculator->getVersion() > 0;
510 
511 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
512 	 unsigned char *ptr;
513 	 unsigned char *buf;
514 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
515 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
516 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
517 	buf = stream->alloc(totalSize);
518 	ptr = buf;
519 	int tmp = OP_glGetTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
520 	memcpy(ptr, &totalSize, 4);  ptr += 4;
521 
522 		memcpy(ptr, &target, 4); ptr += 4;
523 		memcpy(ptr, &pname, 4); ptr += 4;
524 	memcpy(ptr, &__size_params, 4); ptr += 4;
525 
526 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
527 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
528 
529 	stream->readback(params, __size_params);
530 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
531 	if (useChecksum) {
532 		unsigned char *checksumBufPtr = NULL;
533 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
534 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
535 		stream->readback(checksumBufPtr, checksumSize);
536 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
537 			ALOGE("glGetTexParameterfv: GL communication error, please report this issue to b.android.com.\n");
538 			abort();
539 		}
540 	}
541 }
542 
glLightModelf_enc(void * self,GLenum pname,GLfloat param)543 void glLightModelf_enc(void *self , GLenum pname, GLfloat param)
544 {
545 	ENCODER_DEBUG_LOG("glLightModelf(pname:0x%08x, param:%f)", pname, param);
546 	AEMU_SCOPED_TRACE("glLightModelf encode");
547 
548 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
549 	IOStream *stream = ctx->m_stream;
550 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
551 	bool useChecksum = checksumCalculator->getVersion() > 0;
552 
553 	 unsigned char *ptr;
554 	 unsigned char *buf;
555 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
556 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
557 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
558 	buf = stream->alloc(totalSize);
559 	ptr = buf;
560 	int tmp = OP_glLightModelf;memcpy(ptr, &tmp, 4); ptr += 4;
561 	memcpy(ptr, &totalSize, 4);  ptr += 4;
562 
563 		memcpy(ptr, &pname, 4); ptr += 4;
564 		memcpy(ptr, &param, 4); ptr += 4;
565 
566 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
567 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
568 
569 }
570 
glLightModelfv_enc(void * self,GLenum pname,const GLfloat * params)571 void glLightModelfv_enc(void *self , GLenum pname, const GLfloat* params)
572 {
573 	ENCODER_DEBUG_LOG("glLightModelfv(pname:0x%08x, params:0x%08x)", pname, params);
574 	AEMU_SCOPED_TRACE("glLightModelfv encode");
575 
576 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
577 	IOStream *stream = ctx->m_stream;
578 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
579 	bool useChecksum = checksumCalculator->getVersion() > 0;
580 
581 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
582 	 unsigned char *ptr;
583 	 unsigned char *buf;
584 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
585 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
586 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
587 	buf = stream->alloc(totalSize);
588 	ptr = buf;
589 	int tmp = OP_glLightModelfv;memcpy(ptr, &tmp, 4); ptr += 4;
590 	memcpy(ptr, &totalSize, 4);  ptr += 4;
591 
592 		memcpy(ptr, &pname, 4); ptr += 4;
593 	memcpy(ptr, &__size_params, 4); ptr += 4;
594 	memcpy(ptr, params, __size_params);ptr += __size_params;
595 
596 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
597 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
598 
599 }
600 
glLightf_enc(void * self,GLenum light,GLenum pname,GLfloat param)601 void glLightf_enc(void *self , GLenum light, GLenum pname, GLfloat param)
602 {
603 	ENCODER_DEBUG_LOG("glLightf(light:0x%08x, pname:0x%08x, param:%f)", light, pname, param);
604 	AEMU_SCOPED_TRACE("glLightf encode");
605 
606 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
607 	IOStream *stream = ctx->m_stream;
608 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
609 	bool useChecksum = checksumCalculator->getVersion() > 0;
610 
611 	 unsigned char *ptr;
612 	 unsigned char *buf;
613 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
614 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
615 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
616 	buf = stream->alloc(totalSize);
617 	ptr = buf;
618 	int tmp = OP_glLightf;memcpy(ptr, &tmp, 4); ptr += 4;
619 	memcpy(ptr, &totalSize, 4);  ptr += 4;
620 
621 		memcpy(ptr, &light, 4); ptr += 4;
622 		memcpy(ptr, &pname, 4); ptr += 4;
623 		memcpy(ptr, &param, 4); ptr += 4;
624 
625 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
626 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
627 
628 }
629 
glLightfv_enc(void * self,GLenum light,GLenum pname,const GLfloat * params)630 void glLightfv_enc(void *self , GLenum light, GLenum pname, const GLfloat* params)
631 {
632 	ENCODER_DEBUG_LOG("glLightfv(light:0x%08x, pname:0x%08x, params:0x%08x)", light, pname, params);
633 	AEMU_SCOPED_TRACE("glLightfv encode");
634 
635 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
636 	IOStream *stream = ctx->m_stream;
637 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
638 	bool useChecksum = checksumCalculator->getVersion() > 0;
639 
640 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
641 	 unsigned char *ptr;
642 	 unsigned char *buf;
643 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
644 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
645 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
646 	buf = stream->alloc(totalSize);
647 	ptr = buf;
648 	int tmp = OP_glLightfv;memcpy(ptr, &tmp, 4); ptr += 4;
649 	memcpy(ptr, &totalSize, 4);  ptr += 4;
650 
651 		memcpy(ptr, &light, 4); ptr += 4;
652 		memcpy(ptr, &pname, 4); ptr += 4;
653 	memcpy(ptr, &__size_params, 4); ptr += 4;
654 	memcpy(ptr, params, __size_params);ptr += __size_params;
655 
656 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
657 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
658 
659 }
660 
glLineWidth_enc(void * self,GLfloat width)661 void glLineWidth_enc(void *self , GLfloat width)
662 {
663 	ENCODER_DEBUG_LOG("glLineWidth(width:%f)", width);
664 	AEMU_SCOPED_TRACE("glLineWidth encode");
665 
666 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
667 	IOStream *stream = ctx->m_stream;
668 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
669 	bool useChecksum = checksumCalculator->getVersion() > 0;
670 
671 	 unsigned char *ptr;
672 	 unsigned char *buf;
673 	 const size_t sizeWithoutChecksum = 8 + 4;
674 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
675 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
676 	buf = stream->alloc(totalSize);
677 	ptr = buf;
678 	int tmp = OP_glLineWidth;memcpy(ptr, &tmp, 4); ptr += 4;
679 	memcpy(ptr, &totalSize, 4);  ptr += 4;
680 
681 		memcpy(ptr, &width, 4); ptr += 4;
682 
683 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
684 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
685 
686 }
687 
glLoadMatrixf_enc(void * self,const GLfloat * m)688 void glLoadMatrixf_enc(void *self , const GLfloat* m)
689 {
690 	ENCODER_DEBUG_LOG("glLoadMatrixf(m:0x%08x)", m);
691 	AEMU_SCOPED_TRACE("glLoadMatrixf encode");
692 
693 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
694 	IOStream *stream = ctx->m_stream;
695 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
696 	bool useChecksum = checksumCalculator->getVersion() > 0;
697 
698 	const unsigned int __size_m =  (16 * sizeof(GLfloat));
699 	 unsigned char *ptr;
700 	 unsigned char *buf;
701 	 const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
702 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
703 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
704 	buf = stream->alloc(totalSize);
705 	ptr = buf;
706 	int tmp = OP_glLoadMatrixf;memcpy(ptr, &tmp, 4); ptr += 4;
707 	memcpy(ptr, &totalSize, 4);  ptr += 4;
708 
709 	memcpy(ptr, &__size_m, 4); ptr += 4;
710 	memcpy(ptr, m, __size_m);ptr += __size_m;
711 
712 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
713 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
714 
715 }
716 
glMaterialf_enc(void * self,GLenum face,GLenum pname,GLfloat param)717 void glMaterialf_enc(void *self , GLenum face, GLenum pname, GLfloat param)
718 {
719 	ENCODER_DEBUG_LOG("glMaterialf(face:0x%08x, pname:0x%08x, param:%f)", face, pname, param);
720 	AEMU_SCOPED_TRACE("glMaterialf encode");
721 
722 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
723 	IOStream *stream = ctx->m_stream;
724 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
725 	bool useChecksum = checksumCalculator->getVersion() > 0;
726 
727 	 unsigned char *ptr;
728 	 unsigned char *buf;
729 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
730 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
731 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
732 	buf = stream->alloc(totalSize);
733 	ptr = buf;
734 	int tmp = OP_glMaterialf;memcpy(ptr, &tmp, 4); ptr += 4;
735 	memcpy(ptr, &totalSize, 4);  ptr += 4;
736 
737 		memcpy(ptr, &face, 4); ptr += 4;
738 		memcpy(ptr, &pname, 4); ptr += 4;
739 		memcpy(ptr, &param, 4); ptr += 4;
740 
741 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
742 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
743 
744 }
745 
glMaterialfv_enc(void * self,GLenum face,GLenum pname,const GLfloat * params)746 void glMaterialfv_enc(void *self , GLenum face, GLenum pname, const GLfloat* params)
747 {
748 	ENCODER_DEBUG_LOG("glMaterialfv(face:0x%08x, pname:0x%08x, params:0x%08x)", face, pname, params);
749 	AEMU_SCOPED_TRACE("glMaterialfv encode");
750 
751 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
752 	IOStream *stream = ctx->m_stream;
753 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
754 	bool useChecksum = checksumCalculator->getVersion() > 0;
755 
756 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
757 	 unsigned char *ptr;
758 	 unsigned char *buf;
759 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
760 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
761 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
762 	buf = stream->alloc(totalSize);
763 	ptr = buf;
764 	int tmp = OP_glMaterialfv;memcpy(ptr, &tmp, 4); ptr += 4;
765 	memcpy(ptr, &totalSize, 4);  ptr += 4;
766 
767 		memcpy(ptr, &face, 4); ptr += 4;
768 		memcpy(ptr, &pname, 4); ptr += 4;
769 	memcpy(ptr, &__size_params, 4); ptr += 4;
770 	memcpy(ptr, params, __size_params);ptr += __size_params;
771 
772 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
773 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
774 
775 }
776 
glMultMatrixf_enc(void * self,const GLfloat * m)777 void glMultMatrixf_enc(void *self , const GLfloat* m)
778 {
779 	ENCODER_DEBUG_LOG("glMultMatrixf(m:0x%08x)", m);
780 	AEMU_SCOPED_TRACE("glMultMatrixf encode");
781 
782 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
783 	IOStream *stream = ctx->m_stream;
784 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
785 	bool useChecksum = checksumCalculator->getVersion() > 0;
786 
787 	const unsigned int __size_m =  (16 * sizeof(GLfloat));
788 	 unsigned char *ptr;
789 	 unsigned char *buf;
790 	 const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
791 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
792 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
793 	buf = stream->alloc(totalSize);
794 	ptr = buf;
795 	int tmp = OP_glMultMatrixf;memcpy(ptr, &tmp, 4); ptr += 4;
796 	memcpy(ptr, &totalSize, 4);  ptr += 4;
797 
798 	memcpy(ptr, &__size_m, 4); ptr += 4;
799 	memcpy(ptr, m, __size_m);ptr += __size_m;
800 
801 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
802 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
803 
804 }
805 
glMultiTexCoord4f_enc(void * self,GLenum target,GLfloat s,GLfloat t,GLfloat r,GLfloat q)806 void glMultiTexCoord4f_enc(void *self , GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
807 {
808 	ENCODER_DEBUG_LOG("glMultiTexCoord4f(target:0x%08x, s:%f, t:%f, r:%f, q:%f)", target, s, t, r, q);
809 	AEMU_SCOPED_TRACE("glMultiTexCoord4f encode");
810 
811 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
812 	IOStream *stream = ctx->m_stream;
813 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
814 	bool useChecksum = checksumCalculator->getVersion() > 0;
815 
816 	 unsigned char *ptr;
817 	 unsigned char *buf;
818 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
819 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
820 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
821 	buf = stream->alloc(totalSize);
822 	ptr = buf;
823 	int tmp = OP_glMultiTexCoord4f;memcpy(ptr, &tmp, 4); ptr += 4;
824 	memcpy(ptr, &totalSize, 4);  ptr += 4;
825 
826 		memcpy(ptr, &target, 4); ptr += 4;
827 		memcpy(ptr, &s, 4); ptr += 4;
828 		memcpy(ptr, &t, 4); ptr += 4;
829 		memcpy(ptr, &r, 4); ptr += 4;
830 		memcpy(ptr, &q, 4); ptr += 4;
831 
832 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
833 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
834 
835 }
836 
glNormal3f_enc(void * self,GLfloat nx,GLfloat ny,GLfloat nz)837 void glNormal3f_enc(void *self , GLfloat nx, GLfloat ny, GLfloat nz)
838 {
839 	ENCODER_DEBUG_LOG("glNormal3f(nx:%f, ny:%f, nz:%f)", nx, ny, nz);
840 	AEMU_SCOPED_TRACE("glNormal3f encode");
841 
842 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
843 	IOStream *stream = ctx->m_stream;
844 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
845 	bool useChecksum = checksumCalculator->getVersion() > 0;
846 
847 	 unsigned char *ptr;
848 	 unsigned char *buf;
849 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
850 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
851 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
852 	buf = stream->alloc(totalSize);
853 	ptr = buf;
854 	int tmp = OP_glNormal3f;memcpy(ptr, &tmp, 4); ptr += 4;
855 	memcpy(ptr, &totalSize, 4);  ptr += 4;
856 
857 		memcpy(ptr, &nx, 4); ptr += 4;
858 		memcpy(ptr, &ny, 4); ptr += 4;
859 		memcpy(ptr, &nz, 4); ptr += 4;
860 
861 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
862 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
863 
864 }
865 
glOrthof_enc(void * self,GLfloat left,GLfloat right,GLfloat bottom,GLfloat top,GLfloat zNear,GLfloat zFar)866 void glOrthof_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
867 {
868 	ENCODER_DEBUG_LOG("glOrthof(left:%f, right:%f, bottom:%f, top:%f, zNear:%f, zFar:%f)", left, right, bottom, top, zNear, zFar);
869 	AEMU_SCOPED_TRACE("glOrthof encode");
870 
871 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
872 	IOStream *stream = ctx->m_stream;
873 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
874 	bool useChecksum = checksumCalculator->getVersion() > 0;
875 
876 	 unsigned char *ptr;
877 	 unsigned char *buf;
878 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
879 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
880 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
881 	buf = stream->alloc(totalSize);
882 	ptr = buf;
883 	int tmp = OP_glOrthof;memcpy(ptr, &tmp, 4); ptr += 4;
884 	memcpy(ptr, &totalSize, 4);  ptr += 4;
885 
886 		memcpy(ptr, &left, 4); ptr += 4;
887 		memcpy(ptr, &right, 4); ptr += 4;
888 		memcpy(ptr, &bottom, 4); ptr += 4;
889 		memcpy(ptr, &top, 4); ptr += 4;
890 		memcpy(ptr, &zNear, 4); ptr += 4;
891 		memcpy(ptr, &zFar, 4); ptr += 4;
892 
893 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
894 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
895 
896 }
897 
glPointParameterf_enc(void * self,GLenum pname,GLfloat param)898 void glPointParameterf_enc(void *self , GLenum pname, GLfloat param)
899 {
900 	ENCODER_DEBUG_LOG("glPointParameterf(pname:0x%08x, param:%f)", pname, param);
901 	AEMU_SCOPED_TRACE("glPointParameterf encode");
902 
903 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
904 	IOStream *stream = ctx->m_stream;
905 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
906 	bool useChecksum = checksumCalculator->getVersion() > 0;
907 
908 	 unsigned char *ptr;
909 	 unsigned char *buf;
910 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
911 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
912 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
913 	buf = stream->alloc(totalSize);
914 	ptr = buf;
915 	int tmp = OP_glPointParameterf;memcpy(ptr, &tmp, 4); ptr += 4;
916 	memcpy(ptr, &totalSize, 4);  ptr += 4;
917 
918 		memcpy(ptr, &pname, 4); ptr += 4;
919 		memcpy(ptr, &param, 4); ptr += 4;
920 
921 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
922 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
923 
924 }
925 
glPointParameterfv_enc(void * self,GLenum pname,const GLfloat * params)926 void glPointParameterfv_enc(void *self , GLenum pname, const GLfloat* params)
927 {
928 	ENCODER_DEBUG_LOG("glPointParameterfv(pname:0x%08x, params:0x%08x)", pname, params);
929 	AEMU_SCOPED_TRACE("glPointParameterfv encode");
930 
931 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
932 	IOStream *stream = ctx->m_stream;
933 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
934 	bool useChecksum = checksumCalculator->getVersion() > 0;
935 
936 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
937 	 unsigned char *ptr;
938 	 unsigned char *buf;
939 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
940 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
941 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
942 	buf = stream->alloc(totalSize);
943 	ptr = buf;
944 	int tmp = OP_glPointParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
945 	memcpy(ptr, &totalSize, 4);  ptr += 4;
946 
947 		memcpy(ptr, &pname, 4); ptr += 4;
948 	memcpy(ptr, &__size_params, 4); ptr += 4;
949 	memcpy(ptr, params, __size_params);ptr += __size_params;
950 
951 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
952 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
953 
954 }
955 
glPointSize_enc(void * self,GLfloat size)956 void glPointSize_enc(void *self , GLfloat size)
957 {
958 	ENCODER_DEBUG_LOG("glPointSize(size:%f)", size);
959 	AEMU_SCOPED_TRACE("glPointSize encode");
960 
961 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
962 	IOStream *stream = ctx->m_stream;
963 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
964 	bool useChecksum = checksumCalculator->getVersion() > 0;
965 
966 	 unsigned char *ptr;
967 	 unsigned char *buf;
968 	 const size_t sizeWithoutChecksum = 8 + 4;
969 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
970 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
971 	buf = stream->alloc(totalSize);
972 	ptr = buf;
973 	int tmp = OP_glPointSize;memcpy(ptr, &tmp, 4); ptr += 4;
974 	memcpy(ptr, &totalSize, 4);  ptr += 4;
975 
976 		memcpy(ptr, &size, 4); ptr += 4;
977 
978 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
979 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
980 
981 }
982 
glPolygonOffset_enc(void * self,GLfloat factor,GLfloat units)983 void glPolygonOffset_enc(void *self , GLfloat factor, GLfloat units)
984 {
985 	ENCODER_DEBUG_LOG("glPolygonOffset(factor:%f, units:%f)", factor, units);
986 	AEMU_SCOPED_TRACE("glPolygonOffset encode");
987 
988 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
989 	IOStream *stream = ctx->m_stream;
990 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
991 	bool useChecksum = checksumCalculator->getVersion() > 0;
992 
993 	 unsigned char *ptr;
994 	 unsigned char *buf;
995 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
996 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
997 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
998 	buf = stream->alloc(totalSize);
999 	ptr = buf;
1000 	int tmp = OP_glPolygonOffset;memcpy(ptr, &tmp, 4); ptr += 4;
1001 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1002 
1003 		memcpy(ptr, &factor, 4); ptr += 4;
1004 		memcpy(ptr, &units, 4); ptr += 4;
1005 
1006 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1007 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1008 
1009 }
1010 
glRotatef_enc(void * self,GLfloat angle,GLfloat x,GLfloat y,GLfloat z)1011 void glRotatef_enc(void *self , GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
1012 {
1013 	ENCODER_DEBUG_LOG("glRotatef(angle:%f, x:%f, y:%f, z:%f)", angle, x, y, z);
1014 	AEMU_SCOPED_TRACE("glRotatef encode");
1015 
1016 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1017 	IOStream *stream = ctx->m_stream;
1018 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1019 	bool useChecksum = checksumCalculator->getVersion() > 0;
1020 
1021 	 unsigned char *ptr;
1022 	 unsigned char *buf;
1023 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
1024 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1025 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1026 	buf = stream->alloc(totalSize);
1027 	ptr = buf;
1028 	int tmp = OP_glRotatef;memcpy(ptr, &tmp, 4); ptr += 4;
1029 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1030 
1031 		memcpy(ptr, &angle, 4); ptr += 4;
1032 		memcpy(ptr, &x, 4); ptr += 4;
1033 		memcpy(ptr, &y, 4); ptr += 4;
1034 		memcpy(ptr, &z, 4); ptr += 4;
1035 
1036 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1037 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1038 
1039 }
1040 
glScalef_enc(void * self,GLfloat x,GLfloat y,GLfloat z)1041 void glScalef_enc(void *self , GLfloat x, GLfloat y, GLfloat z)
1042 {
1043 	ENCODER_DEBUG_LOG("glScalef(x:%f, y:%f, z:%f)", x, y, z);
1044 	AEMU_SCOPED_TRACE("glScalef encode");
1045 
1046 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1047 	IOStream *stream = ctx->m_stream;
1048 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1049 	bool useChecksum = checksumCalculator->getVersion() > 0;
1050 
1051 	 unsigned char *ptr;
1052 	 unsigned char *buf;
1053 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
1054 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1055 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1056 	buf = stream->alloc(totalSize);
1057 	ptr = buf;
1058 	int tmp = OP_glScalef;memcpy(ptr, &tmp, 4); ptr += 4;
1059 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1060 
1061 		memcpy(ptr, &x, 4); ptr += 4;
1062 		memcpy(ptr, &y, 4); ptr += 4;
1063 		memcpy(ptr, &z, 4); ptr += 4;
1064 
1065 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1066 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1067 
1068 }
1069 
glTexEnvf_enc(void * self,GLenum target,GLenum pname,GLfloat param)1070 void glTexEnvf_enc(void *self , GLenum target, GLenum pname, GLfloat param)
1071 {
1072 	ENCODER_DEBUG_LOG("glTexEnvf(target:0x%08x, pname:0x%08x, param:%f)", target, pname, param);
1073 	AEMU_SCOPED_TRACE("glTexEnvf encode");
1074 
1075 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1076 	IOStream *stream = ctx->m_stream;
1077 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1078 	bool useChecksum = checksumCalculator->getVersion() > 0;
1079 
1080 	 unsigned char *ptr;
1081 	 unsigned char *buf;
1082 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
1083 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1084 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1085 	buf = stream->alloc(totalSize);
1086 	ptr = buf;
1087 	int tmp = OP_glTexEnvf;memcpy(ptr, &tmp, 4); ptr += 4;
1088 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1089 
1090 		memcpy(ptr, &target, 4); ptr += 4;
1091 		memcpy(ptr, &pname, 4); ptr += 4;
1092 		memcpy(ptr, &param, 4); ptr += 4;
1093 
1094 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1095 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1096 
1097 }
1098 
glTexEnvfv_enc(void * self,GLenum target,GLenum pname,const GLfloat * params)1099 void glTexEnvfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params)
1100 {
1101 	ENCODER_DEBUG_LOG("glTexEnvfv(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
1102 	AEMU_SCOPED_TRACE("glTexEnvfv encode");
1103 
1104 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1105 	IOStream *stream = ctx->m_stream;
1106 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1107 	bool useChecksum = checksumCalculator->getVersion() > 0;
1108 
1109 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
1110 	 unsigned char *ptr;
1111 	 unsigned char *buf;
1112 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
1113 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1114 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1115 	buf = stream->alloc(totalSize);
1116 	ptr = buf;
1117 	int tmp = OP_glTexEnvfv;memcpy(ptr, &tmp, 4); ptr += 4;
1118 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1119 
1120 		memcpy(ptr, &target, 4); ptr += 4;
1121 		memcpy(ptr, &pname, 4); ptr += 4;
1122 	memcpy(ptr, &__size_params, 4); ptr += 4;
1123 	memcpy(ptr, params, __size_params);ptr += __size_params;
1124 
1125 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1126 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1127 
1128 }
1129 
glTexParameterf_enc(void * self,GLenum target,GLenum pname,GLfloat param)1130 void glTexParameterf_enc(void *self , GLenum target, GLenum pname, GLfloat param)
1131 {
1132 	ENCODER_DEBUG_LOG("glTexParameterf(target:0x%08x, pname:0x%08x, param:%f)", target, pname, param);
1133 	AEMU_SCOPED_TRACE("glTexParameterf encode");
1134 
1135 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1136 	IOStream *stream = ctx->m_stream;
1137 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1138 	bool useChecksum = checksumCalculator->getVersion() > 0;
1139 
1140 	 unsigned char *ptr;
1141 	 unsigned char *buf;
1142 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
1143 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1144 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1145 	buf = stream->alloc(totalSize);
1146 	ptr = buf;
1147 	int tmp = OP_glTexParameterf;memcpy(ptr, &tmp, 4); ptr += 4;
1148 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1149 
1150 		memcpy(ptr, &target, 4); ptr += 4;
1151 		memcpy(ptr, &pname, 4); ptr += 4;
1152 		memcpy(ptr, &param, 4); ptr += 4;
1153 
1154 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1155 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1156 
1157 }
1158 
glTexParameterfv_enc(void * self,GLenum target,GLenum pname,const GLfloat * params)1159 void glTexParameterfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params)
1160 {
1161 	ENCODER_DEBUG_LOG("glTexParameterfv(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
1162 	AEMU_SCOPED_TRACE("glTexParameterfv encode");
1163 
1164 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1165 	IOStream *stream = ctx->m_stream;
1166 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1167 	bool useChecksum = checksumCalculator->getVersion() > 0;
1168 
1169 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
1170 	 unsigned char *ptr;
1171 	 unsigned char *buf;
1172 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
1173 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1174 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1175 	buf = stream->alloc(totalSize);
1176 	ptr = buf;
1177 	int tmp = OP_glTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
1178 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1179 
1180 		memcpy(ptr, &target, 4); ptr += 4;
1181 		memcpy(ptr, &pname, 4); ptr += 4;
1182 	memcpy(ptr, &__size_params, 4); ptr += 4;
1183 	memcpy(ptr, params, __size_params);ptr += __size_params;
1184 
1185 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1186 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1187 
1188 }
1189 
glTranslatef_enc(void * self,GLfloat x,GLfloat y,GLfloat z)1190 void glTranslatef_enc(void *self , GLfloat x, GLfloat y, GLfloat z)
1191 {
1192 	ENCODER_DEBUG_LOG("glTranslatef(x:%f, y:%f, z:%f)", x, y, z);
1193 	AEMU_SCOPED_TRACE("glTranslatef encode");
1194 
1195 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1196 	IOStream *stream = ctx->m_stream;
1197 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1198 	bool useChecksum = checksumCalculator->getVersion() > 0;
1199 
1200 	 unsigned char *ptr;
1201 	 unsigned char *buf;
1202 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
1203 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1204 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1205 	buf = stream->alloc(totalSize);
1206 	ptr = buf;
1207 	int tmp = OP_glTranslatef;memcpy(ptr, &tmp, 4); ptr += 4;
1208 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1209 
1210 		memcpy(ptr, &x, 4); ptr += 4;
1211 		memcpy(ptr, &y, 4); ptr += 4;
1212 		memcpy(ptr, &z, 4); ptr += 4;
1213 
1214 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1215 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1216 
1217 }
1218 
glActiveTexture_enc(void * self,GLenum texture)1219 void glActiveTexture_enc(void *self , GLenum texture)
1220 {
1221 	ENCODER_DEBUG_LOG("glActiveTexture(texture:0x%08x)", texture);
1222 	AEMU_SCOPED_TRACE("glActiveTexture encode");
1223 
1224 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1225 	IOStream *stream = ctx->m_stream;
1226 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1227 	bool useChecksum = checksumCalculator->getVersion() > 0;
1228 
1229 	 unsigned char *ptr;
1230 	 unsigned char *buf;
1231 	 const size_t sizeWithoutChecksum = 8 + 4;
1232 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1233 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1234 	buf = stream->alloc(totalSize);
1235 	ptr = buf;
1236 	int tmp = OP_glActiveTexture;memcpy(ptr, &tmp, 4); ptr += 4;
1237 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1238 
1239 		memcpy(ptr, &texture, 4); ptr += 4;
1240 
1241 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1242 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1243 
1244 }
1245 
glAlphaFuncx_enc(void * self,GLenum func,GLclampx ref)1246 void glAlphaFuncx_enc(void *self , GLenum func, GLclampx ref)
1247 {
1248 	ENCODER_DEBUG_LOG("glAlphaFuncx(func:0x%08x, ref:0x%08x)", func, ref);
1249 	AEMU_SCOPED_TRACE("glAlphaFuncx encode");
1250 
1251 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1252 	IOStream *stream = ctx->m_stream;
1253 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1254 	bool useChecksum = checksumCalculator->getVersion() > 0;
1255 
1256 	 unsigned char *ptr;
1257 	 unsigned char *buf;
1258 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
1259 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1260 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1261 	buf = stream->alloc(totalSize);
1262 	ptr = buf;
1263 	int tmp = OP_glAlphaFuncx;memcpy(ptr, &tmp, 4); ptr += 4;
1264 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1265 
1266 		memcpy(ptr, &func, 4); ptr += 4;
1267 		memcpy(ptr, &ref, 4); ptr += 4;
1268 
1269 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1270 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1271 
1272 }
1273 
glBindBuffer_enc(void * self,GLenum target,GLuint buffer)1274 void glBindBuffer_enc(void *self , GLenum target, GLuint buffer)
1275 {
1276 	ENCODER_DEBUG_LOG("glBindBuffer(target:0x%08x, buffer:%u)", target, buffer);
1277 	AEMU_SCOPED_TRACE("glBindBuffer encode");
1278 
1279 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1280 	IOStream *stream = ctx->m_stream;
1281 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1282 	bool useChecksum = checksumCalculator->getVersion() > 0;
1283 
1284 	 unsigned char *ptr;
1285 	 unsigned char *buf;
1286 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
1287 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1288 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1289 	buf = stream->alloc(totalSize);
1290 	ptr = buf;
1291 	int tmp = OP_glBindBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
1292 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1293 
1294 		memcpy(ptr, &target, 4); ptr += 4;
1295 		memcpy(ptr, &buffer, 4); ptr += 4;
1296 
1297 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1298 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1299 
1300 }
1301 
glBindTexture_enc(void * self,GLenum target,GLuint texture)1302 void glBindTexture_enc(void *self , GLenum target, GLuint texture)
1303 {
1304 	ENCODER_DEBUG_LOG("glBindTexture(target:0x%08x, texture:%u)", target, texture);
1305 	AEMU_SCOPED_TRACE("glBindTexture encode");
1306 
1307 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1308 	IOStream *stream = ctx->m_stream;
1309 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1310 	bool useChecksum = checksumCalculator->getVersion() > 0;
1311 
1312 	 unsigned char *ptr;
1313 	 unsigned char *buf;
1314 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
1315 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1316 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1317 	buf = stream->alloc(totalSize);
1318 	ptr = buf;
1319 	int tmp = OP_glBindTexture;memcpy(ptr, &tmp, 4); ptr += 4;
1320 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1321 
1322 		memcpy(ptr, &target, 4); ptr += 4;
1323 		memcpy(ptr, &texture, 4); ptr += 4;
1324 
1325 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1326 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1327 
1328 }
1329 
glBlendFunc_enc(void * self,GLenum sfactor,GLenum dfactor)1330 void glBlendFunc_enc(void *self , GLenum sfactor, GLenum dfactor)
1331 {
1332 	ENCODER_DEBUG_LOG("glBlendFunc(sfactor:0x%08x, dfactor:0x%08x)", sfactor, dfactor);
1333 	AEMU_SCOPED_TRACE("glBlendFunc encode");
1334 
1335 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1336 	IOStream *stream = ctx->m_stream;
1337 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1338 	bool useChecksum = checksumCalculator->getVersion() > 0;
1339 
1340 	 unsigned char *ptr;
1341 	 unsigned char *buf;
1342 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
1343 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1344 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1345 	buf = stream->alloc(totalSize);
1346 	ptr = buf;
1347 	int tmp = OP_glBlendFunc;memcpy(ptr, &tmp, 4); ptr += 4;
1348 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1349 
1350 		memcpy(ptr, &sfactor, 4); ptr += 4;
1351 		memcpy(ptr, &dfactor, 4); ptr += 4;
1352 
1353 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1354 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1355 
1356 }
1357 
glBufferData_enc(void * self,GLenum target,GLsizeiptr size,const GLvoid * data,GLenum usage)1358 void glBufferData_enc(void *self , GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
1359 {
1360 	ENCODER_DEBUG_LOG("glBufferData(target:0x%08x, size:0x%08lx, data:0x%08x, usage:0x%08x)", target, size, data, usage);
1361 	AEMU_SCOPED_TRACE("glBufferData encode");
1362 
1363 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1364 	IOStream *stream = ctx->m_stream;
1365 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1366 	bool useChecksum = checksumCalculator->getVersion() > 0;
1367 
1368 	const unsigned int __size_data = ((data != NULL) ?  size : 0);
1369 	 unsigned char *ptr;
1370 	 unsigned char *buf;
1371 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_data + 4 + 1*4;
1372 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1373 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1374 	buf = stream->alloc(totalSize);
1375 	ptr = buf;
1376 	int tmp = OP_glBufferData;memcpy(ptr, &tmp, 4); ptr += 4;
1377 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1378 
1379 		memcpy(ptr, &target, 4); ptr += 4;
1380 		memcpy(ptr, &size, 4); ptr += 4;
1381 	memcpy(ptr, &__size_data, 4); ptr += 4;
1382 	if (data != NULL) memcpy(ptr, data, __size_data);ptr += __size_data;
1383 		memcpy(ptr, &usage, 4); ptr += 4;
1384 
1385 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1386 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1387 
1388 }
1389 
glBufferSubData_enc(void * self,GLenum target,GLintptr offset,GLsizeiptr size,const GLvoid * data)1390 void glBufferSubData_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
1391 {
1392 	ENCODER_DEBUG_LOG("glBufferSubData(target:0x%08x, offset:0x%08lx, size:0x%08lx, data:0x%08x)", target, offset, size, data);
1393 	AEMU_SCOPED_TRACE("glBufferSubData encode");
1394 
1395 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1396 	IOStream *stream = ctx->m_stream;
1397 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1398 	bool useChecksum = checksumCalculator->getVersion() > 0;
1399 
1400 	const unsigned int __size_data = ((data != NULL) ?  size : 0);
1401 	 unsigned char *ptr;
1402 	 unsigned char *buf;
1403 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 1*4;
1404 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1405 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1406 	buf = stream->alloc(totalSize);
1407 	ptr = buf;
1408 	int tmp = OP_glBufferSubData;memcpy(ptr, &tmp, 4); ptr += 4;
1409 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1410 
1411 		memcpy(ptr, &target, 4); ptr += 4;
1412 		memcpy(ptr, &offset, 4); ptr += 4;
1413 		memcpy(ptr, &size, 4); ptr += 4;
1414 	memcpy(ptr, &__size_data, 4); ptr += 4;
1415 	if (data != NULL) memcpy(ptr, data, __size_data);ptr += __size_data;
1416 
1417 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1418 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1419 
1420 }
1421 
glClear_enc(void * self,GLbitfield mask)1422 void glClear_enc(void *self , GLbitfield mask)
1423 {
1424 	ENCODER_DEBUG_LOG("glClear(mask:0x%08x)", mask);
1425 	AEMU_SCOPED_TRACE("glClear encode");
1426 
1427 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1428 	IOStream *stream = ctx->m_stream;
1429 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1430 	bool useChecksum = checksumCalculator->getVersion() > 0;
1431 
1432 	 unsigned char *ptr;
1433 	 unsigned char *buf;
1434 	 const size_t sizeWithoutChecksum = 8 + 4;
1435 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1436 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1437 	buf = stream->alloc(totalSize);
1438 	ptr = buf;
1439 	int tmp = OP_glClear;memcpy(ptr, &tmp, 4); ptr += 4;
1440 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1441 
1442 		memcpy(ptr, &mask, 4); ptr += 4;
1443 
1444 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1445 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1446 
1447 }
1448 
glClearColorx_enc(void * self,GLclampx red,GLclampx green,GLclampx blue,GLclampx alpha)1449 void glClearColorx_enc(void *self , GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
1450 {
1451 	ENCODER_DEBUG_LOG("glClearColorx(red:0x%08x, green:0x%08x, blue:0x%08x, alpha:0x%08x)", red, green, blue, alpha);
1452 	AEMU_SCOPED_TRACE("glClearColorx encode");
1453 
1454 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1455 	IOStream *stream = ctx->m_stream;
1456 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1457 	bool useChecksum = checksumCalculator->getVersion() > 0;
1458 
1459 	 unsigned char *ptr;
1460 	 unsigned char *buf;
1461 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
1462 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1463 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1464 	buf = stream->alloc(totalSize);
1465 	ptr = buf;
1466 	int tmp = OP_glClearColorx;memcpy(ptr, &tmp, 4); ptr += 4;
1467 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1468 
1469 		memcpy(ptr, &red, 4); ptr += 4;
1470 		memcpy(ptr, &green, 4); ptr += 4;
1471 		memcpy(ptr, &blue, 4); ptr += 4;
1472 		memcpy(ptr, &alpha, 4); ptr += 4;
1473 
1474 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1475 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1476 
1477 }
1478 
glClearDepthx_enc(void * self,GLclampx depth)1479 void glClearDepthx_enc(void *self , GLclampx depth)
1480 {
1481 	ENCODER_DEBUG_LOG("glClearDepthx(depth:0x%08x)", depth);
1482 	AEMU_SCOPED_TRACE("glClearDepthx encode");
1483 
1484 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1485 	IOStream *stream = ctx->m_stream;
1486 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1487 	bool useChecksum = checksumCalculator->getVersion() > 0;
1488 
1489 	 unsigned char *ptr;
1490 	 unsigned char *buf;
1491 	 const size_t sizeWithoutChecksum = 8 + 4;
1492 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1493 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1494 	buf = stream->alloc(totalSize);
1495 	ptr = buf;
1496 	int tmp = OP_glClearDepthx;memcpy(ptr, &tmp, 4); ptr += 4;
1497 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1498 
1499 		memcpy(ptr, &depth, 4); ptr += 4;
1500 
1501 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1502 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1503 
1504 }
1505 
glClearStencil_enc(void * self,GLint s)1506 void glClearStencil_enc(void *self , GLint s)
1507 {
1508 	ENCODER_DEBUG_LOG("glClearStencil(s:%d)", s);
1509 	AEMU_SCOPED_TRACE("glClearStencil encode");
1510 
1511 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1512 	IOStream *stream = ctx->m_stream;
1513 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1514 	bool useChecksum = checksumCalculator->getVersion() > 0;
1515 
1516 	 unsigned char *ptr;
1517 	 unsigned char *buf;
1518 	 const size_t sizeWithoutChecksum = 8 + 4;
1519 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1520 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1521 	buf = stream->alloc(totalSize);
1522 	ptr = buf;
1523 	int tmp = OP_glClearStencil;memcpy(ptr, &tmp, 4); ptr += 4;
1524 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1525 
1526 		memcpy(ptr, &s, 4); ptr += 4;
1527 
1528 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1529 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1530 
1531 }
1532 
glClientActiveTexture_enc(void * self,GLenum texture)1533 void glClientActiveTexture_enc(void *self , GLenum texture)
1534 {
1535 	ENCODER_DEBUG_LOG("glClientActiveTexture(texture:0x%08x)", texture);
1536 	AEMU_SCOPED_TRACE("glClientActiveTexture encode");
1537 
1538 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1539 	IOStream *stream = ctx->m_stream;
1540 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1541 	bool useChecksum = checksumCalculator->getVersion() > 0;
1542 
1543 	 unsigned char *ptr;
1544 	 unsigned char *buf;
1545 	 const size_t sizeWithoutChecksum = 8 + 4;
1546 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1547 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1548 	buf = stream->alloc(totalSize);
1549 	ptr = buf;
1550 	int tmp = OP_glClientActiveTexture;memcpy(ptr, &tmp, 4); ptr += 4;
1551 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1552 
1553 		memcpy(ptr, &texture, 4); ptr += 4;
1554 
1555 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1556 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1557 
1558 }
1559 
glColor4ub_enc(void * self,GLubyte red,GLubyte green,GLubyte blue,GLubyte alpha)1560 void glColor4ub_enc(void *self , GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
1561 {
1562 	ENCODER_DEBUG_LOG("glColor4ub(red:0x%02x, green:0x%02x, blue:0x%02x, alpha:0x%02x)", red, green, blue, alpha);
1563 	AEMU_SCOPED_TRACE("glColor4ub encode");
1564 
1565 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1566 	IOStream *stream = ctx->m_stream;
1567 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1568 	bool useChecksum = checksumCalculator->getVersion() > 0;
1569 
1570 	 unsigned char *ptr;
1571 	 unsigned char *buf;
1572 	 const size_t sizeWithoutChecksum = 8 + 1 + 1 + 1 + 1;
1573 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1574 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1575 	buf = stream->alloc(totalSize);
1576 	ptr = buf;
1577 	int tmp = OP_glColor4ub;memcpy(ptr, &tmp, 4); ptr += 4;
1578 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1579 
1580 		memcpy(ptr, &red, 1); ptr += 1;
1581 		memcpy(ptr, &green, 1); ptr += 1;
1582 		memcpy(ptr, &blue, 1); ptr += 1;
1583 		memcpy(ptr, &alpha, 1); ptr += 1;
1584 
1585 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1586 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1587 
1588 }
1589 
glColor4x_enc(void * self,GLfixed red,GLfixed green,GLfixed blue,GLfixed alpha)1590 void glColor4x_enc(void *self , GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
1591 {
1592 	ENCODER_DEBUG_LOG("glColor4x(red:0x%08x, green:0x%08x, blue:0x%08x, alpha:0x%08x)", red, green, blue, alpha);
1593 	AEMU_SCOPED_TRACE("glColor4x encode");
1594 
1595 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1596 	IOStream *stream = ctx->m_stream;
1597 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1598 	bool useChecksum = checksumCalculator->getVersion() > 0;
1599 
1600 	 unsigned char *ptr;
1601 	 unsigned char *buf;
1602 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
1603 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1604 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1605 	buf = stream->alloc(totalSize);
1606 	ptr = buf;
1607 	int tmp = OP_glColor4x;memcpy(ptr, &tmp, 4); ptr += 4;
1608 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1609 
1610 		memcpy(ptr, &red, 4); ptr += 4;
1611 		memcpy(ptr, &green, 4); ptr += 4;
1612 		memcpy(ptr, &blue, 4); ptr += 4;
1613 		memcpy(ptr, &alpha, 4); ptr += 4;
1614 
1615 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1616 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1617 
1618 }
1619 
glColorMask_enc(void * self,GLboolean red,GLboolean green,GLboolean blue,GLboolean alpha)1620 void glColorMask_enc(void *self , GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
1621 {
1622 	ENCODER_DEBUG_LOG("glColorMask(red:%d, green:%d, blue:%d, alpha:%d)", red, green, blue, alpha);
1623 	AEMU_SCOPED_TRACE("glColorMask encode");
1624 
1625 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1626 	IOStream *stream = ctx->m_stream;
1627 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1628 	bool useChecksum = checksumCalculator->getVersion() > 0;
1629 
1630 	 unsigned char *ptr;
1631 	 unsigned char *buf;
1632 	 const size_t sizeWithoutChecksum = 8 + 1 + 1 + 1 + 1;
1633 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1634 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1635 	buf = stream->alloc(totalSize);
1636 	ptr = buf;
1637 	int tmp = OP_glColorMask;memcpy(ptr, &tmp, 4); ptr += 4;
1638 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1639 
1640 		memcpy(ptr, &red, 1); ptr += 1;
1641 		memcpy(ptr, &green, 1); ptr += 1;
1642 		memcpy(ptr, &blue, 1); ptr += 1;
1643 		memcpy(ptr, &alpha, 1); ptr += 1;
1644 
1645 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1646 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1647 
1648 }
1649 
glCompressedTexImage2D_enc(void * self,GLenum target,GLint level,GLenum internalformat,GLsizei width,GLsizei height,GLint border,GLsizei imageSize,const GLvoid * data)1650 void glCompressedTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
1651 {
1652 	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);
1653 	AEMU_SCOPED_TRACE("glCompressedTexImage2D encode");
1654 
1655 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1656 	IOStream *stream = ctx->m_stream;
1657 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1658 	bool useChecksum = checksumCalculator->getVersion() > 0;
1659 
1660 	const unsigned int __size_data = ((data != NULL) ?  imageSize : 0);
1661 	 unsigned char *ptr;
1662 	 unsigned char *buf;
1663 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
1664 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1665 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1666 	buf = stream->alloc(totalSize);
1667 	ptr = buf;
1668 	int tmp = OP_glCompressedTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
1669 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1670 
1671 		memcpy(ptr, &target, 4); ptr += 4;
1672 		memcpy(ptr, &level, 4); ptr += 4;
1673 		memcpy(ptr, &internalformat, 4); ptr += 4;
1674 		memcpy(ptr, &width, 4); ptr += 4;
1675 		memcpy(ptr, &height, 4); ptr += 4;
1676 		memcpy(ptr, &border, 4); ptr += 4;
1677 		memcpy(ptr, &imageSize, 4); ptr += 4;
1678 	memcpy(ptr, &__size_data, 4); ptr += 4;
1679 	if (data != NULL) memcpy(ptr, data, __size_data);ptr += __size_data;
1680 
1681 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1682 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1683 
1684 }
1685 
glCompressedTexSubImage2D_enc(void * self,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLsizei width,GLsizei height,GLenum format,GLsizei imageSize,const GLvoid * data)1686 void glCompressedTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
1687 {
1688 	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);
1689 	AEMU_SCOPED_TRACE("glCompressedTexSubImage2D encode");
1690 
1691 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1692 	IOStream *stream = ctx->m_stream;
1693 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1694 	bool useChecksum = checksumCalculator->getVersion() > 0;
1695 
1696 	const unsigned int __size_data = ((data != NULL) ?  imageSize : 0);
1697 	 unsigned char *ptr;
1698 	 unsigned char *buf;
1699 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
1700 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1701 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1702 	buf = stream->alloc(totalSize);
1703 	ptr = buf;
1704 	int tmp = OP_glCompressedTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
1705 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1706 
1707 		memcpy(ptr, &target, 4); ptr += 4;
1708 		memcpy(ptr, &level, 4); ptr += 4;
1709 		memcpy(ptr, &xoffset, 4); ptr += 4;
1710 		memcpy(ptr, &yoffset, 4); ptr += 4;
1711 		memcpy(ptr, &width, 4); ptr += 4;
1712 		memcpy(ptr, &height, 4); ptr += 4;
1713 		memcpy(ptr, &format, 4); ptr += 4;
1714 		memcpy(ptr, &imageSize, 4); ptr += 4;
1715 	memcpy(ptr, &__size_data, 4); ptr += 4;
1716 	if (data != NULL) memcpy(ptr, data, __size_data);ptr += __size_data;
1717 
1718 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1719 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1720 
1721 }
1722 
glCopyTexImage2D_enc(void * self,GLenum target,GLint level,GLenum internalformat,GLint x,GLint y,GLsizei width,GLsizei height,GLint border)1723 void glCopyTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
1724 {
1725 	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);
1726 	AEMU_SCOPED_TRACE("glCopyTexImage2D encode");
1727 
1728 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1729 	IOStream *stream = ctx->m_stream;
1730 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1731 	bool useChecksum = checksumCalculator->getVersion() > 0;
1732 
1733 	 unsigned char *ptr;
1734 	 unsigned char *buf;
1735 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
1736 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1737 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1738 	buf = stream->alloc(totalSize);
1739 	ptr = buf;
1740 	int tmp = OP_glCopyTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
1741 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1742 
1743 		memcpy(ptr, &target, 4); ptr += 4;
1744 		memcpy(ptr, &level, 4); ptr += 4;
1745 		memcpy(ptr, &internalformat, 4); ptr += 4;
1746 		memcpy(ptr, &x, 4); ptr += 4;
1747 		memcpy(ptr, &y, 4); ptr += 4;
1748 		memcpy(ptr, &width, 4); ptr += 4;
1749 		memcpy(ptr, &height, 4); ptr += 4;
1750 		memcpy(ptr, &border, 4); ptr += 4;
1751 
1752 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1753 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1754 
1755 }
1756 
glCopyTexSubImage2D_enc(void * self,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLint x,GLint y,GLsizei width,GLsizei height)1757 void glCopyTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
1758 {
1759 	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);
1760 	AEMU_SCOPED_TRACE("glCopyTexSubImage2D encode");
1761 
1762 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1763 	IOStream *stream = ctx->m_stream;
1764 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1765 	bool useChecksum = checksumCalculator->getVersion() > 0;
1766 
1767 	 unsigned char *ptr;
1768 	 unsigned char *buf;
1769 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
1770 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1771 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1772 	buf = stream->alloc(totalSize);
1773 	ptr = buf;
1774 	int tmp = OP_glCopyTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
1775 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1776 
1777 		memcpy(ptr, &target, 4); ptr += 4;
1778 		memcpy(ptr, &level, 4); ptr += 4;
1779 		memcpy(ptr, &xoffset, 4); ptr += 4;
1780 		memcpy(ptr, &yoffset, 4); ptr += 4;
1781 		memcpy(ptr, &x, 4); ptr += 4;
1782 		memcpy(ptr, &y, 4); ptr += 4;
1783 		memcpy(ptr, &width, 4); ptr += 4;
1784 		memcpy(ptr, &height, 4); ptr += 4;
1785 
1786 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1787 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1788 
1789 }
1790 
glCullFace_enc(void * self,GLenum mode)1791 void glCullFace_enc(void *self , GLenum mode)
1792 {
1793 	ENCODER_DEBUG_LOG("glCullFace(mode:0x%08x)", mode);
1794 	AEMU_SCOPED_TRACE("glCullFace encode");
1795 
1796 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1797 	IOStream *stream = ctx->m_stream;
1798 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1799 	bool useChecksum = checksumCalculator->getVersion() > 0;
1800 
1801 	 unsigned char *ptr;
1802 	 unsigned char *buf;
1803 	 const size_t sizeWithoutChecksum = 8 + 4;
1804 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1805 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1806 	buf = stream->alloc(totalSize);
1807 	ptr = buf;
1808 	int tmp = OP_glCullFace;memcpy(ptr, &tmp, 4); ptr += 4;
1809 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1810 
1811 		memcpy(ptr, &mode, 4); ptr += 4;
1812 
1813 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1814 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1815 
1816 }
1817 
glDeleteBuffers_enc(void * self,GLsizei n,const GLuint * buffers)1818 void glDeleteBuffers_enc(void *self , GLsizei n, const GLuint* buffers)
1819 {
1820 	ENCODER_DEBUG_LOG("glDeleteBuffers(n:%d, buffers:0x%08x)", n, buffers);
1821 	AEMU_SCOPED_TRACE("glDeleteBuffers encode");
1822 
1823 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1824 	IOStream *stream = ctx->m_stream;
1825 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1826 	bool useChecksum = checksumCalculator->getVersion() > 0;
1827 
1828 	const unsigned int __size_buffers =  (n * sizeof(GLuint));
1829 	 unsigned char *ptr;
1830 	 unsigned char *buf;
1831 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_buffers + 1*4;
1832 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1833 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1834 	buf = stream->alloc(totalSize);
1835 	ptr = buf;
1836 	int tmp = OP_glDeleteBuffers;memcpy(ptr, &tmp, 4); ptr += 4;
1837 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1838 
1839 		memcpy(ptr, &n, 4); ptr += 4;
1840 	memcpy(ptr, &__size_buffers, 4); ptr += 4;
1841 	memcpy(ptr, buffers, __size_buffers);ptr += __size_buffers;
1842 
1843 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1844 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1845 
1846 }
1847 
glDeleteTextures_enc(void * self,GLsizei n,const GLuint * textures)1848 void glDeleteTextures_enc(void *self , GLsizei n, const GLuint* textures)
1849 {
1850 	ENCODER_DEBUG_LOG("glDeleteTextures(n:%d, textures:0x%08x)", n, textures);
1851 	AEMU_SCOPED_TRACE("glDeleteTextures encode");
1852 
1853 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1854 	IOStream *stream = ctx->m_stream;
1855 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1856 	bool useChecksum = checksumCalculator->getVersion() > 0;
1857 
1858 	const unsigned int __size_textures =  (n * sizeof(GLuint));
1859 	 unsigned char *ptr;
1860 	 unsigned char *buf;
1861 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_textures + 1*4;
1862 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1863 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1864 	buf = stream->alloc(totalSize);
1865 	ptr = buf;
1866 	int tmp = OP_glDeleteTextures;memcpy(ptr, &tmp, 4); ptr += 4;
1867 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1868 
1869 		memcpy(ptr, &n, 4); ptr += 4;
1870 	memcpy(ptr, &__size_textures, 4); ptr += 4;
1871 	memcpy(ptr, textures, __size_textures);ptr += __size_textures;
1872 
1873 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1874 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1875 
1876 }
1877 
glDepthFunc_enc(void * self,GLenum func)1878 void glDepthFunc_enc(void *self , GLenum func)
1879 {
1880 	ENCODER_DEBUG_LOG("glDepthFunc(func:0x%08x)", func);
1881 	AEMU_SCOPED_TRACE("glDepthFunc encode");
1882 
1883 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1884 	IOStream *stream = ctx->m_stream;
1885 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1886 	bool useChecksum = checksumCalculator->getVersion() > 0;
1887 
1888 	 unsigned char *ptr;
1889 	 unsigned char *buf;
1890 	 const size_t sizeWithoutChecksum = 8 + 4;
1891 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1892 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1893 	buf = stream->alloc(totalSize);
1894 	ptr = buf;
1895 	int tmp = OP_glDepthFunc;memcpy(ptr, &tmp, 4); ptr += 4;
1896 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1897 
1898 		memcpy(ptr, &func, 4); ptr += 4;
1899 
1900 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1901 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1902 
1903 }
1904 
glDepthMask_enc(void * self,GLboolean flag)1905 void glDepthMask_enc(void *self , GLboolean flag)
1906 {
1907 	ENCODER_DEBUG_LOG("glDepthMask(flag:%d)", flag);
1908 	AEMU_SCOPED_TRACE("glDepthMask encode");
1909 
1910 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1911 	IOStream *stream = ctx->m_stream;
1912 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1913 	bool useChecksum = checksumCalculator->getVersion() > 0;
1914 
1915 	 unsigned char *ptr;
1916 	 unsigned char *buf;
1917 	 const size_t sizeWithoutChecksum = 8 + 1;
1918 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1919 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1920 	buf = stream->alloc(totalSize);
1921 	ptr = buf;
1922 	int tmp = OP_glDepthMask;memcpy(ptr, &tmp, 4); ptr += 4;
1923 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1924 
1925 		memcpy(ptr, &flag, 1); ptr += 1;
1926 
1927 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1928 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1929 
1930 }
1931 
glDepthRangex_enc(void * self,GLclampx zNear,GLclampx zFar)1932 void glDepthRangex_enc(void *self , GLclampx zNear, GLclampx zFar)
1933 {
1934 	ENCODER_DEBUG_LOG("glDepthRangex(zNear:0x%08x, zFar:0x%08x)", zNear, zFar);
1935 	AEMU_SCOPED_TRACE("glDepthRangex encode");
1936 
1937 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1938 	IOStream *stream = ctx->m_stream;
1939 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1940 	bool useChecksum = checksumCalculator->getVersion() > 0;
1941 
1942 	 unsigned char *ptr;
1943 	 unsigned char *buf;
1944 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
1945 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1946 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1947 	buf = stream->alloc(totalSize);
1948 	ptr = buf;
1949 	int tmp = OP_glDepthRangex;memcpy(ptr, &tmp, 4); ptr += 4;
1950 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1951 
1952 		memcpy(ptr, &zNear, 4); ptr += 4;
1953 		memcpy(ptr, &zFar, 4); ptr += 4;
1954 
1955 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1956 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1957 
1958 }
1959 
glDisable_enc(void * self,GLenum cap)1960 void glDisable_enc(void *self , GLenum cap)
1961 {
1962 	ENCODER_DEBUG_LOG("glDisable(cap:0x%08x)", cap);
1963 	AEMU_SCOPED_TRACE("glDisable encode");
1964 
1965 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1966 	IOStream *stream = ctx->m_stream;
1967 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1968 	bool useChecksum = checksumCalculator->getVersion() > 0;
1969 
1970 	 unsigned char *ptr;
1971 	 unsigned char *buf;
1972 	 const size_t sizeWithoutChecksum = 8 + 4;
1973 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
1974 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1975 	buf = stream->alloc(totalSize);
1976 	ptr = buf;
1977 	int tmp = OP_glDisable;memcpy(ptr, &tmp, 4); ptr += 4;
1978 	memcpy(ptr, &totalSize, 4);  ptr += 4;
1979 
1980 		memcpy(ptr, &cap, 4); ptr += 4;
1981 
1982 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1983 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1984 
1985 }
1986 
glDisableClientState_enc(void * self,GLenum array)1987 void glDisableClientState_enc(void *self , GLenum array)
1988 {
1989 	ENCODER_DEBUG_LOG("glDisableClientState(array:0x%08x)", array);
1990 	AEMU_SCOPED_TRACE("glDisableClientState encode");
1991 
1992 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
1993 	IOStream *stream = ctx->m_stream;
1994 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1995 	bool useChecksum = checksumCalculator->getVersion() > 0;
1996 
1997 	 unsigned char *ptr;
1998 	 unsigned char *buf;
1999 	 const size_t sizeWithoutChecksum = 8 + 4;
2000 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2001 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2002 	buf = stream->alloc(totalSize);
2003 	ptr = buf;
2004 	int tmp = OP_glDisableClientState;memcpy(ptr, &tmp, 4); ptr += 4;
2005 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2006 
2007 		memcpy(ptr, &array, 4); ptr += 4;
2008 
2009 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2010 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2011 
2012 }
2013 
glDrawArrays_enc(void * self,GLenum mode,GLint first,GLsizei count)2014 void glDrawArrays_enc(void *self , GLenum mode, GLint first, GLsizei count)
2015 {
2016 	ENCODER_DEBUG_LOG("glDrawArrays(mode:0x%08x, first:%d, count:%d)", mode, first, count);
2017 	AEMU_SCOPED_TRACE("glDrawArrays encode");
2018 
2019 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2020 	IOStream *stream = ctx->m_stream;
2021 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2022 	bool useChecksum = checksumCalculator->getVersion() > 0;
2023 
2024 	 unsigned char *ptr;
2025 	 unsigned char *buf;
2026 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
2027 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2028 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2029 	buf = stream->alloc(totalSize);
2030 	ptr = buf;
2031 	int tmp = OP_glDrawArrays;memcpy(ptr, &tmp, 4); ptr += 4;
2032 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2033 
2034 		memcpy(ptr, &mode, 4); ptr += 4;
2035 		memcpy(ptr, &first, 4); ptr += 4;
2036 		memcpy(ptr, &count, 4); ptr += 4;
2037 
2038 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2039 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2040 
2041 }
2042 
glEnable_enc(void * self,GLenum cap)2043 void glEnable_enc(void *self , GLenum cap)
2044 {
2045 	ENCODER_DEBUG_LOG("glEnable(cap:0x%08x)", cap);
2046 	AEMU_SCOPED_TRACE("glEnable encode");
2047 
2048 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2049 	IOStream *stream = ctx->m_stream;
2050 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2051 	bool useChecksum = checksumCalculator->getVersion() > 0;
2052 
2053 	 unsigned char *ptr;
2054 	 unsigned char *buf;
2055 	 const size_t sizeWithoutChecksum = 8 + 4;
2056 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2057 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2058 	buf = stream->alloc(totalSize);
2059 	ptr = buf;
2060 	int tmp = OP_glEnable;memcpy(ptr, &tmp, 4); ptr += 4;
2061 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2062 
2063 		memcpy(ptr, &cap, 4); ptr += 4;
2064 
2065 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2066 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2067 
2068 }
2069 
glEnableClientState_enc(void * self,GLenum array)2070 void glEnableClientState_enc(void *self , GLenum array)
2071 {
2072 	ENCODER_DEBUG_LOG("glEnableClientState(array:0x%08x)", array);
2073 	AEMU_SCOPED_TRACE("glEnableClientState encode");
2074 
2075 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2076 	IOStream *stream = ctx->m_stream;
2077 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2078 	bool useChecksum = checksumCalculator->getVersion() > 0;
2079 
2080 	 unsigned char *ptr;
2081 	 unsigned char *buf;
2082 	 const size_t sizeWithoutChecksum = 8 + 4;
2083 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2084 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2085 	buf = stream->alloc(totalSize);
2086 	ptr = buf;
2087 	int tmp = OP_glEnableClientState;memcpy(ptr, &tmp, 4); ptr += 4;
2088 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2089 
2090 		memcpy(ptr, &array, 4); ptr += 4;
2091 
2092 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2093 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2094 
2095 }
2096 
glFinish_enc(void * self)2097 void glFinish_enc(void *self )
2098 {
2099 	ENCODER_DEBUG_LOG("glFinish()");
2100 	AEMU_SCOPED_TRACE("glFinish encode");
2101 
2102 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2103 	IOStream *stream = ctx->m_stream;
2104 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2105 	bool useChecksum = checksumCalculator->getVersion() > 0;
2106 
2107 	 unsigned char *ptr;
2108 	 unsigned char *buf;
2109 	 const size_t sizeWithoutChecksum = 8;
2110 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2111 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2112 	buf = stream->alloc(totalSize);
2113 	ptr = buf;
2114 	int tmp = OP_glFinish;memcpy(ptr, &tmp, 4); ptr += 4;
2115 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2116 
2117 
2118 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2119 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2120 
2121 }
2122 
glFlush_enc(void * self)2123 void glFlush_enc(void *self )
2124 {
2125 	ENCODER_DEBUG_LOG("glFlush()");
2126 	AEMU_SCOPED_TRACE("glFlush encode");
2127 
2128 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2129 	IOStream *stream = ctx->m_stream;
2130 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2131 	bool useChecksum = checksumCalculator->getVersion() > 0;
2132 
2133 	 unsigned char *ptr;
2134 	 unsigned char *buf;
2135 	 const size_t sizeWithoutChecksum = 8;
2136 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2137 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2138 	buf = stream->alloc(totalSize);
2139 	ptr = buf;
2140 	int tmp = OP_glFlush;memcpy(ptr, &tmp, 4); ptr += 4;
2141 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2142 
2143 
2144 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2145 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2146 
2147 }
2148 
glFogx_enc(void * self,GLenum pname,GLfixed param)2149 void glFogx_enc(void *self , GLenum pname, GLfixed param)
2150 {
2151 	ENCODER_DEBUG_LOG("glFogx(pname:0x%08x, param:0x%08x)", pname, param);
2152 	AEMU_SCOPED_TRACE("glFogx encode");
2153 
2154 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2155 	IOStream *stream = ctx->m_stream;
2156 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2157 	bool useChecksum = checksumCalculator->getVersion() > 0;
2158 
2159 	 unsigned char *ptr;
2160 	 unsigned char *buf;
2161 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
2162 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2163 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2164 	buf = stream->alloc(totalSize);
2165 	ptr = buf;
2166 	int tmp = OP_glFogx;memcpy(ptr, &tmp, 4); ptr += 4;
2167 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2168 
2169 		memcpy(ptr, &pname, 4); ptr += 4;
2170 		memcpy(ptr, &param, 4); ptr += 4;
2171 
2172 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2173 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2174 
2175 }
2176 
glFogxv_enc(void * self,GLenum pname,const GLfixed * params)2177 void glFogxv_enc(void *self , GLenum pname, const GLfixed* params)
2178 {
2179 	ENCODER_DEBUG_LOG("glFogxv(pname:0x%08x, params:0x%08x)", pname, params);
2180 	AEMU_SCOPED_TRACE("glFogxv encode");
2181 
2182 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2183 	IOStream *stream = ctx->m_stream;
2184 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2185 	bool useChecksum = checksumCalculator->getVersion() > 0;
2186 
2187 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2188 	 unsigned char *ptr;
2189 	 unsigned char *buf;
2190 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
2191 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2192 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2193 	buf = stream->alloc(totalSize);
2194 	ptr = buf;
2195 	int tmp = OP_glFogxv;memcpy(ptr, &tmp, 4); ptr += 4;
2196 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2197 
2198 		memcpy(ptr, &pname, 4); ptr += 4;
2199 	memcpy(ptr, &__size_params, 4); ptr += 4;
2200 	memcpy(ptr, params, __size_params);ptr += __size_params;
2201 
2202 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2203 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2204 
2205 }
2206 
glFrontFace_enc(void * self,GLenum mode)2207 void glFrontFace_enc(void *self , GLenum mode)
2208 {
2209 	ENCODER_DEBUG_LOG("glFrontFace(mode:0x%08x)", mode);
2210 	AEMU_SCOPED_TRACE("glFrontFace encode");
2211 
2212 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2213 	IOStream *stream = ctx->m_stream;
2214 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2215 	bool useChecksum = checksumCalculator->getVersion() > 0;
2216 
2217 	 unsigned char *ptr;
2218 	 unsigned char *buf;
2219 	 const size_t sizeWithoutChecksum = 8 + 4;
2220 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2221 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2222 	buf = stream->alloc(totalSize);
2223 	ptr = buf;
2224 	int tmp = OP_glFrontFace;memcpy(ptr, &tmp, 4); ptr += 4;
2225 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2226 
2227 		memcpy(ptr, &mode, 4); ptr += 4;
2228 
2229 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2230 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2231 
2232 }
2233 
glFrustumx_enc(void * self,GLfixed left,GLfixed right,GLfixed bottom,GLfixed top,GLfixed zNear,GLfixed zFar)2234 void glFrustumx_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
2235 {
2236 	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);
2237 	AEMU_SCOPED_TRACE("glFrustumx encode");
2238 
2239 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2240 	IOStream *stream = ctx->m_stream;
2241 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2242 	bool useChecksum = checksumCalculator->getVersion() > 0;
2243 
2244 	 unsigned char *ptr;
2245 	 unsigned char *buf;
2246 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
2247 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2248 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2249 	buf = stream->alloc(totalSize);
2250 	ptr = buf;
2251 	int tmp = OP_glFrustumx;memcpy(ptr, &tmp, 4); ptr += 4;
2252 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2253 
2254 		memcpy(ptr, &left, 4); ptr += 4;
2255 		memcpy(ptr, &right, 4); ptr += 4;
2256 		memcpy(ptr, &bottom, 4); ptr += 4;
2257 		memcpy(ptr, &top, 4); ptr += 4;
2258 		memcpy(ptr, &zNear, 4); ptr += 4;
2259 		memcpy(ptr, &zFar, 4); ptr += 4;
2260 
2261 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2262 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2263 
2264 }
2265 
glGetBooleanv_enc(void * self,GLenum pname,GLboolean * params)2266 void glGetBooleanv_enc(void *self , GLenum pname, GLboolean* params)
2267 {
2268 	ENCODER_DEBUG_LOG("glGetBooleanv(pname:0x%08x, params:0x%08x)", pname, params);
2269 	AEMU_SCOPED_TRACE("glGetBooleanv encode");
2270 
2271 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2272 	IOStream *stream = ctx->m_stream;
2273 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2274 	bool useChecksum = checksumCalculator->getVersion() > 0;
2275 
2276 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLboolean));
2277 	 unsigned char *ptr;
2278 	 unsigned char *buf;
2279 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
2280 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2281 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2282 	buf = stream->alloc(totalSize);
2283 	ptr = buf;
2284 	int tmp = OP_glGetBooleanv;memcpy(ptr, &tmp, 4); ptr += 4;
2285 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2286 
2287 		memcpy(ptr, &pname, 4); ptr += 4;
2288 	memcpy(ptr, &__size_params, 4); ptr += 4;
2289 
2290 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2291 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2292 
2293 	stream->readback(params, __size_params);
2294 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2295 	if (useChecksum) {
2296 		unsigned char *checksumBufPtr = NULL;
2297 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2298 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2299 		stream->readback(checksumBufPtr, checksumSize);
2300 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2301 			ALOGE("glGetBooleanv: GL communication error, please report this issue to b.android.com.\n");
2302 			abort();
2303 		}
2304 	}
2305 }
2306 
glGetBufferParameteriv_enc(void * self,GLenum target,GLenum pname,GLint * params)2307 void glGetBufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
2308 {
2309 	ENCODER_DEBUG_LOG("glGetBufferParameteriv(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
2310 	AEMU_SCOPED_TRACE("glGetBufferParameteriv encode");
2311 
2312 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2313 	IOStream *stream = ctx->m_stream;
2314 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2315 	bool useChecksum = checksumCalculator->getVersion() > 0;
2316 
2317 	const unsigned int __size_params =  (sizeof(GLint));
2318 	 unsigned char *ptr;
2319 	 unsigned char *buf;
2320 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
2321 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2322 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2323 	buf = stream->alloc(totalSize);
2324 	ptr = buf;
2325 	int tmp = OP_glGetBufferParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
2326 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2327 
2328 		memcpy(ptr, &target, 4); ptr += 4;
2329 		memcpy(ptr, &pname, 4); ptr += 4;
2330 	memcpy(ptr, &__size_params, 4); ptr += 4;
2331 
2332 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2333 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2334 
2335 	stream->readback(params, __size_params);
2336 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2337 	if (useChecksum) {
2338 		unsigned char *checksumBufPtr = NULL;
2339 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2340 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2341 		stream->readback(checksumBufPtr, checksumSize);
2342 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2343 			ALOGE("glGetBufferParameteriv: GL communication error, please report this issue to b.android.com.\n");
2344 			abort();
2345 		}
2346 	}
2347 }
2348 
glClipPlanex_enc(void * self,GLenum pname,const GLfixed * eqn)2349 void glClipPlanex_enc(void *self , GLenum pname, const GLfixed* eqn)
2350 {
2351 	ENCODER_DEBUG_LOG("glClipPlanex(pname:0x%08x, eqn:0x%08x)", pname, eqn);
2352 	AEMU_SCOPED_TRACE("glClipPlanex encode");
2353 
2354 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2355 	IOStream *stream = ctx->m_stream;
2356 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2357 	bool useChecksum = checksumCalculator->getVersion() > 0;
2358 
2359 	const unsigned int __size_eqn =  (4 * sizeof(GLfixed));
2360 	 unsigned char *ptr;
2361 	 unsigned char *buf;
2362 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_eqn + 1*4;
2363 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2364 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2365 	buf = stream->alloc(totalSize);
2366 	ptr = buf;
2367 	int tmp = OP_glClipPlanex;memcpy(ptr, &tmp, 4); ptr += 4;
2368 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2369 
2370 		memcpy(ptr, &pname, 4); ptr += 4;
2371 	memcpy(ptr, &__size_eqn, 4); ptr += 4;
2372 	memcpy(ptr, eqn, __size_eqn);ptr += __size_eqn;
2373 
2374 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2375 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2376 
2377 }
2378 
glGenBuffers_enc(void * self,GLsizei n,GLuint * buffers)2379 void glGenBuffers_enc(void *self , GLsizei n, GLuint* buffers)
2380 {
2381 	ENCODER_DEBUG_LOG("glGenBuffers(n:%d, buffers:0x%08x)", n, buffers);
2382 	AEMU_SCOPED_TRACE("glGenBuffers encode");
2383 
2384 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2385 	IOStream *stream = ctx->m_stream;
2386 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2387 	bool useChecksum = checksumCalculator->getVersion() > 0;
2388 
2389 	const unsigned int __size_buffers =  (n * sizeof(GLuint));
2390 	 unsigned char *ptr;
2391 	 unsigned char *buf;
2392 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
2393 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2394 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2395 	buf = stream->alloc(totalSize);
2396 	ptr = buf;
2397 	int tmp = OP_glGenBuffers;memcpy(ptr, &tmp, 4); ptr += 4;
2398 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2399 
2400 		memcpy(ptr, &n, 4); ptr += 4;
2401 	memcpy(ptr, &__size_buffers, 4); ptr += 4;
2402 
2403 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2404 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2405 
2406 	stream->readback(buffers, __size_buffers);
2407 	if (useChecksum) checksumCalculator->addBuffer(buffers, __size_buffers);
2408 	if (useChecksum) {
2409 		unsigned char *checksumBufPtr = NULL;
2410 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2411 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2412 		stream->readback(checksumBufPtr, checksumSize);
2413 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2414 			ALOGE("glGenBuffers: GL communication error, please report this issue to b.android.com.\n");
2415 			abort();
2416 		}
2417 	}
2418 }
2419 
glGenTextures_enc(void * self,GLsizei n,GLuint * textures)2420 void glGenTextures_enc(void *self , GLsizei n, GLuint* textures)
2421 {
2422 	ENCODER_DEBUG_LOG("glGenTextures(n:%d, textures:0x%08x)", n, textures);
2423 	AEMU_SCOPED_TRACE("glGenTextures encode");
2424 
2425 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2426 	IOStream *stream = ctx->m_stream;
2427 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2428 	bool useChecksum = checksumCalculator->getVersion() > 0;
2429 
2430 	const unsigned int __size_textures =  (n * sizeof(GLuint));
2431 	 unsigned char *ptr;
2432 	 unsigned char *buf;
2433 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
2434 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2435 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2436 	buf = stream->alloc(totalSize);
2437 	ptr = buf;
2438 	int tmp = OP_glGenTextures;memcpy(ptr, &tmp, 4); ptr += 4;
2439 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2440 
2441 		memcpy(ptr, &n, 4); ptr += 4;
2442 	memcpy(ptr, &__size_textures, 4); ptr += 4;
2443 
2444 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2445 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2446 
2447 	stream->readback(textures, __size_textures);
2448 	if (useChecksum) checksumCalculator->addBuffer(textures, __size_textures);
2449 	if (useChecksum) {
2450 		unsigned char *checksumBufPtr = NULL;
2451 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2452 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2453 		stream->readback(checksumBufPtr, checksumSize);
2454 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2455 			ALOGE("glGenTextures: GL communication error, please report this issue to b.android.com.\n");
2456 			abort();
2457 		}
2458 	}
2459 }
2460 
glGetError_enc(void * self)2461 GLenum glGetError_enc(void *self )
2462 {
2463 	ENCODER_DEBUG_LOG("glGetError()");
2464 	AEMU_SCOPED_TRACE("glGetError encode");
2465 
2466 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2467 	IOStream *stream = ctx->m_stream;
2468 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2469 	bool useChecksum = checksumCalculator->getVersion() > 0;
2470 
2471 	 unsigned char *ptr;
2472 	 unsigned char *buf;
2473 	 const size_t sizeWithoutChecksum = 8;
2474 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2475 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2476 	buf = stream->alloc(totalSize);
2477 	ptr = buf;
2478 	int tmp = OP_glGetError;memcpy(ptr, &tmp, 4); ptr += 4;
2479 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2480 
2481 
2482 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2483 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2484 
2485 
2486 	GLenum retval;
2487 	stream->readback(&retval, 4);
2488 	if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
2489 	if (useChecksum) {
2490 		unsigned char *checksumBufPtr = NULL;
2491 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2492 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2493 		stream->readback(checksumBufPtr, checksumSize);
2494 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2495 			ALOGE("glGetError: GL communication error, please report this issue to b.android.com.\n");
2496 			abort();
2497 		}
2498 	}
2499 	return retval;
2500 }
2501 
glGetFixedv_enc(void * self,GLenum pname,GLfixed * params)2502 void glGetFixedv_enc(void *self , GLenum pname, GLfixed* params)
2503 {
2504 	ENCODER_DEBUG_LOG("glGetFixedv(pname:0x%08x, params:0x%08x)", pname, params);
2505 	AEMU_SCOPED_TRACE("glGetFixedv encode");
2506 
2507 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2508 	IOStream *stream = ctx->m_stream;
2509 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2510 	bool useChecksum = checksumCalculator->getVersion() > 0;
2511 
2512 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2513 	 unsigned char *ptr;
2514 	 unsigned char *buf;
2515 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
2516 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2517 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2518 	buf = stream->alloc(totalSize);
2519 	ptr = buf;
2520 	int tmp = OP_glGetFixedv;memcpy(ptr, &tmp, 4); ptr += 4;
2521 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2522 
2523 		memcpy(ptr, &pname, 4); ptr += 4;
2524 	memcpy(ptr, &__size_params, 4); ptr += 4;
2525 
2526 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2527 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2528 
2529 	stream->readback(params, __size_params);
2530 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2531 	if (useChecksum) {
2532 		unsigned char *checksumBufPtr = NULL;
2533 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2534 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2535 		stream->readback(checksumBufPtr, checksumSize);
2536 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2537 			ALOGE("glGetFixedv: GL communication error, please report this issue to b.android.com.\n");
2538 			abort();
2539 		}
2540 	}
2541 }
2542 
glGetIntegerv_enc(void * self,GLenum pname,GLint * params)2543 void glGetIntegerv_enc(void *self , GLenum pname, GLint* params)
2544 {
2545 	ENCODER_DEBUG_LOG("glGetIntegerv(pname:0x%08x, params:0x%08x)", pname, params);
2546 	AEMU_SCOPED_TRACE("glGetIntegerv encode");
2547 
2548 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2549 	IOStream *stream = ctx->m_stream;
2550 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2551 	bool useChecksum = checksumCalculator->getVersion() > 0;
2552 
2553 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
2554 	 unsigned char *ptr;
2555 	 unsigned char *buf;
2556 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
2557 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2558 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2559 	buf = stream->alloc(totalSize);
2560 	ptr = buf;
2561 	int tmp = OP_glGetIntegerv;memcpy(ptr, &tmp, 4); ptr += 4;
2562 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2563 
2564 		memcpy(ptr, &pname, 4); ptr += 4;
2565 	memcpy(ptr, &__size_params, 4); ptr += 4;
2566 
2567 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2568 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2569 
2570 	stream->readback(params, __size_params);
2571 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2572 	if (useChecksum) {
2573 		unsigned char *checksumBufPtr = NULL;
2574 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2575 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2576 		stream->readback(checksumBufPtr, checksumSize);
2577 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2578 			ALOGE("glGetIntegerv: GL communication error, please report this issue to b.android.com.\n");
2579 			abort();
2580 		}
2581 	}
2582 }
2583 
glGetLightxv_enc(void * self,GLenum light,GLenum pname,GLfixed * params)2584 void glGetLightxv_enc(void *self , GLenum light, GLenum pname, GLfixed* params)
2585 {
2586 	ENCODER_DEBUG_LOG("glGetLightxv(light:0x%08x, pname:0x%08x, params:0x%08x)", light, pname, params);
2587 	AEMU_SCOPED_TRACE("glGetLightxv encode");
2588 
2589 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2590 	IOStream *stream = ctx->m_stream;
2591 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2592 	bool useChecksum = checksumCalculator->getVersion() > 0;
2593 
2594 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2595 	 unsigned char *ptr;
2596 	 unsigned char *buf;
2597 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
2598 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2599 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2600 	buf = stream->alloc(totalSize);
2601 	ptr = buf;
2602 	int tmp = OP_glGetLightxv;memcpy(ptr, &tmp, 4); ptr += 4;
2603 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2604 
2605 		memcpy(ptr, &light, 4); ptr += 4;
2606 		memcpy(ptr, &pname, 4); ptr += 4;
2607 	memcpy(ptr, &__size_params, 4); ptr += 4;
2608 
2609 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2610 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2611 
2612 	stream->readback(params, __size_params);
2613 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2614 	if (useChecksum) {
2615 		unsigned char *checksumBufPtr = NULL;
2616 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2617 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2618 		stream->readback(checksumBufPtr, checksumSize);
2619 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2620 			ALOGE("glGetLightxv: GL communication error, please report this issue to b.android.com.\n");
2621 			abort();
2622 		}
2623 	}
2624 }
2625 
glGetMaterialxv_enc(void * self,GLenum face,GLenum pname,GLfixed * params)2626 void glGetMaterialxv_enc(void *self , GLenum face, GLenum pname, GLfixed* params)
2627 {
2628 	ENCODER_DEBUG_LOG("glGetMaterialxv(face:0x%08x, pname:0x%08x, params:0x%08x)", face, pname, params);
2629 	AEMU_SCOPED_TRACE("glGetMaterialxv encode");
2630 
2631 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2632 	IOStream *stream = ctx->m_stream;
2633 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2634 	bool useChecksum = checksumCalculator->getVersion() > 0;
2635 
2636 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2637 	 unsigned char *ptr;
2638 	 unsigned char *buf;
2639 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
2640 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2641 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2642 	buf = stream->alloc(totalSize);
2643 	ptr = buf;
2644 	int tmp = OP_glGetMaterialxv;memcpy(ptr, &tmp, 4); ptr += 4;
2645 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2646 
2647 		memcpy(ptr, &face, 4); ptr += 4;
2648 		memcpy(ptr, &pname, 4); ptr += 4;
2649 	memcpy(ptr, &__size_params, 4); ptr += 4;
2650 
2651 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2652 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2653 
2654 	stream->readback(params, __size_params);
2655 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2656 	if (useChecksum) {
2657 		unsigned char *checksumBufPtr = NULL;
2658 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2659 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2660 		stream->readback(checksumBufPtr, checksumSize);
2661 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2662 			ALOGE("glGetMaterialxv: GL communication error, please report this issue to b.android.com.\n");
2663 			abort();
2664 		}
2665 	}
2666 }
2667 
glGetTexEnviv_enc(void * self,GLenum env,GLenum pname,GLint * params)2668 void glGetTexEnviv_enc(void *self , GLenum env, GLenum pname, GLint* params)
2669 {
2670 	ENCODER_DEBUG_LOG("glGetTexEnviv(env:0x%08x, pname:0x%08x, params:0x%08x)", env, pname, params);
2671 	AEMU_SCOPED_TRACE("glGetTexEnviv encode");
2672 
2673 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2674 	IOStream *stream = ctx->m_stream;
2675 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2676 	bool useChecksum = checksumCalculator->getVersion() > 0;
2677 
2678 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
2679 	 unsigned char *ptr;
2680 	 unsigned char *buf;
2681 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
2682 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2683 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2684 	buf = stream->alloc(totalSize);
2685 	ptr = buf;
2686 	int tmp = OP_glGetTexEnviv;memcpy(ptr, &tmp, 4); ptr += 4;
2687 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2688 
2689 		memcpy(ptr, &env, 4); ptr += 4;
2690 		memcpy(ptr, &pname, 4); ptr += 4;
2691 	memcpy(ptr, &__size_params, 4); ptr += 4;
2692 
2693 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2694 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2695 
2696 	stream->readback(params, __size_params);
2697 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2698 	if (useChecksum) {
2699 		unsigned char *checksumBufPtr = NULL;
2700 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2701 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2702 		stream->readback(checksumBufPtr, checksumSize);
2703 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2704 			ALOGE("glGetTexEnviv: GL communication error, please report this issue to b.android.com.\n");
2705 			abort();
2706 		}
2707 	}
2708 }
2709 
glGetTexEnvxv_enc(void * self,GLenum env,GLenum pname,GLfixed * params)2710 void glGetTexEnvxv_enc(void *self , GLenum env, GLenum pname, GLfixed* params)
2711 {
2712 	ENCODER_DEBUG_LOG("glGetTexEnvxv(env:0x%08x, pname:0x%08x, params:0x%08x)", env, pname, params);
2713 	AEMU_SCOPED_TRACE("glGetTexEnvxv encode");
2714 
2715 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2716 	IOStream *stream = ctx->m_stream;
2717 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2718 	bool useChecksum = checksumCalculator->getVersion() > 0;
2719 
2720 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
2721 	 unsigned char *ptr;
2722 	 unsigned char *buf;
2723 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
2724 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2725 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2726 	buf = stream->alloc(totalSize);
2727 	ptr = buf;
2728 	int tmp = OP_glGetTexEnvxv;memcpy(ptr, &tmp, 4); ptr += 4;
2729 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2730 
2731 		memcpy(ptr, &env, 4); ptr += 4;
2732 		memcpy(ptr, &pname, 4); ptr += 4;
2733 	memcpy(ptr, &__size_params, 4); ptr += 4;
2734 
2735 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2736 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2737 
2738 	stream->readback(params, __size_params);
2739 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2740 	if (useChecksum) {
2741 		unsigned char *checksumBufPtr = NULL;
2742 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2743 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2744 		stream->readback(checksumBufPtr, checksumSize);
2745 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2746 			ALOGE("glGetTexEnvxv: GL communication error, please report this issue to b.android.com.\n");
2747 			abort();
2748 		}
2749 	}
2750 }
2751 
glGetTexParameteriv_enc(void * self,GLenum target,GLenum pname,GLint * params)2752 void glGetTexParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
2753 {
2754 	ENCODER_DEBUG_LOG("glGetTexParameteriv(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
2755 	AEMU_SCOPED_TRACE("glGetTexParameteriv encode");
2756 
2757 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2758 	IOStream *stream = ctx->m_stream;
2759 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2760 	bool useChecksum = checksumCalculator->getVersion() > 0;
2761 
2762 	const unsigned int __size_params =  (sizeof(GLint));
2763 	 unsigned char *ptr;
2764 	 unsigned char *buf;
2765 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
2766 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2767 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2768 	buf = stream->alloc(totalSize);
2769 	ptr = buf;
2770 	int tmp = OP_glGetTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
2771 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2772 
2773 		memcpy(ptr, &target, 4); ptr += 4;
2774 		memcpy(ptr, &pname, 4); ptr += 4;
2775 	memcpy(ptr, &__size_params, 4); ptr += 4;
2776 
2777 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2778 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2779 
2780 	stream->readback(params, __size_params);
2781 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2782 	if (useChecksum) {
2783 		unsigned char *checksumBufPtr = NULL;
2784 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2785 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2786 		stream->readback(checksumBufPtr, checksumSize);
2787 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2788 			ALOGE("glGetTexParameteriv: GL communication error, please report this issue to b.android.com.\n");
2789 			abort();
2790 		}
2791 	}
2792 }
2793 
glGetTexParameterxv_enc(void * self,GLenum target,GLenum pname,GLfixed * params)2794 void glGetTexParameterxv_enc(void *self , GLenum target, GLenum pname, GLfixed* params)
2795 {
2796 	ENCODER_DEBUG_LOG("glGetTexParameterxv(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
2797 	AEMU_SCOPED_TRACE("glGetTexParameterxv encode");
2798 
2799 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2800 	IOStream *stream = ctx->m_stream;
2801 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2802 	bool useChecksum = checksumCalculator->getVersion() > 0;
2803 
2804 	const unsigned int __size_params =  (sizeof(GLfixed));
2805 	 unsigned char *ptr;
2806 	 unsigned char *buf;
2807 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
2808 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2809 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2810 	buf = stream->alloc(totalSize);
2811 	ptr = buf;
2812 	int tmp = OP_glGetTexParameterxv;memcpy(ptr, &tmp, 4); ptr += 4;
2813 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2814 
2815 		memcpy(ptr, &target, 4); ptr += 4;
2816 		memcpy(ptr, &pname, 4); ptr += 4;
2817 	memcpy(ptr, &__size_params, 4); ptr += 4;
2818 
2819 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2820 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2821 
2822 	stream->readback(params, __size_params);
2823 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
2824 	if (useChecksum) {
2825 		unsigned char *checksumBufPtr = NULL;
2826 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2827 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2828 		stream->readback(checksumBufPtr, checksumSize);
2829 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2830 			ALOGE("glGetTexParameterxv: GL communication error, please report this issue to b.android.com.\n");
2831 			abort();
2832 		}
2833 	}
2834 }
2835 
glHint_enc(void * self,GLenum target,GLenum mode)2836 void glHint_enc(void *self , GLenum target, GLenum mode)
2837 {
2838 	ENCODER_DEBUG_LOG("glHint(target:0x%08x, mode:0x%08x)", target, mode);
2839 	AEMU_SCOPED_TRACE("glHint encode");
2840 
2841 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2842 	IOStream *stream = ctx->m_stream;
2843 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2844 	bool useChecksum = checksumCalculator->getVersion() > 0;
2845 
2846 	 unsigned char *ptr;
2847 	 unsigned char *buf;
2848 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
2849 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2850 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2851 	buf = stream->alloc(totalSize);
2852 	ptr = buf;
2853 	int tmp = OP_glHint;memcpy(ptr, &tmp, 4); ptr += 4;
2854 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2855 
2856 		memcpy(ptr, &target, 4); ptr += 4;
2857 		memcpy(ptr, &mode, 4); ptr += 4;
2858 
2859 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2860 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2861 
2862 }
2863 
glIsBuffer_enc(void * self,GLuint buffer)2864 GLboolean glIsBuffer_enc(void *self , GLuint buffer)
2865 {
2866 	ENCODER_DEBUG_LOG("glIsBuffer(buffer:%u)", buffer);
2867 	AEMU_SCOPED_TRACE("glIsBuffer encode");
2868 
2869 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2870 	IOStream *stream = ctx->m_stream;
2871 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2872 	bool useChecksum = checksumCalculator->getVersion() > 0;
2873 
2874 	 unsigned char *ptr;
2875 	 unsigned char *buf;
2876 	 const size_t sizeWithoutChecksum = 8 + 4;
2877 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2878 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2879 	buf = stream->alloc(totalSize);
2880 	ptr = buf;
2881 	int tmp = OP_glIsBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
2882 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2883 
2884 		memcpy(ptr, &buffer, 4); ptr += 4;
2885 
2886 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2887 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2888 
2889 
2890 	GLboolean retval;
2891 	stream->readback(&retval, 1);
2892 	if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2893 	if (useChecksum) {
2894 		unsigned char *checksumBufPtr = NULL;
2895 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2896 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2897 		stream->readback(checksumBufPtr, checksumSize);
2898 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2899 			ALOGE("glIsBuffer: GL communication error, please report this issue to b.android.com.\n");
2900 			abort();
2901 		}
2902 	}
2903 	return retval;
2904 }
2905 
glIsEnabled_enc(void * self,GLenum cap)2906 GLboolean glIsEnabled_enc(void *self , GLenum cap)
2907 {
2908 	ENCODER_DEBUG_LOG("glIsEnabled(cap:0x%08x)", cap);
2909 	AEMU_SCOPED_TRACE("glIsEnabled encode");
2910 
2911 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2912 	IOStream *stream = ctx->m_stream;
2913 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2914 	bool useChecksum = checksumCalculator->getVersion() > 0;
2915 
2916 	 unsigned char *ptr;
2917 	 unsigned char *buf;
2918 	 const size_t sizeWithoutChecksum = 8 + 4;
2919 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2920 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2921 	buf = stream->alloc(totalSize);
2922 	ptr = buf;
2923 	int tmp = OP_glIsEnabled;memcpy(ptr, &tmp, 4); ptr += 4;
2924 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2925 
2926 		memcpy(ptr, &cap, 4); ptr += 4;
2927 
2928 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2929 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2930 
2931 
2932 	GLboolean retval;
2933 	stream->readback(&retval, 1);
2934 	if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2935 	if (useChecksum) {
2936 		unsigned char *checksumBufPtr = NULL;
2937 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2938 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2939 		stream->readback(checksumBufPtr, checksumSize);
2940 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2941 			ALOGE("glIsEnabled: GL communication error, please report this issue to b.android.com.\n");
2942 			abort();
2943 		}
2944 	}
2945 	return retval;
2946 }
2947 
glIsTexture_enc(void * self,GLuint texture)2948 GLboolean glIsTexture_enc(void *self , GLuint texture)
2949 {
2950 	ENCODER_DEBUG_LOG("glIsTexture(texture:%u)", texture);
2951 	AEMU_SCOPED_TRACE("glIsTexture encode");
2952 
2953 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2954 	IOStream *stream = ctx->m_stream;
2955 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2956 	bool useChecksum = checksumCalculator->getVersion() > 0;
2957 
2958 	 unsigned char *ptr;
2959 	 unsigned char *buf;
2960 	 const size_t sizeWithoutChecksum = 8 + 4;
2961 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
2962 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
2963 	buf = stream->alloc(totalSize);
2964 	ptr = buf;
2965 	int tmp = OP_glIsTexture;memcpy(ptr, &tmp, 4); ptr += 4;
2966 	memcpy(ptr, &totalSize, 4);  ptr += 4;
2967 
2968 		memcpy(ptr, &texture, 4); ptr += 4;
2969 
2970 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
2971 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
2972 
2973 
2974 	GLboolean retval;
2975 	stream->readback(&retval, 1);
2976 	if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
2977 	if (useChecksum) {
2978 		unsigned char *checksumBufPtr = NULL;
2979 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
2980 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
2981 		stream->readback(checksumBufPtr, checksumSize);
2982 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
2983 			ALOGE("glIsTexture: GL communication error, please report this issue to b.android.com.\n");
2984 			abort();
2985 		}
2986 	}
2987 	return retval;
2988 }
2989 
glLightModelx_enc(void * self,GLenum pname,GLfixed param)2990 void glLightModelx_enc(void *self , GLenum pname, GLfixed param)
2991 {
2992 	ENCODER_DEBUG_LOG("glLightModelx(pname:0x%08x, param:0x%08x)", pname, param);
2993 	AEMU_SCOPED_TRACE("glLightModelx encode");
2994 
2995 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
2996 	IOStream *stream = ctx->m_stream;
2997 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
2998 	bool useChecksum = checksumCalculator->getVersion() > 0;
2999 
3000 	 unsigned char *ptr;
3001 	 unsigned char *buf;
3002 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
3003 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3004 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3005 	buf = stream->alloc(totalSize);
3006 	ptr = buf;
3007 	int tmp = OP_glLightModelx;memcpy(ptr, &tmp, 4); ptr += 4;
3008 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3009 
3010 		memcpy(ptr, &pname, 4); ptr += 4;
3011 		memcpy(ptr, &param, 4); ptr += 4;
3012 
3013 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3014 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3015 
3016 }
3017 
glLightModelxv_enc(void * self,GLenum pname,const GLfixed * params)3018 void glLightModelxv_enc(void *self , GLenum pname, const GLfixed* params)
3019 {
3020 	ENCODER_DEBUG_LOG("glLightModelxv(pname:0x%08x, params:0x%08x)", pname, params);
3021 	AEMU_SCOPED_TRACE("glLightModelxv encode");
3022 
3023 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3024 	IOStream *stream = ctx->m_stream;
3025 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3026 	bool useChecksum = checksumCalculator->getVersion() > 0;
3027 
3028 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
3029 	 unsigned char *ptr;
3030 	 unsigned char *buf;
3031 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
3032 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3033 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3034 	buf = stream->alloc(totalSize);
3035 	ptr = buf;
3036 	int tmp = OP_glLightModelxv;memcpy(ptr, &tmp, 4); ptr += 4;
3037 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3038 
3039 		memcpy(ptr, &pname, 4); ptr += 4;
3040 	memcpy(ptr, &__size_params, 4); ptr += 4;
3041 	memcpy(ptr, params, __size_params);ptr += __size_params;
3042 
3043 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3044 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3045 
3046 }
3047 
glLightx_enc(void * self,GLenum light,GLenum pname,GLfixed param)3048 void glLightx_enc(void *self , GLenum light, GLenum pname, GLfixed param)
3049 {
3050 	ENCODER_DEBUG_LOG("glLightx(light:0x%08x, pname:0x%08x, param:0x%08x)", light, pname, param);
3051 	AEMU_SCOPED_TRACE("glLightx encode");
3052 
3053 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3054 	IOStream *stream = ctx->m_stream;
3055 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3056 	bool useChecksum = checksumCalculator->getVersion() > 0;
3057 
3058 	 unsigned char *ptr;
3059 	 unsigned char *buf;
3060 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3061 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3062 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3063 	buf = stream->alloc(totalSize);
3064 	ptr = buf;
3065 	int tmp = OP_glLightx;memcpy(ptr, &tmp, 4); ptr += 4;
3066 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3067 
3068 		memcpy(ptr, &light, 4); ptr += 4;
3069 		memcpy(ptr, &pname, 4); ptr += 4;
3070 		memcpy(ptr, &param, 4); ptr += 4;
3071 
3072 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3073 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3074 
3075 }
3076 
glLightxv_enc(void * self,GLenum light,GLenum pname,const GLfixed * params)3077 void glLightxv_enc(void *self , GLenum light, GLenum pname, const GLfixed* params)
3078 {
3079 	ENCODER_DEBUG_LOG("glLightxv(light:0x%08x, pname:0x%08x, params:0x%08x)", light, pname, params);
3080 	AEMU_SCOPED_TRACE("glLightxv encode");
3081 
3082 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3083 	IOStream *stream = ctx->m_stream;
3084 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3085 	bool useChecksum = checksumCalculator->getVersion() > 0;
3086 
3087 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
3088 	 unsigned char *ptr;
3089 	 unsigned char *buf;
3090 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
3091 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3092 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3093 	buf = stream->alloc(totalSize);
3094 	ptr = buf;
3095 	int tmp = OP_glLightxv;memcpy(ptr, &tmp, 4); ptr += 4;
3096 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3097 
3098 		memcpy(ptr, &light, 4); ptr += 4;
3099 		memcpy(ptr, &pname, 4); ptr += 4;
3100 	memcpy(ptr, &__size_params, 4); ptr += 4;
3101 	memcpy(ptr, params, __size_params);ptr += __size_params;
3102 
3103 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3104 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3105 
3106 }
3107 
glLineWidthx_enc(void * self,GLfixed width)3108 void glLineWidthx_enc(void *self , GLfixed width)
3109 {
3110 	ENCODER_DEBUG_LOG("glLineWidthx(width:0x%08x)", width);
3111 	AEMU_SCOPED_TRACE("glLineWidthx encode");
3112 
3113 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3114 	IOStream *stream = ctx->m_stream;
3115 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3116 	bool useChecksum = checksumCalculator->getVersion() > 0;
3117 
3118 	 unsigned char *ptr;
3119 	 unsigned char *buf;
3120 	 const size_t sizeWithoutChecksum = 8 + 4;
3121 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3122 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3123 	buf = stream->alloc(totalSize);
3124 	ptr = buf;
3125 	int tmp = OP_glLineWidthx;memcpy(ptr, &tmp, 4); ptr += 4;
3126 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3127 
3128 		memcpy(ptr, &width, 4); ptr += 4;
3129 
3130 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3131 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3132 
3133 }
3134 
glLoadIdentity_enc(void * self)3135 void glLoadIdentity_enc(void *self )
3136 {
3137 	ENCODER_DEBUG_LOG("glLoadIdentity()");
3138 	AEMU_SCOPED_TRACE("glLoadIdentity encode");
3139 
3140 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3141 	IOStream *stream = ctx->m_stream;
3142 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3143 	bool useChecksum = checksumCalculator->getVersion() > 0;
3144 
3145 	 unsigned char *ptr;
3146 	 unsigned char *buf;
3147 	 const size_t sizeWithoutChecksum = 8;
3148 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3149 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3150 	buf = stream->alloc(totalSize);
3151 	ptr = buf;
3152 	int tmp = OP_glLoadIdentity;memcpy(ptr, &tmp, 4); ptr += 4;
3153 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3154 
3155 
3156 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3157 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3158 
3159 }
3160 
glLoadMatrixx_enc(void * self,const GLfixed * m)3161 void glLoadMatrixx_enc(void *self , const GLfixed* m)
3162 {
3163 	ENCODER_DEBUG_LOG("glLoadMatrixx(m:0x%08x)", m);
3164 	AEMU_SCOPED_TRACE("glLoadMatrixx encode");
3165 
3166 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3167 	IOStream *stream = ctx->m_stream;
3168 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3169 	bool useChecksum = checksumCalculator->getVersion() > 0;
3170 
3171 	const unsigned int __size_m =  (16 * sizeof(GLfixed));
3172 	 unsigned char *ptr;
3173 	 unsigned char *buf;
3174 	 const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
3175 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3176 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3177 	buf = stream->alloc(totalSize);
3178 	ptr = buf;
3179 	int tmp = OP_glLoadMatrixx;memcpy(ptr, &tmp, 4); ptr += 4;
3180 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3181 
3182 	memcpy(ptr, &__size_m, 4); ptr += 4;
3183 	memcpy(ptr, m, __size_m);ptr += __size_m;
3184 
3185 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3186 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3187 
3188 }
3189 
glLogicOp_enc(void * self,GLenum opcode)3190 void glLogicOp_enc(void *self , GLenum opcode)
3191 {
3192 	ENCODER_DEBUG_LOG("glLogicOp(opcode:0x%08x)", opcode);
3193 	AEMU_SCOPED_TRACE("glLogicOp encode");
3194 
3195 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3196 	IOStream *stream = ctx->m_stream;
3197 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3198 	bool useChecksum = checksumCalculator->getVersion() > 0;
3199 
3200 	 unsigned char *ptr;
3201 	 unsigned char *buf;
3202 	 const size_t sizeWithoutChecksum = 8 + 4;
3203 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3204 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3205 	buf = stream->alloc(totalSize);
3206 	ptr = buf;
3207 	int tmp = OP_glLogicOp;memcpy(ptr, &tmp, 4); ptr += 4;
3208 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3209 
3210 		memcpy(ptr, &opcode, 4); ptr += 4;
3211 
3212 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3213 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3214 
3215 }
3216 
glMaterialx_enc(void * self,GLenum face,GLenum pname,GLfixed param)3217 void glMaterialx_enc(void *self , GLenum face, GLenum pname, GLfixed param)
3218 {
3219 	ENCODER_DEBUG_LOG("glMaterialx(face:0x%08x, pname:0x%08x, param:0x%08x)", face, pname, param);
3220 	AEMU_SCOPED_TRACE("glMaterialx encode");
3221 
3222 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3223 	IOStream *stream = ctx->m_stream;
3224 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3225 	bool useChecksum = checksumCalculator->getVersion() > 0;
3226 
3227 	 unsigned char *ptr;
3228 	 unsigned char *buf;
3229 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3230 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3231 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3232 	buf = stream->alloc(totalSize);
3233 	ptr = buf;
3234 	int tmp = OP_glMaterialx;memcpy(ptr, &tmp, 4); ptr += 4;
3235 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3236 
3237 		memcpy(ptr, &face, 4); ptr += 4;
3238 		memcpy(ptr, &pname, 4); ptr += 4;
3239 		memcpy(ptr, &param, 4); ptr += 4;
3240 
3241 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3242 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3243 
3244 }
3245 
glMaterialxv_enc(void * self,GLenum face,GLenum pname,const GLfixed * params)3246 void glMaterialxv_enc(void *self , GLenum face, GLenum pname, const GLfixed* params)
3247 {
3248 	ENCODER_DEBUG_LOG("glMaterialxv(face:0x%08x, pname:0x%08x, params:0x%08x)", face, pname, params);
3249 	AEMU_SCOPED_TRACE("glMaterialxv encode");
3250 
3251 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3252 	IOStream *stream = ctx->m_stream;
3253 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3254 	bool useChecksum = checksumCalculator->getVersion() > 0;
3255 
3256 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
3257 	 unsigned char *ptr;
3258 	 unsigned char *buf;
3259 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
3260 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3261 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3262 	buf = stream->alloc(totalSize);
3263 	ptr = buf;
3264 	int tmp = OP_glMaterialxv;memcpy(ptr, &tmp, 4); ptr += 4;
3265 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3266 
3267 		memcpy(ptr, &face, 4); ptr += 4;
3268 		memcpy(ptr, &pname, 4); ptr += 4;
3269 	memcpy(ptr, &__size_params, 4); ptr += 4;
3270 	memcpy(ptr, params, __size_params);ptr += __size_params;
3271 
3272 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3273 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3274 
3275 }
3276 
glMatrixMode_enc(void * self,GLenum mode)3277 void glMatrixMode_enc(void *self , GLenum mode)
3278 {
3279 	ENCODER_DEBUG_LOG("glMatrixMode(mode:0x%08x)", mode);
3280 	AEMU_SCOPED_TRACE("glMatrixMode encode");
3281 
3282 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3283 	IOStream *stream = ctx->m_stream;
3284 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3285 	bool useChecksum = checksumCalculator->getVersion() > 0;
3286 
3287 	 unsigned char *ptr;
3288 	 unsigned char *buf;
3289 	 const size_t sizeWithoutChecksum = 8 + 4;
3290 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3291 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3292 	buf = stream->alloc(totalSize);
3293 	ptr = buf;
3294 	int tmp = OP_glMatrixMode;memcpy(ptr, &tmp, 4); ptr += 4;
3295 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3296 
3297 		memcpy(ptr, &mode, 4); ptr += 4;
3298 
3299 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3300 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3301 
3302 }
3303 
glMultMatrixx_enc(void * self,const GLfixed * m)3304 void glMultMatrixx_enc(void *self , const GLfixed* m)
3305 {
3306 	ENCODER_DEBUG_LOG("glMultMatrixx(m:0x%08x)", m);
3307 	AEMU_SCOPED_TRACE("glMultMatrixx encode");
3308 
3309 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3310 	IOStream *stream = ctx->m_stream;
3311 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3312 	bool useChecksum = checksumCalculator->getVersion() > 0;
3313 
3314 	const unsigned int __size_m =  (16 * sizeof(GLfixed));
3315 	 unsigned char *ptr;
3316 	 unsigned char *buf;
3317 	 const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
3318 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3319 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3320 	buf = stream->alloc(totalSize);
3321 	ptr = buf;
3322 	int tmp = OP_glMultMatrixx;memcpy(ptr, &tmp, 4); ptr += 4;
3323 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3324 
3325 	memcpy(ptr, &__size_m, 4); ptr += 4;
3326 	memcpy(ptr, m, __size_m);ptr += __size_m;
3327 
3328 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3329 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3330 
3331 }
3332 
glMultiTexCoord4x_enc(void * self,GLenum target,GLfixed s,GLfixed t,GLfixed r,GLfixed q)3333 void glMultiTexCoord4x_enc(void *self , GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
3334 {
3335 	ENCODER_DEBUG_LOG("glMultiTexCoord4x(target:0x%08x, s:0x%08x, t:0x%08x, r:0x%08x, q:0x%08x)", target, s, t, r, q);
3336 	AEMU_SCOPED_TRACE("glMultiTexCoord4x encode");
3337 
3338 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3339 	IOStream *stream = ctx->m_stream;
3340 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3341 	bool useChecksum = checksumCalculator->getVersion() > 0;
3342 
3343 	 unsigned char *ptr;
3344 	 unsigned char *buf;
3345 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
3346 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3347 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3348 	buf = stream->alloc(totalSize);
3349 	ptr = buf;
3350 	int tmp = OP_glMultiTexCoord4x;memcpy(ptr, &tmp, 4); ptr += 4;
3351 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3352 
3353 		memcpy(ptr, &target, 4); ptr += 4;
3354 		memcpy(ptr, &s, 4); ptr += 4;
3355 		memcpy(ptr, &t, 4); ptr += 4;
3356 		memcpy(ptr, &r, 4); ptr += 4;
3357 		memcpy(ptr, &q, 4); ptr += 4;
3358 
3359 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3360 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3361 
3362 }
3363 
glNormal3x_enc(void * self,GLfixed nx,GLfixed ny,GLfixed nz)3364 void glNormal3x_enc(void *self , GLfixed nx, GLfixed ny, GLfixed nz)
3365 {
3366 	ENCODER_DEBUG_LOG("glNormal3x(nx:0x%08x, ny:0x%08x, nz:0x%08x)", nx, ny, nz);
3367 	AEMU_SCOPED_TRACE("glNormal3x encode");
3368 
3369 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3370 	IOStream *stream = ctx->m_stream;
3371 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3372 	bool useChecksum = checksumCalculator->getVersion() > 0;
3373 
3374 	 unsigned char *ptr;
3375 	 unsigned char *buf;
3376 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3377 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3378 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3379 	buf = stream->alloc(totalSize);
3380 	ptr = buf;
3381 	int tmp = OP_glNormal3x;memcpy(ptr, &tmp, 4); ptr += 4;
3382 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3383 
3384 		memcpy(ptr, &nx, 4); ptr += 4;
3385 		memcpy(ptr, &ny, 4); ptr += 4;
3386 		memcpy(ptr, &nz, 4); ptr += 4;
3387 
3388 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3389 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3390 
3391 }
3392 
glOrthox_enc(void * self,GLfixed left,GLfixed right,GLfixed bottom,GLfixed top,GLfixed zNear,GLfixed zFar)3393 void glOrthox_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
3394 {
3395 	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);
3396 	AEMU_SCOPED_TRACE("glOrthox encode");
3397 
3398 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3399 	IOStream *stream = ctx->m_stream;
3400 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3401 	bool useChecksum = checksumCalculator->getVersion() > 0;
3402 
3403 	 unsigned char *ptr;
3404 	 unsigned char *buf;
3405 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
3406 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3407 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3408 	buf = stream->alloc(totalSize);
3409 	ptr = buf;
3410 	int tmp = OP_glOrthox;memcpy(ptr, &tmp, 4); ptr += 4;
3411 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3412 
3413 		memcpy(ptr, &left, 4); ptr += 4;
3414 		memcpy(ptr, &right, 4); ptr += 4;
3415 		memcpy(ptr, &bottom, 4); ptr += 4;
3416 		memcpy(ptr, &top, 4); ptr += 4;
3417 		memcpy(ptr, &zNear, 4); ptr += 4;
3418 		memcpy(ptr, &zFar, 4); ptr += 4;
3419 
3420 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3421 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3422 
3423 }
3424 
glPixelStorei_enc(void * self,GLenum pname,GLint param)3425 void glPixelStorei_enc(void *self , GLenum pname, GLint param)
3426 {
3427 	ENCODER_DEBUG_LOG("glPixelStorei(pname:0x%08x, param:%d)", pname, param);
3428 	AEMU_SCOPED_TRACE("glPixelStorei encode");
3429 
3430 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3431 	IOStream *stream = ctx->m_stream;
3432 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3433 	bool useChecksum = checksumCalculator->getVersion() > 0;
3434 
3435 	 unsigned char *ptr;
3436 	 unsigned char *buf;
3437 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
3438 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3439 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3440 	buf = stream->alloc(totalSize);
3441 	ptr = buf;
3442 	int tmp = OP_glPixelStorei;memcpy(ptr, &tmp, 4); ptr += 4;
3443 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3444 
3445 		memcpy(ptr, &pname, 4); ptr += 4;
3446 		memcpy(ptr, &param, 4); ptr += 4;
3447 
3448 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3449 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3450 
3451 }
3452 
glPointParameterx_enc(void * self,GLenum pname,GLfixed param)3453 void glPointParameterx_enc(void *self , GLenum pname, GLfixed param)
3454 {
3455 	ENCODER_DEBUG_LOG("glPointParameterx(pname:0x%08x, param:0x%08x)", pname, param);
3456 	AEMU_SCOPED_TRACE("glPointParameterx encode");
3457 
3458 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3459 	IOStream *stream = ctx->m_stream;
3460 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3461 	bool useChecksum = checksumCalculator->getVersion() > 0;
3462 
3463 	 unsigned char *ptr;
3464 	 unsigned char *buf;
3465 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
3466 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3467 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3468 	buf = stream->alloc(totalSize);
3469 	ptr = buf;
3470 	int tmp = OP_glPointParameterx;memcpy(ptr, &tmp, 4); ptr += 4;
3471 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3472 
3473 		memcpy(ptr, &pname, 4); ptr += 4;
3474 		memcpy(ptr, &param, 4); ptr += 4;
3475 
3476 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3477 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3478 
3479 }
3480 
glPointParameterxv_enc(void * self,GLenum pname,const GLfixed * params)3481 void glPointParameterxv_enc(void *self , GLenum pname, const GLfixed* params)
3482 {
3483 	ENCODER_DEBUG_LOG("glPointParameterxv(pname:0x%08x, params:0x%08x)", pname, params);
3484 	AEMU_SCOPED_TRACE("glPointParameterxv encode");
3485 
3486 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3487 	IOStream *stream = ctx->m_stream;
3488 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3489 	bool useChecksum = checksumCalculator->getVersion() > 0;
3490 
3491 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
3492 	 unsigned char *ptr;
3493 	 unsigned char *buf;
3494 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
3495 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3496 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3497 	buf = stream->alloc(totalSize);
3498 	ptr = buf;
3499 	int tmp = OP_glPointParameterxv;memcpy(ptr, &tmp, 4); ptr += 4;
3500 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3501 
3502 		memcpy(ptr, &pname, 4); ptr += 4;
3503 	memcpy(ptr, &__size_params, 4); ptr += 4;
3504 	memcpy(ptr, params, __size_params);ptr += __size_params;
3505 
3506 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3507 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3508 
3509 }
3510 
glPointSizex_enc(void * self,GLfixed size)3511 void glPointSizex_enc(void *self , GLfixed size)
3512 {
3513 	ENCODER_DEBUG_LOG("glPointSizex(size:0x%08x)", size);
3514 	AEMU_SCOPED_TRACE("glPointSizex encode");
3515 
3516 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3517 	IOStream *stream = ctx->m_stream;
3518 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3519 	bool useChecksum = checksumCalculator->getVersion() > 0;
3520 
3521 	 unsigned char *ptr;
3522 	 unsigned char *buf;
3523 	 const size_t sizeWithoutChecksum = 8 + 4;
3524 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3525 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3526 	buf = stream->alloc(totalSize);
3527 	ptr = buf;
3528 	int tmp = OP_glPointSizex;memcpy(ptr, &tmp, 4); ptr += 4;
3529 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3530 
3531 		memcpy(ptr, &size, 4); ptr += 4;
3532 
3533 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3534 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3535 
3536 }
3537 
glPolygonOffsetx_enc(void * self,GLfixed factor,GLfixed units)3538 void glPolygonOffsetx_enc(void *self , GLfixed factor, GLfixed units)
3539 {
3540 	ENCODER_DEBUG_LOG("glPolygonOffsetx(factor:0x%08x, units:0x%08x)", factor, units);
3541 	AEMU_SCOPED_TRACE("glPolygonOffsetx encode");
3542 
3543 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3544 	IOStream *stream = ctx->m_stream;
3545 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3546 	bool useChecksum = checksumCalculator->getVersion() > 0;
3547 
3548 	 unsigned char *ptr;
3549 	 unsigned char *buf;
3550 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
3551 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3552 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3553 	buf = stream->alloc(totalSize);
3554 	ptr = buf;
3555 	int tmp = OP_glPolygonOffsetx;memcpy(ptr, &tmp, 4); ptr += 4;
3556 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3557 
3558 		memcpy(ptr, &factor, 4); ptr += 4;
3559 		memcpy(ptr, &units, 4); ptr += 4;
3560 
3561 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3562 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3563 
3564 }
3565 
glPopMatrix_enc(void * self)3566 void glPopMatrix_enc(void *self )
3567 {
3568 	ENCODER_DEBUG_LOG("glPopMatrix()");
3569 	AEMU_SCOPED_TRACE("glPopMatrix encode");
3570 
3571 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3572 	IOStream *stream = ctx->m_stream;
3573 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3574 	bool useChecksum = checksumCalculator->getVersion() > 0;
3575 
3576 	 unsigned char *ptr;
3577 	 unsigned char *buf;
3578 	 const size_t sizeWithoutChecksum = 8;
3579 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3580 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3581 	buf = stream->alloc(totalSize);
3582 	ptr = buf;
3583 	int tmp = OP_glPopMatrix;memcpy(ptr, &tmp, 4); ptr += 4;
3584 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3585 
3586 
3587 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3588 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3589 
3590 }
3591 
glPushMatrix_enc(void * self)3592 void glPushMatrix_enc(void *self )
3593 {
3594 	ENCODER_DEBUG_LOG("glPushMatrix()");
3595 	AEMU_SCOPED_TRACE("glPushMatrix encode");
3596 
3597 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3598 	IOStream *stream = ctx->m_stream;
3599 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3600 	bool useChecksum = checksumCalculator->getVersion() > 0;
3601 
3602 	 unsigned char *ptr;
3603 	 unsigned char *buf;
3604 	 const size_t sizeWithoutChecksum = 8;
3605 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3606 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3607 	buf = stream->alloc(totalSize);
3608 	ptr = buf;
3609 	int tmp = OP_glPushMatrix;memcpy(ptr, &tmp, 4); ptr += 4;
3610 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3611 
3612 
3613 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3614 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3615 
3616 }
3617 
glReadPixels_enc(void * self,GLint x,GLint y,GLsizei width,GLsizei height,GLenum format,GLenum type,GLvoid * pixels)3618 void glReadPixels_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
3619 {
3620 	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);
3621 	AEMU_SCOPED_TRACE("glReadPixels encode");
3622 
3623 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3624 	IOStream *stream = ctx->m_stream;
3625 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3626 	bool useChecksum = checksumCalculator->getVersion() > 0;
3627 
3628 	const unsigned int __size_pixels =  glesv1_enc::pixelDataSize(self, width, height, format, type, 1);
3629 	 unsigned char *ptr;
3630 	 unsigned char *buf;
3631 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + 1*4;
3632 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3633 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3634 	buf = stream->alloc(totalSize);
3635 	ptr = buf;
3636 	int tmp = OP_glReadPixels;memcpy(ptr, &tmp, 4); ptr += 4;
3637 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3638 
3639 		memcpy(ptr, &x, 4); ptr += 4;
3640 		memcpy(ptr, &y, 4); ptr += 4;
3641 		memcpy(ptr, &width, 4); ptr += 4;
3642 		memcpy(ptr, &height, 4); ptr += 4;
3643 		memcpy(ptr, &format, 4); ptr += 4;
3644 		memcpy(ptr, &type, 4); ptr += 4;
3645 	memcpy(ptr, &__size_pixels, 4); ptr += 4;
3646 
3647 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3648 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3649 
3650 	stream->readback(pixels, __size_pixels);
3651 	if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
3652 	if (useChecksum) {
3653 		unsigned char *checksumBufPtr = NULL;
3654 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
3655 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
3656 		stream->readback(checksumBufPtr, checksumSize);
3657 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
3658 			ALOGE("glReadPixels: GL communication error, please report this issue to b.android.com.\n");
3659 			abort();
3660 		}
3661 	}
3662 }
3663 
glRotatex_enc(void * self,GLfixed angle,GLfixed x,GLfixed y,GLfixed z)3664 void glRotatex_enc(void *self , GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
3665 {
3666 	ENCODER_DEBUG_LOG("glRotatex(angle:0x%08x, x:0x%08x, y:0x%08x, z:0x%08x)", angle, x, y, z);
3667 	AEMU_SCOPED_TRACE("glRotatex encode");
3668 
3669 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3670 	IOStream *stream = ctx->m_stream;
3671 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3672 	bool useChecksum = checksumCalculator->getVersion() > 0;
3673 
3674 	 unsigned char *ptr;
3675 	 unsigned char *buf;
3676 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3677 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3678 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3679 	buf = stream->alloc(totalSize);
3680 	ptr = buf;
3681 	int tmp = OP_glRotatex;memcpy(ptr, &tmp, 4); ptr += 4;
3682 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3683 
3684 		memcpy(ptr, &angle, 4); ptr += 4;
3685 		memcpy(ptr, &x, 4); ptr += 4;
3686 		memcpy(ptr, &y, 4); ptr += 4;
3687 		memcpy(ptr, &z, 4); ptr += 4;
3688 
3689 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3690 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3691 
3692 }
3693 
glSampleCoverage_enc(void * self,GLclampf value,GLboolean invert)3694 void glSampleCoverage_enc(void *self , GLclampf value, GLboolean invert)
3695 {
3696 	ENCODER_DEBUG_LOG("glSampleCoverage(value:%f, invert:%d)", value, invert);
3697 	AEMU_SCOPED_TRACE("glSampleCoverage encode");
3698 
3699 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3700 	IOStream *stream = ctx->m_stream;
3701 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3702 	bool useChecksum = checksumCalculator->getVersion() > 0;
3703 
3704 	 unsigned char *ptr;
3705 	 unsigned char *buf;
3706 	 const size_t sizeWithoutChecksum = 8 + 4 + 1;
3707 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3708 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3709 	buf = stream->alloc(totalSize);
3710 	ptr = buf;
3711 	int tmp = OP_glSampleCoverage;memcpy(ptr, &tmp, 4); ptr += 4;
3712 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3713 
3714 		memcpy(ptr, &value, 4); ptr += 4;
3715 		memcpy(ptr, &invert, 1); ptr += 1;
3716 
3717 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3718 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3719 
3720 }
3721 
glSampleCoveragex_enc(void * self,GLclampx value,GLboolean invert)3722 void glSampleCoveragex_enc(void *self , GLclampx value, GLboolean invert)
3723 {
3724 	ENCODER_DEBUG_LOG("glSampleCoveragex(value:0x%08x, invert:%d)", value, invert);
3725 	AEMU_SCOPED_TRACE("glSampleCoveragex encode");
3726 
3727 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3728 	IOStream *stream = ctx->m_stream;
3729 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3730 	bool useChecksum = checksumCalculator->getVersion() > 0;
3731 
3732 	 unsigned char *ptr;
3733 	 unsigned char *buf;
3734 	 const size_t sizeWithoutChecksum = 8 + 4 + 1;
3735 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3736 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3737 	buf = stream->alloc(totalSize);
3738 	ptr = buf;
3739 	int tmp = OP_glSampleCoveragex;memcpy(ptr, &tmp, 4); ptr += 4;
3740 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3741 
3742 		memcpy(ptr, &value, 4); ptr += 4;
3743 		memcpy(ptr, &invert, 1); ptr += 1;
3744 
3745 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3746 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3747 
3748 }
3749 
glScalex_enc(void * self,GLfixed x,GLfixed y,GLfixed z)3750 void glScalex_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
3751 {
3752 	ENCODER_DEBUG_LOG("glScalex(x:0x%08x, y:0x%08x, z:0x%08x)", x, y, z);
3753 	AEMU_SCOPED_TRACE("glScalex encode");
3754 
3755 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3756 	IOStream *stream = ctx->m_stream;
3757 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3758 	bool useChecksum = checksumCalculator->getVersion() > 0;
3759 
3760 	 unsigned char *ptr;
3761 	 unsigned char *buf;
3762 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3763 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3764 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3765 	buf = stream->alloc(totalSize);
3766 	ptr = buf;
3767 	int tmp = OP_glScalex;memcpy(ptr, &tmp, 4); ptr += 4;
3768 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3769 
3770 		memcpy(ptr, &x, 4); ptr += 4;
3771 		memcpy(ptr, &y, 4); ptr += 4;
3772 		memcpy(ptr, &z, 4); ptr += 4;
3773 
3774 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3775 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3776 
3777 }
3778 
glScissor_enc(void * self,GLint x,GLint y,GLsizei width,GLsizei height)3779 void glScissor_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height)
3780 {
3781 	ENCODER_DEBUG_LOG("glScissor(x:%d, y:%d, width:%d, height:%d)", x, y, width, height);
3782 	AEMU_SCOPED_TRACE("glScissor encode");
3783 
3784 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3785 	IOStream *stream = ctx->m_stream;
3786 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3787 	bool useChecksum = checksumCalculator->getVersion() > 0;
3788 
3789 	 unsigned char *ptr;
3790 	 unsigned char *buf;
3791 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
3792 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3793 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3794 	buf = stream->alloc(totalSize);
3795 	ptr = buf;
3796 	int tmp = OP_glScissor;memcpy(ptr, &tmp, 4); ptr += 4;
3797 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3798 
3799 		memcpy(ptr, &x, 4); ptr += 4;
3800 		memcpy(ptr, &y, 4); ptr += 4;
3801 		memcpy(ptr, &width, 4); ptr += 4;
3802 		memcpy(ptr, &height, 4); ptr += 4;
3803 
3804 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3805 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3806 
3807 }
3808 
glShadeModel_enc(void * self,GLenum mode)3809 void glShadeModel_enc(void *self , GLenum mode)
3810 {
3811 	ENCODER_DEBUG_LOG("glShadeModel(mode:0x%08x)", mode);
3812 	AEMU_SCOPED_TRACE("glShadeModel encode");
3813 
3814 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3815 	IOStream *stream = ctx->m_stream;
3816 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3817 	bool useChecksum = checksumCalculator->getVersion() > 0;
3818 
3819 	 unsigned char *ptr;
3820 	 unsigned char *buf;
3821 	 const size_t sizeWithoutChecksum = 8 + 4;
3822 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3823 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3824 	buf = stream->alloc(totalSize);
3825 	ptr = buf;
3826 	int tmp = OP_glShadeModel;memcpy(ptr, &tmp, 4); ptr += 4;
3827 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3828 
3829 		memcpy(ptr, &mode, 4); ptr += 4;
3830 
3831 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3832 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3833 
3834 }
3835 
glStencilFunc_enc(void * self,GLenum func,GLint ref,GLuint mask)3836 void glStencilFunc_enc(void *self , GLenum func, GLint ref, GLuint mask)
3837 {
3838 	ENCODER_DEBUG_LOG("glStencilFunc(func:0x%08x, ref:%d, mask:%u)", func, ref, mask);
3839 	AEMU_SCOPED_TRACE("glStencilFunc encode");
3840 
3841 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3842 	IOStream *stream = ctx->m_stream;
3843 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3844 	bool useChecksum = checksumCalculator->getVersion() > 0;
3845 
3846 	 unsigned char *ptr;
3847 	 unsigned char *buf;
3848 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3849 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3850 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3851 	buf = stream->alloc(totalSize);
3852 	ptr = buf;
3853 	int tmp = OP_glStencilFunc;memcpy(ptr, &tmp, 4); ptr += 4;
3854 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3855 
3856 		memcpy(ptr, &func, 4); ptr += 4;
3857 		memcpy(ptr, &ref, 4); ptr += 4;
3858 		memcpy(ptr, &mask, 4); ptr += 4;
3859 
3860 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3861 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3862 
3863 }
3864 
glStencilMask_enc(void * self,GLuint mask)3865 void glStencilMask_enc(void *self , GLuint mask)
3866 {
3867 	ENCODER_DEBUG_LOG("glStencilMask(mask:%u)", mask);
3868 	AEMU_SCOPED_TRACE("glStencilMask encode");
3869 
3870 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3871 	IOStream *stream = ctx->m_stream;
3872 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3873 	bool useChecksum = checksumCalculator->getVersion() > 0;
3874 
3875 	 unsigned char *ptr;
3876 	 unsigned char *buf;
3877 	 const size_t sizeWithoutChecksum = 8 + 4;
3878 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3879 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3880 	buf = stream->alloc(totalSize);
3881 	ptr = buf;
3882 	int tmp = OP_glStencilMask;memcpy(ptr, &tmp, 4); ptr += 4;
3883 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3884 
3885 		memcpy(ptr, &mask, 4); ptr += 4;
3886 
3887 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3888 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3889 
3890 }
3891 
glStencilOp_enc(void * self,GLenum fail,GLenum zfail,GLenum zpass)3892 void glStencilOp_enc(void *self , GLenum fail, GLenum zfail, GLenum zpass)
3893 {
3894 	ENCODER_DEBUG_LOG("glStencilOp(fail:0x%08x, zfail:0x%08x, zpass:0x%08x)", fail, zfail, zpass);
3895 	AEMU_SCOPED_TRACE("glStencilOp encode");
3896 
3897 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3898 	IOStream *stream = ctx->m_stream;
3899 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3900 	bool useChecksum = checksumCalculator->getVersion() > 0;
3901 
3902 	 unsigned char *ptr;
3903 	 unsigned char *buf;
3904 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3905 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3906 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3907 	buf = stream->alloc(totalSize);
3908 	ptr = buf;
3909 	int tmp = OP_glStencilOp;memcpy(ptr, &tmp, 4); ptr += 4;
3910 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3911 
3912 		memcpy(ptr, &fail, 4); ptr += 4;
3913 		memcpy(ptr, &zfail, 4); ptr += 4;
3914 		memcpy(ptr, &zpass, 4); ptr += 4;
3915 
3916 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3917 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3918 
3919 }
3920 
glTexEnvi_enc(void * self,GLenum target,GLenum pname,GLint param)3921 void glTexEnvi_enc(void *self , GLenum target, GLenum pname, GLint param)
3922 {
3923 	ENCODER_DEBUG_LOG("glTexEnvi(target:0x%08x, pname:0x%08x, param:%d)", target, pname, param);
3924 	AEMU_SCOPED_TRACE("glTexEnvi encode");
3925 
3926 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3927 	IOStream *stream = ctx->m_stream;
3928 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3929 	bool useChecksum = checksumCalculator->getVersion() > 0;
3930 
3931 	 unsigned char *ptr;
3932 	 unsigned char *buf;
3933 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3934 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3935 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3936 	buf = stream->alloc(totalSize);
3937 	ptr = buf;
3938 	int tmp = OP_glTexEnvi;memcpy(ptr, &tmp, 4); ptr += 4;
3939 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3940 
3941 		memcpy(ptr, &target, 4); ptr += 4;
3942 		memcpy(ptr, &pname, 4); ptr += 4;
3943 		memcpy(ptr, &param, 4); ptr += 4;
3944 
3945 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3946 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3947 
3948 }
3949 
glTexEnvx_enc(void * self,GLenum target,GLenum pname,GLfixed param)3950 void glTexEnvx_enc(void *self , GLenum target, GLenum pname, GLfixed param)
3951 {
3952 	ENCODER_DEBUG_LOG("glTexEnvx(target:0x%08x, pname:0x%08x, param:0x%08x)", target, pname, param);
3953 	AEMU_SCOPED_TRACE("glTexEnvx encode");
3954 
3955 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3956 	IOStream *stream = ctx->m_stream;
3957 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3958 	bool useChecksum = checksumCalculator->getVersion() > 0;
3959 
3960 	 unsigned char *ptr;
3961 	 unsigned char *buf;
3962 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
3963 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3964 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3965 	buf = stream->alloc(totalSize);
3966 	ptr = buf;
3967 	int tmp = OP_glTexEnvx;memcpy(ptr, &tmp, 4); ptr += 4;
3968 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3969 
3970 		memcpy(ptr, &target, 4); ptr += 4;
3971 		memcpy(ptr, &pname, 4); ptr += 4;
3972 		memcpy(ptr, &param, 4); ptr += 4;
3973 
3974 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
3975 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
3976 
3977 }
3978 
glTexEnviv_enc(void * self,GLenum target,GLenum pname,const GLint * params)3979 void glTexEnviv_enc(void *self , GLenum target, GLenum pname, const GLint* params)
3980 {
3981 	ENCODER_DEBUG_LOG("glTexEnviv(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
3982 	AEMU_SCOPED_TRACE("glTexEnviv encode");
3983 
3984 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
3985 	IOStream *stream = ctx->m_stream;
3986 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
3987 	bool useChecksum = checksumCalculator->getVersion() > 0;
3988 
3989 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
3990 	 unsigned char *ptr;
3991 	 unsigned char *buf;
3992 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
3993 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
3994 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
3995 	buf = stream->alloc(totalSize);
3996 	ptr = buf;
3997 	int tmp = OP_glTexEnviv;memcpy(ptr, &tmp, 4); ptr += 4;
3998 	memcpy(ptr, &totalSize, 4);  ptr += 4;
3999 
4000 		memcpy(ptr, &target, 4); ptr += 4;
4001 		memcpy(ptr, &pname, 4); ptr += 4;
4002 	memcpy(ptr, &__size_params, 4); ptr += 4;
4003 	memcpy(ptr, params, __size_params);ptr += __size_params;
4004 
4005 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4006 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4007 
4008 }
4009 
glTexEnvxv_enc(void * self,GLenum target,GLenum pname,const GLfixed * params)4010 void glTexEnvxv_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
4011 {
4012 	ENCODER_DEBUG_LOG("glTexEnvxv(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
4013 	AEMU_SCOPED_TRACE("glTexEnvxv encode");
4014 
4015 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4016 	IOStream *stream = ctx->m_stream;
4017 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4018 	bool useChecksum = checksumCalculator->getVersion() > 0;
4019 
4020 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
4021 	 unsigned char *ptr;
4022 	 unsigned char *buf;
4023 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
4024 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4025 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4026 	buf = stream->alloc(totalSize);
4027 	ptr = buf;
4028 	int tmp = OP_glTexEnvxv;memcpy(ptr, &tmp, 4); ptr += 4;
4029 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4030 
4031 		memcpy(ptr, &target, 4); ptr += 4;
4032 		memcpy(ptr, &pname, 4); ptr += 4;
4033 	memcpy(ptr, &__size_params, 4); ptr += 4;
4034 	memcpy(ptr, params, __size_params);ptr += __size_params;
4035 
4036 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4037 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4038 
4039 }
4040 
glTexImage2D_enc(void * self,GLenum target,GLint level,GLint internalformat,GLsizei width,GLsizei height,GLint border,GLenum format,GLenum type,const GLvoid * pixels)4041 void glTexImage2D_enc(void *self , GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
4042 {
4043 	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);
4044 	AEMU_SCOPED_TRACE("glTexImage2D encode");
4045 
4046 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4047 	IOStream *stream = ctx->m_stream;
4048 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4049 	bool useChecksum = checksumCalculator->getVersion() > 0;
4050 
4051 	const unsigned int __size_pixels = ((pixels != NULL) ?  glesv1_enc::pixelDataSize(self, width, height, format, type, 0) : 0);
4052 	 unsigned char *ptr;
4053 	 unsigned char *buf;
4054 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
4055 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4056 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4057 	buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
4058 	ptr = buf;
4059 	int tmp = OP_glTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
4060 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4061 
4062 		memcpy(ptr, &target, 4); ptr += 4;
4063 		memcpy(ptr, &level, 4); ptr += 4;
4064 		memcpy(ptr, &internalformat, 4); ptr += 4;
4065 		memcpy(ptr, &width, 4); ptr += 4;
4066 		memcpy(ptr, &height, 4); ptr += 4;
4067 		memcpy(ptr, &border, 4); ptr += 4;
4068 		memcpy(ptr, &format, 4); ptr += 4;
4069 		memcpy(ptr, &type, 4); ptr += 4;
4070 
4071 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4072 	stream->flush();
4073 	stream->writeFully(&__size_pixels,4);
4074 	if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4);
4075 	if (pixels != NULL) {
4076 		stream->writeFully(pixels, __size_pixels);
4077 		if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
4078 	}
4079 	buf = stream->alloc(checksumSize);
4080 	if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
4081 
4082 }
4083 
glTexParameteri_enc(void * self,GLenum target,GLenum pname,GLint param)4084 void glTexParameteri_enc(void *self , GLenum target, GLenum pname, GLint param)
4085 {
4086 	ENCODER_DEBUG_LOG("glTexParameteri(target:0x%08x, pname:0x%08x, param:%d)", target, pname, param);
4087 	AEMU_SCOPED_TRACE("glTexParameteri encode");
4088 
4089 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4090 	IOStream *stream = ctx->m_stream;
4091 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4092 	bool useChecksum = checksumCalculator->getVersion() > 0;
4093 
4094 	 unsigned char *ptr;
4095 	 unsigned char *buf;
4096 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
4097 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4098 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4099 	buf = stream->alloc(totalSize);
4100 	ptr = buf;
4101 	int tmp = OP_glTexParameteri;memcpy(ptr, &tmp, 4); ptr += 4;
4102 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4103 
4104 		memcpy(ptr, &target, 4); ptr += 4;
4105 		memcpy(ptr, &pname, 4); ptr += 4;
4106 		memcpy(ptr, &param, 4); ptr += 4;
4107 
4108 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4109 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4110 
4111 }
4112 
glTexParameterx_enc(void * self,GLenum target,GLenum pname,GLfixed param)4113 void glTexParameterx_enc(void *self , GLenum target, GLenum pname, GLfixed param)
4114 {
4115 	ENCODER_DEBUG_LOG("glTexParameterx(target:0x%08x, pname:0x%08x, param:0x%08x)", target, pname, param);
4116 	AEMU_SCOPED_TRACE("glTexParameterx encode");
4117 
4118 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4119 	IOStream *stream = ctx->m_stream;
4120 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4121 	bool useChecksum = checksumCalculator->getVersion() > 0;
4122 
4123 	 unsigned char *ptr;
4124 	 unsigned char *buf;
4125 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
4126 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4127 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4128 	buf = stream->alloc(totalSize);
4129 	ptr = buf;
4130 	int tmp = OP_glTexParameterx;memcpy(ptr, &tmp, 4); ptr += 4;
4131 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4132 
4133 		memcpy(ptr, &target, 4); ptr += 4;
4134 		memcpy(ptr, &pname, 4); ptr += 4;
4135 		memcpy(ptr, &param, 4); ptr += 4;
4136 
4137 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4138 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4139 
4140 }
4141 
glTexParameteriv_enc(void * self,GLenum target,GLenum pname,const GLint * params)4142 void glTexParameteriv_enc(void *self , GLenum target, GLenum pname, const GLint* params)
4143 {
4144 	ENCODER_DEBUG_LOG("glTexParameteriv(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
4145 	AEMU_SCOPED_TRACE("glTexParameteriv encode");
4146 
4147 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4148 	IOStream *stream = ctx->m_stream;
4149 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4150 	bool useChecksum = checksumCalculator->getVersion() > 0;
4151 
4152 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
4153 	 unsigned char *ptr;
4154 	 unsigned char *buf;
4155 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
4156 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4157 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4158 	buf = stream->alloc(totalSize);
4159 	ptr = buf;
4160 	int tmp = OP_glTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
4161 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4162 
4163 		memcpy(ptr, &target, 4); ptr += 4;
4164 		memcpy(ptr, &pname, 4); ptr += 4;
4165 	memcpy(ptr, &__size_params, 4); ptr += 4;
4166 	memcpy(ptr, params, __size_params);ptr += __size_params;
4167 
4168 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4169 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4170 
4171 }
4172 
glTexParameterxv_enc(void * self,GLenum target,GLenum pname,const GLfixed * params)4173 void glTexParameterxv_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
4174 {
4175 	ENCODER_DEBUG_LOG("glTexParameterxv(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
4176 	AEMU_SCOPED_TRACE("glTexParameterxv encode");
4177 
4178 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4179 	IOStream *stream = ctx->m_stream;
4180 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4181 	bool useChecksum = checksumCalculator->getVersion() > 0;
4182 
4183 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
4184 	 unsigned char *ptr;
4185 	 unsigned char *buf;
4186 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
4187 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4188 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4189 	buf = stream->alloc(totalSize);
4190 	ptr = buf;
4191 	int tmp = OP_glTexParameterxv;memcpy(ptr, &tmp, 4); ptr += 4;
4192 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4193 
4194 		memcpy(ptr, &target, 4); ptr += 4;
4195 		memcpy(ptr, &pname, 4); ptr += 4;
4196 	memcpy(ptr, &__size_params, 4); ptr += 4;
4197 	memcpy(ptr, params, __size_params);ptr += __size_params;
4198 
4199 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4200 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4201 
4202 }
4203 
glTexSubImage2D_enc(void * self,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLsizei width,GLsizei height,GLenum format,GLenum type,const GLvoid * pixels)4204 void glTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
4205 {
4206 	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);
4207 	AEMU_SCOPED_TRACE("glTexSubImage2D encode");
4208 
4209 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4210 	IOStream *stream = ctx->m_stream;
4211 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4212 	bool useChecksum = checksumCalculator->getVersion() > 0;
4213 
4214 	const unsigned int __size_pixels = ((pixels != NULL) ?  glesv1_enc::pixelDataSize(self, width, height, format, type, 0) : 0);
4215 	 unsigned char *ptr;
4216 	 unsigned char *buf;
4217 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
4218 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4219 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4220 	buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
4221 	ptr = buf;
4222 	int tmp = OP_glTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
4223 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4224 
4225 		memcpy(ptr, &target, 4); ptr += 4;
4226 		memcpy(ptr, &level, 4); ptr += 4;
4227 		memcpy(ptr, &xoffset, 4); ptr += 4;
4228 		memcpy(ptr, &yoffset, 4); ptr += 4;
4229 		memcpy(ptr, &width, 4); ptr += 4;
4230 		memcpy(ptr, &height, 4); ptr += 4;
4231 		memcpy(ptr, &format, 4); ptr += 4;
4232 		memcpy(ptr, &type, 4); ptr += 4;
4233 
4234 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4235 	stream->flush();
4236 	stream->writeFully(&__size_pixels,4);
4237 	if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4);
4238 	if (pixels != NULL) {
4239 		stream->writeFully(pixels, __size_pixels);
4240 		if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
4241 	}
4242 	buf = stream->alloc(checksumSize);
4243 	if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
4244 
4245 }
4246 
glTranslatex_enc(void * self,GLfixed x,GLfixed y,GLfixed z)4247 void glTranslatex_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
4248 {
4249 	ENCODER_DEBUG_LOG("glTranslatex(x:0x%08x, y:0x%08x, z:0x%08x)", x, y, z);
4250 	AEMU_SCOPED_TRACE("glTranslatex encode");
4251 
4252 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4253 	IOStream *stream = ctx->m_stream;
4254 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4255 	bool useChecksum = checksumCalculator->getVersion() > 0;
4256 
4257 	 unsigned char *ptr;
4258 	 unsigned char *buf;
4259 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
4260 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4261 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4262 	buf = stream->alloc(totalSize);
4263 	ptr = buf;
4264 	int tmp = OP_glTranslatex;memcpy(ptr, &tmp, 4); ptr += 4;
4265 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4266 
4267 		memcpy(ptr, &x, 4); ptr += 4;
4268 		memcpy(ptr, &y, 4); ptr += 4;
4269 		memcpy(ptr, &z, 4); ptr += 4;
4270 
4271 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4272 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4273 
4274 }
4275 
glViewport_enc(void * self,GLint x,GLint y,GLsizei width,GLsizei height)4276 void glViewport_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height)
4277 {
4278 	ENCODER_DEBUG_LOG("glViewport(x:%d, y:%d, width:%d, height:%d)", x, y, width, height);
4279 	AEMU_SCOPED_TRACE("glViewport encode");
4280 
4281 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4282 	IOStream *stream = ctx->m_stream;
4283 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4284 	bool useChecksum = checksumCalculator->getVersion() > 0;
4285 
4286 	 unsigned char *ptr;
4287 	 unsigned char *buf;
4288 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4289 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4290 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4291 	buf = stream->alloc(totalSize);
4292 	ptr = buf;
4293 	int tmp = OP_glViewport;memcpy(ptr, &tmp, 4); ptr += 4;
4294 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4295 
4296 		memcpy(ptr, &x, 4); ptr += 4;
4297 		memcpy(ptr, &y, 4); ptr += 4;
4298 		memcpy(ptr, &width, 4); ptr += 4;
4299 		memcpy(ptr, &height, 4); ptr += 4;
4300 
4301 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4302 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4303 
4304 }
4305 
glVertexPointerOffset_enc(void * self,GLint size,GLenum type,GLsizei stride,GLuint offset)4306 void glVertexPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
4307 {
4308 	ENCODER_DEBUG_LOG("glVertexPointerOffset(size:%d, type:0x%08x, stride:%d, offset:%u)", size, type, stride, offset);
4309 	AEMU_SCOPED_TRACE("glVertexPointerOffset encode");
4310 
4311 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4312 	IOStream *stream = ctx->m_stream;
4313 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4314 	bool useChecksum = checksumCalculator->getVersion() > 0;
4315 
4316 	 unsigned char *ptr;
4317 	 unsigned char *buf;
4318 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4319 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4320 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4321 	buf = stream->alloc(totalSize);
4322 	ptr = buf;
4323 	int tmp = OP_glVertexPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4324 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4325 
4326 		memcpy(ptr, &size, 4); ptr += 4;
4327 		memcpy(ptr, &type, 4); ptr += 4;
4328 		memcpy(ptr, &stride, 4); ptr += 4;
4329 		memcpy(ptr, &offset, 4); ptr += 4;
4330 
4331 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4332 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4333 
4334 }
4335 
glColorPointerOffset_enc(void * self,GLint size,GLenum type,GLsizei stride,GLuint offset)4336 void glColorPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
4337 {
4338 	ENCODER_DEBUG_LOG("glColorPointerOffset(size:%d, type:0x%08x, stride:%d, offset:%u)", size, type, stride, offset);
4339 	AEMU_SCOPED_TRACE("glColorPointerOffset encode");
4340 
4341 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4342 	IOStream *stream = ctx->m_stream;
4343 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4344 	bool useChecksum = checksumCalculator->getVersion() > 0;
4345 
4346 	 unsigned char *ptr;
4347 	 unsigned char *buf;
4348 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4349 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4350 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4351 	buf = stream->alloc(totalSize);
4352 	ptr = buf;
4353 	int tmp = OP_glColorPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4354 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4355 
4356 		memcpy(ptr, &size, 4); ptr += 4;
4357 		memcpy(ptr, &type, 4); ptr += 4;
4358 		memcpy(ptr, &stride, 4); ptr += 4;
4359 		memcpy(ptr, &offset, 4); ptr += 4;
4360 
4361 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4362 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4363 
4364 }
4365 
glNormalPointerOffset_enc(void * self,GLenum type,GLsizei stride,GLuint offset)4366 void glNormalPointerOffset_enc(void *self , GLenum type, GLsizei stride, GLuint offset)
4367 {
4368 	ENCODER_DEBUG_LOG("glNormalPointerOffset(type:0x%08x, stride:%d, offset:%u)", type, stride, offset);
4369 	AEMU_SCOPED_TRACE("glNormalPointerOffset encode");
4370 
4371 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4372 	IOStream *stream = ctx->m_stream;
4373 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4374 	bool useChecksum = checksumCalculator->getVersion() > 0;
4375 
4376 	 unsigned char *ptr;
4377 	 unsigned char *buf;
4378 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
4379 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4380 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4381 	buf = stream->alloc(totalSize);
4382 	ptr = buf;
4383 	int tmp = OP_glNormalPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4384 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4385 
4386 		memcpy(ptr, &type, 4); ptr += 4;
4387 		memcpy(ptr, &stride, 4); ptr += 4;
4388 		memcpy(ptr, &offset, 4); ptr += 4;
4389 
4390 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4391 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4392 
4393 }
4394 
glPointSizePointerOffset_enc(void * self,GLenum type,GLsizei stride,GLuint offset)4395 void glPointSizePointerOffset_enc(void *self , GLenum type, GLsizei stride, GLuint offset)
4396 {
4397 	ENCODER_DEBUG_LOG("glPointSizePointerOffset(type:0x%08x, stride:%d, offset:%u)", type, stride, offset);
4398 	AEMU_SCOPED_TRACE("glPointSizePointerOffset encode");
4399 
4400 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4401 	IOStream *stream = ctx->m_stream;
4402 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4403 	bool useChecksum = checksumCalculator->getVersion() > 0;
4404 
4405 	 unsigned char *ptr;
4406 	 unsigned char *buf;
4407 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
4408 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4409 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4410 	buf = stream->alloc(totalSize);
4411 	ptr = buf;
4412 	int tmp = OP_glPointSizePointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4413 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4414 
4415 		memcpy(ptr, &type, 4); ptr += 4;
4416 		memcpy(ptr, &stride, 4); ptr += 4;
4417 		memcpy(ptr, &offset, 4); ptr += 4;
4418 
4419 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4420 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4421 
4422 }
4423 
glTexCoordPointerOffset_enc(void * self,GLint size,GLenum type,GLsizei stride,GLuint offset)4424 void glTexCoordPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
4425 {
4426 	ENCODER_DEBUG_LOG("glTexCoordPointerOffset(size:%d, type:0x%08x, stride:%d, offset:%u)", size, type, stride, offset);
4427 	AEMU_SCOPED_TRACE("glTexCoordPointerOffset encode");
4428 
4429 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4430 	IOStream *stream = ctx->m_stream;
4431 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4432 	bool useChecksum = checksumCalculator->getVersion() > 0;
4433 
4434 	 unsigned char *ptr;
4435 	 unsigned char *buf;
4436 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4437 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4438 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4439 	buf = stream->alloc(totalSize);
4440 	ptr = buf;
4441 	int tmp = OP_glTexCoordPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4442 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4443 
4444 		memcpy(ptr, &size, 4); ptr += 4;
4445 		memcpy(ptr, &type, 4); ptr += 4;
4446 		memcpy(ptr, &stride, 4); ptr += 4;
4447 		memcpy(ptr, &offset, 4); ptr += 4;
4448 
4449 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4450 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4451 
4452 }
4453 
glWeightPointerOffset_enc(void * self,GLint size,GLenum type,GLsizei stride,GLuint offset)4454 void glWeightPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
4455 {
4456 	ENCODER_DEBUG_LOG("glWeightPointerOffset(size:%d, type:0x%08x, stride:%d, offset:%u)", size, type, stride, offset);
4457 	AEMU_SCOPED_TRACE("glWeightPointerOffset encode");
4458 
4459 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4460 	IOStream *stream = ctx->m_stream;
4461 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4462 	bool useChecksum = checksumCalculator->getVersion() > 0;
4463 
4464 	 unsigned char *ptr;
4465 	 unsigned char *buf;
4466 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4467 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4468 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4469 	buf = stream->alloc(totalSize);
4470 	ptr = buf;
4471 	int tmp = OP_glWeightPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4472 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4473 
4474 		memcpy(ptr, &size, 4); ptr += 4;
4475 		memcpy(ptr, &type, 4); ptr += 4;
4476 		memcpy(ptr, &stride, 4); ptr += 4;
4477 		memcpy(ptr, &offset, 4); ptr += 4;
4478 
4479 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4480 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4481 
4482 }
4483 
glMatrixIndexPointerOffset_enc(void * self,GLint size,GLenum type,GLsizei stride,GLuint offset)4484 void glMatrixIndexPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
4485 {
4486 	ENCODER_DEBUG_LOG("glMatrixIndexPointerOffset(size:%d, type:0x%08x, stride:%d, offset:%u)", size, type, stride, offset);
4487 	AEMU_SCOPED_TRACE("glMatrixIndexPointerOffset encode");
4488 
4489 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4490 	IOStream *stream = ctx->m_stream;
4491 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4492 	bool useChecksum = checksumCalculator->getVersion() > 0;
4493 
4494 	 unsigned char *ptr;
4495 	 unsigned char *buf;
4496 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4497 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4498 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4499 	buf = stream->alloc(totalSize);
4500 	ptr = buf;
4501 	int tmp = OP_glMatrixIndexPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4502 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4503 
4504 		memcpy(ptr, &size, 4); ptr += 4;
4505 		memcpy(ptr, &type, 4); ptr += 4;
4506 		memcpy(ptr, &stride, 4); ptr += 4;
4507 		memcpy(ptr, &offset, 4); ptr += 4;
4508 
4509 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4510 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4511 
4512 }
4513 
glVertexPointerData_enc(void * self,GLint size,GLenum type,GLsizei stride,void * data,GLuint datalen)4514 void glVertexPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
4515 {
4516 	ENCODER_DEBUG_LOG("glVertexPointerData(size:%d, type:0x%08x, stride:%d, data:0x%08x, datalen:%u)", size, type, stride, data, datalen);
4517 	AEMU_SCOPED_TRACE("glVertexPointerData encode");
4518 
4519 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4520 	IOStream *stream = ctx->m_stream;
4521 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4522 	bool useChecksum = checksumCalculator->getVersion() > 0;
4523 
4524 	const unsigned int __size_data =  datalen;
4525 	 unsigned char *ptr;
4526 	 unsigned char *buf;
4527 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4528 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4529 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4530 	buf = stream->alloc(totalSize);
4531 	ptr = buf;
4532 	int tmp = OP_glVertexPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4533 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4534 
4535 		memcpy(ptr, &size, 4); ptr += 4;
4536 		memcpy(ptr, &type, 4); ptr += 4;
4537 		memcpy(ptr, &stride, 4); ptr += 4;
4538 	memcpy(ptr, &__size_data, 4); ptr += 4;
4539 	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
4540 		memcpy(ptr, &datalen, 4); ptr += 4;
4541 
4542 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4543 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4544 
4545 }
4546 
glColorPointerData_enc(void * self,GLint size,GLenum type,GLsizei stride,void * data,GLuint datalen)4547 void glColorPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
4548 {
4549 	ENCODER_DEBUG_LOG("glColorPointerData(size:%d, type:0x%08x, stride:%d, data:0x%08x, datalen:%u)", size, type, stride, data, datalen);
4550 	AEMU_SCOPED_TRACE("glColorPointerData encode");
4551 
4552 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4553 	IOStream *stream = ctx->m_stream;
4554 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4555 	bool useChecksum = checksumCalculator->getVersion() > 0;
4556 
4557 	const unsigned int __size_data =  datalen;
4558 	 unsigned char *ptr;
4559 	 unsigned char *buf;
4560 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4561 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4562 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4563 	buf = stream->alloc(totalSize);
4564 	ptr = buf;
4565 	int tmp = OP_glColorPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4566 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4567 
4568 		memcpy(ptr, &size, 4); ptr += 4;
4569 		memcpy(ptr, &type, 4); ptr += 4;
4570 		memcpy(ptr, &stride, 4); ptr += 4;
4571 	memcpy(ptr, &__size_data, 4); ptr += 4;
4572 	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
4573 		memcpy(ptr, &datalen, 4); ptr += 4;
4574 
4575 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4576 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4577 
4578 }
4579 
glNormalPointerData_enc(void * self,GLenum type,GLsizei stride,void * data,GLuint datalen)4580 void glNormalPointerData_enc(void *self , GLenum type, GLsizei stride, void* data, GLuint datalen)
4581 {
4582 	ENCODER_DEBUG_LOG("glNormalPointerData(type:0x%08x, stride:%d, data:0x%08x, datalen:%u)", type, stride, data, datalen);
4583 	AEMU_SCOPED_TRACE("glNormalPointerData encode");
4584 
4585 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4586 	IOStream *stream = ctx->m_stream;
4587 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4588 	bool useChecksum = checksumCalculator->getVersion() > 0;
4589 
4590 	const unsigned int __size_data =  datalen;
4591 	 unsigned char *ptr;
4592 	 unsigned char *buf;
4593 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_data + 4 + 1*4;
4594 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4595 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4596 	buf = stream->alloc(totalSize);
4597 	ptr = buf;
4598 	int tmp = OP_glNormalPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4599 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4600 
4601 		memcpy(ptr, &type, 4); ptr += 4;
4602 		memcpy(ptr, &stride, 4); ptr += 4;
4603 	memcpy(ptr, &__size_data, 4); ptr += 4;
4604 	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, 3, type, stride, datalen);ptr += __size_data;
4605 		memcpy(ptr, &datalen, 4); ptr += 4;
4606 
4607 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4608 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4609 
4610 }
4611 
glTexCoordPointerData_enc(void * self,GLint unit,GLint size,GLenum type,GLsizei stride,void * data,GLuint datalen)4612 void glTexCoordPointerData_enc(void *self , GLint unit, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
4613 {
4614 	ENCODER_DEBUG_LOG("glTexCoordPointerData(unit:%d, size:%d, type:0x%08x, stride:%d, data:0x%08x, datalen:%u)", unit, size, type, stride, data, datalen);
4615 	AEMU_SCOPED_TRACE("glTexCoordPointerData encode");
4616 
4617 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4618 	IOStream *stream = ctx->m_stream;
4619 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4620 	bool useChecksum = checksumCalculator->getVersion() > 0;
4621 
4622 	const unsigned int __size_data =  datalen;
4623 	 unsigned char *ptr;
4624 	 unsigned char *buf;
4625 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4626 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4627 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4628 	buf = stream->alloc(totalSize);
4629 	ptr = buf;
4630 	int tmp = OP_glTexCoordPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4631 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4632 
4633 		memcpy(ptr, &unit, 4); ptr += 4;
4634 		memcpy(ptr, &size, 4); ptr += 4;
4635 		memcpy(ptr, &type, 4); ptr += 4;
4636 		memcpy(ptr, &stride, 4); ptr += 4;
4637 	memcpy(ptr, &__size_data, 4); ptr += 4;
4638 	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
4639 		memcpy(ptr, &datalen, 4); ptr += 4;
4640 
4641 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4642 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4643 
4644 }
4645 
glPointSizePointerData_enc(void * self,GLenum type,GLsizei stride,void * data,GLuint datalen)4646 void glPointSizePointerData_enc(void *self , GLenum type, GLsizei stride, void* data, GLuint datalen)
4647 {
4648 	ENCODER_DEBUG_LOG("glPointSizePointerData(type:0x%08x, stride:%d, data:0x%08x, datalen:%u)", type, stride, data, datalen);
4649 	AEMU_SCOPED_TRACE("glPointSizePointerData encode");
4650 
4651 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4652 	IOStream *stream = ctx->m_stream;
4653 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4654 	bool useChecksum = checksumCalculator->getVersion() > 0;
4655 
4656 	const unsigned int __size_data =  datalen;
4657 	 unsigned char *ptr;
4658 	 unsigned char *buf;
4659 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_data + 4 + 1*4;
4660 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4661 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4662 	buf = stream->alloc(totalSize);
4663 	ptr = buf;
4664 	int tmp = OP_glPointSizePointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4665 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4666 
4667 		memcpy(ptr, &type, 4); ptr += 4;
4668 		memcpy(ptr, &stride, 4); ptr += 4;
4669 	memcpy(ptr, &__size_data, 4); ptr += 4;
4670 	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, 1, type, stride, datalen);ptr += __size_data;
4671 		memcpy(ptr, &datalen, 4); ptr += 4;
4672 
4673 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4674 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4675 
4676 }
4677 
glWeightPointerData_enc(void * self,GLint size,GLenum type,GLsizei stride,void * data,GLuint datalen)4678 void glWeightPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
4679 {
4680 	ENCODER_DEBUG_LOG("glWeightPointerData(size:%d, type:0x%08x, stride:%d, data:0x%08x, datalen:%u)", size, type, stride, data, datalen);
4681 	AEMU_SCOPED_TRACE("glWeightPointerData encode");
4682 
4683 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4684 	IOStream *stream = ctx->m_stream;
4685 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4686 	bool useChecksum = checksumCalculator->getVersion() > 0;
4687 
4688 	const unsigned int __size_data =  datalen;
4689 	 unsigned char *ptr;
4690 	 unsigned char *buf;
4691 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4692 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4693 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4694 	buf = stream->alloc(totalSize);
4695 	ptr = buf;
4696 	int tmp = OP_glWeightPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4697 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4698 
4699 		memcpy(ptr, &size, 4); ptr += 4;
4700 		memcpy(ptr, &type, 4); ptr += 4;
4701 		memcpy(ptr, &stride, 4); ptr += 4;
4702 	memcpy(ptr, &__size_data, 4); ptr += 4;
4703 	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char*)data, size, type, stride, datalen);ptr += __size_data;
4704 		memcpy(ptr, &datalen, 4); ptr += 4;
4705 
4706 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4707 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4708 
4709 }
4710 
glMatrixIndexPointerData_enc(void * self,GLint size,GLenum type,GLsizei stride,void * data,GLuint datalen)4711 void glMatrixIndexPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
4712 {
4713 	ENCODER_DEBUG_LOG("glMatrixIndexPointerData(size:%d, type:0x%08x, stride:%d, data:0x%08x, datalen:%u)", size, type, stride, data, datalen);
4714 	AEMU_SCOPED_TRACE("glMatrixIndexPointerData encode");
4715 
4716 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4717 	IOStream *stream = ctx->m_stream;
4718 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4719 	bool useChecksum = checksumCalculator->getVersion() > 0;
4720 
4721 	const unsigned int __size_data =  datalen;
4722 	 unsigned char *ptr;
4723 	 unsigned char *buf;
4724 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4725 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4726 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4727 	buf = stream->alloc(totalSize);
4728 	ptr = buf;
4729 	int tmp = OP_glMatrixIndexPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
4730 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4731 
4732 		memcpy(ptr, &size, 4); ptr += 4;
4733 		memcpy(ptr, &type, 4); ptr += 4;
4734 		memcpy(ptr, &stride, 4); ptr += 4;
4735 	memcpy(ptr, &__size_data, 4); ptr += 4;
4736 	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char*)data, size, type, stride, datalen);ptr += __size_data;
4737 		memcpy(ptr, &datalen, 4); ptr += 4;
4738 
4739 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4740 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4741 
4742 }
4743 
glDrawElementsOffset_enc(void * self,GLenum mode,GLsizei count,GLenum type,GLuint offset)4744 void glDrawElementsOffset_enc(void *self , GLenum mode, GLsizei count, GLenum type, GLuint offset)
4745 {
4746 	ENCODER_DEBUG_LOG("glDrawElementsOffset(mode:0x%08x, count:%d, type:0x%08x, offset:%u)", mode, count, type, offset);
4747 	AEMU_SCOPED_TRACE("glDrawElementsOffset encode");
4748 
4749 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4750 	IOStream *stream = ctx->m_stream;
4751 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4752 	bool useChecksum = checksumCalculator->getVersion() > 0;
4753 
4754 	 unsigned char *ptr;
4755 	 unsigned char *buf;
4756 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4757 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4758 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4759 	buf = stream->alloc(totalSize);
4760 	ptr = buf;
4761 	int tmp = OP_glDrawElementsOffset;memcpy(ptr, &tmp, 4); ptr += 4;
4762 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4763 
4764 		memcpy(ptr, &mode, 4); ptr += 4;
4765 		memcpy(ptr, &count, 4); ptr += 4;
4766 		memcpy(ptr, &type, 4); ptr += 4;
4767 		memcpy(ptr, &offset, 4); ptr += 4;
4768 
4769 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4770 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4771 
4772 }
4773 
glDrawElementsData_enc(void * self,GLenum mode,GLsizei count,GLenum type,void * data,GLuint datalen)4774 void glDrawElementsData_enc(void *self , GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen)
4775 {
4776 	ENCODER_DEBUG_LOG("glDrawElementsData(mode:0x%08x, count:%d, type:0x%08x, data:0x%08x, datalen:%u)", mode, count, type, data, datalen);
4777 	AEMU_SCOPED_TRACE("glDrawElementsData encode");
4778 
4779 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4780 	IOStream *stream = ctx->m_stream;
4781 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4782 	bool useChecksum = checksumCalculator->getVersion() > 0;
4783 
4784 	const unsigned int __size_data =  datalen;
4785 	 unsigned char *ptr;
4786 	 unsigned char *buf;
4787 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
4788 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4789 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4790 	buf = stream->alloc(totalSize);
4791 	ptr = buf;
4792 	int tmp = OP_glDrawElementsData;memcpy(ptr, &tmp, 4); ptr += 4;
4793 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4794 
4795 		memcpy(ptr, &mode, 4); ptr += 4;
4796 		memcpy(ptr, &count, 4); ptr += 4;
4797 		memcpy(ptr, &type, 4); ptr += 4;
4798 	memcpy(ptr, &__size_data, 4); ptr += 4;
4799 	memcpy(ptr, data, __size_data);ptr += __size_data;
4800 		memcpy(ptr, &datalen, 4); ptr += 4;
4801 
4802 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4803 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4804 
4805 }
4806 
glGetCompressedTextureFormats_enc(void * self,int count,GLint * formats)4807 void glGetCompressedTextureFormats_enc(void *self , int count, GLint* formats)
4808 {
4809 	ENCODER_DEBUG_LOG("glGetCompressedTextureFormats(count:%d, formats:0x%08x)", count, formats);
4810 	AEMU_SCOPED_TRACE("glGetCompressedTextureFormats encode");
4811 
4812 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4813 	IOStream *stream = ctx->m_stream;
4814 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4815 	bool useChecksum = checksumCalculator->getVersion() > 0;
4816 
4817 	const unsigned int __size_formats =  (count * sizeof(GLint));
4818 	 unsigned char *ptr;
4819 	 unsigned char *buf;
4820 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
4821 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4822 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4823 	buf = stream->alloc(totalSize);
4824 	ptr = buf;
4825 	int tmp = OP_glGetCompressedTextureFormats;memcpy(ptr, &tmp, 4); ptr += 4;
4826 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4827 
4828 		memcpy(ptr, &count, 4); ptr += 4;
4829 	memcpy(ptr, &__size_formats, 4); ptr += 4;
4830 
4831 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4832 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4833 
4834 	stream->readback(formats, __size_formats);
4835 	if (useChecksum) checksumCalculator->addBuffer(formats, __size_formats);
4836 	if (useChecksum) {
4837 		unsigned char *checksumBufPtr = NULL;
4838 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
4839 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
4840 		stream->readback(checksumBufPtr, checksumSize);
4841 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
4842 			ALOGE("glGetCompressedTextureFormats: GL communication error, please report this issue to b.android.com.\n");
4843 			abort();
4844 		}
4845 	}
4846 }
4847 
glFinishRoundTrip_enc(void * self)4848 int glFinishRoundTrip_enc(void *self )
4849 {
4850 	ENCODER_DEBUG_LOG("glFinishRoundTrip()");
4851 	AEMU_SCOPED_TRACE("glFinishRoundTrip encode");
4852 
4853 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4854 	IOStream *stream = ctx->m_stream;
4855 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4856 	bool useChecksum = checksumCalculator->getVersion() > 0;
4857 
4858 	 unsigned char *ptr;
4859 	 unsigned char *buf;
4860 	 const size_t sizeWithoutChecksum = 8;
4861 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4862 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4863 	buf = stream->alloc(totalSize);
4864 	ptr = buf;
4865 	int tmp = OP_glFinishRoundTrip;memcpy(ptr, &tmp, 4); ptr += 4;
4866 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4867 
4868 
4869 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4870 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4871 
4872 
4873 	int retval;
4874 	stream->readback(&retval, 4);
4875 	if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
4876 	if (useChecksum) {
4877 		unsigned char *checksumBufPtr = NULL;
4878 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
4879 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
4880 		stream->readback(checksumBufPtr, checksumSize);
4881 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
4882 			ALOGE("glFinishRoundTrip: GL communication error, please report this issue to b.android.com.\n");
4883 			abort();
4884 		}
4885 	}
4886 	return retval;
4887 }
4888 
glBlendEquationSeparateOES_enc(void * self,GLenum modeRGB,GLenum modeAlpha)4889 void glBlendEquationSeparateOES_enc(void *self , GLenum modeRGB, GLenum modeAlpha)
4890 {
4891 	ENCODER_DEBUG_LOG("glBlendEquationSeparateOES(modeRGB:0x%08x, modeAlpha:0x%08x)", modeRGB, modeAlpha);
4892 	AEMU_SCOPED_TRACE("glBlendEquationSeparateOES encode");
4893 
4894 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4895 	IOStream *stream = ctx->m_stream;
4896 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4897 	bool useChecksum = checksumCalculator->getVersion() > 0;
4898 
4899 	 unsigned char *ptr;
4900 	 unsigned char *buf;
4901 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
4902 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4903 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4904 	buf = stream->alloc(totalSize);
4905 	ptr = buf;
4906 	int tmp = OP_glBlendEquationSeparateOES;memcpy(ptr, &tmp, 4); ptr += 4;
4907 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4908 
4909 		memcpy(ptr, &modeRGB, 4); ptr += 4;
4910 		memcpy(ptr, &modeAlpha, 4); ptr += 4;
4911 
4912 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4913 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4914 
4915 }
4916 
glBlendFuncSeparateOES_enc(void * self,GLenum srcRGB,GLenum dstRGB,GLenum srcAlpha,GLenum dstAlpha)4917 void glBlendFuncSeparateOES_enc(void *self , GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
4918 {
4919 	ENCODER_DEBUG_LOG("glBlendFuncSeparateOES(srcRGB:0x%08x, dstRGB:0x%08x, srcAlpha:0x%08x, dstAlpha:0x%08x)", srcRGB, dstRGB, srcAlpha, dstAlpha);
4920 	AEMU_SCOPED_TRACE("glBlendFuncSeparateOES encode");
4921 
4922 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4923 	IOStream *stream = ctx->m_stream;
4924 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4925 	bool useChecksum = checksumCalculator->getVersion() > 0;
4926 
4927 	 unsigned char *ptr;
4928 	 unsigned char *buf;
4929 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
4930 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4931 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4932 	buf = stream->alloc(totalSize);
4933 	ptr = buf;
4934 	int tmp = OP_glBlendFuncSeparateOES;memcpy(ptr, &tmp, 4); ptr += 4;
4935 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4936 
4937 		memcpy(ptr, &srcRGB, 4); ptr += 4;
4938 		memcpy(ptr, &dstRGB, 4); ptr += 4;
4939 		memcpy(ptr, &srcAlpha, 4); ptr += 4;
4940 		memcpy(ptr, &dstAlpha, 4); ptr += 4;
4941 
4942 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4943 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4944 
4945 }
4946 
glBlendEquationOES_enc(void * self,GLenum mode)4947 void glBlendEquationOES_enc(void *self , GLenum mode)
4948 {
4949 	ENCODER_DEBUG_LOG("glBlendEquationOES(mode:0x%08x)", mode);
4950 	AEMU_SCOPED_TRACE("glBlendEquationOES encode");
4951 
4952 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4953 	IOStream *stream = ctx->m_stream;
4954 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4955 	bool useChecksum = checksumCalculator->getVersion() > 0;
4956 
4957 	 unsigned char *ptr;
4958 	 unsigned char *buf;
4959 	 const size_t sizeWithoutChecksum = 8 + 4;
4960 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4961 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4962 	buf = stream->alloc(totalSize);
4963 	ptr = buf;
4964 	int tmp = OP_glBlendEquationOES;memcpy(ptr, &tmp, 4); ptr += 4;
4965 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4966 
4967 		memcpy(ptr, &mode, 4); ptr += 4;
4968 
4969 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
4970 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
4971 
4972 }
4973 
glDrawTexsOES_enc(void * self,GLshort x,GLshort y,GLshort z,GLshort width,GLshort height)4974 void glDrawTexsOES_enc(void *self , GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
4975 {
4976 	ENCODER_DEBUG_LOG("glDrawTexsOES(x:%d, y:%d, z:%d, width:%d, height:%d)", x, y, z, width, height);
4977 	AEMU_SCOPED_TRACE("glDrawTexsOES encode");
4978 
4979 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
4980 	IOStream *stream = ctx->m_stream;
4981 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
4982 	bool useChecksum = checksumCalculator->getVersion() > 0;
4983 
4984 	 unsigned char *ptr;
4985 	 unsigned char *buf;
4986 	 const size_t sizeWithoutChecksum = 8 + 2 + 2 + 2 + 2 + 2;
4987 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
4988 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
4989 	buf = stream->alloc(totalSize);
4990 	ptr = buf;
4991 	int tmp = OP_glDrawTexsOES;memcpy(ptr, &tmp, 4); ptr += 4;
4992 	memcpy(ptr, &totalSize, 4);  ptr += 4;
4993 
4994 		memcpy(ptr, &x, 2); ptr += 2;
4995 		memcpy(ptr, &y, 2); ptr += 2;
4996 		memcpy(ptr, &z, 2); ptr += 2;
4997 		memcpy(ptr, &width, 2); ptr += 2;
4998 		memcpy(ptr, &height, 2); ptr += 2;
4999 
5000 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5001 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5002 
5003 }
5004 
glDrawTexiOES_enc(void * self,GLint x,GLint y,GLint z,GLint width,GLint height)5005 void glDrawTexiOES_enc(void *self , GLint x, GLint y, GLint z, GLint width, GLint height)
5006 {
5007 	ENCODER_DEBUG_LOG("glDrawTexiOES(x:%d, y:%d, z:%d, width:%d, height:%d)", x, y, z, width, height);
5008 	AEMU_SCOPED_TRACE("glDrawTexiOES encode");
5009 
5010 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5011 	IOStream *stream = ctx->m_stream;
5012 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5013 	bool useChecksum = checksumCalculator->getVersion() > 0;
5014 
5015 	 unsigned char *ptr;
5016 	 unsigned char *buf;
5017 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
5018 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5019 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5020 	buf = stream->alloc(totalSize);
5021 	ptr = buf;
5022 	int tmp = OP_glDrawTexiOES;memcpy(ptr, &tmp, 4); ptr += 4;
5023 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5024 
5025 		memcpy(ptr, &x, 4); ptr += 4;
5026 		memcpy(ptr, &y, 4); ptr += 4;
5027 		memcpy(ptr, &z, 4); ptr += 4;
5028 		memcpy(ptr, &width, 4); ptr += 4;
5029 		memcpy(ptr, &height, 4); ptr += 4;
5030 
5031 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5032 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5033 
5034 }
5035 
glDrawTexxOES_enc(void * self,GLfixed x,GLfixed y,GLfixed z,GLfixed width,GLfixed height)5036 void glDrawTexxOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
5037 {
5038 	ENCODER_DEBUG_LOG("glDrawTexxOES(x:0x%08x, y:0x%08x, z:0x%08x, width:0x%08x, height:0x%08x)", x, y, z, width, height);
5039 	AEMU_SCOPED_TRACE("glDrawTexxOES encode");
5040 
5041 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5042 	IOStream *stream = ctx->m_stream;
5043 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5044 	bool useChecksum = checksumCalculator->getVersion() > 0;
5045 
5046 	 unsigned char *ptr;
5047 	 unsigned char *buf;
5048 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
5049 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5050 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5051 	buf = stream->alloc(totalSize);
5052 	ptr = buf;
5053 	int tmp = OP_glDrawTexxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5054 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5055 
5056 		memcpy(ptr, &x, 4); ptr += 4;
5057 		memcpy(ptr, &y, 4); ptr += 4;
5058 		memcpy(ptr, &z, 4); ptr += 4;
5059 		memcpy(ptr, &width, 4); ptr += 4;
5060 		memcpy(ptr, &height, 4); ptr += 4;
5061 
5062 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5063 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5064 
5065 }
5066 
glDrawTexsvOES_enc(void * self,const GLshort * coords)5067 void glDrawTexsvOES_enc(void *self , const GLshort* coords)
5068 {
5069 	ENCODER_DEBUG_LOG("glDrawTexsvOES(coords:0x%08x)", coords);
5070 	AEMU_SCOPED_TRACE("glDrawTexsvOES encode");
5071 
5072 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5073 	IOStream *stream = ctx->m_stream;
5074 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5075 	bool useChecksum = checksumCalculator->getVersion() > 0;
5076 
5077 	const unsigned int __size_coords =  (5 * sizeof(GLshort));
5078 	 unsigned char *ptr;
5079 	 unsigned char *buf;
5080 	 const size_t sizeWithoutChecksum = 8 + __size_coords + 1*4;
5081 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5082 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5083 	buf = stream->alloc(totalSize);
5084 	ptr = buf;
5085 	int tmp = OP_glDrawTexsvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5086 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5087 
5088 	memcpy(ptr, &__size_coords, 4); ptr += 4;
5089 	memcpy(ptr, coords, __size_coords);ptr += __size_coords;
5090 
5091 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5092 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5093 
5094 }
5095 
glDrawTexivOES_enc(void * self,const GLint * coords)5096 void glDrawTexivOES_enc(void *self , const GLint* coords)
5097 {
5098 	ENCODER_DEBUG_LOG("glDrawTexivOES(coords:0x%08x)", coords);
5099 	AEMU_SCOPED_TRACE("glDrawTexivOES encode");
5100 
5101 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5102 	IOStream *stream = ctx->m_stream;
5103 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5104 	bool useChecksum = checksumCalculator->getVersion() > 0;
5105 
5106 	const unsigned int __size_coords =  (5 * sizeof(GLint));
5107 	 unsigned char *ptr;
5108 	 unsigned char *buf;
5109 	 const size_t sizeWithoutChecksum = 8 + __size_coords + 1*4;
5110 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5111 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5112 	buf = stream->alloc(totalSize);
5113 	ptr = buf;
5114 	int tmp = OP_glDrawTexivOES;memcpy(ptr, &tmp, 4); ptr += 4;
5115 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5116 
5117 	memcpy(ptr, &__size_coords, 4); ptr += 4;
5118 	memcpy(ptr, coords, __size_coords);ptr += __size_coords;
5119 
5120 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5121 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5122 
5123 }
5124 
glDrawTexxvOES_enc(void * self,const GLfixed * coords)5125 void glDrawTexxvOES_enc(void *self , const GLfixed* coords)
5126 {
5127 	ENCODER_DEBUG_LOG("glDrawTexxvOES(coords:0x%08x)", coords);
5128 	AEMU_SCOPED_TRACE("glDrawTexxvOES encode");
5129 
5130 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5131 	IOStream *stream = ctx->m_stream;
5132 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5133 	bool useChecksum = checksumCalculator->getVersion() > 0;
5134 
5135 	const unsigned int __size_coords =  (5 * sizeof(GLfixed));
5136 	 unsigned char *ptr;
5137 	 unsigned char *buf;
5138 	 const size_t sizeWithoutChecksum = 8 + __size_coords + 1*4;
5139 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5140 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5141 	buf = stream->alloc(totalSize);
5142 	ptr = buf;
5143 	int tmp = OP_glDrawTexxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5144 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5145 
5146 	memcpy(ptr, &__size_coords, 4); ptr += 4;
5147 	memcpy(ptr, coords, __size_coords);ptr += __size_coords;
5148 
5149 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5150 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5151 
5152 }
5153 
glDrawTexfOES_enc(void * self,GLfloat x,GLfloat y,GLfloat z,GLfloat width,GLfloat height)5154 void glDrawTexfOES_enc(void *self , GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
5155 {
5156 	ENCODER_DEBUG_LOG("glDrawTexfOES(x:%f, y:%f, z:%f, width:%f, height:%f)", x, y, z, width, height);
5157 	AEMU_SCOPED_TRACE("glDrawTexfOES encode");
5158 
5159 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5160 	IOStream *stream = ctx->m_stream;
5161 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5162 	bool useChecksum = checksumCalculator->getVersion() > 0;
5163 
5164 	 unsigned char *ptr;
5165 	 unsigned char *buf;
5166 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
5167 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5168 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5169 	buf = stream->alloc(totalSize);
5170 	ptr = buf;
5171 	int tmp = OP_glDrawTexfOES;memcpy(ptr, &tmp, 4); ptr += 4;
5172 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5173 
5174 		memcpy(ptr, &x, 4); ptr += 4;
5175 		memcpy(ptr, &y, 4); ptr += 4;
5176 		memcpy(ptr, &z, 4); ptr += 4;
5177 		memcpy(ptr, &width, 4); ptr += 4;
5178 		memcpy(ptr, &height, 4); ptr += 4;
5179 
5180 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5181 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5182 
5183 }
5184 
glDrawTexfvOES_enc(void * self,const GLfloat * coords)5185 void glDrawTexfvOES_enc(void *self , const GLfloat* coords)
5186 {
5187 	ENCODER_DEBUG_LOG("glDrawTexfvOES(coords:0x%08x)", coords);
5188 	AEMU_SCOPED_TRACE("glDrawTexfvOES encode");
5189 
5190 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5191 	IOStream *stream = ctx->m_stream;
5192 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5193 	bool useChecksum = checksumCalculator->getVersion() > 0;
5194 
5195 	const unsigned int __size_coords =  (5 * sizeof(GLfloat));
5196 	 unsigned char *ptr;
5197 	 unsigned char *buf;
5198 	 const size_t sizeWithoutChecksum = 8 + __size_coords + 1*4;
5199 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5200 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5201 	buf = stream->alloc(totalSize);
5202 	ptr = buf;
5203 	int tmp = OP_glDrawTexfvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5204 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5205 
5206 	memcpy(ptr, &__size_coords, 4); ptr += 4;
5207 	memcpy(ptr, coords, __size_coords);ptr += __size_coords;
5208 
5209 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5210 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5211 
5212 }
5213 
glEGLImageTargetTexture2DOES_enc(void * self,GLenum target,GLeglImageOES image)5214 void glEGLImageTargetTexture2DOES_enc(void *self , GLenum target, GLeglImageOES image)
5215 {
5216 	ENCODER_DEBUG_LOG("glEGLImageTargetTexture2DOES(target:0x%08x, image:%p)", target, image);
5217 	AEMU_SCOPED_TRACE("glEGLImageTargetTexture2DOES encode");
5218 
5219 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5220 	IOStream *stream = ctx->m_stream;
5221 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5222 	bool useChecksum = checksumCalculator->getVersion() > 0;
5223 
5224 	 unsigned char *ptr;
5225 	 unsigned char *buf;
5226 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
5227 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5228 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5229 	buf = stream->alloc(totalSize);
5230 	ptr = buf;
5231 	int tmp = OP_glEGLImageTargetTexture2DOES;memcpy(ptr, &tmp, 4); ptr += 4;
5232 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5233 
5234 		memcpy(ptr, &target, 4); ptr += 4;
5235 		memcpy(ptr, &image, 4); ptr += 4;
5236 
5237 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5238 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5239 
5240 }
5241 
glEGLImageTargetRenderbufferStorageOES_enc(void * self,GLenum target,GLeglImageOES image)5242 void glEGLImageTargetRenderbufferStorageOES_enc(void *self , GLenum target, GLeglImageOES image)
5243 {
5244 	ENCODER_DEBUG_LOG("glEGLImageTargetRenderbufferStorageOES(target:0x%08x, image:%p)", target, image);
5245 	AEMU_SCOPED_TRACE("glEGLImageTargetRenderbufferStorageOES encode");
5246 
5247 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5248 	IOStream *stream = ctx->m_stream;
5249 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5250 	bool useChecksum = checksumCalculator->getVersion() > 0;
5251 
5252 	 unsigned char *ptr;
5253 	 unsigned char *buf;
5254 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
5255 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5256 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5257 	buf = stream->alloc(totalSize);
5258 	ptr = buf;
5259 	int tmp = OP_glEGLImageTargetRenderbufferStorageOES;memcpy(ptr, &tmp, 4); ptr += 4;
5260 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5261 
5262 		memcpy(ptr, &target, 4); ptr += 4;
5263 		memcpy(ptr, &image, 4); ptr += 4;
5264 
5265 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5266 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5267 
5268 }
5269 
glAlphaFuncxOES_enc(void * self,GLenum func,GLclampx ref)5270 void glAlphaFuncxOES_enc(void *self , GLenum func, GLclampx ref)
5271 {
5272 	ENCODER_DEBUG_LOG("glAlphaFuncxOES(func:0x%08x, ref:0x%08x)", func, ref);
5273 	AEMU_SCOPED_TRACE("glAlphaFuncxOES encode");
5274 
5275 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5276 	IOStream *stream = ctx->m_stream;
5277 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5278 	bool useChecksum = checksumCalculator->getVersion() > 0;
5279 
5280 	 unsigned char *ptr;
5281 	 unsigned char *buf;
5282 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
5283 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5284 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5285 	buf = stream->alloc(totalSize);
5286 	ptr = buf;
5287 	int tmp = OP_glAlphaFuncxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5288 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5289 
5290 		memcpy(ptr, &func, 4); ptr += 4;
5291 		memcpy(ptr, &ref, 4); ptr += 4;
5292 
5293 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5294 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5295 
5296 }
5297 
glClearColorxOES_enc(void * self,GLclampx red,GLclampx green,GLclampx blue,GLclampx alpha)5298 void glClearColorxOES_enc(void *self , GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
5299 {
5300 	ENCODER_DEBUG_LOG("glClearColorxOES(red:0x%08x, green:0x%08x, blue:0x%08x, alpha:0x%08x)", red, green, blue, alpha);
5301 	AEMU_SCOPED_TRACE("glClearColorxOES encode");
5302 
5303 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5304 	IOStream *stream = ctx->m_stream;
5305 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5306 	bool useChecksum = checksumCalculator->getVersion() > 0;
5307 
5308 	 unsigned char *ptr;
5309 	 unsigned char *buf;
5310 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
5311 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5312 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5313 	buf = stream->alloc(totalSize);
5314 	ptr = buf;
5315 	int tmp = OP_glClearColorxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5316 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5317 
5318 		memcpy(ptr, &red, 4); ptr += 4;
5319 		memcpy(ptr, &green, 4); ptr += 4;
5320 		memcpy(ptr, &blue, 4); ptr += 4;
5321 		memcpy(ptr, &alpha, 4); ptr += 4;
5322 
5323 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5324 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5325 
5326 }
5327 
glClearDepthxOES_enc(void * self,GLclampx depth)5328 void glClearDepthxOES_enc(void *self , GLclampx depth)
5329 {
5330 	ENCODER_DEBUG_LOG("glClearDepthxOES(depth:0x%08x)", depth);
5331 	AEMU_SCOPED_TRACE("glClearDepthxOES encode");
5332 
5333 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5334 	IOStream *stream = ctx->m_stream;
5335 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5336 	bool useChecksum = checksumCalculator->getVersion() > 0;
5337 
5338 	 unsigned char *ptr;
5339 	 unsigned char *buf;
5340 	 const size_t sizeWithoutChecksum = 8 + 4;
5341 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5342 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5343 	buf = stream->alloc(totalSize);
5344 	ptr = buf;
5345 	int tmp = OP_glClearDepthxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5346 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5347 
5348 		memcpy(ptr, &depth, 4); ptr += 4;
5349 
5350 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5351 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5352 
5353 }
5354 
glClipPlanexOES_enc(void * self,GLenum plane,const GLfixed * equation)5355 void glClipPlanexOES_enc(void *self , GLenum plane, const GLfixed* equation)
5356 {
5357 	ENCODER_DEBUG_LOG("glClipPlanexOES(plane:0x%08x, equation:0x%08x)", plane, equation);
5358 	AEMU_SCOPED_TRACE("glClipPlanexOES encode");
5359 
5360 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5361 	IOStream *stream = ctx->m_stream;
5362 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5363 	bool useChecksum = checksumCalculator->getVersion() > 0;
5364 
5365 	const unsigned int __size_equation =  (4 * sizeof(GLfixed));
5366 	 unsigned char *ptr;
5367 	 unsigned char *buf;
5368 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_equation + 1*4;
5369 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5370 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5371 	buf = stream->alloc(totalSize);
5372 	ptr = buf;
5373 	int tmp = OP_glClipPlanexOES;memcpy(ptr, &tmp, 4); ptr += 4;
5374 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5375 
5376 		memcpy(ptr, &plane, 4); ptr += 4;
5377 	memcpy(ptr, &__size_equation, 4); ptr += 4;
5378 	memcpy(ptr, equation, __size_equation);ptr += __size_equation;
5379 
5380 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5381 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5382 
5383 }
5384 
glClipPlanexIMG_enc(void * self,GLenum plane,const GLfixed * equation)5385 void glClipPlanexIMG_enc(void *self , GLenum plane, const GLfixed* equation)
5386 {
5387 	ENCODER_DEBUG_LOG("glClipPlanexIMG(plane:0x%08x, equation:0x%08x)", plane, equation);
5388 	AEMU_SCOPED_TRACE("glClipPlanexIMG encode");
5389 
5390 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5391 	IOStream *stream = ctx->m_stream;
5392 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5393 	bool useChecksum = checksumCalculator->getVersion() > 0;
5394 
5395 	const unsigned int __size_equation =  (4 * sizeof(GLfixed));
5396 	 unsigned char *ptr;
5397 	 unsigned char *buf;
5398 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_equation + 1*4;
5399 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5400 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5401 	buf = stream->alloc(totalSize);
5402 	ptr = buf;
5403 	int tmp = OP_glClipPlanexIMG;memcpy(ptr, &tmp, 4); ptr += 4;
5404 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5405 
5406 		memcpy(ptr, &plane, 4); ptr += 4;
5407 	memcpy(ptr, &__size_equation, 4); ptr += 4;
5408 	memcpy(ptr, equation, __size_equation);ptr += __size_equation;
5409 
5410 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5411 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5412 
5413 }
5414 
glColor4xOES_enc(void * self,GLfixed red,GLfixed green,GLfixed blue,GLfixed alpha)5415 void glColor4xOES_enc(void *self , GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
5416 {
5417 	ENCODER_DEBUG_LOG("glColor4xOES(red:0x%08x, green:0x%08x, blue:0x%08x, alpha:0x%08x)", red, green, blue, alpha);
5418 	AEMU_SCOPED_TRACE("glColor4xOES encode");
5419 
5420 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5421 	IOStream *stream = ctx->m_stream;
5422 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5423 	bool useChecksum = checksumCalculator->getVersion() > 0;
5424 
5425 	 unsigned char *ptr;
5426 	 unsigned char *buf;
5427 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
5428 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5429 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5430 	buf = stream->alloc(totalSize);
5431 	ptr = buf;
5432 	int tmp = OP_glColor4xOES;memcpy(ptr, &tmp, 4); ptr += 4;
5433 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5434 
5435 		memcpy(ptr, &red, 4); ptr += 4;
5436 		memcpy(ptr, &green, 4); ptr += 4;
5437 		memcpy(ptr, &blue, 4); ptr += 4;
5438 		memcpy(ptr, &alpha, 4); ptr += 4;
5439 
5440 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5441 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5442 
5443 }
5444 
glDepthRangexOES_enc(void * self,GLclampx zNear,GLclampx zFar)5445 void glDepthRangexOES_enc(void *self , GLclampx zNear, GLclampx zFar)
5446 {
5447 	ENCODER_DEBUG_LOG("glDepthRangexOES(zNear:0x%08x, zFar:0x%08x)", zNear, zFar);
5448 	AEMU_SCOPED_TRACE("glDepthRangexOES encode");
5449 
5450 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5451 	IOStream *stream = ctx->m_stream;
5452 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5453 	bool useChecksum = checksumCalculator->getVersion() > 0;
5454 
5455 	 unsigned char *ptr;
5456 	 unsigned char *buf;
5457 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
5458 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5459 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5460 	buf = stream->alloc(totalSize);
5461 	ptr = buf;
5462 	int tmp = OP_glDepthRangexOES;memcpy(ptr, &tmp, 4); ptr += 4;
5463 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5464 
5465 		memcpy(ptr, &zNear, 4); ptr += 4;
5466 		memcpy(ptr, &zFar, 4); ptr += 4;
5467 
5468 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5469 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5470 
5471 }
5472 
glFogxOES_enc(void * self,GLenum pname,GLfixed param)5473 void glFogxOES_enc(void *self , GLenum pname, GLfixed param)
5474 {
5475 	ENCODER_DEBUG_LOG("glFogxOES(pname:0x%08x, param:0x%08x)", pname, param);
5476 	AEMU_SCOPED_TRACE("glFogxOES encode");
5477 
5478 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5479 	IOStream *stream = ctx->m_stream;
5480 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5481 	bool useChecksum = checksumCalculator->getVersion() > 0;
5482 
5483 	 unsigned char *ptr;
5484 	 unsigned char *buf;
5485 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
5486 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5487 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5488 	buf = stream->alloc(totalSize);
5489 	ptr = buf;
5490 	int tmp = OP_glFogxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5491 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5492 
5493 		memcpy(ptr, &pname, 4); ptr += 4;
5494 		memcpy(ptr, &param, 4); ptr += 4;
5495 
5496 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5497 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5498 
5499 }
5500 
glFogxvOES_enc(void * self,GLenum pname,const GLfixed * params)5501 void glFogxvOES_enc(void *self , GLenum pname, const GLfixed* params)
5502 {
5503 	ENCODER_DEBUG_LOG("glFogxvOES(pname:0x%08x, params:0x%08x)", pname, params);
5504 	AEMU_SCOPED_TRACE("glFogxvOES encode");
5505 
5506 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5507 	IOStream *stream = ctx->m_stream;
5508 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5509 	bool useChecksum = checksumCalculator->getVersion() > 0;
5510 
5511 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5512 	 unsigned char *ptr;
5513 	 unsigned char *buf;
5514 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
5515 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5516 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5517 	buf = stream->alloc(totalSize);
5518 	ptr = buf;
5519 	int tmp = OP_glFogxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5520 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5521 
5522 		memcpy(ptr, &pname, 4); ptr += 4;
5523 	memcpy(ptr, &__size_params, 4); ptr += 4;
5524 	memcpy(ptr, params, __size_params);ptr += __size_params;
5525 
5526 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5527 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5528 
5529 }
5530 
glFrustumxOES_enc(void * self,GLfixed left,GLfixed right,GLfixed bottom,GLfixed top,GLfixed zNear,GLfixed zFar)5531 void glFrustumxOES_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
5532 {
5533 	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);
5534 	AEMU_SCOPED_TRACE("glFrustumxOES encode");
5535 
5536 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5537 	IOStream *stream = ctx->m_stream;
5538 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5539 	bool useChecksum = checksumCalculator->getVersion() > 0;
5540 
5541 	 unsigned char *ptr;
5542 	 unsigned char *buf;
5543 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
5544 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5545 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5546 	buf = stream->alloc(totalSize);
5547 	ptr = buf;
5548 	int tmp = OP_glFrustumxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5549 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5550 
5551 		memcpy(ptr, &left, 4); ptr += 4;
5552 		memcpy(ptr, &right, 4); ptr += 4;
5553 		memcpy(ptr, &bottom, 4); ptr += 4;
5554 		memcpy(ptr, &top, 4); ptr += 4;
5555 		memcpy(ptr, &zNear, 4); ptr += 4;
5556 		memcpy(ptr, &zFar, 4); ptr += 4;
5557 
5558 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5559 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5560 
5561 }
5562 
glGetClipPlanexOES_enc(void * self,GLenum pname,GLfixed * eqn)5563 void glGetClipPlanexOES_enc(void *self , GLenum pname, GLfixed* eqn)
5564 {
5565 	ENCODER_DEBUG_LOG("glGetClipPlanexOES(pname:0x%08x, eqn:0x%08x)", pname, eqn);
5566 	AEMU_SCOPED_TRACE("glGetClipPlanexOES encode");
5567 
5568 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5569 	IOStream *stream = ctx->m_stream;
5570 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5571 	bool useChecksum = checksumCalculator->getVersion() > 0;
5572 
5573 	const unsigned int __size_eqn =  (4 * sizeof(GLfixed));
5574 	 unsigned char *ptr;
5575 	 unsigned char *buf;
5576 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
5577 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5578 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5579 	buf = stream->alloc(totalSize);
5580 	ptr = buf;
5581 	int tmp = OP_glGetClipPlanexOES;memcpy(ptr, &tmp, 4); ptr += 4;
5582 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5583 
5584 		memcpy(ptr, &pname, 4); ptr += 4;
5585 	memcpy(ptr, &__size_eqn, 4); ptr += 4;
5586 
5587 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5588 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5589 
5590 	stream->readback(eqn, __size_eqn);
5591 	if (useChecksum) checksumCalculator->addBuffer(eqn, __size_eqn);
5592 	if (useChecksum) {
5593 		unsigned char *checksumBufPtr = NULL;
5594 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
5595 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
5596 		stream->readback(checksumBufPtr, checksumSize);
5597 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
5598 			ALOGE("glGetClipPlanexOES: GL communication error, please report this issue to b.android.com.\n");
5599 			abort();
5600 		}
5601 	}
5602 }
5603 
glGetClipPlanex_enc(void * self,GLenum pname,GLfixed * eqn)5604 void glGetClipPlanex_enc(void *self , GLenum pname, GLfixed* eqn)
5605 {
5606 	ENCODER_DEBUG_LOG("glGetClipPlanex(pname:0x%08x, eqn:0x%08x)", pname, eqn);
5607 	AEMU_SCOPED_TRACE("glGetClipPlanex encode");
5608 
5609 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5610 	IOStream *stream = ctx->m_stream;
5611 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5612 	bool useChecksum = checksumCalculator->getVersion() > 0;
5613 
5614 	const unsigned int __size_eqn =  (4 * sizeof(GLfixed));
5615 	 unsigned char *ptr;
5616 	 unsigned char *buf;
5617 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
5618 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5619 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5620 	buf = stream->alloc(totalSize);
5621 	ptr = buf;
5622 	int tmp = OP_glGetClipPlanex;memcpy(ptr, &tmp, 4); ptr += 4;
5623 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5624 
5625 		memcpy(ptr, &pname, 4); ptr += 4;
5626 	memcpy(ptr, &__size_eqn, 4); ptr += 4;
5627 
5628 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5629 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5630 
5631 	stream->readback(eqn, __size_eqn);
5632 	if (useChecksum) checksumCalculator->addBuffer(eqn, __size_eqn);
5633 	if (useChecksum) {
5634 		unsigned char *checksumBufPtr = NULL;
5635 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
5636 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
5637 		stream->readback(checksumBufPtr, checksumSize);
5638 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
5639 			ALOGE("glGetClipPlanex: GL communication error, please report this issue to b.android.com.\n");
5640 			abort();
5641 		}
5642 	}
5643 }
5644 
glGetFixedvOES_enc(void * self,GLenum pname,GLfixed * params)5645 void glGetFixedvOES_enc(void *self , GLenum pname, GLfixed* params)
5646 {
5647 	ENCODER_DEBUG_LOG("glGetFixedvOES(pname:0x%08x, params:0x%08x)", pname, params);
5648 	AEMU_SCOPED_TRACE("glGetFixedvOES encode");
5649 
5650 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5651 	IOStream *stream = ctx->m_stream;
5652 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5653 	bool useChecksum = checksumCalculator->getVersion() > 0;
5654 
5655 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5656 	 unsigned char *ptr;
5657 	 unsigned char *buf;
5658 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
5659 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5660 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5661 	buf = stream->alloc(totalSize);
5662 	ptr = buf;
5663 	int tmp = OP_glGetFixedvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5664 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5665 
5666 		memcpy(ptr, &pname, 4); ptr += 4;
5667 	memcpy(ptr, &__size_params, 4); ptr += 4;
5668 
5669 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5670 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5671 
5672 	stream->readback(params, __size_params);
5673 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
5674 	if (useChecksum) {
5675 		unsigned char *checksumBufPtr = NULL;
5676 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
5677 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
5678 		stream->readback(checksumBufPtr, checksumSize);
5679 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
5680 			ALOGE("glGetFixedvOES: GL communication error, please report this issue to b.android.com.\n");
5681 			abort();
5682 		}
5683 	}
5684 }
5685 
glGetLightxvOES_enc(void * self,GLenum light,GLenum pname,GLfixed * params)5686 void glGetLightxvOES_enc(void *self , GLenum light, GLenum pname, GLfixed* params)
5687 {
5688 	ENCODER_DEBUG_LOG("glGetLightxvOES(light:0x%08x, pname:0x%08x, params:0x%08x)", light, pname, params);
5689 	AEMU_SCOPED_TRACE("glGetLightxvOES encode");
5690 
5691 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5692 	IOStream *stream = ctx->m_stream;
5693 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5694 	bool useChecksum = checksumCalculator->getVersion() > 0;
5695 
5696 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5697 	 unsigned char *ptr;
5698 	 unsigned char *buf;
5699 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
5700 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5701 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5702 	buf = stream->alloc(totalSize);
5703 	ptr = buf;
5704 	int tmp = OP_glGetLightxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5705 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5706 
5707 		memcpy(ptr, &light, 4); ptr += 4;
5708 		memcpy(ptr, &pname, 4); ptr += 4;
5709 	memcpy(ptr, &__size_params, 4); ptr += 4;
5710 
5711 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5712 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5713 
5714 	stream->readback(params, __size_params);
5715 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
5716 	if (useChecksum) {
5717 		unsigned char *checksumBufPtr = NULL;
5718 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
5719 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
5720 		stream->readback(checksumBufPtr, checksumSize);
5721 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
5722 			ALOGE("glGetLightxvOES: GL communication error, please report this issue to b.android.com.\n");
5723 			abort();
5724 		}
5725 	}
5726 }
5727 
glGetMaterialxvOES_enc(void * self,GLenum face,GLenum pname,GLfixed * params)5728 void glGetMaterialxvOES_enc(void *self , GLenum face, GLenum pname, GLfixed* params)
5729 {
5730 	ENCODER_DEBUG_LOG("glGetMaterialxvOES(face:0x%08x, pname:0x%08x, params:0x%08x)", face, pname, params);
5731 	AEMU_SCOPED_TRACE("glGetMaterialxvOES encode");
5732 
5733 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5734 	IOStream *stream = ctx->m_stream;
5735 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5736 	bool useChecksum = checksumCalculator->getVersion() > 0;
5737 
5738 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5739 	 unsigned char *ptr;
5740 	 unsigned char *buf;
5741 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
5742 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5743 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5744 	buf = stream->alloc(totalSize);
5745 	ptr = buf;
5746 	int tmp = OP_glGetMaterialxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5747 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5748 
5749 		memcpy(ptr, &face, 4); ptr += 4;
5750 		memcpy(ptr, &pname, 4); ptr += 4;
5751 	memcpy(ptr, &__size_params, 4); ptr += 4;
5752 
5753 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5754 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5755 
5756 	stream->readback(params, __size_params);
5757 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
5758 	if (useChecksum) {
5759 		unsigned char *checksumBufPtr = NULL;
5760 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
5761 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
5762 		stream->readback(checksumBufPtr, checksumSize);
5763 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
5764 			ALOGE("glGetMaterialxvOES: GL communication error, please report this issue to b.android.com.\n");
5765 			abort();
5766 		}
5767 	}
5768 }
5769 
glGetTexEnvxvOES_enc(void * self,GLenum env,GLenum pname,GLfixed * params)5770 void glGetTexEnvxvOES_enc(void *self , GLenum env, GLenum pname, GLfixed* params)
5771 {
5772 	ENCODER_DEBUG_LOG("glGetTexEnvxvOES(env:0x%08x, pname:0x%08x, params:0x%08x)", env, pname, params);
5773 	AEMU_SCOPED_TRACE("glGetTexEnvxvOES encode");
5774 
5775 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5776 	IOStream *stream = ctx->m_stream;
5777 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5778 	bool useChecksum = checksumCalculator->getVersion() > 0;
5779 
5780 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5781 	 unsigned char *ptr;
5782 	 unsigned char *buf;
5783 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
5784 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5785 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5786 	buf = stream->alloc(totalSize);
5787 	ptr = buf;
5788 	int tmp = OP_glGetTexEnvxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5789 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5790 
5791 		memcpy(ptr, &env, 4); ptr += 4;
5792 		memcpy(ptr, &pname, 4); ptr += 4;
5793 	memcpy(ptr, &__size_params, 4); ptr += 4;
5794 
5795 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5796 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5797 
5798 	stream->readback(params, __size_params);
5799 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
5800 	if (useChecksum) {
5801 		unsigned char *checksumBufPtr = NULL;
5802 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
5803 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
5804 		stream->readback(checksumBufPtr, checksumSize);
5805 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
5806 			ALOGE("glGetTexEnvxvOES: GL communication error, please report this issue to b.android.com.\n");
5807 			abort();
5808 		}
5809 	}
5810 }
5811 
glGetTexParameterxvOES_enc(void * self,GLenum target,GLenum pname,GLfixed * params)5812 void glGetTexParameterxvOES_enc(void *self , GLenum target, GLenum pname, GLfixed* params)
5813 {
5814 	ENCODER_DEBUG_LOG("glGetTexParameterxvOES(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
5815 	AEMU_SCOPED_TRACE("glGetTexParameterxvOES encode");
5816 
5817 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5818 	IOStream *stream = ctx->m_stream;
5819 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5820 	bool useChecksum = checksumCalculator->getVersion() > 0;
5821 
5822 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5823 	 unsigned char *ptr;
5824 	 unsigned char *buf;
5825 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
5826 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5827 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5828 	buf = stream->alloc(totalSize);
5829 	ptr = buf;
5830 	int tmp = OP_glGetTexParameterxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5831 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5832 
5833 		memcpy(ptr, &target, 4); ptr += 4;
5834 		memcpy(ptr, &pname, 4); ptr += 4;
5835 	memcpy(ptr, &__size_params, 4); ptr += 4;
5836 
5837 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5838 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5839 
5840 	stream->readback(params, __size_params);
5841 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
5842 	if (useChecksum) {
5843 		unsigned char *checksumBufPtr = NULL;
5844 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
5845 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
5846 		stream->readback(checksumBufPtr, checksumSize);
5847 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
5848 			ALOGE("glGetTexParameterxvOES: GL communication error, please report this issue to b.android.com.\n");
5849 			abort();
5850 		}
5851 	}
5852 }
5853 
glLightModelxOES_enc(void * self,GLenum pname,GLfixed param)5854 void glLightModelxOES_enc(void *self , GLenum pname, GLfixed param)
5855 {
5856 	ENCODER_DEBUG_LOG("glLightModelxOES(pname:0x%08x, param:0x%08x)", pname, param);
5857 	AEMU_SCOPED_TRACE("glLightModelxOES encode");
5858 
5859 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5860 	IOStream *stream = ctx->m_stream;
5861 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5862 	bool useChecksum = checksumCalculator->getVersion() > 0;
5863 
5864 	 unsigned char *ptr;
5865 	 unsigned char *buf;
5866 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
5867 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5868 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5869 	buf = stream->alloc(totalSize);
5870 	ptr = buf;
5871 	int tmp = OP_glLightModelxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5872 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5873 
5874 		memcpy(ptr, &pname, 4); ptr += 4;
5875 		memcpy(ptr, &param, 4); ptr += 4;
5876 
5877 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5878 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5879 
5880 }
5881 
glLightModelxvOES_enc(void * self,GLenum pname,const GLfixed * params)5882 void glLightModelxvOES_enc(void *self , GLenum pname, const GLfixed* params)
5883 {
5884 	ENCODER_DEBUG_LOG("glLightModelxvOES(pname:0x%08x, params:0x%08x)", pname, params);
5885 	AEMU_SCOPED_TRACE("glLightModelxvOES encode");
5886 
5887 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5888 	IOStream *stream = ctx->m_stream;
5889 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5890 	bool useChecksum = checksumCalculator->getVersion() > 0;
5891 
5892 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5893 	 unsigned char *ptr;
5894 	 unsigned char *buf;
5895 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
5896 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5897 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5898 	buf = stream->alloc(totalSize);
5899 	ptr = buf;
5900 	int tmp = OP_glLightModelxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5901 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5902 
5903 		memcpy(ptr, &pname, 4); ptr += 4;
5904 	memcpy(ptr, &__size_params, 4); ptr += 4;
5905 	memcpy(ptr, params, __size_params);ptr += __size_params;
5906 
5907 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5908 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5909 
5910 }
5911 
glLightxOES_enc(void * self,GLenum light,GLenum pname,GLfixed param)5912 void glLightxOES_enc(void *self , GLenum light, GLenum pname, GLfixed param)
5913 {
5914 	ENCODER_DEBUG_LOG("glLightxOES(light:0x%08x, pname:0x%08x, param:0x%08x)", light, pname, param);
5915 	AEMU_SCOPED_TRACE("glLightxOES encode");
5916 
5917 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5918 	IOStream *stream = ctx->m_stream;
5919 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5920 	bool useChecksum = checksumCalculator->getVersion() > 0;
5921 
5922 	 unsigned char *ptr;
5923 	 unsigned char *buf;
5924 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
5925 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5926 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5927 	buf = stream->alloc(totalSize);
5928 	ptr = buf;
5929 	int tmp = OP_glLightxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5930 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5931 
5932 		memcpy(ptr, &light, 4); ptr += 4;
5933 		memcpy(ptr, &pname, 4); ptr += 4;
5934 		memcpy(ptr, &param, 4); ptr += 4;
5935 
5936 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5937 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5938 
5939 }
5940 
glLightxvOES_enc(void * self,GLenum light,GLenum pname,const GLfixed * params)5941 void glLightxvOES_enc(void *self , GLenum light, GLenum pname, const GLfixed* params)
5942 {
5943 	ENCODER_DEBUG_LOG("glLightxvOES(light:0x%08x, pname:0x%08x, params:0x%08x)", light, pname, params);
5944 	AEMU_SCOPED_TRACE("glLightxvOES encode");
5945 
5946 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5947 	IOStream *stream = ctx->m_stream;
5948 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5949 	bool useChecksum = checksumCalculator->getVersion() > 0;
5950 
5951 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
5952 	 unsigned char *ptr;
5953 	 unsigned char *buf;
5954 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
5955 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5956 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5957 	buf = stream->alloc(totalSize);
5958 	ptr = buf;
5959 	int tmp = OP_glLightxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
5960 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5961 
5962 		memcpy(ptr, &light, 4); ptr += 4;
5963 		memcpy(ptr, &pname, 4); ptr += 4;
5964 	memcpy(ptr, &__size_params, 4); ptr += 4;
5965 	memcpy(ptr, params, __size_params);ptr += __size_params;
5966 
5967 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5968 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5969 
5970 }
5971 
glLineWidthxOES_enc(void * self,GLfixed width)5972 void glLineWidthxOES_enc(void *self , GLfixed width)
5973 {
5974 	ENCODER_DEBUG_LOG("glLineWidthxOES(width:0x%08x)", width);
5975 	AEMU_SCOPED_TRACE("glLineWidthxOES encode");
5976 
5977 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
5978 	IOStream *stream = ctx->m_stream;
5979 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
5980 	bool useChecksum = checksumCalculator->getVersion() > 0;
5981 
5982 	 unsigned char *ptr;
5983 	 unsigned char *buf;
5984 	 const size_t sizeWithoutChecksum = 8 + 4;
5985 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
5986 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
5987 	buf = stream->alloc(totalSize);
5988 	ptr = buf;
5989 	int tmp = OP_glLineWidthxOES;memcpy(ptr, &tmp, 4); ptr += 4;
5990 	memcpy(ptr, &totalSize, 4);  ptr += 4;
5991 
5992 		memcpy(ptr, &width, 4); ptr += 4;
5993 
5994 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
5995 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
5996 
5997 }
5998 
glLoadMatrixxOES_enc(void * self,const GLfixed * m)5999 void glLoadMatrixxOES_enc(void *self , const GLfixed* m)
6000 {
6001 	ENCODER_DEBUG_LOG("glLoadMatrixxOES(m:0x%08x)", m);
6002 	AEMU_SCOPED_TRACE("glLoadMatrixxOES encode");
6003 
6004 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6005 	IOStream *stream = ctx->m_stream;
6006 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6007 	bool useChecksum = checksumCalculator->getVersion() > 0;
6008 
6009 	const unsigned int __size_m =  (16 * sizeof(GLfixed));
6010 	 unsigned char *ptr;
6011 	 unsigned char *buf;
6012 	 const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
6013 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6014 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6015 	buf = stream->alloc(totalSize);
6016 	ptr = buf;
6017 	int tmp = OP_glLoadMatrixxOES;memcpy(ptr, &tmp, 4); ptr += 4;
6018 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6019 
6020 	memcpy(ptr, &__size_m, 4); ptr += 4;
6021 	memcpy(ptr, m, __size_m);ptr += __size_m;
6022 
6023 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6024 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6025 
6026 }
6027 
glMaterialxOES_enc(void * self,GLenum face,GLenum pname,GLfixed param)6028 void glMaterialxOES_enc(void *self , GLenum face, GLenum pname, GLfixed param)
6029 {
6030 	ENCODER_DEBUG_LOG("glMaterialxOES(face:0x%08x, pname:0x%08x, param:0x%08x)", face, pname, param);
6031 	AEMU_SCOPED_TRACE("glMaterialxOES encode");
6032 
6033 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6034 	IOStream *stream = ctx->m_stream;
6035 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6036 	bool useChecksum = checksumCalculator->getVersion() > 0;
6037 
6038 	 unsigned char *ptr;
6039 	 unsigned char *buf;
6040 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
6041 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6042 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6043 	buf = stream->alloc(totalSize);
6044 	ptr = buf;
6045 	int tmp = OP_glMaterialxOES;memcpy(ptr, &tmp, 4); ptr += 4;
6046 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6047 
6048 		memcpy(ptr, &face, 4); ptr += 4;
6049 		memcpy(ptr, &pname, 4); ptr += 4;
6050 		memcpy(ptr, &param, 4); ptr += 4;
6051 
6052 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6053 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6054 
6055 }
6056 
glMaterialxvOES_enc(void * self,GLenum face,GLenum pname,const GLfixed * params)6057 void glMaterialxvOES_enc(void *self , GLenum face, GLenum pname, const GLfixed* params)
6058 {
6059 	ENCODER_DEBUG_LOG("glMaterialxvOES(face:0x%08x, pname:0x%08x, params:0x%08x)", face, pname, params);
6060 	AEMU_SCOPED_TRACE("glMaterialxvOES encode");
6061 
6062 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6063 	IOStream *stream = ctx->m_stream;
6064 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6065 	bool useChecksum = checksumCalculator->getVersion() > 0;
6066 
6067 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
6068 	 unsigned char *ptr;
6069 	 unsigned char *buf;
6070 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
6071 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6072 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6073 	buf = stream->alloc(totalSize);
6074 	ptr = buf;
6075 	int tmp = OP_glMaterialxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
6076 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6077 
6078 		memcpy(ptr, &face, 4); ptr += 4;
6079 		memcpy(ptr, &pname, 4); ptr += 4;
6080 	memcpy(ptr, &__size_params, 4); ptr += 4;
6081 	memcpy(ptr, params, __size_params);ptr += __size_params;
6082 
6083 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6084 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6085 
6086 }
6087 
glMultMatrixxOES_enc(void * self,const GLfixed * m)6088 void glMultMatrixxOES_enc(void *self , const GLfixed* m)
6089 {
6090 	ENCODER_DEBUG_LOG("glMultMatrixxOES(m:0x%08x)", m);
6091 	AEMU_SCOPED_TRACE("glMultMatrixxOES encode");
6092 
6093 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6094 	IOStream *stream = ctx->m_stream;
6095 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6096 	bool useChecksum = checksumCalculator->getVersion() > 0;
6097 
6098 	const unsigned int __size_m =  (16 * sizeof(GLfixed));
6099 	 unsigned char *ptr;
6100 	 unsigned char *buf;
6101 	 const size_t sizeWithoutChecksum = 8 + __size_m + 1*4;
6102 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6103 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6104 	buf = stream->alloc(totalSize);
6105 	ptr = buf;
6106 	int tmp = OP_glMultMatrixxOES;memcpy(ptr, &tmp, 4); ptr += 4;
6107 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6108 
6109 	memcpy(ptr, &__size_m, 4); ptr += 4;
6110 	memcpy(ptr, m, __size_m);ptr += __size_m;
6111 
6112 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6113 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6114 
6115 }
6116 
glMultiTexCoord4xOES_enc(void * self,GLenum target,GLfixed s,GLfixed t,GLfixed r,GLfixed q)6117 void glMultiTexCoord4xOES_enc(void *self , GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
6118 {
6119 	ENCODER_DEBUG_LOG("glMultiTexCoord4xOES(target:0x%08x, s:0x%08x, t:0x%08x, r:0x%08x, q:0x%08x)", target, s, t, r, q);
6120 	AEMU_SCOPED_TRACE("glMultiTexCoord4xOES encode");
6121 
6122 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6123 	IOStream *stream = ctx->m_stream;
6124 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6125 	bool useChecksum = checksumCalculator->getVersion() > 0;
6126 
6127 	 unsigned char *ptr;
6128 	 unsigned char *buf;
6129 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
6130 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6131 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6132 	buf = stream->alloc(totalSize);
6133 	ptr = buf;
6134 	int tmp = OP_glMultiTexCoord4xOES;memcpy(ptr, &tmp, 4); ptr += 4;
6135 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6136 
6137 		memcpy(ptr, &target, 4); ptr += 4;
6138 		memcpy(ptr, &s, 4); ptr += 4;
6139 		memcpy(ptr, &t, 4); ptr += 4;
6140 		memcpy(ptr, &r, 4); ptr += 4;
6141 		memcpy(ptr, &q, 4); ptr += 4;
6142 
6143 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6144 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6145 
6146 }
6147 
glNormal3xOES_enc(void * self,GLfixed nx,GLfixed ny,GLfixed nz)6148 void glNormal3xOES_enc(void *self , GLfixed nx, GLfixed ny, GLfixed nz)
6149 {
6150 	ENCODER_DEBUG_LOG("glNormal3xOES(nx:0x%08x, ny:0x%08x, nz:0x%08x)", nx, ny, nz);
6151 	AEMU_SCOPED_TRACE("glNormal3xOES encode");
6152 
6153 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6154 	IOStream *stream = ctx->m_stream;
6155 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6156 	bool useChecksum = checksumCalculator->getVersion() > 0;
6157 
6158 	 unsigned char *ptr;
6159 	 unsigned char *buf;
6160 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
6161 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6162 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6163 	buf = stream->alloc(totalSize);
6164 	ptr = buf;
6165 	int tmp = OP_glNormal3xOES;memcpy(ptr, &tmp, 4); ptr += 4;
6166 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6167 
6168 		memcpy(ptr, &nx, 4); ptr += 4;
6169 		memcpy(ptr, &ny, 4); ptr += 4;
6170 		memcpy(ptr, &nz, 4); ptr += 4;
6171 
6172 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6173 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6174 
6175 }
6176 
glOrthoxOES_enc(void * self,GLfixed left,GLfixed right,GLfixed bottom,GLfixed top,GLfixed zNear,GLfixed zFar)6177 void glOrthoxOES_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
6178 {
6179 	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);
6180 	AEMU_SCOPED_TRACE("glOrthoxOES encode");
6181 
6182 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6183 	IOStream *stream = ctx->m_stream;
6184 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6185 	bool useChecksum = checksumCalculator->getVersion() > 0;
6186 
6187 	 unsigned char *ptr;
6188 	 unsigned char *buf;
6189 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
6190 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6191 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6192 	buf = stream->alloc(totalSize);
6193 	ptr = buf;
6194 	int tmp = OP_glOrthoxOES;memcpy(ptr, &tmp, 4); ptr += 4;
6195 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6196 
6197 		memcpy(ptr, &left, 4); ptr += 4;
6198 		memcpy(ptr, &right, 4); ptr += 4;
6199 		memcpy(ptr, &bottom, 4); ptr += 4;
6200 		memcpy(ptr, &top, 4); ptr += 4;
6201 		memcpy(ptr, &zNear, 4); ptr += 4;
6202 		memcpy(ptr, &zFar, 4); ptr += 4;
6203 
6204 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6205 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6206 
6207 }
6208 
glPointParameterxOES_enc(void * self,GLenum pname,GLfixed param)6209 void glPointParameterxOES_enc(void *self , GLenum pname, GLfixed param)
6210 {
6211 	ENCODER_DEBUG_LOG("glPointParameterxOES(pname:0x%08x, param:0x%08x)", pname, param);
6212 	AEMU_SCOPED_TRACE("glPointParameterxOES encode");
6213 
6214 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6215 	IOStream *stream = ctx->m_stream;
6216 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6217 	bool useChecksum = checksumCalculator->getVersion() > 0;
6218 
6219 	 unsigned char *ptr;
6220 	 unsigned char *buf;
6221 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
6222 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6223 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6224 	buf = stream->alloc(totalSize);
6225 	ptr = buf;
6226 	int tmp = OP_glPointParameterxOES;memcpy(ptr, &tmp, 4); ptr += 4;
6227 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6228 
6229 		memcpy(ptr, &pname, 4); ptr += 4;
6230 		memcpy(ptr, &param, 4); ptr += 4;
6231 
6232 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6233 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6234 
6235 }
6236 
glPointParameterxvOES_enc(void * self,GLenum pname,const GLfixed * params)6237 void glPointParameterxvOES_enc(void *self , GLenum pname, const GLfixed* params)
6238 {
6239 	ENCODER_DEBUG_LOG("glPointParameterxvOES(pname:0x%08x, params:0x%08x)", pname, params);
6240 	AEMU_SCOPED_TRACE("glPointParameterxvOES encode");
6241 
6242 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6243 	IOStream *stream = ctx->m_stream;
6244 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6245 	bool useChecksum = checksumCalculator->getVersion() > 0;
6246 
6247 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
6248 	 unsigned char *ptr;
6249 	 unsigned char *buf;
6250 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_params + 1*4;
6251 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6252 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6253 	buf = stream->alloc(totalSize);
6254 	ptr = buf;
6255 	int tmp = OP_glPointParameterxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
6256 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6257 
6258 		memcpy(ptr, &pname, 4); ptr += 4;
6259 	memcpy(ptr, &__size_params, 4); ptr += 4;
6260 	memcpy(ptr, params, __size_params);ptr += __size_params;
6261 
6262 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6263 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6264 
6265 }
6266 
glPointSizexOES_enc(void * self,GLfixed size)6267 void glPointSizexOES_enc(void *self , GLfixed size)
6268 {
6269 	ENCODER_DEBUG_LOG("glPointSizexOES(size:0x%08x)", size);
6270 	AEMU_SCOPED_TRACE("glPointSizexOES encode");
6271 
6272 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6273 	IOStream *stream = ctx->m_stream;
6274 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6275 	bool useChecksum = checksumCalculator->getVersion() > 0;
6276 
6277 	 unsigned char *ptr;
6278 	 unsigned char *buf;
6279 	 const size_t sizeWithoutChecksum = 8 + 4;
6280 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6281 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6282 	buf = stream->alloc(totalSize);
6283 	ptr = buf;
6284 	int tmp = OP_glPointSizexOES;memcpy(ptr, &tmp, 4); ptr += 4;
6285 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6286 
6287 		memcpy(ptr, &size, 4); ptr += 4;
6288 
6289 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6290 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6291 
6292 }
6293 
glPolygonOffsetxOES_enc(void * self,GLfixed factor,GLfixed units)6294 void glPolygonOffsetxOES_enc(void *self , GLfixed factor, GLfixed units)
6295 {
6296 	ENCODER_DEBUG_LOG("glPolygonOffsetxOES(factor:0x%08x, units:0x%08x)", factor, units);
6297 	AEMU_SCOPED_TRACE("glPolygonOffsetxOES encode");
6298 
6299 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6300 	IOStream *stream = ctx->m_stream;
6301 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6302 	bool useChecksum = checksumCalculator->getVersion() > 0;
6303 
6304 	 unsigned char *ptr;
6305 	 unsigned char *buf;
6306 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
6307 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6308 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6309 	buf = stream->alloc(totalSize);
6310 	ptr = buf;
6311 	int tmp = OP_glPolygonOffsetxOES;memcpy(ptr, &tmp, 4); ptr += 4;
6312 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6313 
6314 		memcpy(ptr, &factor, 4); ptr += 4;
6315 		memcpy(ptr, &units, 4); ptr += 4;
6316 
6317 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6318 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6319 
6320 }
6321 
glRotatexOES_enc(void * self,GLfixed angle,GLfixed x,GLfixed y,GLfixed z)6322 void glRotatexOES_enc(void *self , GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
6323 {
6324 	ENCODER_DEBUG_LOG("glRotatexOES(angle:0x%08x, x:0x%08x, y:0x%08x, z:0x%08x)", angle, x, y, z);
6325 	AEMU_SCOPED_TRACE("glRotatexOES encode");
6326 
6327 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6328 	IOStream *stream = ctx->m_stream;
6329 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6330 	bool useChecksum = checksumCalculator->getVersion() > 0;
6331 
6332 	 unsigned char *ptr;
6333 	 unsigned char *buf;
6334 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
6335 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6336 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6337 	buf = stream->alloc(totalSize);
6338 	ptr = buf;
6339 	int tmp = OP_glRotatexOES;memcpy(ptr, &tmp, 4); ptr += 4;
6340 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6341 
6342 		memcpy(ptr, &angle, 4); ptr += 4;
6343 		memcpy(ptr, &x, 4); ptr += 4;
6344 		memcpy(ptr, &y, 4); ptr += 4;
6345 		memcpy(ptr, &z, 4); ptr += 4;
6346 
6347 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6348 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6349 
6350 }
6351 
glSampleCoveragexOES_enc(void * self,GLclampx value,GLboolean invert)6352 void glSampleCoveragexOES_enc(void *self , GLclampx value, GLboolean invert)
6353 {
6354 	ENCODER_DEBUG_LOG("glSampleCoveragexOES(value:0x%08x, invert:%d)", value, invert);
6355 	AEMU_SCOPED_TRACE("glSampleCoveragexOES encode");
6356 
6357 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6358 	IOStream *stream = ctx->m_stream;
6359 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6360 	bool useChecksum = checksumCalculator->getVersion() > 0;
6361 
6362 	 unsigned char *ptr;
6363 	 unsigned char *buf;
6364 	 const size_t sizeWithoutChecksum = 8 + 4 + 1;
6365 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6366 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6367 	buf = stream->alloc(totalSize);
6368 	ptr = buf;
6369 	int tmp = OP_glSampleCoveragexOES;memcpy(ptr, &tmp, 4); ptr += 4;
6370 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6371 
6372 		memcpy(ptr, &value, 4); ptr += 4;
6373 		memcpy(ptr, &invert, 1); ptr += 1;
6374 
6375 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6376 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6377 
6378 }
6379 
glScalexOES_enc(void * self,GLfixed x,GLfixed y,GLfixed z)6380 void glScalexOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
6381 {
6382 	ENCODER_DEBUG_LOG("glScalexOES(x:0x%08x, y:0x%08x, z:0x%08x)", x, y, z);
6383 	AEMU_SCOPED_TRACE("glScalexOES encode");
6384 
6385 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6386 	IOStream *stream = ctx->m_stream;
6387 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6388 	bool useChecksum = checksumCalculator->getVersion() > 0;
6389 
6390 	 unsigned char *ptr;
6391 	 unsigned char *buf;
6392 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
6393 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6394 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6395 	buf = stream->alloc(totalSize);
6396 	ptr = buf;
6397 	int tmp = OP_glScalexOES;memcpy(ptr, &tmp, 4); ptr += 4;
6398 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6399 
6400 		memcpy(ptr, &x, 4); ptr += 4;
6401 		memcpy(ptr, &y, 4); ptr += 4;
6402 		memcpy(ptr, &z, 4); ptr += 4;
6403 
6404 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6405 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6406 
6407 }
6408 
glTexEnvxOES_enc(void * self,GLenum target,GLenum pname,GLfixed param)6409 void glTexEnvxOES_enc(void *self , GLenum target, GLenum pname, GLfixed param)
6410 {
6411 	ENCODER_DEBUG_LOG("glTexEnvxOES(target:0x%08x, pname:0x%08x, param:0x%08x)", target, pname, param);
6412 	AEMU_SCOPED_TRACE("glTexEnvxOES encode");
6413 
6414 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6415 	IOStream *stream = ctx->m_stream;
6416 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6417 	bool useChecksum = checksumCalculator->getVersion() > 0;
6418 
6419 	 unsigned char *ptr;
6420 	 unsigned char *buf;
6421 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
6422 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6423 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6424 	buf = stream->alloc(totalSize);
6425 	ptr = buf;
6426 	int tmp = OP_glTexEnvxOES;memcpy(ptr, &tmp, 4); ptr += 4;
6427 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6428 
6429 		memcpy(ptr, &target, 4); ptr += 4;
6430 		memcpy(ptr, &pname, 4); ptr += 4;
6431 		memcpy(ptr, &param, 4); ptr += 4;
6432 
6433 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6434 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6435 
6436 }
6437 
glTexEnvxvOES_enc(void * self,GLenum target,GLenum pname,const GLfixed * params)6438 void glTexEnvxvOES_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
6439 {
6440 	ENCODER_DEBUG_LOG("glTexEnvxvOES(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
6441 	AEMU_SCOPED_TRACE("glTexEnvxvOES encode");
6442 
6443 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6444 	IOStream *stream = ctx->m_stream;
6445 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6446 	bool useChecksum = checksumCalculator->getVersion() > 0;
6447 
6448 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
6449 	 unsigned char *ptr;
6450 	 unsigned char *buf;
6451 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
6452 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6453 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6454 	buf = stream->alloc(totalSize);
6455 	ptr = buf;
6456 	int tmp = OP_glTexEnvxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
6457 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6458 
6459 		memcpy(ptr, &target, 4); ptr += 4;
6460 		memcpy(ptr, &pname, 4); ptr += 4;
6461 	memcpy(ptr, &__size_params, 4); ptr += 4;
6462 	memcpy(ptr, params, __size_params);ptr += __size_params;
6463 
6464 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6465 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6466 
6467 }
6468 
glTexParameterxOES_enc(void * self,GLenum target,GLenum pname,GLfixed param)6469 void glTexParameterxOES_enc(void *self , GLenum target, GLenum pname, GLfixed param)
6470 {
6471 	ENCODER_DEBUG_LOG("glTexParameterxOES(target:0x%08x, pname:0x%08x, param:0x%08x)", target, pname, param);
6472 	AEMU_SCOPED_TRACE("glTexParameterxOES encode");
6473 
6474 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6475 	IOStream *stream = ctx->m_stream;
6476 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6477 	bool useChecksum = checksumCalculator->getVersion() > 0;
6478 
6479 	 unsigned char *ptr;
6480 	 unsigned char *buf;
6481 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
6482 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6483 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6484 	buf = stream->alloc(totalSize);
6485 	ptr = buf;
6486 	int tmp = OP_glTexParameterxOES;memcpy(ptr, &tmp, 4); ptr += 4;
6487 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6488 
6489 		memcpy(ptr, &target, 4); ptr += 4;
6490 		memcpy(ptr, &pname, 4); ptr += 4;
6491 		memcpy(ptr, &param, 4); ptr += 4;
6492 
6493 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6494 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6495 
6496 }
6497 
glTexParameterxvOES_enc(void * self,GLenum target,GLenum pname,const GLfixed * params)6498 void glTexParameterxvOES_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
6499 {
6500 	ENCODER_DEBUG_LOG("glTexParameterxvOES(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
6501 	AEMU_SCOPED_TRACE("glTexParameterxvOES encode");
6502 
6503 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6504 	IOStream *stream = ctx->m_stream;
6505 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6506 	bool useChecksum = checksumCalculator->getVersion() > 0;
6507 
6508 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
6509 	 unsigned char *ptr;
6510 	 unsigned char *buf;
6511 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
6512 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6513 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6514 	buf = stream->alloc(totalSize);
6515 	ptr = buf;
6516 	int tmp = OP_glTexParameterxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
6517 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6518 
6519 		memcpy(ptr, &target, 4); ptr += 4;
6520 		memcpy(ptr, &pname, 4); ptr += 4;
6521 	memcpy(ptr, &__size_params, 4); ptr += 4;
6522 	memcpy(ptr, params, __size_params);ptr += __size_params;
6523 
6524 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6525 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6526 
6527 }
6528 
glTranslatexOES_enc(void * self,GLfixed x,GLfixed y,GLfixed z)6529 void glTranslatexOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
6530 {
6531 	ENCODER_DEBUG_LOG("glTranslatexOES(x:0x%08x, y:0x%08x, z:0x%08x)", x, y, z);
6532 	AEMU_SCOPED_TRACE("glTranslatexOES encode");
6533 
6534 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6535 	IOStream *stream = ctx->m_stream;
6536 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6537 	bool useChecksum = checksumCalculator->getVersion() > 0;
6538 
6539 	 unsigned char *ptr;
6540 	 unsigned char *buf;
6541 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
6542 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6543 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6544 	buf = stream->alloc(totalSize);
6545 	ptr = buf;
6546 	int tmp = OP_glTranslatexOES;memcpy(ptr, &tmp, 4); ptr += 4;
6547 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6548 
6549 		memcpy(ptr, &x, 4); ptr += 4;
6550 		memcpy(ptr, &y, 4); ptr += 4;
6551 		memcpy(ptr, &z, 4); ptr += 4;
6552 
6553 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6554 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6555 
6556 }
6557 
glIsRenderbufferOES_enc(void * self,GLuint renderbuffer)6558 GLboolean glIsRenderbufferOES_enc(void *self , GLuint renderbuffer)
6559 {
6560 	ENCODER_DEBUG_LOG("glIsRenderbufferOES(renderbuffer:%u)", renderbuffer);
6561 	AEMU_SCOPED_TRACE("glIsRenderbufferOES encode");
6562 
6563 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6564 	IOStream *stream = ctx->m_stream;
6565 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6566 	bool useChecksum = checksumCalculator->getVersion() > 0;
6567 
6568 	 unsigned char *ptr;
6569 	 unsigned char *buf;
6570 	 const size_t sizeWithoutChecksum = 8 + 4;
6571 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6572 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6573 	buf = stream->alloc(totalSize);
6574 	ptr = buf;
6575 	int tmp = OP_glIsRenderbufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6576 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6577 
6578 		memcpy(ptr, &renderbuffer, 4); ptr += 4;
6579 
6580 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6581 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6582 
6583 
6584 	GLboolean retval;
6585 	stream->readback(&retval, 1);
6586 	if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
6587 	if (useChecksum) {
6588 		unsigned char *checksumBufPtr = NULL;
6589 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
6590 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
6591 		stream->readback(checksumBufPtr, checksumSize);
6592 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
6593 			ALOGE("glIsRenderbufferOES: GL communication error, please report this issue to b.android.com.\n");
6594 			abort();
6595 		}
6596 	}
6597 	return retval;
6598 }
6599 
glBindRenderbufferOES_enc(void * self,GLenum target,GLuint renderbuffer)6600 void glBindRenderbufferOES_enc(void *self , GLenum target, GLuint renderbuffer)
6601 {
6602 	ENCODER_DEBUG_LOG("glBindRenderbufferOES(target:0x%08x, renderbuffer:%u)", target, renderbuffer);
6603 	AEMU_SCOPED_TRACE("glBindRenderbufferOES encode");
6604 
6605 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6606 	IOStream *stream = ctx->m_stream;
6607 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6608 	bool useChecksum = checksumCalculator->getVersion() > 0;
6609 
6610 	 unsigned char *ptr;
6611 	 unsigned char *buf;
6612 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
6613 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6614 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6615 	buf = stream->alloc(totalSize);
6616 	ptr = buf;
6617 	int tmp = OP_glBindRenderbufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6618 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6619 
6620 		memcpy(ptr, &target, 4); ptr += 4;
6621 		memcpy(ptr, &renderbuffer, 4); ptr += 4;
6622 
6623 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6624 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6625 
6626 }
6627 
glDeleteRenderbuffersOES_enc(void * self,GLsizei n,const GLuint * renderbuffers)6628 void glDeleteRenderbuffersOES_enc(void *self , GLsizei n, const GLuint* renderbuffers)
6629 {
6630 	ENCODER_DEBUG_LOG("glDeleteRenderbuffersOES(n:%d, renderbuffers:0x%08x)", n, renderbuffers);
6631 	AEMU_SCOPED_TRACE("glDeleteRenderbuffersOES encode");
6632 
6633 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6634 	IOStream *stream = ctx->m_stream;
6635 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6636 	bool useChecksum = checksumCalculator->getVersion() > 0;
6637 
6638 	const unsigned int __size_renderbuffers =  (n * sizeof(GLuint));
6639 	 unsigned char *ptr;
6640 	 unsigned char *buf;
6641 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_renderbuffers + 1*4;
6642 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6643 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6644 	buf = stream->alloc(totalSize);
6645 	ptr = buf;
6646 	int tmp = OP_glDeleteRenderbuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
6647 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6648 
6649 		memcpy(ptr, &n, 4); ptr += 4;
6650 	memcpy(ptr, &__size_renderbuffers, 4); ptr += 4;
6651 	memcpy(ptr, renderbuffers, __size_renderbuffers);ptr += __size_renderbuffers;
6652 
6653 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6654 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6655 
6656 }
6657 
glGenRenderbuffersOES_enc(void * self,GLsizei n,GLuint * renderbuffers)6658 void glGenRenderbuffersOES_enc(void *self , GLsizei n, GLuint* renderbuffers)
6659 {
6660 	ENCODER_DEBUG_LOG("glGenRenderbuffersOES(n:%d, renderbuffers:0x%08x)", n, renderbuffers);
6661 	AEMU_SCOPED_TRACE("glGenRenderbuffersOES encode");
6662 
6663 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6664 	IOStream *stream = ctx->m_stream;
6665 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6666 	bool useChecksum = checksumCalculator->getVersion() > 0;
6667 
6668 	const unsigned int __size_renderbuffers =  (n * sizeof(GLuint));
6669 	 unsigned char *ptr;
6670 	 unsigned char *buf;
6671 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
6672 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6673 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6674 	buf = stream->alloc(totalSize);
6675 	ptr = buf;
6676 	int tmp = OP_glGenRenderbuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
6677 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6678 
6679 		memcpy(ptr, &n, 4); ptr += 4;
6680 	memcpy(ptr, &__size_renderbuffers, 4); ptr += 4;
6681 
6682 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6683 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6684 
6685 	stream->readback(renderbuffers, __size_renderbuffers);
6686 	if (useChecksum) checksumCalculator->addBuffer(renderbuffers, __size_renderbuffers);
6687 	if (useChecksum) {
6688 		unsigned char *checksumBufPtr = NULL;
6689 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
6690 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
6691 		stream->readback(checksumBufPtr, checksumSize);
6692 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
6693 			ALOGE("glGenRenderbuffersOES: GL communication error, please report this issue to b.android.com.\n");
6694 			abort();
6695 		}
6696 	}
6697 }
6698 
glRenderbufferStorageOES_enc(void * self,GLenum target,GLenum internalformat,GLsizei width,GLsizei height)6699 void glRenderbufferStorageOES_enc(void *self , GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
6700 {
6701 	ENCODER_DEBUG_LOG("glRenderbufferStorageOES(target:0x%08x, internalformat:0x%08x, width:%d, height:%d)", target, internalformat, width, height);
6702 	AEMU_SCOPED_TRACE("glRenderbufferStorageOES encode");
6703 
6704 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6705 	IOStream *stream = ctx->m_stream;
6706 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6707 	bool useChecksum = checksumCalculator->getVersion() > 0;
6708 
6709 	 unsigned char *ptr;
6710 	 unsigned char *buf;
6711 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
6712 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6713 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6714 	buf = stream->alloc(totalSize);
6715 	ptr = buf;
6716 	int tmp = OP_glRenderbufferStorageOES;memcpy(ptr, &tmp, 4); ptr += 4;
6717 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6718 
6719 		memcpy(ptr, &target, 4); ptr += 4;
6720 		memcpy(ptr, &internalformat, 4); ptr += 4;
6721 		memcpy(ptr, &width, 4); ptr += 4;
6722 		memcpy(ptr, &height, 4); ptr += 4;
6723 
6724 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6725 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6726 
6727 }
6728 
glGetRenderbufferParameterivOES_enc(void * self,GLenum target,GLenum pname,GLint * params)6729 void glGetRenderbufferParameterivOES_enc(void *self , GLenum target, GLenum pname, GLint* params)
6730 {
6731 	ENCODER_DEBUG_LOG("glGetRenderbufferParameterivOES(target:0x%08x, pname:0x%08x, params:0x%08x)", target, pname, params);
6732 	AEMU_SCOPED_TRACE("glGetRenderbufferParameterivOES encode");
6733 
6734 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6735 	IOStream *stream = ctx->m_stream;
6736 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6737 	bool useChecksum = checksumCalculator->getVersion() > 0;
6738 
6739 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
6740 	 unsigned char *ptr;
6741 	 unsigned char *buf;
6742 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
6743 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6744 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6745 	buf = stream->alloc(totalSize);
6746 	ptr = buf;
6747 	int tmp = OP_glGetRenderbufferParameterivOES;memcpy(ptr, &tmp, 4); ptr += 4;
6748 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6749 
6750 		memcpy(ptr, &target, 4); ptr += 4;
6751 		memcpy(ptr, &pname, 4); ptr += 4;
6752 	memcpy(ptr, &__size_params, 4); ptr += 4;
6753 
6754 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6755 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6756 
6757 	stream->readback(params, __size_params);
6758 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
6759 	if (useChecksum) {
6760 		unsigned char *checksumBufPtr = NULL;
6761 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
6762 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
6763 		stream->readback(checksumBufPtr, checksumSize);
6764 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
6765 			ALOGE("glGetRenderbufferParameterivOES: GL communication error, please report this issue to b.android.com.\n");
6766 			abort();
6767 		}
6768 	}
6769 }
6770 
glIsFramebufferOES_enc(void * self,GLuint framebuffer)6771 GLboolean glIsFramebufferOES_enc(void *self , GLuint framebuffer)
6772 {
6773 	ENCODER_DEBUG_LOG("glIsFramebufferOES(framebuffer:%u)", framebuffer);
6774 	AEMU_SCOPED_TRACE("glIsFramebufferOES encode");
6775 
6776 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6777 	IOStream *stream = ctx->m_stream;
6778 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6779 	bool useChecksum = checksumCalculator->getVersion() > 0;
6780 
6781 	 unsigned char *ptr;
6782 	 unsigned char *buf;
6783 	 const size_t sizeWithoutChecksum = 8 + 4;
6784 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6785 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6786 	buf = stream->alloc(totalSize);
6787 	ptr = buf;
6788 	int tmp = OP_glIsFramebufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6789 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6790 
6791 		memcpy(ptr, &framebuffer, 4); ptr += 4;
6792 
6793 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6794 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6795 
6796 
6797 	GLboolean retval;
6798 	stream->readback(&retval, 1);
6799 	if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
6800 	if (useChecksum) {
6801 		unsigned char *checksumBufPtr = NULL;
6802 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
6803 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
6804 		stream->readback(checksumBufPtr, checksumSize);
6805 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
6806 			ALOGE("glIsFramebufferOES: GL communication error, please report this issue to b.android.com.\n");
6807 			abort();
6808 		}
6809 	}
6810 	return retval;
6811 }
6812 
glBindFramebufferOES_enc(void * self,GLenum target,GLuint framebuffer)6813 void glBindFramebufferOES_enc(void *self , GLenum target, GLuint framebuffer)
6814 {
6815 	ENCODER_DEBUG_LOG("glBindFramebufferOES(target:0x%08x, framebuffer:%u)", target, framebuffer);
6816 	AEMU_SCOPED_TRACE("glBindFramebufferOES encode");
6817 
6818 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6819 	IOStream *stream = ctx->m_stream;
6820 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6821 	bool useChecksum = checksumCalculator->getVersion() > 0;
6822 
6823 	 unsigned char *ptr;
6824 	 unsigned char *buf;
6825 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
6826 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6827 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6828 	buf = stream->alloc(totalSize);
6829 	ptr = buf;
6830 	int tmp = OP_glBindFramebufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6831 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6832 
6833 		memcpy(ptr, &target, 4); ptr += 4;
6834 		memcpy(ptr, &framebuffer, 4); ptr += 4;
6835 
6836 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6837 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6838 
6839 }
6840 
glDeleteFramebuffersOES_enc(void * self,GLsizei n,const GLuint * framebuffers)6841 void glDeleteFramebuffersOES_enc(void *self , GLsizei n, const GLuint* framebuffers)
6842 {
6843 	ENCODER_DEBUG_LOG("glDeleteFramebuffersOES(n:%d, framebuffers:0x%08x)", n, framebuffers);
6844 	AEMU_SCOPED_TRACE("glDeleteFramebuffersOES encode");
6845 
6846 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6847 	IOStream *stream = ctx->m_stream;
6848 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6849 	bool useChecksum = checksumCalculator->getVersion() > 0;
6850 
6851 	const unsigned int __size_framebuffers =  (n * sizeof(GLuint));
6852 	 unsigned char *ptr;
6853 	 unsigned char *buf;
6854 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_framebuffers + 1*4;
6855 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6856 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6857 	buf = stream->alloc(totalSize);
6858 	ptr = buf;
6859 	int tmp = OP_glDeleteFramebuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
6860 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6861 
6862 		memcpy(ptr, &n, 4); ptr += 4;
6863 	memcpy(ptr, &__size_framebuffers, 4); ptr += 4;
6864 	memcpy(ptr, framebuffers, __size_framebuffers);ptr += __size_framebuffers;
6865 
6866 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6867 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6868 
6869 }
6870 
glGenFramebuffersOES_enc(void * self,GLsizei n,GLuint * framebuffers)6871 void glGenFramebuffersOES_enc(void *self , GLsizei n, GLuint* framebuffers)
6872 {
6873 	ENCODER_DEBUG_LOG("glGenFramebuffersOES(n:%d, framebuffers:0x%08x)", n, framebuffers);
6874 	AEMU_SCOPED_TRACE("glGenFramebuffersOES encode");
6875 
6876 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6877 	IOStream *stream = ctx->m_stream;
6878 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6879 	bool useChecksum = checksumCalculator->getVersion() > 0;
6880 
6881 	const unsigned int __size_framebuffers =  (n * sizeof(GLuint));
6882 	 unsigned char *ptr;
6883 	 unsigned char *buf;
6884 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
6885 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6886 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6887 	buf = stream->alloc(totalSize);
6888 	ptr = buf;
6889 	int tmp = OP_glGenFramebuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
6890 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6891 
6892 		memcpy(ptr, &n, 4); ptr += 4;
6893 	memcpy(ptr, &__size_framebuffers, 4); ptr += 4;
6894 
6895 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6896 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6897 
6898 	stream->readback(framebuffers, __size_framebuffers);
6899 	if (useChecksum) checksumCalculator->addBuffer(framebuffers, __size_framebuffers);
6900 	if (useChecksum) {
6901 		unsigned char *checksumBufPtr = NULL;
6902 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
6903 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
6904 		stream->readback(checksumBufPtr, checksumSize);
6905 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
6906 			ALOGE("glGenFramebuffersOES: GL communication error, please report this issue to b.android.com.\n");
6907 			abort();
6908 		}
6909 	}
6910 }
6911 
glCheckFramebufferStatusOES_enc(void * self,GLenum target)6912 GLenum glCheckFramebufferStatusOES_enc(void *self , GLenum target)
6913 {
6914 	ENCODER_DEBUG_LOG("glCheckFramebufferStatusOES(target:0x%08x)", target);
6915 	AEMU_SCOPED_TRACE("glCheckFramebufferStatusOES encode");
6916 
6917 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6918 	IOStream *stream = ctx->m_stream;
6919 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6920 	bool useChecksum = checksumCalculator->getVersion() > 0;
6921 
6922 	 unsigned char *ptr;
6923 	 unsigned char *buf;
6924 	 const size_t sizeWithoutChecksum = 8 + 4;
6925 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6926 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6927 	buf = stream->alloc(totalSize);
6928 	ptr = buf;
6929 	int tmp = OP_glCheckFramebufferStatusOES;memcpy(ptr, &tmp, 4); ptr += 4;
6930 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6931 
6932 		memcpy(ptr, &target, 4); ptr += 4;
6933 
6934 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6935 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6936 
6937 
6938 	GLenum retval;
6939 	stream->readback(&retval, 4);
6940 	if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
6941 	if (useChecksum) {
6942 		unsigned char *checksumBufPtr = NULL;
6943 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
6944 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
6945 		stream->readback(checksumBufPtr, checksumSize);
6946 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
6947 			ALOGE("glCheckFramebufferStatusOES: GL communication error, please report this issue to b.android.com.\n");
6948 			abort();
6949 		}
6950 	}
6951 	return retval;
6952 }
6953 
glFramebufferRenderbufferOES_enc(void * self,GLenum target,GLenum attachment,GLenum renderbuffertarget,GLuint renderbuffer)6954 void glFramebufferRenderbufferOES_enc(void *self , GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
6955 {
6956 	ENCODER_DEBUG_LOG("glFramebufferRenderbufferOES(target:0x%08x, attachment:0x%08x, renderbuffertarget:0x%08x, renderbuffer:%u)", target, attachment, renderbuffertarget, renderbuffer);
6957 	AEMU_SCOPED_TRACE("glFramebufferRenderbufferOES encode");
6958 
6959 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6960 	IOStream *stream = ctx->m_stream;
6961 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6962 	bool useChecksum = checksumCalculator->getVersion() > 0;
6963 
6964 	 unsigned char *ptr;
6965 	 unsigned char *buf;
6966 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4;
6967 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6968 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6969 	buf = stream->alloc(totalSize);
6970 	ptr = buf;
6971 	int tmp = OP_glFramebufferRenderbufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
6972 	memcpy(ptr, &totalSize, 4);  ptr += 4;
6973 
6974 		memcpy(ptr, &target, 4); ptr += 4;
6975 		memcpy(ptr, &attachment, 4); ptr += 4;
6976 		memcpy(ptr, &renderbuffertarget, 4); ptr += 4;
6977 		memcpy(ptr, &renderbuffer, 4); ptr += 4;
6978 
6979 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
6980 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
6981 
6982 }
6983 
glFramebufferTexture2DOES_enc(void * self,GLenum target,GLenum attachment,GLenum textarget,GLuint texture,GLint level)6984 void glFramebufferTexture2DOES_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
6985 {
6986 	ENCODER_DEBUG_LOG("glFramebufferTexture2DOES(target:0x%08x, attachment:0x%08x, textarget:0x%08x, texture:%u, level:%d)", target, attachment, textarget, texture, level);
6987 	AEMU_SCOPED_TRACE("glFramebufferTexture2DOES encode");
6988 
6989 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
6990 	IOStream *stream = ctx->m_stream;
6991 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
6992 	bool useChecksum = checksumCalculator->getVersion() > 0;
6993 
6994 	 unsigned char *ptr;
6995 	 unsigned char *buf;
6996 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
6997 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
6998 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
6999 	buf = stream->alloc(totalSize);
7000 	ptr = buf;
7001 	int tmp = OP_glFramebufferTexture2DOES;memcpy(ptr, &tmp, 4); ptr += 4;
7002 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7003 
7004 		memcpy(ptr, &target, 4); ptr += 4;
7005 		memcpy(ptr, &attachment, 4); ptr += 4;
7006 		memcpy(ptr, &textarget, 4); ptr += 4;
7007 		memcpy(ptr, &texture, 4); ptr += 4;
7008 		memcpy(ptr, &level, 4); ptr += 4;
7009 
7010 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7011 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7012 
7013 }
7014 
glGetFramebufferAttachmentParameterivOES_enc(void * self,GLenum target,GLenum attachment,GLenum pname,GLint * params)7015 void glGetFramebufferAttachmentParameterivOES_enc(void *self , GLenum target, GLenum attachment, GLenum pname, GLint* params)
7016 {
7017 	ENCODER_DEBUG_LOG("glGetFramebufferAttachmentParameterivOES(target:0x%08x, attachment:0x%08x, pname:0x%08x, params:0x%08x)", target, attachment, pname, params);
7018 	AEMU_SCOPED_TRACE("glGetFramebufferAttachmentParameterivOES encode");
7019 
7020 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7021 	IOStream *stream = ctx->m_stream;
7022 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7023 	bool useChecksum = checksumCalculator->getVersion() > 0;
7024 
7025 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
7026 	 unsigned char *ptr;
7027 	 unsigned char *buf;
7028 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 0 + 1*4;
7029 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7030 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7031 	buf = stream->alloc(totalSize);
7032 	ptr = buf;
7033 	int tmp = OP_glGetFramebufferAttachmentParameterivOES;memcpy(ptr, &tmp, 4); ptr += 4;
7034 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7035 
7036 		memcpy(ptr, &target, 4); ptr += 4;
7037 		memcpy(ptr, &attachment, 4); ptr += 4;
7038 		memcpy(ptr, &pname, 4); ptr += 4;
7039 	memcpy(ptr, &__size_params, 4); ptr += 4;
7040 
7041 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7042 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7043 
7044 	stream->readback(params, __size_params);
7045 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
7046 	if (useChecksum) {
7047 		unsigned char *checksumBufPtr = NULL;
7048 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
7049 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
7050 		stream->readback(checksumBufPtr, checksumSize);
7051 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
7052 			ALOGE("glGetFramebufferAttachmentParameterivOES: GL communication error, please report this issue to b.android.com.\n");
7053 			abort();
7054 		}
7055 	}
7056 }
7057 
glGenerateMipmapOES_enc(void * self,GLenum target)7058 void glGenerateMipmapOES_enc(void *self , GLenum target)
7059 {
7060 	ENCODER_DEBUG_LOG("glGenerateMipmapOES(target:0x%08x)", target);
7061 	AEMU_SCOPED_TRACE("glGenerateMipmapOES encode");
7062 
7063 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7064 	IOStream *stream = ctx->m_stream;
7065 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7066 	bool useChecksum = checksumCalculator->getVersion() > 0;
7067 
7068 	 unsigned char *ptr;
7069 	 unsigned char *buf;
7070 	 const size_t sizeWithoutChecksum = 8 + 4;
7071 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7072 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7073 	buf = stream->alloc(totalSize);
7074 	ptr = buf;
7075 	int tmp = OP_glGenerateMipmapOES;memcpy(ptr, &tmp, 4); ptr += 4;
7076 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7077 
7078 		memcpy(ptr, &target, 4); ptr += 4;
7079 
7080 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7081 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7082 
7083 }
7084 
glUnmapBufferOES_enc(void * self,GLenum target)7085 GLboolean glUnmapBufferOES_enc(void *self , GLenum target)
7086 {
7087 	ENCODER_DEBUG_LOG("glUnmapBufferOES(target:0x%08x)", target);
7088 	AEMU_SCOPED_TRACE("glUnmapBufferOES encode");
7089 
7090 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7091 	IOStream *stream = ctx->m_stream;
7092 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7093 	bool useChecksum = checksumCalculator->getVersion() > 0;
7094 
7095 	 unsigned char *ptr;
7096 	 unsigned char *buf;
7097 	 const size_t sizeWithoutChecksum = 8 + 4;
7098 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7099 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7100 	buf = stream->alloc(totalSize);
7101 	ptr = buf;
7102 	int tmp = OP_glUnmapBufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
7103 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7104 
7105 		memcpy(ptr, &target, 4); ptr += 4;
7106 
7107 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7108 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7109 
7110 
7111 	GLboolean retval;
7112 	stream->readback(&retval, 1);
7113 	if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
7114 	if (useChecksum) {
7115 		unsigned char *checksumBufPtr = NULL;
7116 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
7117 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
7118 		stream->readback(checksumBufPtr, checksumSize);
7119 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
7120 			ALOGE("glUnmapBufferOES: GL communication error, please report this issue to b.android.com.\n");
7121 			abort();
7122 		}
7123 	}
7124 	return retval;
7125 }
7126 
glCurrentPaletteMatrixOES_enc(void * self,GLuint matrixpaletteindex)7127 void glCurrentPaletteMatrixOES_enc(void *self , GLuint matrixpaletteindex)
7128 {
7129 	ENCODER_DEBUG_LOG("glCurrentPaletteMatrixOES(matrixpaletteindex:%u)", matrixpaletteindex);
7130 	AEMU_SCOPED_TRACE("glCurrentPaletteMatrixOES encode");
7131 
7132 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7133 	IOStream *stream = ctx->m_stream;
7134 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7135 	bool useChecksum = checksumCalculator->getVersion() > 0;
7136 
7137 	 unsigned char *ptr;
7138 	 unsigned char *buf;
7139 	 const size_t sizeWithoutChecksum = 8 + 4;
7140 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7141 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7142 	buf = stream->alloc(totalSize);
7143 	ptr = buf;
7144 	int tmp = OP_glCurrentPaletteMatrixOES;memcpy(ptr, &tmp, 4); ptr += 4;
7145 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7146 
7147 		memcpy(ptr, &matrixpaletteindex, 4); ptr += 4;
7148 
7149 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7150 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7151 
7152 }
7153 
glLoadPaletteFromModelViewMatrixOES_enc(void * self)7154 void glLoadPaletteFromModelViewMatrixOES_enc(void *self )
7155 {
7156 	ENCODER_DEBUG_LOG("glLoadPaletteFromModelViewMatrixOES()");
7157 	AEMU_SCOPED_TRACE("glLoadPaletteFromModelViewMatrixOES encode");
7158 
7159 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7160 	IOStream *stream = ctx->m_stream;
7161 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7162 	bool useChecksum = checksumCalculator->getVersion() > 0;
7163 
7164 	 unsigned char *ptr;
7165 	 unsigned char *buf;
7166 	 const size_t sizeWithoutChecksum = 8;
7167 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7168 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7169 	buf = stream->alloc(totalSize);
7170 	ptr = buf;
7171 	int tmp = OP_glLoadPaletteFromModelViewMatrixOES;memcpy(ptr, &tmp, 4); ptr += 4;
7172 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7173 
7174 
7175 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7176 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7177 
7178 }
7179 
glQueryMatrixxOES_enc(void * self,GLfixed * mantissa,GLint * exponent)7180 GLbitfield glQueryMatrixxOES_enc(void *self , GLfixed* mantissa, GLint* exponent)
7181 {
7182 	ENCODER_DEBUG_LOG("glQueryMatrixxOES(mantissa:0x%08x, exponent:0x%08x)", mantissa, exponent);
7183 	AEMU_SCOPED_TRACE("glQueryMatrixxOES encode");
7184 
7185 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7186 	IOStream *stream = ctx->m_stream;
7187 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7188 	bool useChecksum = checksumCalculator->getVersion() > 0;
7189 
7190 	const unsigned int __size_mantissa =  (16 * sizeof(GLfixed));
7191 	const unsigned int __size_exponent =  (16 * sizeof(GLfixed));
7192 	 unsigned char *ptr;
7193 	 unsigned char *buf;
7194 	 const size_t sizeWithoutChecksum = 8 + 0 + 0 + 2*4;
7195 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7196 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7197 	buf = stream->alloc(totalSize);
7198 	ptr = buf;
7199 	int tmp = OP_glQueryMatrixxOES;memcpy(ptr, &tmp, 4); ptr += 4;
7200 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7201 
7202 	memcpy(ptr, &__size_mantissa, 4); ptr += 4;
7203 	memcpy(ptr, &__size_exponent, 4); ptr += 4;
7204 
7205 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7206 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7207 
7208 	stream->readback(mantissa, __size_mantissa);
7209 	if (useChecksum) checksumCalculator->addBuffer(mantissa, __size_mantissa);
7210 	stream->readback(exponent, __size_exponent);
7211 	if (useChecksum) checksumCalculator->addBuffer(exponent, __size_exponent);
7212 
7213 	GLbitfield retval;
7214 	stream->readback(&retval, 4);
7215 	if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
7216 	if (useChecksum) {
7217 		unsigned char *checksumBufPtr = NULL;
7218 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
7219 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
7220 		stream->readback(checksumBufPtr, checksumSize);
7221 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
7222 			ALOGE("glQueryMatrixxOES: GL communication error, please report this issue to b.android.com.\n");
7223 			abort();
7224 		}
7225 	}
7226 	return retval;
7227 }
7228 
glDepthRangefOES_enc(void * self,GLclampf zNear,GLclampf zFar)7229 void glDepthRangefOES_enc(void *self , GLclampf zNear, GLclampf zFar)
7230 {
7231 	ENCODER_DEBUG_LOG("glDepthRangefOES(zNear:%f, zFar:%f)", zNear, zFar);
7232 	AEMU_SCOPED_TRACE("glDepthRangefOES encode");
7233 
7234 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7235 	IOStream *stream = ctx->m_stream;
7236 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7237 	bool useChecksum = checksumCalculator->getVersion() > 0;
7238 
7239 	 unsigned char *ptr;
7240 	 unsigned char *buf;
7241 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
7242 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7243 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7244 	buf = stream->alloc(totalSize);
7245 	ptr = buf;
7246 	int tmp = OP_glDepthRangefOES;memcpy(ptr, &tmp, 4); ptr += 4;
7247 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7248 
7249 		memcpy(ptr, &zNear, 4); ptr += 4;
7250 		memcpy(ptr, &zFar, 4); ptr += 4;
7251 
7252 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7253 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7254 
7255 }
7256 
glFrustumfOES_enc(void * self,GLfloat left,GLfloat right,GLfloat bottom,GLfloat top,GLfloat zNear,GLfloat zFar)7257 void glFrustumfOES_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
7258 {
7259 	ENCODER_DEBUG_LOG("glFrustumfOES(left:%f, right:%f, bottom:%f, top:%f, zNear:%f, zFar:%f)", left, right, bottom, top, zNear, zFar);
7260 	AEMU_SCOPED_TRACE("glFrustumfOES encode");
7261 
7262 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7263 	IOStream *stream = ctx->m_stream;
7264 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7265 	bool useChecksum = checksumCalculator->getVersion() > 0;
7266 
7267 	 unsigned char *ptr;
7268 	 unsigned char *buf;
7269 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
7270 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7271 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7272 	buf = stream->alloc(totalSize);
7273 	ptr = buf;
7274 	int tmp = OP_glFrustumfOES;memcpy(ptr, &tmp, 4); ptr += 4;
7275 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7276 
7277 		memcpy(ptr, &left, 4); ptr += 4;
7278 		memcpy(ptr, &right, 4); ptr += 4;
7279 		memcpy(ptr, &bottom, 4); ptr += 4;
7280 		memcpy(ptr, &top, 4); ptr += 4;
7281 		memcpy(ptr, &zNear, 4); ptr += 4;
7282 		memcpy(ptr, &zFar, 4); ptr += 4;
7283 
7284 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7285 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7286 
7287 }
7288 
glOrthofOES_enc(void * self,GLfloat left,GLfloat right,GLfloat bottom,GLfloat top,GLfloat zNear,GLfloat zFar)7289 void glOrthofOES_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
7290 {
7291 	ENCODER_DEBUG_LOG("glOrthofOES(left:%f, right:%f, bottom:%f, top:%f, zNear:%f, zFar:%f)", left, right, bottom, top, zNear, zFar);
7292 	AEMU_SCOPED_TRACE("glOrthofOES encode");
7293 
7294 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7295 	IOStream *stream = ctx->m_stream;
7296 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7297 	bool useChecksum = checksumCalculator->getVersion() > 0;
7298 
7299 	 unsigned char *ptr;
7300 	 unsigned char *buf;
7301 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
7302 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7303 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7304 	buf = stream->alloc(totalSize);
7305 	ptr = buf;
7306 	int tmp = OP_glOrthofOES;memcpy(ptr, &tmp, 4); ptr += 4;
7307 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7308 
7309 		memcpy(ptr, &left, 4); ptr += 4;
7310 		memcpy(ptr, &right, 4); ptr += 4;
7311 		memcpy(ptr, &bottom, 4); ptr += 4;
7312 		memcpy(ptr, &top, 4); ptr += 4;
7313 		memcpy(ptr, &zNear, 4); ptr += 4;
7314 		memcpy(ptr, &zFar, 4); ptr += 4;
7315 
7316 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7317 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7318 
7319 }
7320 
glClipPlanefOES_enc(void * self,GLenum plane,const GLfloat * equation)7321 void glClipPlanefOES_enc(void *self , GLenum plane, const GLfloat* equation)
7322 {
7323 	ENCODER_DEBUG_LOG("glClipPlanefOES(plane:0x%08x, equation:0x%08x)", plane, equation);
7324 	AEMU_SCOPED_TRACE("glClipPlanefOES encode");
7325 
7326 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7327 	IOStream *stream = ctx->m_stream;
7328 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7329 	bool useChecksum = checksumCalculator->getVersion() > 0;
7330 
7331 	const unsigned int __size_equation =  (4 * sizeof(GLfloat));
7332 	 unsigned char *ptr;
7333 	 unsigned char *buf;
7334 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_equation + 1*4;
7335 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7336 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7337 	buf = stream->alloc(totalSize);
7338 	ptr = buf;
7339 	int tmp = OP_glClipPlanefOES;memcpy(ptr, &tmp, 4); ptr += 4;
7340 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7341 
7342 		memcpy(ptr, &plane, 4); ptr += 4;
7343 	memcpy(ptr, &__size_equation, 4); ptr += 4;
7344 	memcpy(ptr, equation, __size_equation);ptr += __size_equation;
7345 
7346 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7347 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7348 
7349 }
7350 
glClipPlanefIMG_enc(void * self,GLenum plane,const GLfloat * equation)7351 void glClipPlanefIMG_enc(void *self , GLenum plane, const GLfloat* equation)
7352 {
7353 	ENCODER_DEBUG_LOG("glClipPlanefIMG(plane:0x%08x, equation:0x%08x)", plane, equation);
7354 	AEMU_SCOPED_TRACE("glClipPlanefIMG encode");
7355 
7356 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7357 	IOStream *stream = ctx->m_stream;
7358 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7359 	bool useChecksum = checksumCalculator->getVersion() > 0;
7360 
7361 	const unsigned int __size_equation =  (4 * sizeof(GLfloat));
7362 	 unsigned char *ptr;
7363 	 unsigned char *buf;
7364 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_equation + 1*4;
7365 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7366 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7367 	buf = stream->alloc(totalSize);
7368 	ptr = buf;
7369 	int tmp = OP_glClipPlanefIMG;memcpy(ptr, &tmp, 4); ptr += 4;
7370 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7371 
7372 		memcpy(ptr, &plane, 4); ptr += 4;
7373 	memcpy(ptr, &__size_equation, 4); ptr += 4;
7374 	memcpy(ptr, equation, __size_equation);ptr += __size_equation;
7375 
7376 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7377 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7378 
7379 }
7380 
glGetClipPlanefOES_enc(void * self,GLenum pname,GLfloat * eqn)7381 void glGetClipPlanefOES_enc(void *self , GLenum pname, GLfloat* eqn)
7382 {
7383 	ENCODER_DEBUG_LOG("glGetClipPlanefOES(pname:0x%08x, eqn:0x%08x)", pname, eqn);
7384 	AEMU_SCOPED_TRACE("glGetClipPlanefOES encode");
7385 
7386 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7387 	IOStream *stream = ctx->m_stream;
7388 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7389 	bool useChecksum = checksumCalculator->getVersion() > 0;
7390 
7391 	const unsigned int __size_eqn =  (4 * sizeof(GLfloat));
7392 	 unsigned char *ptr;
7393 	 unsigned char *buf;
7394 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
7395 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7396 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7397 	buf = stream->alloc(totalSize);
7398 	ptr = buf;
7399 	int tmp = OP_glGetClipPlanefOES;memcpy(ptr, &tmp, 4); ptr += 4;
7400 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7401 
7402 		memcpy(ptr, &pname, 4); ptr += 4;
7403 	memcpy(ptr, &__size_eqn, 4); ptr += 4;
7404 
7405 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7406 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7407 
7408 	stream->readback(eqn, __size_eqn);
7409 	if (useChecksum) checksumCalculator->addBuffer(eqn, __size_eqn);
7410 	if (useChecksum) {
7411 		unsigned char *checksumBufPtr = NULL;
7412 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
7413 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
7414 		stream->readback(checksumBufPtr, checksumSize);
7415 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
7416 			ALOGE("glGetClipPlanefOES: GL communication error, please report this issue to b.android.com.\n");
7417 			abort();
7418 		}
7419 	}
7420 }
7421 
glClearDepthfOES_enc(void * self,GLclampf depth)7422 void glClearDepthfOES_enc(void *self , GLclampf depth)
7423 {
7424 	ENCODER_DEBUG_LOG("glClearDepthfOES(depth:%f)", depth);
7425 	AEMU_SCOPED_TRACE("glClearDepthfOES encode");
7426 
7427 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7428 	IOStream *stream = ctx->m_stream;
7429 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7430 	bool useChecksum = checksumCalculator->getVersion() > 0;
7431 
7432 	 unsigned char *ptr;
7433 	 unsigned char *buf;
7434 	 const size_t sizeWithoutChecksum = 8 + 4;
7435 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7436 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7437 	buf = stream->alloc(totalSize);
7438 	ptr = buf;
7439 	int tmp = OP_glClearDepthfOES;memcpy(ptr, &tmp, 4); ptr += 4;
7440 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7441 
7442 		memcpy(ptr, &depth, 4); ptr += 4;
7443 
7444 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7445 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7446 
7447 }
7448 
glTexGenfOES_enc(void * self,GLenum coord,GLenum pname,GLfloat param)7449 void glTexGenfOES_enc(void *self , GLenum coord, GLenum pname, GLfloat param)
7450 {
7451 	ENCODER_DEBUG_LOG("glTexGenfOES(coord:0x%08x, pname:0x%08x, param:%f)", coord, pname, param);
7452 	AEMU_SCOPED_TRACE("glTexGenfOES encode");
7453 
7454 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7455 	IOStream *stream = ctx->m_stream;
7456 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7457 	bool useChecksum = checksumCalculator->getVersion() > 0;
7458 
7459 	 unsigned char *ptr;
7460 	 unsigned char *buf;
7461 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
7462 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7463 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7464 	buf = stream->alloc(totalSize);
7465 	ptr = buf;
7466 	int tmp = OP_glTexGenfOES;memcpy(ptr, &tmp, 4); ptr += 4;
7467 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7468 
7469 		memcpy(ptr, &coord, 4); ptr += 4;
7470 		memcpy(ptr, &pname, 4); ptr += 4;
7471 		memcpy(ptr, &param, 4); ptr += 4;
7472 
7473 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7474 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7475 
7476 }
7477 
glTexGenfvOES_enc(void * self,GLenum coord,GLenum pname,const GLfloat * params)7478 void glTexGenfvOES_enc(void *self , GLenum coord, GLenum pname, const GLfloat* params)
7479 {
7480 	ENCODER_DEBUG_LOG("glTexGenfvOES(coord:0x%08x, pname:0x%08x, params:0x%08x)", coord, pname, params);
7481 	AEMU_SCOPED_TRACE("glTexGenfvOES encode");
7482 
7483 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7484 	IOStream *stream = ctx->m_stream;
7485 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7486 	bool useChecksum = checksumCalculator->getVersion() > 0;
7487 
7488 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
7489 	 unsigned char *ptr;
7490 	 unsigned char *buf;
7491 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7492 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7493 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7494 	buf = stream->alloc(totalSize);
7495 	ptr = buf;
7496 	int tmp = OP_glTexGenfvOES;memcpy(ptr, &tmp, 4); ptr += 4;
7497 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7498 
7499 		memcpy(ptr, &coord, 4); ptr += 4;
7500 		memcpy(ptr, &pname, 4); ptr += 4;
7501 	memcpy(ptr, &__size_params, 4); ptr += 4;
7502 	memcpy(ptr, params, __size_params);ptr += __size_params;
7503 
7504 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7505 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7506 
7507 }
7508 
glTexGeniOES_enc(void * self,GLenum coord,GLenum pname,GLint param)7509 void glTexGeniOES_enc(void *self , GLenum coord, GLenum pname, GLint param)
7510 {
7511 	ENCODER_DEBUG_LOG("glTexGeniOES(coord:0x%08x, pname:0x%08x, param:%d)", coord, pname, param);
7512 	AEMU_SCOPED_TRACE("glTexGeniOES encode");
7513 
7514 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7515 	IOStream *stream = ctx->m_stream;
7516 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7517 	bool useChecksum = checksumCalculator->getVersion() > 0;
7518 
7519 	 unsigned char *ptr;
7520 	 unsigned char *buf;
7521 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
7522 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7523 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7524 	buf = stream->alloc(totalSize);
7525 	ptr = buf;
7526 	int tmp = OP_glTexGeniOES;memcpy(ptr, &tmp, 4); ptr += 4;
7527 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7528 
7529 		memcpy(ptr, &coord, 4); ptr += 4;
7530 		memcpy(ptr, &pname, 4); ptr += 4;
7531 		memcpy(ptr, &param, 4); ptr += 4;
7532 
7533 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7534 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7535 
7536 }
7537 
glTexGenivOES_enc(void * self,GLenum coord,GLenum pname,const GLint * params)7538 void glTexGenivOES_enc(void *self , GLenum coord, GLenum pname, const GLint* params)
7539 {
7540 	ENCODER_DEBUG_LOG("glTexGenivOES(coord:0x%08x, pname:0x%08x, params:0x%08x)", coord, pname, params);
7541 	AEMU_SCOPED_TRACE("glTexGenivOES encode");
7542 
7543 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7544 	IOStream *stream = ctx->m_stream;
7545 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7546 	bool useChecksum = checksumCalculator->getVersion() > 0;
7547 
7548 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
7549 	 unsigned char *ptr;
7550 	 unsigned char *buf;
7551 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7552 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7553 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7554 	buf = stream->alloc(totalSize);
7555 	ptr = buf;
7556 	int tmp = OP_glTexGenivOES;memcpy(ptr, &tmp, 4); ptr += 4;
7557 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7558 
7559 		memcpy(ptr, &coord, 4); ptr += 4;
7560 		memcpy(ptr, &pname, 4); ptr += 4;
7561 	memcpy(ptr, &__size_params, 4); ptr += 4;
7562 	memcpy(ptr, params, __size_params);ptr += __size_params;
7563 
7564 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7565 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7566 
7567 }
7568 
glTexGenxOES_enc(void * self,GLenum coord,GLenum pname,GLfixed param)7569 void glTexGenxOES_enc(void *self , GLenum coord, GLenum pname, GLfixed param)
7570 {
7571 	ENCODER_DEBUG_LOG("glTexGenxOES(coord:0x%08x, pname:0x%08x, param:0x%08x)", coord, pname, param);
7572 	AEMU_SCOPED_TRACE("glTexGenxOES encode");
7573 
7574 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7575 	IOStream *stream = ctx->m_stream;
7576 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7577 	bool useChecksum = checksumCalculator->getVersion() > 0;
7578 
7579 	 unsigned char *ptr;
7580 	 unsigned char *buf;
7581 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
7582 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7583 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7584 	buf = stream->alloc(totalSize);
7585 	ptr = buf;
7586 	int tmp = OP_glTexGenxOES;memcpy(ptr, &tmp, 4); ptr += 4;
7587 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7588 
7589 		memcpy(ptr, &coord, 4); ptr += 4;
7590 		memcpy(ptr, &pname, 4); ptr += 4;
7591 		memcpy(ptr, &param, 4); ptr += 4;
7592 
7593 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7594 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7595 
7596 }
7597 
glTexGenxvOES_enc(void * self,GLenum coord,GLenum pname,const GLfixed * params)7598 void glTexGenxvOES_enc(void *self , GLenum coord, GLenum pname, const GLfixed* params)
7599 {
7600 	ENCODER_DEBUG_LOG("glTexGenxvOES(coord:0x%08x, pname:0x%08x, params:0x%08x)", coord, pname, params);
7601 	AEMU_SCOPED_TRACE("glTexGenxvOES encode");
7602 
7603 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7604 	IOStream *stream = ctx->m_stream;
7605 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7606 	bool useChecksum = checksumCalculator->getVersion() > 0;
7607 
7608 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
7609 	 unsigned char *ptr;
7610 	 unsigned char *buf;
7611 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7612 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7613 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7614 	buf = stream->alloc(totalSize);
7615 	ptr = buf;
7616 	int tmp = OP_glTexGenxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
7617 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7618 
7619 		memcpy(ptr, &coord, 4); ptr += 4;
7620 		memcpy(ptr, &pname, 4); ptr += 4;
7621 	memcpy(ptr, &__size_params, 4); ptr += 4;
7622 	memcpy(ptr, params, __size_params);ptr += __size_params;
7623 
7624 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7625 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7626 
7627 }
7628 
glGetTexGenfvOES_enc(void * self,GLenum coord,GLenum pname,GLfloat * params)7629 void glGetTexGenfvOES_enc(void *self , GLenum coord, GLenum pname, GLfloat* params)
7630 {
7631 	ENCODER_DEBUG_LOG("glGetTexGenfvOES(coord:0x%08x, pname:0x%08x, params:0x%08x)", coord, pname, params);
7632 	AEMU_SCOPED_TRACE("glGetTexGenfvOES encode");
7633 
7634 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7635 	IOStream *stream = ctx->m_stream;
7636 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7637 	bool useChecksum = checksumCalculator->getVersion() > 0;
7638 
7639 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
7640 	 unsigned char *ptr;
7641 	 unsigned char *buf;
7642 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7643 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7644 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7645 	buf = stream->alloc(totalSize);
7646 	ptr = buf;
7647 	int tmp = OP_glGetTexGenfvOES;memcpy(ptr, &tmp, 4); ptr += 4;
7648 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7649 
7650 		memcpy(ptr, &coord, 4); ptr += 4;
7651 		memcpy(ptr, &pname, 4); ptr += 4;
7652 	memcpy(ptr, &__size_params, 4); ptr += 4;
7653 	memcpy(ptr, params, __size_params);ptr += __size_params;
7654 
7655 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7656 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7657 
7658 }
7659 
glGetTexGenivOES_enc(void * self,GLenum coord,GLenum pname,GLint * params)7660 void glGetTexGenivOES_enc(void *self , GLenum coord, GLenum pname, GLint* params)
7661 {
7662 	ENCODER_DEBUG_LOG("glGetTexGenivOES(coord:0x%08x, pname:0x%08x, params:0x%08x)", coord, pname, params);
7663 	AEMU_SCOPED_TRACE("glGetTexGenivOES encode");
7664 
7665 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7666 	IOStream *stream = ctx->m_stream;
7667 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7668 	bool useChecksum = checksumCalculator->getVersion() > 0;
7669 
7670 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
7671 	 unsigned char *ptr;
7672 	 unsigned char *buf;
7673 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7674 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7675 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7676 	buf = stream->alloc(totalSize);
7677 	ptr = buf;
7678 	int tmp = OP_glGetTexGenivOES;memcpy(ptr, &tmp, 4); ptr += 4;
7679 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7680 
7681 		memcpy(ptr, &coord, 4); ptr += 4;
7682 		memcpy(ptr, &pname, 4); ptr += 4;
7683 	memcpy(ptr, &__size_params, 4); ptr += 4;
7684 	memcpy(ptr, params, __size_params);ptr += __size_params;
7685 
7686 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7687 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7688 
7689 }
7690 
glGetTexGenxvOES_enc(void * self,GLenum coord,GLenum pname,GLfixed * params)7691 void glGetTexGenxvOES_enc(void *self , GLenum coord, GLenum pname, GLfixed* params)
7692 {
7693 	ENCODER_DEBUG_LOG("glGetTexGenxvOES(coord:0x%08x, pname:0x%08x, params:0x%08x)", coord, pname, params);
7694 	AEMU_SCOPED_TRACE("glGetTexGenxvOES encode");
7695 
7696 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7697 	IOStream *stream = ctx->m_stream;
7698 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7699 	bool useChecksum = checksumCalculator->getVersion() > 0;
7700 
7701 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
7702 	 unsigned char *ptr;
7703 	 unsigned char *buf;
7704 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4;
7705 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7706 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7707 	buf = stream->alloc(totalSize);
7708 	ptr = buf;
7709 	int tmp = OP_glGetTexGenxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
7710 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7711 
7712 		memcpy(ptr, &coord, 4); ptr += 4;
7713 		memcpy(ptr, &pname, 4); ptr += 4;
7714 	memcpy(ptr, &__size_params, 4); ptr += 4;
7715 	memcpy(ptr, params, __size_params);ptr += __size_params;
7716 
7717 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7718 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7719 
7720 }
7721 
glBindVertexArrayOES_enc(void * self,GLuint array)7722 void glBindVertexArrayOES_enc(void *self , GLuint array)
7723 {
7724 	ENCODER_DEBUG_LOG("glBindVertexArrayOES(array:%u)", array);
7725 	AEMU_SCOPED_TRACE("glBindVertexArrayOES encode");
7726 
7727 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7728 	IOStream *stream = ctx->m_stream;
7729 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7730 	bool useChecksum = checksumCalculator->getVersion() > 0;
7731 
7732 	 unsigned char *ptr;
7733 	 unsigned char *buf;
7734 	 const size_t sizeWithoutChecksum = 8 + 4;
7735 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7736 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7737 	buf = stream->alloc(totalSize);
7738 	ptr = buf;
7739 	int tmp = OP_glBindVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4;
7740 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7741 
7742 		memcpy(ptr, &array, 4); ptr += 4;
7743 
7744 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7745 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7746 
7747 }
7748 
glDeleteVertexArraysOES_enc(void * self,GLsizei n,const GLuint * arrays)7749 void glDeleteVertexArraysOES_enc(void *self , GLsizei n, const GLuint* arrays)
7750 {
7751 	ENCODER_DEBUG_LOG("glDeleteVertexArraysOES(n:%d, arrays:0x%08x)", n, arrays);
7752 	AEMU_SCOPED_TRACE("glDeleteVertexArraysOES encode");
7753 
7754 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7755 	IOStream *stream = ctx->m_stream;
7756 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7757 	bool useChecksum = checksumCalculator->getVersion() > 0;
7758 
7759 	const unsigned int __size_arrays =  (n * sizeof(GLuint));
7760 	 unsigned char *ptr;
7761 	 unsigned char *buf;
7762 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_arrays + 1*4;
7763 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7764 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7765 	buf = stream->alloc(totalSize);
7766 	ptr = buf;
7767 	int tmp = OP_glDeleteVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4;
7768 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7769 
7770 		memcpy(ptr, &n, 4); ptr += 4;
7771 	memcpy(ptr, &__size_arrays, 4); ptr += 4;
7772 	memcpy(ptr, arrays, __size_arrays);ptr += __size_arrays;
7773 
7774 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7775 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7776 
7777 }
7778 
glGenVertexArraysOES_enc(void * self,GLsizei n,GLuint * arrays)7779 void glGenVertexArraysOES_enc(void *self , GLsizei n, GLuint* arrays)
7780 {
7781 	ENCODER_DEBUG_LOG("glGenVertexArraysOES(n:%d, arrays:0x%08x)", n, arrays);
7782 	AEMU_SCOPED_TRACE("glGenVertexArraysOES encode");
7783 
7784 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7785 	IOStream *stream = ctx->m_stream;
7786 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7787 	bool useChecksum = checksumCalculator->getVersion() > 0;
7788 
7789 	const unsigned int __size_arrays =  (n * sizeof(GLuint));
7790 	 unsigned char *ptr;
7791 	 unsigned char *buf;
7792 	 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4;
7793 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7794 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7795 	buf = stream->alloc(totalSize);
7796 	ptr = buf;
7797 	int tmp = OP_glGenVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4;
7798 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7799 
7800 		memcpy(ptr, &n, 4); ptr += 4;
7801 	memcpy(ptr, &__size_arrays, 4); ptr += 4;
7802 
7803 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7804 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7805 
7806 	stream->readback(arrays, __size_arrays);
7807 	if (useChecksum) checksumCalculator->addBuffer(arrays, __size_arrays);
7808 	if (useChecksum) {
7809 		unsigned char *checksumBufPtr = NULL;
7810 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
7811 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
7812 		stream->readback(checksumBufPtr, checksumSize);
7813 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
7814 			ALOGE("glGenVertexArraysOES: GL communication error, please report this issue to b.android.com.\n");
7815 			abort();
7816 		}
7817 	}
7818 }
7819 
glIsVertexArrayOES_enc(void * self,GLuint array)7820 GLboolean glIsVertexArrayOES_enc(void *self , GLuint array)
7821 {
7822 	ENCODER_DEBUG_LOG("glIsVertexArrayOES(array:%u)", array);
7823 	AEMU_SCOPED_TRACE("glIsVertexArrayOES encode");
7824 
7825 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7826 	IOStream *stream = ctx->m_stream;
7827 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7828 	bool useChecksum = checksumCalculator->getVersion() > 0;
7829 
7830 	 unsigned char *ptr;
7831 	 unsigned char *buf;
7832 	 const size_t sizeWithoutChecksum = 8 + 4;
7833 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7834 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7835 	buf = stream->alloc(totalSize);
7836 	ptr = buf;
7837 	int tmp = OP_glIsVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4;
7838 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7839 
7840 		memcpy(ptr, &array, 4); ptr += 4;
7841 
7842 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7843 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7844 
7845 
7846 	GLboolean retval;
7847 	stream->readback(&retval, 1);
7848 	if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
7849 	if (useChecksum) {
7850 		unsigned char *checksumBufPtr = NULL;
7851 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
7852 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
7853 		stream->readback(checksumBufPtr, checksumSize);
7854 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
7855 			ALOGE("glIsVertexArrayOES: GL communication error, please report this issue to b.android.com.\n");
7856 			abort();
7857 		}
7858 	}
7859 	return retval;
7860 }
7861 
glDiscardFramebufferEXT_enc(void * self,GLenum target,GLsizei numAttachments,const GLenum * attachments)7862 void glDiscardFramebufferEXT_enc(void *self , GLenum target, GLsizei numAttachments, const GLenum* attachments)
7863 {
7864 	ENCODER_DEBUG_LOG("glDiscardFramebufferEXT(target:0x%08x, numAttachments:%d, attachments:0x%08x)", target, numAttachments, attachments);
7865 	AEMU_SCOPED_TRACE("glDiscardFramebufferEXT encode");
7866 
7867 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7868 	IOStream *stream = ctx->m_stream;
7869 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7870 	bool useChecksum = checksumCalculator->getVersion() > 0;
7871 
7872 	const unsigned int __size_attachments =  (numAttachments * sizeof(const GLenum));
7873 	 unsigned char *ptr;
7874 	 unsigned char *buf;
7875 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_attachments + 1*4;
7876 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7877 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7878 	buf = stream->alloc(totalSize);
7879 	ptr = buf;
7880 	int tmp = OP_glDiscardFramebufferEXT;memcpy(ptr, &tmp, 4); ptr += 4;
7881 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7882 
7883 		memcpy(ptr, &target, 4); ptr += 4;
7884 		memcpy(ptr, &numAttachments, 4); ptr += 4;
7885 	memcpy(ptr, &__size_attachments, 4); ptr += 4;
7886 	memcpy(ptr, attachments, __size_attachments);ptr += __size_attachments;
7887 
7888 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7889 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7890 
7891 }
7892 
glRenderbufferStorageMultisampleIMG_enc(void * self,GLenum target,GLsizei samples,GLenum internalformat,GLsizei width,GLsizei height)7893 void glRenderbufferStorageMultisampleIMG_enc(void *self , GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
7894 {
7895 	ENCODER_DEBUG_LOG("glRenderbufferStorageMultisampleIMG(target:0x%08x, samples:%d, internalformat:0x%08x, width:%d, height:%d)", target, samples, internalformat, width, height);
7896 	AEMU_SCOPED_TRACE("glRenderbufferStorageMultisampleIMG encode");
7897 
7898 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7899 	IOStream *stream = ctx->m_stream;
7900 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7901 	bool useChecksum = checksumCalculator->getVersion() > 0;
7902 
7903 	 unsigned char *ptr;
7904 	 unsigned char *buf;
7905 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
7906 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7907 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7908 	buf = stream->alloc(totalSize);
7909 	ptr = buf;
7910 	int tmp = OP_glRenderbufferStorageMultisampleIMG;memcpy(ptr, &tmp, 4); ptr += 4;
7911 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7912 
7913 		memcpy(ptr, &target, 4); ptr += 4;
7914 		memcpy(ptr, &samples, 4); ptr += 4;
7915 		memcpy(ptr, &internalformat, 4); ptr += 4;
7916 		memcpy(ptr, &width, 4); ptr += 4;
7917 		memcpy(ptr, &height, 4); ptr += 4;
7918 
7919 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7920 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7921 
7922 }
7923 
glFramebufferTexture2DMultisampleIMG_enc(void * self,GLenum target,GLenum attachment,GLenum textarget,GLuint texture,GLint level,GLsizei samples)7924 void glFramebufferTexture2DMultisampleIMG_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
7925 {
7926 	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);
7927 	AEMU_SCOPED_TRACE("glFramebufferTexture2DMultisampleIMG encode");
7928 
7929 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7930 	IOStream *stream = ctx->m_stream;
7931 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7932 	bool useChecksum = checksumCalculator->getVersion() > 0;
7933 
7934 	 unsigned char *ptr;
7935 	 unsigned char *buf;
7936 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4;
7937 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7938 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7939 	buf = stream->alloc(totalSize);
7940 	ptr = buf;
7941 	int tmp = OP_glFramebufferTexture2DMultisampleIMG;memcpy(ptr, &tmp, 4); ptr += 4;
7942 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7943 
7944 		memcpy(ptr, &target, 4); ptr += 4;
7945 		memcpy(ptr, &attachment, 4); ptr += 4;
7946 		memcpy(ptr, &textarget, 4); ptr += 4;
7947 		memcpy(ptr, &texture, 4); ptr += 4;
7948 		memcpy(ptr, &level, 4); ptr += 4;
7949 		memcpy(ptr, &samples, 4); ptr += 4;
7950 
7951 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7952 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7953 
7954 }
7955 
glDeleteFencesNV_enc(void * self,GLsizei n,const GLuint * fences)7956 void glDeleteFencesNV_enc(void *self , GLsizei n, const GLuint* fences)
7957 {
7958 	ENCODER_DEBUG_LOG("glDeleteFencesNV(n:%d, fences:0x%08x)", n, fences);
7959 	AEMU_SCOPED_TRACE("glDeleteFencesNV encode");
7960 
7961 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7962 	IOStream *stream = ctx->m_stream;
7963 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7964 	bool useChecksum = checksumCalculator->getVersion() > 0;
7965 
7966 	const unsigned int __size_fences =  (n * sizeof(GLuint));
7967 	 unsigned char *ptr;
7968 	 unsigned char *buf;
7969 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_fences + 1*4;
7970 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
7971 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
7972 	buf = stream->alloc(totalSize);
7973 	ptr = buf;
7974 	int tmp = OP_glDeleteFencesNV;memcpy(ptr, &tmp, 4); ptr += 4;
7975 	memcpy(ptr, &totalSize, 4);  ptr += 4;
7976 
7977 		memcpy(ptr, &n, 4); ptr += 4;
7978 	memcpy(ptr, &__size_fences, 4); ptr += 4;
7979 	memcpy(ptr, fences, __size_fences);ptr += __size_fences;
7980 
7981 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
7982 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
7983 
7984 }
7985 
glGenFencesNV_enc(void * self,GLsizei n,GLuint * fences)7986 void glGenFencesNV_enc(void *self , GLsizei n, GLuint* fences)
7987 {
7988 	ENCODER_DEBUG_LOG("glGenFencesNV(n:%d, fences:0x%08x)", n, fences);
7989 	AEMU_SCOPED_TRACE("glGenFencesNV encode");
7990 
7991 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
7992 	IOStream *stream = ctx->m_stream;
7993 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
7994 	bool useChecksum = checksumCalculator->getVersion() > 0;
7995 
7996 	const unsigned int __size_fences =  (n * sizeof(GLuint));
7997 	 unsigned char *ptr;
7998 	 unsigned char *buf;
7999 	 const size_t sizeWithoutChecksum = 8 + 4 + __size_fences + 1*4;
8000 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8001 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8002 	buf = stream->alloc(totalSize);
8003 	ptr = buf;
8004 	int tmp = OP_glGenFencesNV;memcpy(ptr, &tmp, 4); ptr += 4;
8005 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8006 
8007 		memcpy(ptr, &n, 4); ptr += 4;
8008 	memcpy(ptr, &__size_fences, 4); ptr += 4;
8009 	memcpy(ptr, fences, __size_fences);ptr += __size_fences;
8010 
8011 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8012 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8013 
8014 }
8015 
glIsFenceNV_enc(void * self,GLuint fence)8016 GLboolean glIsFenceNV_enc(void *self , GLuint fence)
8017 {
8018 	ENCODER_DEBUG_LOG("glIsFenceNV(fence:%u)", fence);
8019 	AEMU_SCOPED_TRACE("glIsFenceNV encode");
8020 
8021 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8022 	IOStream *stream = ctx->m_stream;
8023 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8024 	bool useChecksum = checksumCalculator->getVersion() > 0;
8025 
8026 	 unsigned char *ptr;
8027 	 unsigned char *buf;
8028 	 const size_t sizeWithoutChecksum = 8 + 4;
8029 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8030 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8031 	buf = stream->alloc(totalSize);
8032 	ptr = buf;
8033 	int tmp = OP_glIsFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
8034 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8035 
8036 		memcpy(ptr, &fence, 4); ptr += 4;
8037 
8038 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8039 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8040 
8041 
8042 	GLboolean retval;
8043 	stream->readback(&retval, 1);
8044 	if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
8045 	if (useChecksum) {
8046 		unsigned char *checksumBufPtr = NULL;
8047 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8048 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8049 		stream->readback(checksumBufPtr, checksumSize);
8050 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8051 			ALOGE("glIsFenceNV: GL communication error, please report this issue to b.android.com.\n");
8052 			abort();
8053 		}
8054 	}
8055 	return retval;
8056 }
8057 
glTestFenceNV_enc(void * self,GLuint fence)8058 GLboolean glTestFenceNV_enc(void *self , GLuint fence)
8059 {
8060 	ENCODER_DEBUG_LOG("glTestFenceNV(fence:%u)", fence);
8061 	AEMU_SCOPED_TRACE("glTestFenceNV encode");
8062 
8063 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8064 	IOStream *stream = ctx->m_stream;
8065 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8066 	bool useChecksum = checksumCalculator->getVersion() > 0;
8067 
8068 	 unsigned char *ptr;
8069 	 unsigned char *buf;
8070 	 const size_t sizeWithoutChecksum = 8 + 4;
8071 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8072 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8073 	buf = stream->alloc(totalSize);
8074 	ptr = buf;
8075 	int tmp = OP_glTestFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
8076 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8077 
8078 		memcpy(ptr, &fence, 4); ptr += 4;
8079 
8080 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8081 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8082 
8083 
8084 	GLboolean retval;
8085 	stream->readback(&retval, 1);
8086 	if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
8087 	if (useChecksum) {
8088 		unsigned char *checksumBufPtr = NULL;
8089 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8090 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8091 		stream->readback(checksumBufPtr, checksumSize);
8092 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8093 			ALOGE("glTestFenceNV: GL communication error, please report this issue to b.android.com.\n");
8094 			abort();
8095 		}
8096 	}
8097 	return retval;
8098 }
8099 
glGetFenceivNV_enc(void * self,GLuint fence,GLenum pname,GLint * params)8100 void glGetFenceivNV_enc(void *self , GLuint fence, GLenum pname, GLint* params)
8101 {
8102 	ENCODER_DEBUG_LOG("glGetFenceivNV(fence:%u, pname:0x%08x, params:0x%08x)", fence, pname, params);
8103 	AEMU_SCOPED_TRACE("glGetFenceivNV encode");
8104 
8105 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8106 	IOStream *stream = ctx->m_stream;
8107 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8108 	bool useChecksum = checksumCalculator->getVersion() > 0;
8109 
8110 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
8111 	 unsigned char *ptr;
8112 	 unsigned char *buf;
8113 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4;
8114 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8115 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8116 	buf = stream->alloc(totalSize);
8117 	ptr = buf;
8118 	int tmp = OP_glGetFenceivNV;memcpy(ptr, &tmp, 4); ptr += 4;
8119 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8120 
8121 		memcpy(ptr, &fence, 4); ptr += 4;
8122 		memcpy(ptr, &pname, 4); ptr += 4;
8123 	memcpy(ptr, &__size_params, 4); ptr += 4;
8124 
8125 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8126 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8127 
8128 	stream->readback(params, __size_params);
8129 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
8130 	if (useChecksum) {
8131 		unsigned char *checksumBufPtr = NULL;
8132 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8133 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8134 		stream->readback(checksumBufPtr, checksumSize);
8135 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8136 			ALOGE("glGetFenceivNV: GL communication error, please report this issue to b.android.com.\n");
8137 			abort();
8138 		}
8139 	}
8140 }
8141 
glFinishFenceNV_enc(void * self,GLuint fence)8142 void glFinishFenceNV_enc(void *self , GLuint fence)
8143 {
8144 	ENCODER_DEBUG_LOG("glFinishFenceNV(fence:%u)", fence);
8145 	AEMU_SCOPED_TRACE("glFinishFenceNV encode");
8146 
8147 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8148 	IOStream *stream = ctx->m_stream;
8149 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8150 	bool useChecksum = checksumCalculator->getVersion() > 0;
8151 
8152 	 unsigned char *ptr;
8153 	 unsigned char *buf;
8154 	 const size_t sizeWithoutChecksum = 8 + 4;
8155 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8156 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8157 	buf = stream->alloc(totalSize);
8158 	ptr = buf;
8159 	int tmp = OP_glFinishFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
8160 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8161 
8162 		memcpy(ptr, &fence, 4); ptr += 4;
8163 
8164 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8165 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8166 
8167 }
8168 
glSetFenceNV_enc(void * self,GLuint fence,GLenum condition)8169 void glSetFenceNV_enc(void *self , GLuint fence, GLenum condition)
8170 {
8171 	ENCODER_DEBUG_LOG("glSetFenceNV(fence:%u, condition:0x%08x)", fence, condition);
8172 	AEMU_SCOPED_TRACE("glSetFenceNV encode");
8173 
8174 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8175 	IOStream *stream = ctx->m_stream;
8176 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8177 	bool useChecksum = checksumCalculator->getVersion() > 0;
8178 
8179 	 unsigned char *ptr;
8180 	 unsigned char *buf;
8181 	 const size_t sizeWithoutChecksum = 8 + 4 + 4;
8182 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8183 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8184 	buf = stream->alloc(totalSize);
8185 	ptr = buf;
8186 	int tmp = OP_glSetFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
8187 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8188 
8189 		memcpy(ptr, &fence, 4); ptr += 4;
8190 		memcpy(ptr, &condition, 4); ptr += 4;
8191 
8192 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8193 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8194 
8195 }
8196 
glGetDriverControlsQCOM_enc(void * self,GLint * num,GLsizei size,GLuint * driverControls)8197 void glGetDriverControlsQCOM_enc(void *self , GLint* num, GLsizei size, GLuint* driverControls)
8198 {
8199 	ENCODER_DEBUG_LOG("glGetDriverControlsQCOM(num:0x%08x, size:%d, driverControls:0x%08x)", num, size, driverControls);
8200 	AEMU_SCOPED_TRACE("glGetDriverControlsQCOM encode");
8201 
8202 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8203 	IOStream *stream = ctx->m_stream;
8204 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8205 	bool useChecksum = checksumCalculator->getVersion() > 0;
8206 
8207 	const unsigned int __size_num =  (1 * sizeof(GLint));
8208 	const unsigned int __size_driverControls =  (size * sizeof(GLuint));
8209 	 unsigned char *ptr;
8210 	 unsigned char *buf;
8211 	 const size_t sizeWithoutChecksum = 8 + 0 + 4 + 0 + 2*4;
8212 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8213 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8214 	buf = stream->alloc(totalSize);
8215 	ptr = buf;
8216 	int tmp = OP_glGetDriverControlsQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8217 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8218 
8219 	memcpy(ptr, &__size_num, 4); ptr += 4;
8220 		memcpy(ptr, &size, 4); ptr += 4;
8221 	memcpy(ptr, &__size_driverControls, 4); ptr += 4;
8222 
8223 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8224 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8225 
8226 	stream->readback(num, __size_num);
8227 	if (useChecksum) checksumCalculator->addBuffer(num, __size_num);
8228 	stream->readback(driverControls, __size_driverControls);
8229 	if (useChecksum) checksumCalculator->addBuffer(driverControls, __size_driverControls);
8230 	if (useChecksum) {
8231 		unsigned char *checksumBufPtr = NULL;
8232 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8233 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8234 		stream->readback(checksumBufPtr, checksumSize);
8235 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8236 			ALOGE("glGetDriverControlsQCOM: GL communication error, please report this issue to b.android.com.\n");
8237 			abort();
8238 		}
8239 	}
8240 }
8241 
glGetDriverControlStringQCOM_enc(void * self,GLuint driverControl,GLsizei bufSize,GLsizei * length,GLchar * driverControlString)8242 void glGetDriverControlStringQCOM_enc(void *self , GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString)
8243 {
8244 	ENCODER_DEBUG_LOG("glGetDriverControlStringQCOM(driverControl:%u, bufSize:%d, length:0x%08x, driverControlString:0x%08x)", driverControl, bufSize, length, driverControlString);
8245 	AEMU_SCOPED_TRACE("glGetDriverControlStringQCOM encode");
8246 
8247 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8248 	IOStream *stream = ctx->m_stream;
8249 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8250 	bool useChecksum = checksumCalculator->getVersion() > 0;
8251 
8252 	const unsigned int __size_length =  (1 * sizeof(GLsizei));
8253 	const unsigned int __size_driverControlString =  (1 * sizeof(GLchar));
8254 	 unsigned char *ptr;
8255 	 unsigned char *buf;
8256 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 0 + 2*4;
8257 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8258 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8259 	buf = stream->alloc(totalSize);
8260 	ptr = buf;
8261 	int tmp = OP_glGetDriverControlStringQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8262 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8263 
8264 		memcpy(ptr, &driverControl, 4); ptr += 4;
8265 		memcpy(ptr, &bufSize, 4); ptr += 4;
8266 	memcpy(ptr, &__size_length, 4); ptr += 4;
8267 	memcpy(ptr, &__size_driverControlString, 4); ptr += 4;
8268 
8269 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8270 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8271 
8272 	stream->readback(length, __size_length);
8273 	if (useChecksum) checksumCalculator->addBuffer(length, __size_length);
8274 	stream->readback(driverControlString, __size_driverControlString);
8275 	if (useChecksum) checksumCalculator->addBuffer(driverControlString, __size_driverControlString);
8276 	if (useChecksum) {
8277 		unsigned char *checksumBufPtr = NULL;
8278 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8279 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8280 		stream->readback(checksumBufPtr, checksumSize);
8281 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8282 			ALOGE("glGetDriverControlStringQCOM: GL communication error, please report this issue to b.android.com.\n");
8283 			abort();
8284 		}
8285 	}
8286 }
8287 
glEnableDriverControlQCOM_enc(void * self,GLuint driverControl)8288 void glEnableDriverControlQCOM_enc(void *self , GLuint driverControl)
8289 {
8290 	ENCODER_DEBUG_LOG("glEnableDriverControlQCOM(driverControl:%u)", driverControl);
8291 	AEMU_SCOPED_TRACE("glEnableDriverControlQCOM encode");
8292 
8293 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8294 	IOStream *stream = ctx->m_stream;
8295 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8296 	bool useChecksum = checksumCalculator->getVersion() > 0;
8297 
8298 	 unsigned char *ptr;
8299 	 unsigned char *buf;
8300 	 const size_t sizeWithoutChecksum = 8 + 4;
8301 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8302 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8303 	buf = stream->alloc(totalSize);
8304 	ptr = buf;
8305 	int tmp = OP_glEnableDriverControlQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8306 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8307 
8308 		memcpy(ptr, &driverControl, 4); ptr += 4;
8309 
8310 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8311 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8312 
8313 }
8314 
glDisableDriverControlQCOM_enc(void * self,GLuint driverControl)8315 void glDisableDriverControlQCOM_enc(void *self , GLuint driverControl)
8316 {
8317 	ENCODER_DEBUG_LOG("glDisableDriverControlQCOM(driverControl:%u)", driverControl);
8318 	AEMU_SCOPED_TRACE("glDisableDriverControlQCOM encode");
8319 
8320 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8321 	IOStream *stream = ctx->m_stream;
8322 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8323 	bool useChecksum = checksumCalculator->getVersion() > 0;
8324 
8325 	 unsigned char *ptr;
8326 	 unsigned char *buf;
8327 	 const size_t sizeWithoutChecksum = 8 + 4;
8328 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8329 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8330 	buf = stream->alloc(totalSize);
8331 	ptr = buf;
8332 	int tmp = OP_glDisableDriverControlQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8333 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8334 
8335 		memcpy(ptr, &driverControl, 4); ptr += 4;
8336 
8337 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8338 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8339 
8340 }
8341 
glExtGetTexturesQCOM_enc(void * self,GLuint * textures,GLint maxTextures,GLint * numTextures)8342 void glExtGetTexturesQCOM_enc(void *self , GLuint* textures, GLint maxTextures, GLint* numTextures)
8343 {
8344 	ENCODER_DEBUG_LOG("glExtGetTexturesQCOM(textures:0x%08x, maxTextures:%d, numTextures:0x%08x)", textures, maxTextures, numTextures);
8345 	AEMU_SCOPED_TRACE("glExtGetTexturesQCOM encode");
8346 
8347 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8348 	IOStream *stream = ctx->m_stream;
8349 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8350 	bool useChecksum = checksumCalculator->getVersion() > 0;
8351 
8352 	const unsigned int __size_textures =  (maxTextures * sizeof(GLuint));
8353 	const unsigned int __size_numTextures =  (1 * sizeof(GLint));
8354 	 unsigned char *ptr;
8355 	 unsigned char *buf;
8356 	 const size_t sizeWithoutChecksum = 8 + 0 + 4 + 0 + 2*4;
8357 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8358 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8359 	buf = stream->alloc(totalSize);
8360 	ptr = buf;
8361 	int tmp = OP_glExtGetTexturesQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8362 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8363 
8364 	memcpy(ptr, &__size_textures, 4); ptr += 4;
8365 		memcpy(ptr, &maxTextures, 4); ptr += 4;
8366 	memcpy(ptr, &__size_numTextures, 4); ptr += 4;
8367 
8368 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8369 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8370 
8371 	stream->readback(textures, __size_textures);
8372 	if (useChecksum) checksumCalculator->addBuffer(textures, __size_textures);
8373 	stream->readback(numTextures, __size_numTextures);
8374 	if (useChecksum) checksumCalculator->addBuffer(numTextures, __size_numTextures);
8375 	if (useChecksum) {
8376 		unsigned char *checksumBufPtr = NULL;
8377 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8378 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8379 		stream->readback(checksumBufPtr, checksumSize);
8380 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8381 			ALOGE("glExtGetTexturesQCOM: GL communication error, please report this issue to b.android.com.\n");
8382 			abort();
8383 		}
8384 	}
8385 }
8386 
glExtGetBuffersQCOM_enc(void * self,GLuint * buffers,GLint maxBuffers,GLint * numBuffers)8387 void glExtGetBuffersQCOM_enc(void *self , GLuint* buffers, GLint maxBuffers, GLint* numBuffers)
8388 {
8389 	ENCODER_DEBUG_LOG("glExtGetBuffersQCOM(buffers:0x%08x, maxBuffers:%d, numBuffers:0x%08x)", buffers, maxBuffers, numBuffers);
8390 	AEMU_SCOPED_TRACE("glExtGetBuffersQCOM encode");
8391 
8392 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8393 	IOStream *stream = ctx->m_stream;
8394 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8395 	bool useChecksum = checksumCalculator->getVersion() > 0;
8396 
8397 	const unsigned int __size_buffers =  (maxBuffers * sizeof(GLuint));
8398 	const unsigned int __size_numBuffers =  (1 * sizeof(GLint));
8399 	 unsigned char *ptr;
8400 	 unsigned char *buf;
8401 	 const size_t sizeWithoutChecksum = 8 + 0 + 4 + 0 + 2*4;
8402 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8403 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8404 	buf = stream->alloc(totalSize);
8405 	ptr = buf;
8406 	int tmp = OP_glExtGetBuffersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8407 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8408 
8409 	memcpy(ptr, &__size_buffers, 4); ptr += 4;
8410 		memcpy(ptr, &maxBuffers, 4); ptr += 4;
8411 	memcpy(ptr, &__size_numBuffers, 4); ptr += 4;
8412 
8413 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8414 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8415 
8416 	stream->readback(buffers, __size_buffers);
8417 	if (useChecksum) checksumCalculator->addBuffer(buffers, __size_buffers);
8418 	stream->readback(numBuffers, __size_numBuffers);
8419 	if (useChecksum) checksumCalculator->addBuffer(numBuffers, __size_numBuffers);
8420 	if (useChecksum) {
8421 		unsigned char *checksumBufPtr = NULL;
8422 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8423 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8424 		stream->readback(checksumBufPtr, checksumSize);
8425 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8426 			ALOGE("glExtGetBuffersQCOM: GL communication error, please report this issue to b.android.com.\n");
8427 			abort();
8428 		}
8429 	}
8430 }
8431 
glExtGetRenderbuffersQCOM_enc(void * self,GLuint * renderbuffers,GLint maxRenderbuffers,GLint * numRenderbuffers)8432 void glExtGetRenderbuffersQCOM_enc(void *self , GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers)
8433 {
8434 	ENCODER_DEBUG_LOG("glExtGetRenderbuffersQCOM(renderbuffers:0x%08x, maxRenderbuffers:%d, numRenderbuffers:0x%08x)", renderbuffers, maxRenderbuffers, numRenderbuffers);
8435 	AEMU_SCOPED_TRACE("glExtGetRenderbuffersQCOM encode");
8436 
8437 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8438 	IOStream *stream = ctx->m_stream;
8439 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8440 	bool useChecksum = checksumCalculator->getVersion() > 0;
8441 
8442 	const unsigned int __size_renderbuffers =  (maxRenderbuffers * sizeof(GLuint));
8443 	const unsigned int __size_numRenderbuffers =  (1 * sizeof(GLint));
8444 	 unsigned char *ptr;
8445 	 unsigned char *buf;
8446 	 const size_t sizeWithoutChecksum = 8 + 0 + 4 + 0 + 2*4;
8447 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8448 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8449 	buf = stream->alloc(totalSize);
8450 	ptr = buf;
8451 	int tmp = OP_glExtGetRenderbuffersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8452 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8453 
8454 	memcpy(ptr, &__size_renderbuffers, 4); ptr += 4;
8455 		memcpy(ptr, &maxRenderbuffers, 4); ptr += 4;
8456 	memcpy(ptr, &__size_numRenderbuffers, 4); ptr += 4;
8457 
8458 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8459 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8460 
8461 	stream->readback(renderbuffers, __size_renderbuffers);
8462 	if (useChecksum) checksumCalculator->addBuffer(renderbuffers, __size_renderbuffers);
8463 	stream->readback(numRenderbuffers, __size_numRenderbuffers);
8464 	if (useChecksum) checksumCalculator->addBuffer(numRenderbuffers, __size_numRenderbuffers);
8465 	if (useChecksum) {
8466 		unsigned char *checksumBufPtr = NULL;
8467 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8468 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8469 		stream->readback(checksumBufPtr, checksumSize);
8470 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8471 			ALOGE("glExtGetRenderbuffersQCOM: GL communication error, please report this issue to b.android.com.\n");
8472 			abort();
8473 		}
8474 	}
8475 }
8476 
glExtGetFramebuffersQCOM_enc(void * self,GLuint * framebuffers,GLint maxFramebuffers,GLint * numFramebuffers)8477 void glExtGetFramebuffersQCOM_enc(void *self , GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers)
8478 {
8479 	ENCODER_DEBUG_LOG("glExtGetFramebuffersQCOM(framebuffers:0x%08x, maxFramebuffers:%d, numFramebuffers:0x%08x)", framebuffers, maxFramebuffers, numFramebuffers);
8480 	AEMU_SCOPED_TRACE("glExtGetFramebuffersQCOM encode");
8481 
8482 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8483 	IOStream *stream = ctx->m_stream;
8484 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8485 	bool useChecksum = checksumCalculator->getVersion() > 0;
8486 
8487 	const unsigned int __size_framebuffers =  (maxFramebuffers * sizeof(GLuint));
8488 	const unsigned int __size_numFramebuffers =  (1 * sizeof(GLint));
8489 	 unsigned char *ptr;
8490 	 unsigned char *buf;
8491 	 const size_t sizeWithoutChecksum = 8 + 0 + 4 + 0 + 2*4;
8492 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8493 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8494 	buf = stream->alloc(totalSize);
8495 	ptr = buf;
8496 	int tmp = OP_glExtGetFramebuffersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8497 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8498 
8499 	memcpy(ptr, &__size_framebuffers, 4); ptr += 4;
8500 		memcpy(ptr, &maxFramebuffers, 4); ptr += 4;
8501 	memcpy(ptr, &__size_numFramebuffers, 4); ptr += 4;
8502 
8503 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8504 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8505 
8506 	stream->readback(framebuffers, __size_framebuffers);
8507 	if (useChecksum) checksumCalculator->addBuffer(framebuffers, __size_framebuffers);
8508 	stream->readback(numFramebuffers, __size_numFramebuffers);
8509 	if (useChecksum) checksumCalculator->addBuffer(numFramebuffers, __size_numFramebuffers);
8510 	if (useChecksum) {
8511 		unsigned char *checksumBufPtr = NULL;
8512 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8513 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8514 		stream->readback(checksumBufPtr, checksumSize);
8515 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8516 			ALOGE("glExtGetFramebuffersQCOM: GL communication error, please report this issue to b.android.com.\n");
8517 			abort();
8518 		}
8519 	}
8520 }
8521 
glExtGetTexLevelParameterivQCOM_enc(void * self,GLuint texture,GLenum face,GLint level,GLenum pname,GLint * params)8522 void glExtGetTexLevelParameterivQCOM_enc(void *self , GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params)
8523 {
8524 	ENCODER_DEBUG_LOG("glExtGetTexLevelParameterivQCOM(texture:%u, face:0x%08x, level:%d, pname:0x%08x, params:0x%08x)", texture, face, level, pname, params);
8525 	AEMU_SCOPED_TRACE("glExtGetTexLevelParameterivQCOM encode");
8526 
8527 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8528 	IOStream *stream = ctx->m_stream;
8529 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8530 	bool useChecksum = checksumCalculator->getVersion() > 0;
8531 
8532 	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
8533 	 unsigned char *ptr;
8534 	 unsigned char *buf;
8535 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 0 + 1*4;
8536 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8537 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8538 	buf = stream->alloc(totalSize);
8539 	ptr = buf;
8540 	int tmp = OP_glExtGetTexLevelParameterivQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8541 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8542 
8543 		memcpy(ptr, &texture, 4); ptr += 4;
8544 		memcpy(ptr, &face, 4); ptr += 4;
8545 		memcpy(ptr, &level, 4); ptr += 4;
8546 		memcpy(ptr, &pname, 4); ptr += 4;
8547 	memcpy(ptr, &__size_params, 4); ptr += 4;
8548 
8549 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8550 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8551 
8552 	stream->readback(params, __size_params);
8553 	if (useChecksum) checksumCalculator->addBuffer(params, __size_params);
8554 	if (useChecksum) {
8555 		unsigned char *checksumBufPtr = NULL;
8556 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8557 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8558 		stream->readback(checksumBufPtr, checksumSize);
8559 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8560 			ALOGE("glExtGetTexLevelParameterivQCOM: GL communication error, please report this issue to b.android.com.\n");
8561 			abort();
8562 		}
8563 	}
8564 }
8565 
glExtTexObjectStateOverrideiQCOM_enc(void * self,GLenum target,GLenum pname,GLint param)8566 void glExtTexObjectStateOverrideiQCOM_enc(void *self , GLenum target, GLenum pname, GLint param)
8567 {
8568 	ENCODER_DEBUG_LOG("glExtTexObjectStateOverrideiQCOM(target:0x%08x, pname:0x%08x, param:%d)", target, pname, param);
8569 	AEMU_SCOPED_TRACE("glExtTexObjectStateOverrideiQCOM encode");
8570 
8571 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8572 	IOStream *stream = ctx->m_stream;
8573 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8574 	bool useChecksum = checksumCalculator->getVersion() > 0;
8575 
8576 	 unsigned char *ptr;
8577 	 unsigned char *buf;
8578 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
8579 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8580 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8581 	buf = stream->alloc(totalSize);
8582 	ptr = buf;
8583 	int tmp = OP_glExtTexObjectStateOverrideiQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8584 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8585 
8586 		memcpy(ptr, &target, 4); ptr += 4;
8587 		memcpy(ptr, &pname, 4); ptr += 4;
8588 		memcpy(ptr, &param, 4); ptr += 4;
8589 
8590 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8591 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8592 
8593 }
8594 
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)8595 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)
8596 {
8597 	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);
8598 	AEMU_SCOPED_TRACE("glExtGetTexSubImageQCOM encode");
8599 
8600 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8601 	IOStream *stream = ctx->m_stream;
8602 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8603 	bool useChecksum = checksumCalculator->getVersion() > 0;
8604 
8605 	const unsigned int __size_texels =  (depth * glesv1_enc::pixelDataSize(self, width, height, format, type, 0));
8606 	 unsigned char *ptr;
8607 	 unsigned char *buf;
8608 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + 1*4;
8609 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8610 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8611 	buf = stream->alloc(totalSize);
8612 	ptr = buf;
8613 	int tmp = OP_glExtGetTexSubImageQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8614 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8615 
8616 		memcpy(ptr, &target, 4); ptr += 4;
8617 		memcpy(ptr, &level, 4); ptr += 4;
8618 		memcpy(ptr, &xoffset, 4); ptr += 4;
8619 		memcpy(ptr, &yoffset, 4); ptr += 4;
8620 		memcpy(ptr, &zoffset, 4); ptr += 4;
8621 		memcpy(ptr, &width, 4); ptr += 4;
8622 		memcpy(ptr, &height, 4); ptr += 4;
8623 		memcpy(ptr, &depth, 4); ptr += 4;
8624 		memcpy(ptr, &format, 4); ptr += 4;
8625 		memcpy(ptr, &type, 4); ptr += 4;
8626 	memcpy(ptr, &__size_texels, 4); ptr += 4;
8627 
8628 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8629 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8630 
8631 	stream->readback(texels, __size_texels);
8632 	if (useChecksum) checksumCalculator->addBuffer(texels, __size_texels);
8633 	if (useChecksum) {
8634 		unsigned char *checksumBufPtr = NULL;
8635 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8636 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8637 		stream->readback(checksumBufPtr, checksumSize);
8638 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8639 			ALOGE("glExtGetTexSubImageQCOM: GL communication error, please report this issue to b.android.com.\n");
8640 			abort();
8641 		}
8642 	}
8643 }
8644 
glExtGetShadersQCOM_enc(void * self,GLuint * shaders,GLint maxShaders,GLint * numShaders)8645 void glExtGetShadersQCOM_enc(void *self , GLuint* shaders, GLint maxShaders, GLint* numShaders)
8646 {
8647 	ENCODER_DEBUG_LOG("glExtGetShadersQCOM(shaders:0x%08x, maxShaders:%d, numShaders:0x%08x)", shaders, maxShaders, numShaders);
8648 	AEMU_SCOPED_TRACE("glExtGetShadersQCOM encode");
8649 
8650 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8651 	IOStream *stream = ctx->m_stream;
8652 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8653 	bool useChecksum = checksumCalculator->getVersion() > 0;
8654 
8655 	const unsigned int __size_shaders =  (maxShaders * sizeof(GLuint));
8656 	const unsigned int __size_numShaders =  (1 * sizeof(GLint));
8657 	 unsigned char *ptr;
8658 	 unsigned char *buf;
8659 	 const size_t sizeWithoutChecksum = 8 + 0 + 4 + 0 + 2*4;
8660 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8661 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8662 	buf = stream->alloc(totalSize);
8663 	ptr = buf;
8664 	int tmp = OP_glExtGetShadersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8665 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8666 
8667 	memcpy(ptr, &__size_shaders, 4); ptr += 4;
8668 		memcpy(ptr, &maxShaders, 4); ptr += 4;
8669 	memcpy(ptr, &__size_numShaders, 4); ptr += 4;
8670 
8671 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8672 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8673 
8674 	stream->readback(shaders, __size_shaders);
8675 	if (useChecksum) checksumCalculator->addBuffer(shaders, __size_shaders);
8676 	stream->readback(numShaders, __size_numShaders);
8677 	if (useChecksum) checksumCalculator->addBuffer(numShaders, __size_numShaders);
8678 	if (useChecksum) {
8679 		unsigned char *checksumBufPtr = NULL;
8680 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8681 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8682 		stream->readback(checksumBufPtr, checksumSize);
8683 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8684 			ALOGE("glExtGetShadersQCOM: GL communication error, please report this issue to b.android.com.\n");
8685 			abort();
8686 		}
8687 	}
8688 }
8689 
glExtGetProgramsQCOM_enc(void * self,GLuint * programs,GLint maxPrograms,GLint * numPrograms)8690 void glExtGetProgramsQCOM_enc(void *self , GLuint* programs, GLint maxPrograms, GLint* numPrograms)
8691 {
8692 	ENCODER_DEBUG_LOG("glExtGetProgramsQCOM(programs:0x%08x, maxPrograms:%d, numPrograms:0x%08x)", programs, maxPrograms, numPrograms);
8693 	AEMU_SCOPED_TRACE("glExtGetProgramsQCOM encode");
8694 
8695 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8696 	IOStream *stream = ctx->m_stream;
8697 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8698 	bool useChecksum = checksumCalculator->getVersion() > 0;
8699 
8700 	const unsigned int __size_programs =  (maxPrograms * sizeof(GLuint));
8701 	const unsigned int __size_numPrograms =  (1 * sizeof(GLint));
8702 	 unsigned char *ptr;
8703 	 unsigned char *buf;
8704 	 const size_t sizeWithoutChecksum = 8 + 0 + 4 + 0 + 2*4;
8705 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8706 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8707 	buf = stream->alloc(totalSize);
8708 	ptr = buf;
8709 	int tmp = OP_glExtGetProgramsQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8710 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8711 
8712 	memcpy(ptr, &__size_programs, 4); ptr += 4;
8713 		memcpy(ptr, &maxPrograms, 4); ptr += 4;
8714 	memcpy(ptr, &__size_numPrograms, 4); ptr += 4;
8715 
8716 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8717 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8718 
8719 	stream->readback(programs, __size_programs);
8720 	if (useChecksum) checksumCalculator->addBuffer(programs, __size_programs);
8721 	stream->readback(numPrograms, __size_numPrograms);
8722 	if (useChecksum) checksumCalculator->addBuffer(numPrograms, __size_numPrograms);
8723 	if (useChecksum) {
8724 		unsigned char *checksumBufPtr = NULL;
8725 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8726 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8727 		stream->readback(checksumBufPtr, checksumSize);
8728 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8729 			ALOGE("glExtGetProgramsQCOM: GL communication error, please report this issue to b.android.com.\n");
8730 			abort();
8731 		}
8732 	}
8733 }
8734 
glExtIsProgramBinaryQCOM_enc(void * self,GLuint program)8735 GLboolean glExtIsProgramBinaryQCOM_enc(void *self , GLuint program)
8736 {
8737 	ENCODER_DEBUG_LOG("glExtIsProgramBinaryQCOM(program:%u)", program);
8738 	AEMU_SCOPED_TRACE("glExtIsProgramBinaryQCOM encode");
8739 
8740 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8741 	IOStream *stream = ctx->m_stream;
8742 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8743 	bool useChecksum = checksumCalculator->getVersion() > 0;
8744 
8745 	 unsigned char *ptr;
8746 	 unsigned char *buf;
8747 	 const size_t sizeWithoutChecksum = 8 + 4;
8748 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8749 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8750 	buf = stream->alloc(totalSize);
8751 	ptr = buf;
8752 	int tmp = OP_glExtIsProgramBinaryQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8753 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8754 
8755 		memcpy(ptr, &program, 4); ptr += 4;
8756 
8757 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8758 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8759 
8760 
8761 	GLboolean retval;
8762 	stream->readback(&retval, 1);
8763 	if (useChecksum) checksumCalculator->addBuffer(&retval, 1);
8764 	if (useChecksum) {
8765 		unsigned char *checksumBufPtr = NULL;
8766 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8767 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8768 		stream->readback(checksumBufPtr, checksumSize);
8769 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8770 			ALOGE("glExtIsProgramBinaryQCOM: GL communication error, please report this issue to b.android.com.\n");
8771 			abort();
8772 		}
8773 	}
8774 	return retval;
8775 }
8776 
glStartTilingQCOM_enc(void * self,GLuint x,GLuint y,GLuint width,GLuint height,GLbitfield preserveMask)8777 void glStartTilingQCOM_enc(void *self , GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
8778 {
8779 	ENCODER_DEBUG_LOG("glStartTilingQCOM(x:%u, y:%u, width:%u, height:%u, preserveMask:0x%08x)", x, y, width, height, preserveMask);
8780 	AEMU_SCOPED_TRACE("glStartTilingQCOM encode");
8781 
8782 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8783 	IOStream *stream = ctx->m_stream;
8784 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8785 	bool useChecksum = checksumCalculator->getVersion() > 0;
8786 
8787 	 unsigned char *ptr;
8788 	 unsigned char *buf;
8789 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4;
8790 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8791 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8792 	buf = stream->alloc(totalSize);
8793 	ptr = buf;
8794 	int tmp = OP_glStartTilingQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8795 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8796 
8797 		memcpy(ptr, &x, 4); ptr += 4;
8798 		memcpy(ptr, &y, 4); ptr += 4;
8799 		memcpy(ptr, &width, 4); ptr += 4;
8800 		memcpy(ptr, &height, 4); ptr += 4;
8801 		memcpy(ptr, &preserveMask, 4); ptr += 4;
8802 
8803 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8804 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8805 
8806 }
8807 
glEndTilingQCOM_enc(void * self,GLbitfield preserveMask)8808 void glEndTilingQCOM_enc(void *self , GLbitfield preserveMask)
8809 {
8810 	ENCODER_DEBUG_LOG("glEndTilingQCOM(preserveMask:0x%08x)", preserveMask);
8811 	AEMU_SCOPED_TRACE("glEndTilingQCOM encode");
8812 
8813 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8814 	IOStream *stream = ctx->m_stream;
8815 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8816 	bool useChecksum = checksumCalculator->getVersion() > 0;
8817 
8818 	 unsigned char *ptr;
8819 	 unsigned char *buf;
8820 	 const size_t sizeWithoutChecksum = 8 + 4;
8821 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8822 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8823 	buf = stream->alloc(totalSize);
8824 	ptr = buf;
8825 	int tmp = OP_glEndTilingQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
8826 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8827 
8828 		memcpy(ptr, &preserveMask, 4); ptr += 4;
8829 
8830 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8831 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8832 
8833 }
8834 
glGetGraphicsResetStatusEXT_enc(void * self)8835 GLenum glGetGraphicsResetStatusEXT_enc(void *self )
8836 {
8837 	ENCODER_DEBUG_LOG("glGetGraphicsResetStatusEXT()");
8838 	AEMU_SCOPED_TRACE("glGetGraphicsResetStatusEXT encode");
8839 
8840 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8841 	IOStream *stream = ctx->m_stream;
8842 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8843 	bool useChecksum = checksumCalculator->getVersion() > 0;
8844 
8845 	 unsigned char *ptr;
8846 	 unsigned char *buf;
8847 	 const size_t sizeWithoutChecksum = 8;
8848 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8849 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8850 	buf = stream->alloc(totalSize);
8851 	ptr = buf;
8852 	int tmp = OP_glGetGraphicsResetStatusEXT;memcpy(ptr, &tmp, 4); ptr += 4;
8853 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8854 
8855 
8856 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8857 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8858 
8859 
8860 	GLenum retval;
8861 	stream->readback(&retval, 4);
8862 	if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
8863 	if (useChecksum) {
8864 		unsigned char *checksumBufPtr = NULL;
8865 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8866 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8867 		stream->readback(checksumBufPtr, checksumSize);
8868 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8869 			ALOGE("glGetGraphicsResetStatusEXT: GL communication error, please report this issue to b.android.com.\n");
8870 			abort();
8871 		}
8872 	}
8873 	return retval;
8874 }
8875 
glReadnPixelsEXT_enc(void * self,GLint x,GLint y,GLsizei width,GLsizei height,GLenum format,GLenum type,GLsizei bufSize,GLvoid * data)8876 void glReadnPixelsEXT_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid* data)
8877 {
8878 	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);
8879 	AEMU_SCOPED_TRACE("glReadnPixelsEXT encode");
8880 
8881 	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
8882 	IOStream *stream = ctx->m_stream;
8883 	gfxstream::guest::ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
8884 	bool useChecksum = checksumCalculator->getVersion() > 0;
8885 
8886 	const unsigned int __size_data =  bufSize;
8887 	 unsigned char *ptr;
8888 	 unsigned char *buf;
8889 	 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + 1*4;
8890 	 const size_t checksumSize = checksumCalculator->checksumByteSize();
8891 	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
8892 	buf = stream->alloc(totalSize);
8893 	ptr = buf;
8894 	int tmp = OP_glReadnPixelsEXT;memcpy(ptr, &tmp, 4); ptr += 4;
8895 	memcpy(ptr, &totalSize, 4);  ptr += 4;
8896 
8897 		memcpy(ptr, &x, 4); ptr += 4;
8898 		memcpy(ptr, &y, 4); ptr += 4;
8899 		memcpy(ptr, &width, 4); ptr += 4;
8900 		memcpy(ptr, &height, 4); ptr += 4;
8901 		memcpy(ptr, &format, 4); ptr += 4;
8902 		memcpy(ptr, &type, 4); ptr += 4;
8903 		memcpy(ptr, &bufSize, 4); ptr += 4;
8904 	memcpy(ptr, &__size_data, 4); ptr += 4;
8905 
8906 	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
8907 	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
8908 
8909 	stream->readback(data, __size_data);
8910 	if (useChecksum) checksumCalculator->addBuffer(data, __size_data);
8911 	if (useChecksum) {
8912 		unsigned char *checksumBufPtr = NULL;
8913 		unsigned char checksumBuf[gfxstream::guest::ChecksumCalculator::kMaxChecksumSize];
8914 		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
8915 		stream->readback(checksumBufPtr, checksumSize);
8916 		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
8917 			ALOGE("glReadnPixelsEXT: GL communication error, please report this issue to b.android.com.\n");
8918 			abort();
8919 		}
8920 	}
8921 }
8922 
8923 }  // namespace
8924 
gl_encoder_context_t(IOStream * stream,ChecksumCalculator * checksumCalculator)8925 gl_encoder_context_t::gl_encoder_context_t(IOStream *stream, ChecksumCalculator *checksumCalculator)
8926 {
8927 	m_stream = stream;
8928 	m_checksumCalculator = checksumCalculator;
8929 
8930 	this->glAlphaFunc = &glAlphaFunc_enc;
8931 	this->glClearColor = &glClearColor_enc;
8932 	this->glClearDepthf = &glClearDepthf_enc;
8933 	this->glClipPlanef = &glClipPlanef_enc;
8934 	this->glColor4f = &glColor4f_enc;
8935 	this->glDepthRangef = &glDepthRangef_enc;
8936 	this->glFogf = &glFogf_enc;
8937 	this->glFogfv = &glFogfv_enc;
8938 	this->glFrustumf = &glFrustumf_enc;
8939 	this->glGetClipPlanef = &glGetClipPlanef_enc;
8940 	this->glGetFloatv = &glGetFloatv_enc;
8941 	this->glGetLightfv = &glGetLightfv_enc;
8942 	this->glGetMaterialfv = &glGetMaterialfv_enc;
8943 	this->glGetTexEnvfv = &glGetTexEnvfv_enc;
8944 	this->glGetTexParameterfv = &glGetTexParameterfv_enc;
8945 	this->glLightModelf = &glLightModelf_enc;
8946 	this->glLightModelfv = &glLightModelfv_enc;
8947 	this->glLightf = &glLightf_enc;
8948 	this->glLightfv = &glLightfv_enc;
8949 	this->glLineWidth = &glLineWidth_enc;
8950 	this->glLoadMatrixf = &glLoadMatrixf_enc;
8951 	this->glMaterialf = &glMaterialf_enc;
8952 	this->glMaterialfv = &glMaterialfv_enc;
8953 	this->glMultMatrixf = &glMultMatrixf_enc;
8954 	this->glMultiTexCoord4f = &glMultiTexCoord4f_enc;
8955 	this->glNormal3f = &glNormal3f_enc;
8956 	this->glOrthof = &glOrthof_enc;
8957 	this->glPointParameterf = &glPointParameterf_enc;
8958 	this->glPointParameterfv = &glPointParameterfv_enc;
8959 	this->glPointSize = &glPointSize_enc;
8960 	this->glPolygonOffset = &glPolygonOffset_enc;
8961 	this->glRotatef = &glRotatef_enc;
8962 	this->glScalef = &glScalef_enc;
8963 	this->glTexEnvf = &glTexEnvf_enc;
8964 	this->glTexEnvfv = &glTexEnvfv_enc;
8965 	this->glTexParameterf = &glTexParameterf_enc;
8966 	this->glTexParameterfv = &glTexParameterfv_enc;
8967 	this->glTranslatef = &glTranslatef_enc;
8968 	this->glActiveTexture = &glActiveTexture_enc;
8969 	this->glAlphaFuncx = &glAlphaFuncx_enc;
8970 	this->glBindBuffer = &glBindBuffer_enc;
8971 	this->glBindTexture = &glBindTexture_enc;
8972 	this->glBlendFunc = &glBlendFunc_enc;
8973 	this->glBufferData = &glBufferData_enc;
8974 	this->glBufferSubData = &glBufferSubData_enc;
8975 	this->glClear = &glClear_enc;
8976 	this->glClearColorx = &glClearColorx_enc;
8977 	this->glClearDepthx = &glClearDepthx_enc;
8978 	this->glClearStencil = &glClearStencil_enc;
8979 	this->glClientActiveTexture = &glClientActiveTexture_enc;
8980 	this->glColor4ub = &glColor4ub_enc;
8981 	this->glColor4x = &glColor4x_enc;
8982 	this->glColorMask = &glColorMask_enc;
8983 	this->glColorPointer = (glColorPointer_client_proc_t) &enc_unsupported;
8984 	this->glCompressedTexImage2D = &glCompressedTexImage2D_enc;
8985 	this->glCompressedTexSubImage2D = &glCompressedTexSubImage2D_enc;
8986 	this->glCopyTexImage2D = &glCopyTexImage2D_enc;
8987 	this->glCopyTexSubImage2D = &glCopyTexSubImage2D_enc;
8988 	this->glCullFace = &glCullFace_enc;
8989 	this->glDeleteBuffers = &glDeleteBuffers_enc;
8990 	this->glDeleteTextures = &glDeleteTextures_enc;
8991 	this->glDepthFunc = &glDepthFunc_enc;
8992 	this->glDepthMask = &glDepthMask_enc;
8993 	this->glDepthRangex = &glDepthRangex_enc;
8994 	this->glDisable = &glDisable_enc;
8995 	this->glDisableClientState = &glDisableClientState_enc;
8996 	this->glDrawArrays = &glDrawArrays_enc;
8997 	this->glDrawElements = (glDrawElements_client_proc_t) &enc_unsupported;
8998 	this->glEnable = &glEnable_enc;
8999 	this->glEnableClientState = &glEnableClientState_enc;
9000 	this->glFinish = &glFinish_enc;
9001 	this->glFlush = &glFlush_enc;
9002 	this->glFogx = &glFogx_enc;
9003 	this->glFogxv = &glFogxv_enc;
9004 	this->glFrontFace = &glFrontFace_enc;
9005 	this->glFrustumx = &glFrustumx_enc;
9006 	this->glGetBooleanv = &glGetBooleanv_enc;
9007 	this->glGetBufferParameteriv = &glGetBufferParameteriv_enc;
9008 	this->glClipPlanex = &glClipPlanex_enc;
9009 	this->glGenBuffers = &glGenBuffers_enc;
9010 	this->glGenTextures = &glGenTextures_enc;
9011 	this->glGetError = &glGetError_enc;
9012 	this->glGetFixedv = &glGetFixedv_enc;
9013 	this->glGetIntegerv = &glGetIntegerv_enc;
9014 	this->glGetLightxv = &glGetLightxv_enc;
9015 	this->glGetMaterialxv = &glGetMaterialxv_enc;
9016 	this->glGetPointerv = (glGetPointerv_client_proc_t) &enc_unsupported;
9017 	this->glGetString = (glGetString_client_proc_t) &enc_unsupported;
9018 	this->glGetTexEnviv = &glGetTexEnviv_enc;
9019 	this->glGetTexEnvxv = &glGetTexEnvxv_enc;
9020 	this->glGetTexParameteriv = &glGetTexParameteriv_enc;
9021 	this->glGetTexParameterxv = &glGetTexParameterxv_enc;
9022 	this->glHint = &glHint_enc;
9023 	this->glIsBuffer = &glIsBuffer_enc;
9024 	this->glIsEnabled = &glIsEnabled_enc;
9025 	this->glIsTexture = &glIsTexture_enc;
9026 	this->glLightModelx = &glLightModelx_enc;
9027 	this->glLightModelxv = &glLightModelxv_enc;
9028 	this->glLightx = &glLightx_enc;
9029 	this->glLightxv = &glLightxv_enc;
9030 	this->glLineWidthx = &glLineWidthx_enc;
9031 	this->glLoadIdentity = &glLoadIdentity_enc;
9032 	this->glLoadMatrixx = &glLoadMatrixx_enc;
9033 	this->glLogicOp = &glLogicOp_enc;
9034 	this->glMaterialx = &glMaterialx_enc;
9035 	this->glMaterialxv = &glMaterialxv_enc;
9036 	this->glMatrixMode = &glMatrixMode_enc;
9037 	this->glMultMatrixx = &glMultMatrixx_enc;
9038 	this->glMultiTexCoord4x = &glMultiTexCoord4x_enc;
9039 	this->glNormal3x = &glNormal3x_enc;
9040 	this->glNormalPointer = (glNormalPointer_client_proc_t) &enc_unsupported;
9041 	this->glOrthox = &glOrthox_enc;
9042 	this->glPixelStorei = &glPixelStorei_enc;
9043 	this->glPointParameterx = &glPointParameterx_enc;
9044 	this->glPointParameterxv = &glPointParameterxv_enc;
9045 	this->glPointSizex = &glPointSizex_enc;
9046 	this->glPolygonOffsetx = &glPolygonOffsetx_enc;
9047 	this->glPopMatrix = &glPopMatrix_enc;
9048 	this->glPushMatrix = &glPushMatrix_enc;
9049 	this->glReadPixels = &glReadPixels_enc;
9050 	this->glRotatex = &glRotatex_enc;
9051 	this->glSampleCoverage = &glSampleCoverage_enc;
9052 	this->glSampleCoveragex = &glSampleCoveragex_enc;
9053 	this->glScalex = &glScalex_enc;
9054 	this->glScissor = &glScissor_enc;
9055 	this->glShadeModel = &glShadeModel_enc;
9056 	this->glStencilFunc = &glStencilFunc_enc;
9057 	this->glStencilMask = &glStencilMask_enc;
9058 	this->glStencilOp = &glStencilOp_enc;
9059 	this->glTexCoordPointer = (glTexCoordPointer_client_proc_t) &enc_unsupported;
9060 	this->glTexEnvi = &glTexEnvi_enc;
9061 	this->glTexEnvx = &glTexEnvx_enc;
9062 	this->glTexEnviv = &glTexEnviv_enc;
9063 	this->glTexEnvxv = &glTexEnvxv_enc;
9064 	this->glTexImage2D = &glTexImage2D_enc;
9065 	this->glTexParameteri = &glTexParameteri_enc;
9066 	this->glTexParameterx = &glTexParameterx_enc;
9067 	this->glTexParameteriv = &glTexParameteriv_enc;
9068 	this->glTexParameterxv = &glTexParameterxv_enc;
9069 	this->glTexSubImage2D = &glTexSubImage2D_enc;
9070 	this->glTranslatex = &glTranslatex_enc;
9071 	this->glVertexPointer = (glVertexPointer_client_proc_t) &enc_unsupported;
9072 	this->glViewport = &glViewport_enc;
9073 	this->glPointSizePointerOES = (glPointSizePointerOES_client_proc_t) &enc_unsupported;
9074 	this->glVertexPointerOffset = &glVertexPointerOffset_enc;
9075 	this->glColorPointerOffset = &glColorPointerOffset_enc;
9076 	this->glNormalPointerOffset = &glNormalPointerOffset_enc;
9077 	this->glPointSizePointerOffset = &glPointSizePointerOffset_enc;
9078 	this->glTexCoordPointerOffset = &glTexCoordPointerOffset_enc;
9079 	this->glWeightPointerOffset = &glWeightPointerOffset_enc;
9080 	this->glMatrixIndexPointerOffset = &glMatrixIndexPointerOffset_enc;
9081 	this->glVertexPointerData = &glVertexPointerData_enc;
9082 	this->glColorPointerData = &glColorPointerData_enc;
9083 	this->glNormalPointerData = &glNormalPointerData_enc;
9084 	this->glTexCoordPointerData = &glTexCoordPointerData_enc;
9085 	this->glPointSizePointerData = &glPointSizePointerData_enc;
9086 	this->glWeightPointerData = &glWeightPointerData_enc;
9087 	this->glMatrixIndexPointerData = &glMatrixIndexPointerData_enc;
9088 	this->glDrawElementsOffset = &glDrawElementsOffset_enc;
9089 	this->glDrawElementsData = &glDrawElementsData_enc;
9090 	this->glGetCompressedTextureFormats = &glGetCompressedTextureFormats_enc;
9091 	this->glFinishRoundTrip = &glFinishRoundTrip_enc;
9092 	this->glBlendEquationSeparateOES = &glBlendEquationSeparateOES_enc;
9093 	this->glBlendFuncSeparateOES = &glBlendFuncSeparateOES_enc;
9094 	this->glBlendEquationOES = &glBlendEquationOES_enc;
9095 	this->glDrawTexsOES = &glDrawTexsOES_enc;
9096 	this->glDrawTexiOES = &glDrawTexiOES_enc;
9097 	this->glDrawTexxOES = &glDrawTexxOES_enc;
9098 	this->glDrawTexsvOES = &glDrawTexsvOES_enc;
9099 	this->glDrawTexivOES = &glDrawTexivOES_enc;
9100 	this->glDrawTexxvOES = &glDrawTexxvOES_enc;
9101 	this->glDrawTexfOES = &glDrawTexfOES_enc;
9102 	this->glDrawTexfvOES = &glDrawTexfvOES_enc;
9103 	this->glEGLImageTargetTexture2DOES = &glEGLImageTargetTexture2DOES_enc;
9104 	this->glEGLImageTargetRenderbufferStorageOES = &glEGLImageTargetRenderbufferStorageOES_enc;
9105 	this->glAlphaFuncxOES = &glAlphaFuncxOES_enc;
9106 	this->glClearColorxOES = &glClearColorxOES_enc;
9107 	this->glClearDepthxOES = &glClearDepthxOES_enc;
9108 	this->glClipPlanexOES = &glClipPlanexOES_enc;
9109 	this->glClipPlanexIMG = &glClipPlanexIMG_enc;
9110 	this->glColor4xOES = &glColor4xOES_enc;
9111 	this->glDepthRangexOES = &glDepthRangexOES_enc;
9112 	this->glFogxOES = &glFogxOES_enc;
9113 	this->glFogxvOES = &glFogxvOES_enc;
9114 	this->glFrustumxOES = &glFrustumxOES_enc;
9115 	this->glGetClipPlanexOES = &glGetClipPlanexOES_enc;
9116 	this->glGetClipPlanex = &glGetClipPlanex_enc;
9117 	this->glGetFixedvOES = &glGetFixedvOES_enc;
9118 	this->glGetLightxvOES = &glGetLightxvOES_enc;
9119 	this->glGetMaterialxvOES = &glGetMaterialxvOES_enc;
9120 	this->glGetTexEnvxvOES = &glGetTexEnvxvOES_enc;
9121 	this->glGetTexParameterxvOES = &glGetTexParameterxvOES_enc;
9122 	this->glLightModelxOES = &glLightModelxOES_enc;
9123 	this->glLightModelxvOES = &glLightModelxvOES_enc;
9124 	this->glLightxOES = &glLightxOES_enc;
9125 	this->glLightxvOES = &glLightxvOES_enc;
9126 	this->glLineWidthxOES = &glLineWidthxOES_enc;
9127 	this->glLoadMatrixxOES = &glLoadMatrixxOES_enc;
9128 	this->glMaterialxOES = &glMaterialxOES_enc;
9129 	this->glMaterialxvOES = &glMaterialxvOES_enc;
9130 	this->glMultMatrixxOES = &glMultMatrixxOES_enc;
9131 	this->glMultiTexCoord4xOES = &glMultiTexCoord4xOES_enc;
9132 	this->glNormal3xOES = &glNormal3xOES_enc;
9133 	this->glOrthoxOES = &glOrthoxOES_enc;
9134 	this->glPointParameterxOES = &glPointParameterxOES_enc;
9135 	this->glPointParameterxvOES = &glPointParameterxvOES_enc;
9136 	this->glPointSizexOES = &glPointSizexOES_enc;
9137 	this->glPolygonOffsetxOES = &glPolygonOffsetxOES_enc;
9138 	this->glRotatexOES = &glRotatexOES_enc;
9139 	this->glSampleCoveragexOES = &glSampleCoveragexOES_enc;
9140 	this->glScalexOES = &glScalexOES_enc;
9141 	this->glTexEnvxOES = &glTexEnvxOES_enc;
9142 	this->glTexEnvxvOES = &glTexEnvxvOES_enc;
9143 	this->glTexParameterxOES = &glTexParameterxOES_enc;
9144 	this->glTexParameterxvOES = &glTexParameterxvOES_enc;
9145 	this->glTranslatexOES = &glTranslatexOES_enc;
9146 	this->glIsRenderbufferOES = &glIsRenderbufferOES_enc;
9147 	this->glBindRenderbufferOES = &glBindRenderbufferOES_enc;
9148 	this->glDeleteRenderbuffersOES = &glDeleteRenderbuffersOES_enc;
9149 	this->glGenRenderbuffersOES = &glGenRenderbuffersOES_enc;
9150 	this->glRenderbufferStorageOES = &glRenderbufferStorageOES_enc;
9151 	this->glGetRenderbufferParameterivOES = &glGetRenderbufferParameterivOES_enc;
9152 	this->glIsFramebufferOES = &glIsFramebufferOES_enc;
9153 	this->glBindFramebufferOES = &glBindFramebufferOES_enc;
9154 	this->glDeleteFramebuffersOES = &glDeleteFramebuffersOES_enc;
9155 	this->glGenFramebuffersOES = &glGenFramebuffersOES_enc;
9156 	this->glCheckFramebufferStatusOES = &glCheckFramebufferStatusOES_enc;
9157 	this->glFramebufferRenderbufferOES = &glFramebufferRenderbufferOES_enc;
9158 	this->glFramebufferTexture2DOES = &glFramebufferTexture2DOES_enc;
9159 	this->glGetFramebufferAttachmentParameterivOES = &glGetFramebufferAttachmentParameterivOES_enc;
9160 	this->glGenerateMipmapOES = &glGenerateMipmapOES_enc;
9161 	this->glMapBufferOES = (glMapBufferOES_client_proc_t) &enc_unsupported;
9162 	this->glUnmapBufferOES = &glUnmapBufferOES_enc;
9163 	this->glGetBufferPointervOES = (glGetBufferPointervOES_client_proc_t) &enc_unsupported;
9164 	this->glCurrentPaletteMatrixOES = &glCurrentPaletteMatrixOES_enc;
9165 	this->glLoadPaletteFromModelViewMatrixOES = &glLoadPaletteFromModelViewMatrixOES_enc;
9166 	this->glMatrixIndexPointerOES = (glMatrixIndexPointerOES_client_proc_t) &enc_unsupported;
9167 	this->glWeightPointerOES = (glWeightPointerOES_client_proc_t) &enc_unsupported;
9168 	this->glQueryMatrixxOES = &glQueryMatrixxOES_enc;
9169 	this->glDepthRangefOES = &glDepthRangefOES_enc;
9170 	this->glFrustumfOES = &glFrustumfOES_enc;
9171 	this->glOrthofOES = &glOrthofOES_enc;
9172 	this->glClipPlanefOES = &glClipPlanefOES_enc;
9173 	this->glClipPlanefIMG = &glClipPlanefIMG_enc;
9174 	this->glGetClipPlanefOES = &glGetClipPlanefOES_enc;
9175 	this->glClearDepthfOES = &glClearDepthfOES_enc;
9176 	this->glTexGenfOES = &glTexGenfOES_enc;
9177 	this->glTexGenfvOES = &glTexGenfvOES_enc;
9178 	this->glTexGeniOES = &glTexGeniOES_enc;
9179 	this->glTexGenivOES = &glTexGenivOES_enc;
9180 	this->glTexGenxOES = &glTexGenxOES_enc;
9181 	this->glTexGenxvOES = &glTexGenxvOES_enc;
9182 	this->glGetTexGenfvOES = &glGetTexGenfvOES_enc;
9183 	this->glGetTexGenivOES = &glGetTexGenivOES_enc;
9184 	this->glGetTexGenxvOES = &glGetTexGenxvOES_enc;
9185 	this->glBindVertexArrayOES = &glBindVertexArrayOES_enc;
9186 	this->glDeleteVertexArraysOES = &glDeleteVertexArraysOES_enc;
9187 	this->glGenVertexArraysOES = &glGenVertexArraysOES_enc;
9188 	this->glIsVertexArrayOES = &glIsVertexArrayOES_enc;
9189 	this->glDiscardFramebufferEXT = &glDiscardFramebufferEXT_enc;
9190 	this->glMultiDrawArraysEXT = (glMultiDrawArraysEXT_client_proc_t) &enc_unsupported;
9191 	this->glMultiDrawElementsEXT = (glMultiDrawElementsEXT_client_proc_t) &enc_unsupported;
9192 	this->glMultiDrawArraysSUN = (glMultiDrawArraysSUN_client_proc_t) &enc_unsupported;
9193 	this->glMultiDrawElementsSUN = (glMultiDrawElementsSUN_client_proc_t) &enc_unsupported;
9194 	this->glRenderbufferStorageMultisampleIMG = &glRenderbufferStorageMultisampleIMG_enc;
9195 	this->glFramebufferTexture2DMultisampleIMG = &glFramebufferTexture2DMultisampleIMG_enc;
9196 	this->glDeleteFencesNV = &glDeleteFencesNV_enc;
9197 	this->glGenFencesNV = &glGenFencesNV_enc;
9198 	this->glIsFenceNV = &glIsFenceNV_enc;
9199 	this->glTestFenceNV = &glTestFenceNV_enc;
9200 	this->glGetFenceivNV = &glGetFenceivNV_enc;
9201 	this->glFinishFenceNV = &glFinishFenceNV_enc;
9202 	this->glSetFenceNV = &glSetFenceNV_enc;
9203 	this->glGetDriverControlsQCOM = &glGetDriverControlsQCOM_enc;
9204 	this->glGetDriverControlStringQCOM = &glGetDriverControlStringQCOM_enc;
9205 	this->glEnableDriverControlQCOM = &glEnableDriverControlQCOM_enc;
9206 	this->glDisableDriverControlQCOM = &glDisableDriverControlQCOM_enc;
9207 	this->glExtGetTexturesQCOM = &glExtGetTexturesQCOM_enc;
9208 	this->glExtGetBuffersQCOM = &glExtGetBuffersQCOM_enc;
9209 	this->glExtGetRenderbuffersQCOM = &glExtGetRenderbuffersQCOM_enc;
9210 	this->glExtGetFramebuffersQCOM = &glExtGetFramebuffersQCOM_enc;
9211 	this->glExtGetTexLevelParameterivQCOM = &glExtGetTexLevelParameterivQCOM_enc;
9212 	this->glExtTexObjectStateOverrideiQCOM = &glExtTexObjectStateOverrideiQCOM_enc;
9213 	this->glExtGetTexSubImageQCOM = &glExtGetTexSubImageQCOM_enc;
9214 	this->glExtGetBufferPointervQCOM = (glExtGetBufferPointervQCOM_client_proc_t) &enc_unsupported;
9215 	this->glExtGetShadersQCOM = &glExtGetShadersQCOM_enc;
9216 	this->glExtGetProgramsQCOM = &glExtGetProgramsQCOM_enc;
9217 	this->glExtIsProgramBinaryQCOM = &glExtIsProgramBinaryQCOM_enc;
9218 	this->glExtGetProgramBinarySourceQCOM = (glExtGetProgramBinarySourceQCOM_client_proc_t) &enc_unsupported;
9219 	this->glStartTilingQCOM = &glStartTilingQCOM_enc;
9220 	this->glEndTilingQCOM = &glEndTilingQCOM_enc;
9221 	this->glGetGraphicsResetStatusEXT = &glGetGraphicsResetStatusEXT_enc;
9222 	this->glReadnPixelsEXT = &glReadnPixelsEXT_enc;
9223 }
9224 
9225