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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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, ¶m, 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