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