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