1 // Generated Code - DO NOT EDIT !! 2 // generated by 'emugen' 3 4 5 #include <string.h> 6 #include "gl2_opcodes.h" 7 8 #include "gl2_enc.h" 9 10 11 #include <stdio.h> 12 13 namespace { 14 15 void enc_unsupported() 16 { 17 ALOGE("Function is unsupported\n"); 18 } 19 20 void glActiveTexture_enc(void *self , GLenum texture) 21 { 22 23 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 24 IOStream *stream = ctx->m_stream; 25 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 26 bool useChecksum = checksumCalculator->getVersion() > 0; 27 28 unsigned char *ptr; 29 unsigned char *buf; 30 const size_t sizeWithoutChecksum = 8 + 4; 31 const size_t checksumSize = checksumCalculator->checksumByteSize(); 32 const size_t totalSize = sizeWithoutChecksum + checksumSize; 33 buf = stream->alloc(totalSize); 34 ptr = buf; 35 int tmp = OP_glActiveTexture;memcpy(ptr, &tmp, 4); ptr += 4; 36 memcpy(ptr, &totalSize, 4); ptr += 4; 37 38 memcpy(ptr, &texture, 4); ptr += 4; 39 40 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 41 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 42 43 } 44 45 void glAttachShader_enc(void *self , GLuint program, GLuint shader) 46 { 47 48 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 49 IOStream *stream = ctx->m_stream; 50 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 51 bool useChecksum = checksumCalculator->getVersion() > 0; 52 53 unsigned char *ptr; 54 unsigned char *buf; 55 const size_t sizeWithoutChecksum = 8 + 4 + 4; 56 const size_t checksumSize = checksumCalculator->checksumByteSize(); 57 const size_t totalSize = sizeWithoutChecksum + checksumSize; 58 buf = stream->alloc(totalSize); 59 ptr = buf; 60 int tmp = OP_glAttachShader;memcpy(ptr, &tmp, 4); ptr += 4; 61 memcpy(ptr, &totalSize, 4); ptr += 4; 62 63 memcpy(ptr, &program, 4); ptr += 4; 64 memcpy(ptr, &shader, 4); ptr += 4; 65 66 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 67 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 68 69 } 70 71 void glBindAttribLocation_enc(void *self , GLuint program, GLuint index, const GLchar* name) 72 { 73 74 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 75 IOStream *stream = ctx->m_stream; 76 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 77 bool useChecksum = checksumCalculator->getVersion() > 0; 78 79 const unsigned int __size_name = (strlen(name) + 1); 80 unsigned char *ptr; 81 unsigned char *buf; 82 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_name + 1*4; 83 const size_t checksumSize = checksumCalculator->checksumByteSize(); 84 const size_t totalSize = sizeWithoutChecksum + checksumSize; 85 buf = stream->alloc(totalSize); 86 ptr = buf; 87 int tmp = OP_glBindAttribLocation;memcpy(ptr, &tmp, 4); ptr += 4; 88 memcpy(ptr, &totalSize, 4); ptr += 4; 89 90 memcpy(ptr, &program, 4); ptr += 4; 91 memcpy(ptr, &index, 4); ptr += 4; 92 *(unsigned int *)(ptr) = __size_name; ptr += 4; 93 memcpy(ptr, name, __size_name);ptr += __size_name; 94 95 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 96 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 97 98 } 99 100 void glBindBuffer_enc(void *self , GLenum target, GLuint buffer) 101 { 102 103 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 104 IOStream *stream = ctx->m_stream; 105 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 106 bool useChecksum = checksumCalculator->getVersion() > 0; 107 108 unsigned char *ptr; 109 unsigned char *buf; 110 const size_t sizeWithoutChecksum = 8 + 4 + 4; 111 const size_t checksumSize = checksumCalculator->checksumByteSize(); 112 const size_t totalSize = sizeWithoutChecksum + checksumSize; 113 buf = stream->alloc(totalSize); 114 ptr = buf; 115 int tmp = OP_glBindBuffer;memcpy(ptr, &tmp, 4); ptr += 4; 116 memcpy(ptr, &totalSize, 4); ptr += 4; 117 118 memcpy(ptr, &target, 4); ptr += 4; 119 memcpy(ptr, &buffer, 4); ptr += 4; 120 121 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 122 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 123 124 } 125 126 void glBindFramebuffer_enc(void *self , GLenum target, GLuint framebuffer) 127 { 128 129 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 130 IOStream *stream = ctx->m_stream; 131 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 132 bool useChecksum = checksumCalculator->getVersion() > 0; 133 134 unsigned char *ptr; 135 unsigned char *buf; 136 const size_t sizeWithoutChecksum = 8 + 4 + 4; 137 const size_t checksumSize = checksumCalculator->checksumByteSize(); 138 const size_t totalSize = sizeWithoutChecksum + checksumSize; 139 buf = stream->alloc(totalSize); 140 ptr = buf; 141 int tmp = OP_glBindFramebuffer;memcpy(ptr, &tmp, 4); ptr += 4; 142 memcpy(ptr, &totalSize, 4); ptr += 4; 143 144 memcpy(ptr, &target, 4); ptr += 4; 145 memcpy(ptr, &framebuffer, 4); ptr += 4; 146 147 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 148 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 149 150 } 151 152 void glBindRenderbuffer_enc(void *self , GLenum target, GLuint renderbuffer) 153 { 154 155 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 156 IOStream *stream = ctx->m_stream; 157 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 158 bool useChecksum = checksumCalculator->getVersion() > 0; 159 160 unsigned char *ptr; 161 unsigned char *buf; 162 const size_t sizeWithoutChecksum = 8 + 4 + 4; 163 const size_t checksumSize = checksumCalculator->checksumByteSize(); 164 const size_t totalSize = sizeWithoutChecksum + checksumSize; 165 buf = stream->alloc(totalSize); 166 ptr = buf; 167 int tmp = OP_glBindRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4; 168 memcpy(ptr, &totalSize, 4); ptr += 4; 169 170 memcpy(ptr, &target, 4); ptr += 4; 171 memcpy(ptr, &renderbuffer, 4); ptr += 4; 172 173 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 174 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 175 176 } 177 178 void glBindTexture_enc(void *self , GLenum target, GLuint texture) 179 { 180 181 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 182 IOStream *stream = ctx->m_stream; 183 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 184 bool useChecksum = checksumCalculator->getVersion() > 0; 185 186 unsigned char *ptr; 187 unsigned char *buf; 188 const size_t sizeWithoutChecksum = 8 + 4 + 4; 189 const size_t checksumSize = checksumCalculator->checksumByteSize(); 190 const size_t totalSize = sizeWithoutChecksum + checksumSize; 191 buf = stream->alloc(totalSize); 192 ptr = buf; 193 int tmp = OP_glBindTexture;memcpy(ptr, &tmp, 4); ptr += 4; 194 memcpy(ptr, &totalSize, 4); ptr += 4; 195 196 memcpy(ptr, &target, 4); ptr += 4; 197 memcpy(ptr, &texture, 4); ptr += 4; 198 199 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 200 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 201 202 } 203 204 void glBlendColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) 205 { 206 207 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 208 IOStream *stream = ctx->m_stream; 209 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 210 bool useChecksum = checksumCalculator->getVersion() > 0; 211 212 unsigned char *ptr; 213 unsigned char *buf; 214 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 215 const size_t checksumSize = checksumCalculator->checksumByteSize(); 216 const size_t totalSize = sizeWithoutChecksum + checksumSize; 217 buf = stream->alloc(totalSize); 218 ptr = buf; 219 int tmp = OP_glBlendColor;memcpy(ptr, &tmp, 4); ptr += 4; 220 memcpy(ptr, &totalSize, 4); ptr += 4; 221 222 memcpy(ptr, &red, 4); ptr += 4; 223 memcpy(ptr, &green, 4); ptr += 4; 224 memcpy(ptr, &blue, 4); ptr += 4; 225 memcpy(ptr, &alpha, 4); ptr += 4; 226 227 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 228 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 229 230 } 231 232 void glBlendEquation_enc(void *self , GLenum mode) 233 { 234 235 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 236 IOStream *stream = ctx->m_stream; 237 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 238 bool useChecksum = checksumCalculator->getVersion() > 0; 239 240 unsigned char *ptr; 241 unsigned char *buf; 242 const size_t sizeWithoutChecksum = 8 + 4; 243 const size_t checksumSize = checksumCalculator->checksumByteSize(); 244 const size_t totalSize = sizeWithoutChecksum + checksumSize; 245 buf = stream->alloc(totalSize); 246 ptr = buf; 247 int tmp = OP_glBlendEquation;memcpy(ptr, &tmp, 4); ptr += 4; 248 memcpy(ptr, &totalSize, 4); ptr += 4; 249 250 memcpy(ptr, &mode, 4); ptr += 4; 251 252 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 253 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 254 255 } 256 257 void glBlendEquationSeparate_enc(void *self , GLenum modeRGB, GLenum modeAlpha) 258 { 259 260 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 261 IOStream *stream = ctx->m_stream; 262 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 263 bool useChecksum = checksumCalculator->getVersion() > 0; 264 265 unsigned char *ptr; 266 unsigned char *buf; 267 const size_t sizeWithoutChecksum = 8 + 4 + 4; 268 const size_t checksumSize = checksumCalculator->checksumByteSize(); 269 const size_t totalSize = sizeWithoutChecksum + checksumSize; 270 buf = stream->alloc(totalSize); 271 ptr = buf; 272 int tmp = OP_glBlendEquationSeparate;memcpy(ptr, &tmp, 4); ptr += 4; 273 memcpy(ptr, &totalSize, 4); ptr += 4; 274 275 memcpy(ptr, &modeRGB, 4); ptr += 4; 276 memcpy(ptr, &modeAlpha, 4); ptr += 4; 277 278 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 279 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 280 281 } 282 283 void glBlendFunc_enc(void *self , GLenum sfactor, GLenum dfactor) 284 { 285 286 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 287 IOStream *stream = ctx->m_stream; 288 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 289 bool useChecksum = checksumCalculator->getVersion() > 0; 290 291 unsigned char *ptr; 292 unsigned char *buf; 293 const size_t sizeWithoutChecksum = 8 + 4 + 4; 294 const size_t checksumSize = checksumCalculator->checksumByteSize(); 295 const size_t totalSize = sizeWithoutChecksum + checksumSize; 296 buf = stream->alloc(totalSize); 297 ptr = buf; 298 int tmp = OP_glBlendFunc;memcpy(ptr, &tmp, 4); ptr += 4; 299 memcpy(ptr, &totalSize, 4); ptr += 4; 300 301 memcpy(ptr, &sfactor, 4); ptr += 4; 302 memcpy(ptr, &dfactor, 4); ptr += 4; 303 304 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 305 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 306 307 } 308 309 void glBlendFuncSeparate_enc(void *self , GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) 310 { 311 312 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 313 IOStream *stream = ctx->m_stream; 314 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 315 bool useChecksum = checksumCalculator->getVersion() > 0; 316 317 unsigned char *ptr; 318 unsigned char *buf; 319 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 320 const size_t checksumSize = checksumCalculator->checksumByteSize(); 321 const size_t totalSize = sizeWithoutChecksum + checksumSize; 322 buf = stream->alloc(totalSize); 323 ptr = buf; 324 int tmp = OP_glBlendFuncSeparate;memcpy(ptr, &tmp, 4); ptr += 4; 325 memcpy(ptr, &totalSize, 4); ptr += 4; 326 327 memcpy(ptr, &srcRGB, 4); ptr += 4; 328 memcpy(ptr, &dstRGB, 4); ptr += 4; 329 memcpy(ptr, &srcAlpha, 4); ptr += 4; 330 memcpy(ptr, &dstAlpha, 4); ptr += 4; 331 332 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 333 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 334 335 } 336 337 void glBufferData_enc(void *self , GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage) 338 { 339 340 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 341 IOStream *stream = ctx->m_stream; 342 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 343 bool useChecksum = checksumCalculator->getVersion() > 0; 344 345 const unsigned int __size_data = ((data != NULL) ? size : 0); 346 unsigned char *ptr; 347 unsigned char *buf; 348 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_data + 4 + 1*4; 349 const size_t checksumSize = checksumCalculator->checksumByteSize(); 350 const size_t totalSize = sizeWithoutChecksum + checksumSize; 351 buf = stream->alloc(8 + 4 + 4); 352 ptr = buf; 353 int tmp = OP_glBufferData;memcpy(ptr, &tmp, 4); ptr += 4; 354 memcpy(ptr, &totalSize, 4); ptr += 4; 355 356 memcpy(ptr, &target, 4); ptr += 4; 357 memcpy(ptr, &size, 4); ptr += 4; 358 359 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 360 stream->flush(); 361 stream->writeFully(&__size_data,4); 362 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4); 363 if (data != NULL) { 364 stream->writeFully(data, __size_data); 365 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 366 } 367 buf = stream->alloc(4); 368 ptr = buf; 369 memcpy(ptr, &usage, 4); ptr += 4; 370 371 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 372 buf = stream->alloc(checksumSize); 373 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 374 375 } 376 377 void glBufferSubData_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data) 378 { 379 380 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 381 IOStream *stream = ctx->m_stream; 382 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 383 bool useChecksum = checksumCalculator->getVersion() > 0; 384 385 const unsigned int __size_data = ((data != NULL) ? size : 0); 386 unsigned char *ptr; 387 unsigned char *buf; 388 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 1*4; 389 const size_t checksumSize = checksumCalculator->checksumByteSize(); 390 const size_t totalSize = sizeWithoutChecksum + checksumSize; 391 buf = stream->alloc(8 + 4 + 4 + 4); 392 ptr = buf; 393 int tmp = OP_glBufferSubData;memcpy(ptr, &tmp, 4); ptr += 4; 394 memcpy(ptr, &totalSize, 4); ptr += 4; 395 396 memcpy(ptr, &target, 4); ptr += 4; 397 memcpy(ptr, &offset, 4); ptr += 4; 398 memcpy(ptr, &size, 4); ptr += 4; 399 400 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 401 stream->flush(); 402 stream->writeFully(&__size_data,4); 403 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4); 404 if (data != NULL) { 405 stream->writeFully(data, __size_data); 406 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 407 } 408 buf = stream->alloc(checksumSize); 409 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 410 411 } 412 413 GLenum glCheckFramebufferStatus_enc(void *self , GLenum target) 414 { 415 416 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 417 IOStream *stream = ctx->m_stream; 418 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 419 bool useChecksum = checksumCalculator->getVersion() > 0; 420 421 unsigned char *ptr; 422 unsigned char *buf; 423 const size_t sizeWithoutChecksum = 8 + 4; 424 const size_t checksumSize = checksumCalculator->checksumByteSize(); 425 const size_t totalSize = sizeWithoutChecksum + checksumSize; 426 buf = stream->alloc(totalSize); 427 ptr = buf; 428 int tmp = OP_glCheckFramebufferStatus;memcpy(ptr, &tmp, 4); ptr += 4; 429 memcpy(ptr, &totalSize, 4); ptr += 4; 430 431 memcpy(ptr, &target, 4); ptr += 4; 432 433 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 434 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 435 436 437 GLenum retval; 438 stream->readback(&retval, 4); 439 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 440 if (useChecksum) { 441 unsigned char *checksumBufPtr = NULL; 442 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 443 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 444 stream->readback(checksumBufPtr, checksumSize); 445 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 446 ALOGE("glCheckFramebufferStatus: GL communication error, please report this issue to b.android.com.\n"); 447 abort(); 448 } 449 } 450 return retval; 451 } 452 453 void glClear_enc(void *self , GLbitfield mask) 454 { 455 456 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 457 IOStream *stream = ctx->m_stream; 458 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 459 bool useChecksum = checksumCalculator->getVersion() > 0; 460 461 unsigned char *ptr; 462 unsigned char *buf; 463 const size_t sizeWithoutChecksum = 8 + 4; 464 const size_t checksumSize = checksumCalculator->checksumByteSize(); 465 const size_t totalSize = sizeWithoutChecksum + checksumSize; 466 buf = stream->alloc(totalSize); 467 ptr = buf; 468 int tmp = OP_glClear;memcpy(ptr, &tmp, 4); ptr += 4; 469 memcpy(ptr, &totalSize, 4); ptr += 4; 470 471 memcpy(ptr, &mask, 4); ptr += 4; 472 473 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 474 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 475 476 } 477 478 void glClearColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) 479 { 480 481 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 482 IOStream *stream = ctx->m_stream; 483 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 484 bool useChecksum = checksumCalculator->getVersion() > 0; 485 486 unsigned char *ptr; 487 unsigned char *buf; 488 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 489 const size_t checksumSize = checksumCalculator->checksumByteSize(); 490 const size_t totalSize = sizeWithoutChecksum + checksumSize; 491 buf = stream->alloc(totalSize); 492 ptr = buf; 493 int tmp = OP_glClearColor;memcpy(ptr, &tmp, 4); ptr += 4; 494 memcpy(ptr, &totalSize, 4); ptr += 4; 495 496 memcpy(ptr, &red, 4); ptr += 4; 497 memcpy(ptr, &green, 4); ptr += 4; 498 memcpy(ptr, &blue, 4); ptr += 4; 499 memcpy(ptr, &alpha, 4); ptr += 4; 500 501 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 502 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 503 504 } 505 506 void glClearDepthf_enc(void *self , GLclampf depth) 507 { 508 509 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 510 IOStream *stream = ctx->m_stream; 511 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 512 bool useChecksum = checksumCalculator->getVersion() > 0; 513 514 unsigned char *ptr; 515 unsigned char *buf; 516 const size_t sizeWithoutChecksum = 8 + 4; 517 const size_t checksumSize = checksumCalculator->checksumByteSize(); 518 const size_t totalSize = sizeWithoutChecksum + checksumSize; 519 buf = stream->alloc(totalSize); 520 ptr = buf; 521 int tmp = OP_glClearDepthf;memcpy(ptr, &tmp, 4); ptr += 4; 522 memcpy(ptr, &totalSize, 4); ptr += 4; 523 524 memcpy(ptr, &depth, 4); ptr += 4; 525 526 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 527 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 528 529 } 530 531 void glClearStencil_enc(void *self , GLint s) 532 { 533 534 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 535 IOStream *stream = ctx->m_stream; 536 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 537 bool useChecksum = checksumCalculator->getVersion() > 0; 538 539 unsigned char *ptr; 540 unsigned char *buf; 541 const size_t sizeWithoutChecksum = 8 + 4; 542 const size_t checksumSize = checksumCalculator->checksumByteSize(); 543 const size_t totalSize = sizeWithoutChecksum + checksumSize; 544 buf = stream->alloc(totalSize); 545 ptr = buf; 546 int tmp = OP_glClearStencil;memcpy(ptr, &tmp, 4); ptr += 4; 547 memcpy(ptr, &totalSize, 4); ptr += 4; 548 549 memcpy(ptr, &s, 4); ptr += 4; 550 551 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 552 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 553 554 } 555 556 void glColorMask_enc(void *self , GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) 557 { 558 559 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 560 IOStream *stream = ctx->m_stream; 561 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 562 bool useChecksum = checksumCalculator->getVersion() > 0; 563 564 unsigned char *ptr; 565 unsigned char *buf; 566 const size_t sizeWithoutChecksum = 8 + 1 + 1 + 1 + 1; 567 const size_t checksumSize = checksumCalculator->checksumByteSize(); 568 const size_t totalSize = sizeWithoutChecksum + checksumSize; 569 buf = stream->alloc(totalSize); 570 ptr = buf; 571 int tmp = OP_glColorMask;memcpy(ptr, &tmp, 4); ptr += 4; 572 memcpy(ptr, &totalSize, 4); ptr += 4; 573 574 memcpy(ptr, &red, 1); ptr += 1; 575 memcpy(ptr, &green, 1); ptr += 1; 576 memcpy(ptr, &blue, 1); ptr += 1; 577 memcpy(ptr, &alpha, 1); ptr += 1; 578 579 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 580 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 581 582 } 583 584 void glCompileShader_enc(void *self , GLuint shader) 585 { 586 587 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 588 IOStream *stream = ctx->m_stream; 589 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 590 bool useChecksum = checksumCalculator->getVersion() > 0; 591 592 unsigned char *ptr; 593 unsigned char *buf; 594 const size_t sizeWithoutChecksum = 8 + 4; 595 const size_t checksumSize = checksumCalculator->checksumByteSize(); 596 const size_t totalSize = sizeWithoutChecksum + checksumSize; 597 buf = stream->alloc(totalSize); 598 ptr = buf; 599 int tmp = OP_glCompileShader;memcpy(ptr, &tmp, 4); ptr += 4; 600 memcpy(ptr, &totalSize, 4); ptr += 4; 601 602 memcpy(ptr, &shader, 4); ptr += 4; 603 604 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 605 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 606 607 } 608 609 void glCompressedTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data) 610 { 611 612 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 613 IOStream *stream = ctx->m_stream; 614 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 615 bool useChecksum = checksumCalculator->getVersion() > 0; 616 617 const unsigned int __size_data = ((data != NULL) ? imageSize : 0); 618 unsigned char *ptr; 619 unsigned char *buf; 620 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4; 621 const size_t checksumSize = checksumCalculator->checksumByteSize(); 622 const size_t totalSize = sizeWithoutChecksum + checksumSize; 623 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 624 ptr = buf; 625 int tmp = OP_glCompressedTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4; 626 memcpy(ptr, &totalSize, 4); ptr += 4; 627 628 memcpy(ptr, &target, 4); ptr += 4; 629 memcpy(ptr, &level, 4); ptr += 4; 630 memcpy(ptr, &internalformat, 4); ptr += 4; 631 memcpy(ptr, &width, 4); ptr += 4; 632 memcpy(ptr, &height, 4); ptr += 4; 633 memcpy(ptr, &border, 4); ptr += 4; 634 memcpy(ptr, &imageSize, 4); ptr += 4; 635 636 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 637 stream->flush(); 638 stream->writeFully(&__size_data,4); 639 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4); 640 if (data != NULL) { 641 stream->writeFully(data, __size_data); 642 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 643 } 644 buf = stream->alloc(checksumSize); 645 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 646 647 } 648 649 void glCompressedTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data) 650 { 651 652 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 653 IOStream *stream = ctx->m_stream; 654 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 655 bool useChecksum = checksumCalculator->getVersion() > 0; 656 657 const unsigned int __size_data = ((data != NULL) ? imageSize : 0); 658 unsigned char *ptr; 659 unsigned char *buf; 660 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4; 661 const size_t checksumSize = checksumCalculator->checksumByteSize(); 662 const size_t totalSize = sizeWithoutChecksum + checksumSize; 663 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 664 ptr = buf; 665 int tmp = OP_glCompressedTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4; 666 memcpy(ptr, &totalSize, 4); ptr += 4; 667 668 memcpy(ptr, &target, 4); ptr += 4; 669 memcpy(ptr, &level, 4); ptr += 4; 670 memcpy(ptr, &xoffset, 4); ptr += 4; 671 memcpy(ptr, &yoffset, 4); ptr += 4; 672 memcpy(ptr, &width, 4); ptr += 4; 673 memcpy(ptr, &height, 4); ptr += 4; 674 memcpy(ptr, &format, 4); ptr += 4; 675 memcpy(ptr, &imageSize, 4); ptr += 4; 676 677 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 678 stream->flush(); 679 stream->writeFully(&__size_data,4); 680 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4); 681 if (data != NULL) { 682 stream->writeFully(data, __size_data); 683 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 684 } 685 buf = stream->alloc(checksumSize); 686 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 687 688 } 689 690 void glCopyTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) 691 { 692 693 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 694 IOStream *stream = ctx->m_stream; 695 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 696 bool useChecksum = checksumCalculator->getVersion() > 0; 697 698 unsigned char *ptr; 699 unsigned char *buf; 700 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 701 const size_t checksumSize = checksumCalculator->checksumByteSize(); 702 const size_t totalSize = sizeWithoutChecksum + checksumSize; 703 buf = stream->alloc(totalSize); 704 ptr = buf; 705 int tmp = OP_glCopyTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4; 706 memcpy(ptr, &totalSize, 4); ptr += 4; 707 708 memcpy(ptr, &target, 4); ptr += 4; 709 memcpy(ptr, &level, 4); ptr += 4; 710 memcpy(ptr, &internalformat, 4); ptr += 4; 711 memcpy(ptr, &x, 4); ptr += 4; 712 memcpy(ptr, &y, 4); ptr += 4; 713 memcpy(ptr, &width, 4); ptr += 4; 714 memcpy(ptr, &height, 4); ptr += 4; 715 memcpy(ptr, &border, 4); ptr += 4; 716 717 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 718 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 719 720 } 721 722 void glCopyTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) 723 { 724 725 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 726 IOStream *stream = ctx->m_stream; 727 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 728 bool useChecksum = checksumCalculator->getVersion() > 0; 729 730 unsigned char *ptr; 731 unsigned char *buf; 732 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 733 const size_t checksumSize = checksumCalculator->checksumByteSize(); 734 const size_t totalSize = sizeWithoutChecksum + checksumSize; 735 buf = stream->alloc(totalSize); 736 ptr = buf; 737 int tmp = OP_glCopyTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4; 738 memcpy(ptr, &totalSize, 4); ptr += 4; 739 740 memcpy(ptr, &target, 4); ptr += 4; 741 memcpy(ptr, &level, 4); ptr += 4; 742 memcpy(ptr, &xoffset, 4); ptr += 4; 743 memcpy(ptr, &yoffset, 4); ptr += 4; 744 memcpy(ptr, &x, 4); ptr += 4; 745 memcpy(ptr, &y, 4); ptr += 4; 746 memcpy(ptr, &width, 4); ptr += 4; 747 memcpy(ptr, &height, 4); ptr += 4; 748 749 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 750 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 751 752 } 753 754 GLuint glCreateProgram_enc(void *self ) 755 { 756 757 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 758 IOStream *stream = ctx->m_stream; 759 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 760 bool useChecksum = checksumCalculator->getVersion() > 0; 761 762 unsigned char *ptr; 763 unsigned char *buf; 764 const size_t sizeWithoutChecksum = 8; 765 const size_t checksumSize = checksumCalculator->checksumByteSize(); 766 const size_t totalSize = sizeWithoutChecksum + checksumSize; 767 buf = stream->alloc(totalSize); 768 ptr = buf; 769 int tmp = OP_glCreateProgram;memcpy(ptr, &tmp, 4); ptr += 4; 770 memcpy(ptr, &totalSize, 4); ptr += 4; 771 772 773 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 774 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 775 776 777 GLuint retval; 778 stream->readback(&retval, 4); 779 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 780 if (useChecksum) { 781 unsigned char *checksumBufPtr = NULL; 782 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 783 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 784 stream->readback(checksumBufPtr, checksumSize); 785 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 786 ALOGE("glCreateProgram: GL communication error, please report this issue to b.android.com.\n"); 787 abort(); 788 } 789 } 790 return retval; 791 } 792 793 GLuint glCreateShader_enc(void *self , GLenum type) 794 { 795 796 gl2_encoder_context_t *ctx = (gl2_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; 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_glCreateShader;memcpy(ptr, &tmp, 4); ptr += 4; 809 memcpy(ptr, &totalSize, 4); ptr += 4; 810 811 memcpy(ptr, &type, 4); ptr += 4; 812 813 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 814 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 815 816 817 GLuint retval; 818 stream->readback(&retval, 4); 819 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 820 if (useChecksum) { 821 unsigned char *checksumBufPtr = NULL; 822 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 823 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 824 stream->readback(checksumBufPtr, checksumSize); 825 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 826 ALOGE("glCreateShader: GL communication error, please report this issue to b.android.com.\n"); 827 abort(); 828 } 829 } 830 return retval; 831 } 832 833 void glCullFace_enc(void *self , GLenum mode) 834 { 835 836 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 837 IOStream *stream = ctx->m_stream; 838 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 839 bool useChecksum = checksumCalculator->getVersion() > 0; 840 841 unsigned char *ptr; 842 unsigned char *buf; 843 const size_t sizeWithoutChecksum = 8 + 4; 844 const size_t checksumSize = checksumCalculator->checksumByteSize(); 845 const size_t totalSize = sizeWithoutChecksum + checksumSize; 846 buf = stream->alloc(totalSize); 847 ptr = buf; 848 int tmp = OP_glCullFace;memcpy(ptr, &tmp, 4); ptr += 4; 849 memcpy(ptr, &totalSize, 4); ptr += 4; 850 851 memcpy(ptr, &mode, 4); ptr += 4; 852 853 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 854 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 855 856 } 857 858 void glDeleteBuffers_enc(void *self , GLsizei n, const GLuint* buffers) 859 { 860 861 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 862 IOStream *stream = ctx->m_stream; 863 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 864 bool useChecksum = checksumCalculator->getVersion() > 0; 865 866 const unsigned int __size_buffers = (n * sizeof(GLuint)); 867 unsigned char *ptr; 868 unsigned char *buf; 869 const size_t sizeWithoutChecksum = 8 + 4 + __size_buffers + 1*4; 870 const size_t checksumSize = checksumCalculator->checksumByteSize(); 871 const size_t totalSize = sizeWithoutChecksum + checksumSize; 872 buf = stream->alloc(totalSize); 873 ptr = buf; 874 int tmp = OP_glDeleteBuffers;memcpy(ptr, &tmp, 4); ptr += 4; 875 memcpy(ptr, &totalSize, 4); ptr += 4; 876 877 memcpy(ptr, &n, 4); ptr += 4; 878 *(unsigned int *)(ptr) = __size_buffers; ptr += 4; 879 memcpy(ptr, buffers, __size_buffers);ptr += __size_buffers; 880 881 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 882 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 883 884 } 885 886 void glDeleteFramebuffers_enc(void *self , GLsizei n, const GLuint* framebuffers) 887 { 888 889 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 890 IOStream *stream = ctx->m_stream; 891 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 892 bool useChecksum = checksumCalculator->getVersion() > 0; 893 894 const unsigned int __size_framebuffers = (n * sizeof(GLuint)); 895 unsigned char *ptr; 896 unsigned char *buf; 897 const size_t sizeWithoutChecksum = 8 + 4 + __size_framebuffers + 1*4; 898 const size_t checksumSize = checksumCalculator->checksumByteSize(); 899 const size_t totalSize = sizeWithoutChecksum + checksumSize; 900 buf = stream->alloc(totalSize); 901 ptr = buf; 902 int tmp = OP_glDeleteFramebuffers;memcpy(ptr, &tmp, 4); ptr += 4; 903 memcpy(ptr, &totalSize, 4); ptr += 4; 904 905 memcpy(ptr, &n, 4); ptr += 4; 906 *(unsigned int *)(ptr) = __size_framebuffers; ptr += 4; 907 memcpy(ptr, framebuffers, __size_framebuffers);ptr += __size_framebuffers; 908 909 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 910 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 911 912 } 913 914 void glDeleteProgram_enc(void *self , GLuint program) 915 { 916 917 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 918 IOStream *stream = ctx->m_stream; 919 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 920 bool useChecksum = checksumCalculator->getVersion() > 0; 921 922 unsigned char *ptr; 923 unsigned char *buf; 924 const size_t sizeWithoutChecksum = 8 + 4; 925 const size_t checksumSize = checksumCalculator->checksumByteSize(); 926 const size_t totalSize = sizeWithoutChecksum + checksumSize; 927 buf = stream->alloc(totalSize); 928 ptr = buf; 929 int tmp = OP_glDeleteProgram;memcpy(ptr, &tmp, 4); ptr += 4; 930 memcpy(ptr, &totalSize, 4); ptr += 4; 931 932 memcpy(ptr, &program, 4); ptr += 4; 933 934 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 935 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 936 937 } 938 939 void glDeleteRenderbuffers_enc(void *self , GLsizei n, const GLuint* renderbuffers) 940 { 941 942 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 943 IOStream *stream = ctx->m_stream; 944 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 945 bool useChecksum = checksumCalculator->getVersion() > 0; 946 947 const unsigned int __size_renderbuffers = (n * sizeof(GLuint)); 948 unsigned char *ptr; 949 unsigned char *buf; 950 const size_t sizeWithoutChecksum = 8 + 4 + __size_renderbuffers + 1*4; 951 const size_t checksumSize = checksumCalculator->checksumByteSize(); 952 const size_t totalSize = sizeWithoutChecksum + checksumSize; 953 buf = stream->alloc(totalSize); 954 ptr = buf; 955 int tmp = OP_glDeleteRenderbuffers;memcpy(ptr, &tmp, 4); ptr += 4; 956 memcpy(ptr, &totalSize, 4); ptr += 4; 957 958 memcpy(ptr, &n, 4); ptr += 4; 959 *(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4; 960 memcpy(ptr, renderbuffers, __size_renderbuffers);ptr += __size_renderbuffers; 961 962 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 963 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 964 965 } 966 967 void glDeleteShader_enc(void *self , GLuint shader) 968 { 969 970 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 971 IOStream *stream = ctx->m_stream; 972 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 973 bool useChecksum = checksumCalculator->getVersion() > 0; 974 975 unsigned char *ptr; 976 unsigned char *buf; 977 const size_t sizeWithoutChecksum = 8 + 4; 978 const size_t checksumSize = checksumCalculator->checksumByteSize(); 979 const size_t totalSize = sizeWithoutChecksum + checksumSize; 980 buf = stream->alloc(totalSize); 981 ptr = buf; 982 int tmp = OP_glDeleteShader;memcpy(ptr, &tmp, 4); ptr += 4; 983 memcpy(ptr, &totalSize, 4); ptr += 4; 984 985 memcpy(ptr, &shader, 4); ptr += 4; 986 987 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 988 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 989 990 } 991 992 void glDeleteTextures_enc(void *self , GLsizei n, const GLuint* textures) 993 { 994 995 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 996 IOStream *stream = ctx->m_stream; 997 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 998 bool useChecksum = checksumCalculator->getVersion() > 0; 999 1000 const unsigned int __size_textures = (n * sizeof(GLuint)); 1001 unsigned char *ptr; 1002 unsigned char *buf; 1003 const size_t sizeWithoutChecksum = 8 + 4 + __size_textures + 1*4; 1004 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1005 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1006 buf = stream->alloc(totalSize); 1007 ptr = buf; 1008 int tmp = OP_glDeleteTextures;memcpy(ptr, &tmp, 4); ptr += 4; 1009 memcpy(ptr, &totalSize, 4); ptr += 4; 1010 1011 memcpy(ptr, &n, 4); ptr += 4; 1012 *(unsigned int *)(ptr) = __size_textures; ptr += 4; 1013 memcpy(ptr, textures, __size_textures);ptr += __size_textures; 1014 1015 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1016 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1017 1018 } 1019 1020 void glDepthFunc_enc(void *self , GLenum func) 1021 { 1022 1023 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1024 IOStream *stream = ctx->m_stream; 1025 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1026 bool useChecksum = checksumCalculator->getVersion() > 0; 1027 1028 unsigned char *ptr; 1029 unsigned char *buf; 1030 const size_t sizeWithoutChecksum = 8 + 4; 1031 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1032 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1033 buf = stream->alloc(totalSize); 1034 ptr = buf; 1035 int tmp = OP_glDepthFunc;memcpy(ptr, &tmp, 4); ptr += 4; 1036 memcpy(ptr, &totalSize, 4); ptr += 4; 1037 1038 memcpy(ptr, &func, 4); ptr += 4; 1039 1040 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1041 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1042 1043 } 1044 1045 void glDepthMask_enc(void *self , GLboolean flag) 1046 { 1047 1048 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1049 IOStream *stream = ctx->m_stream; 1050 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1051 bool useChecksum = checksumCalculator->getVersion() > 0; 1052 1053 unsigned char *ptr; 1054 unsigned char *buf; 1055 const size_t sizeWithoutChecksum = 8 + 1; 1056 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1057 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1058 buf = stream->alloc(totalSize); 1059 ptr = buf; 1060 int tmp = OP_glDepthMask;memcpy(ptr, &tmp, 4); ptr += 4; 1061 memcpy(ptr, &totalSize, 4); ptr += 4; 1062 1063 memcpy(ptr, &flag, 1); ptr += 1; 1064 1065 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1066 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1067 1068 } 1069 1070 void glDepthRangef_enc(void *self , GLclampf zNear, GLclampf zFar) 1071 { 1072 1073 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1074 IOStream *stream = ctx->m_stream; 1075 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1076 bool useChecksum = checksumCalculator->getVersion() > 0; 1077 1078 unsigned char *ptr; 1079 unsigned char *buf; 1080 const size_t sizeWithoutChecksum = 8 + 4 + 4; 1081 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1082 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1083 buf = stream->alloc(totalSize); 1084 ptr = buf; 1085 int tmp = OP_glDepthRangef;memcpy(ptr, &tmp, 4); ptr += 4; 1086 memcpy(ptr, &totalSize, 4); ptr += 4; 1087 1088 memcpy(ptr, &zNear, 4); ptr += 4; 1089 memcpy(ptr, &zFar, 4); ptr += 4; 1090 1091 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1092 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1093 1094 } 1095 1096 void glDetachShader_enc(void *self , GLuint program, GLuint shader) 1097 { 1098 1099 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1100 IOStream *stream = ctx->m_stream; 1101 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1102 bool useChecksum = checksumCalculator->getVersion() > 0; 1103 1104 unsigned char *ptr; 1105 unsigned char *buf; 1106 const size_t sizeWithoutChecksum = 8 + 4 + 4; 1107 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1108 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1109 buf = stream->alloc(totalSize); 1110 ptr = buf; 1111 int tmp = OP_glDetachShader;memcpy(ptr, &tmp, 4); ptr += 4; 1112 memcpy(ptr, &totalSize, 4); ptr += 4; 1113 1114 memcpy(ptr, &program, 4); ptr += 4; 1115 memcpy(ptr, &shader, 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 glDisable_enc(void *self , GLenum cap) 1123 { 1124 1125 gl2_encoder_context_t *ctx = (gl2_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_glDisable;memcpy(ptr, &tmp, 4); ptr += 4; 1138 memcpy(ptr, &totalSize, 4); ptr += 4; 1139 1140 memcpy(ptr, &cap, 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 glDisableVertexAttribArray_enc(void *self , GLuint index) 1148 { 1149 1150 gl2_encoder_context_t *ctx = (gl2_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; 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_glDisableVertexAttribArray;memcpy(ptr, &tmp, 4); ptr += 4; 1163 memcpy(ptr, &totalSize, 4); ptr += 4; 1164 1165 memcpy(ptr, &index, 4); ptr += 4; 1166 1167 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1168 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1169 1170 } 1171 1172 void glDrawArrays_enc(void *self , GLenum mode, GLint first, GLsizei count) 1173 { 1174 1175 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1176 IOStream *stream = ctx->m_stream; 1177 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1178 bool useChecksum = checksumCalculator->getVersion() > 0; 1179 1180 unsigned char *ptr; 1181 unsigned char *buf; 1182 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 1183 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1184 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1185 buf = stream->alloc(totalSize); 1186 ptr = buf; 1187 int tmp = OP_glDrawArrays;memcpy(ptr, &tmp, 4); ptr += 4; 1188 memcpy(ptr, &totalSize, 4); ptr += 4; 1189 1190 memcpy(ptr, &mode, 4); ptr += 4; 1191 memcpy(ptr, &first, 4); ptr += 4; 1192 memcpy(ptr, &count, 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 glEnable_enc(void *self , GLenum cap) 1200 { 1201 1202 gl2_encoder_context_t *ctx = (gl2_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; 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_glEnable;memcpy(ptr, &tmp, 4); ptr += 4; 1215 memcpy(ptr, &totalSize, 4); ptr += 4; 1216 1217 memcpy(ptr, &cap, 4); ptr += 4; 1218 1219 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1220 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1221 1222 } 1223 1224 void glEnableVertexAttribArray_enc(void *self , GLuint index) 1225 { 1226 1227 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1228 IOStream *stream = ctx->m_stream; 1229 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1230 bool useChecksum = checksumCalculator->getVersion() > 0; 1231 1232 unsigned char *ptr; 1233 unsigned char *buf; 1234 const size_t sizeWithoutChecksum = 8 + 4; 1235 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1236 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1237 buf = stream->alloc(totalSize); 1238 ptr = buf; 1239 int tmp = OP_glEnableVertexAttribArray;memcpy(ptr, &tmp, 4); ptr += 4; 1240 memcpy(ptr, &totalSize, 4); ptr += 4; 1241 1242 memcpy(ptr, &index, 4); ptr += 4; 1243 1244 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1245 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1246 1247 } 1248 1249 void glFinish_enc(void *self ) 1250 { 1251 1252 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1253 IOStream *stream = ctx->m_stream; 1254 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1255 bool useChecksum = checksumCalculator->getVersion() > 0; 1256 1257 unsigned char *ptr; 1258 unsigned char *buf; 1259 const size_t sizeWithoutChecksum = 8; 1260 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1261 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1262 buf = stream->alloc(totalSize); 1263 ptr = buf; 1264 int tmp = OP_glFinish;memcpy(ptr, &tmp, 4); ptr += 4; 1265 memcpy(ptr, &totalSize, 4); ptr += 4; 1266 1267 1268 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1269 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1270 1271 } 1272 1273 void glFlush_enc(void *self ) 1274 { 1275 1276 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1277 IOStream *stream = ctx->m_stream; 1278 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1279 bool useChecksum = checksumCalculator->getVersion() > 0; 1280 1281 unsigned char *ptr; 1282 unsigned char *buf; 1283 const size_t sizeWithoutChecksum = 8; 1284 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1285 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1286 buf = stream->alloc(totalSize); 1287 ptr = buf; 1288 int tmp = OP_glFlush;memcpy(ptr, &tmp, 4); ptr += 4; 1289 memcpy(ptr, &totalSize, 4); ptr += 4; 1290 1291 1292 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1293 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1294 1295 } 1296 1297 void glFramebufferRenderbuffer_enc(void *self , GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) 1298 { 1299 1300 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1301 IOStream *stream = ctx->m_stream; 1302 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1303 bool useChecksum = checksumCalculator->getVersion() > 0; 1304 1305 unsigned char *ptr; 1306 unsigned char *buf; 1307 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 1308 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1309 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1310 buf = stream->alloc(totalSize); 1311 ptr = buf; 1312 int tmp = OP_glFramebufferRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4; 1313 memcpy(ptr, &totalSize, 4); ptr += 4; 1314 1315 memcpy(ptr, &target, 4); ptr += 4; 1316 memcpy(ptr, &attachment, 4); ptr += 4; 1317 memcpy(ptr, &renderbuffertarget, 4); ptr += 4; 1318 memcpy(ptr, &renderbuffer, 4); ptr += 4; 1319 1320 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1321 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1322 1323 } 1324 1325 void glFramebufferTexture2D_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) 1326 { 1327 1328 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1329 IOStream *stream = ctx->m_stream; 1330 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1331 bool useChecksum = checksumCalculator->getVersion() > 0; 1332 1333 unsigned char *ptr; 1334 unsigned char *buf; 1335 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 1336 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1337 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1338 buf = stream->alloc(totalSize); 1339 ptr = buf; 1340 int tmp = OP_glFramebufferTexture2D;memcpy(ptr, &tmp, 4); ptr += 4; 1341 memcpy(ptr, &totalSize, 4); ptr += 4; 1342 1343 memcpy(ptr, &target, 4); ptr += 4; 1344 memcpy(ptr, &attachment, 4); ptr += 4; 1345 memcpy(ptr, &textarget, 4); ptr += 4; 1346 memcpy(ptr, &texture, 4); ptr += 4; 1347 memcpy(ptr, &level, 4); ptr += 4; 1348 1349 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1350 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1351 1352 } 1353 1354 void glFrontFace_enc(void *self , GLenum mode) 1355 { 1356 1357 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1358 IOStream *stream = ctx->m_stream; 1359 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1360 bool useChecksum = checksumCalculator->getVersion() > 0; 1361 1362 unsigned char *ptr; 1363 unsigned char *buf; 1364 const size_t sizeWithoutChecksum = 8 + 4; 1365 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1366 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1367 buf = stream->alloc(totalSize); 1368 ptr = buf; 1369 int tmp = OP_glFrontFace;memcpy(ptr, &tmp, 4); ptr += 4; 1370 memcpy(ptr, &totalSize, 4); ptr += 4; 1371 1372 memcpy(ptr, &mode, 4); ptr += 4; 1373 1374 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1375 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1376 1377 } 1378 1379 void glGenBuffers_enc(void *self , GLsizei n, GLuint* buffers) 1380 { 1381 1382 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1383 IOStream *stream = ctx->m_stream; 1384 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1385 bool useChecksum = checksumCalculator->getVersion() > 0; 1386 1387 const unsigned int __size_buffers = (n * sizeof(GLuint)); 1388 unsigned char *ptr; 1389 unsigned char *buf; 1390 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 1391 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1392 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1393 buf = stream->alloc(totalSize); 1394 ptr = buf; 1395 int tmp = OP_glGenBuffers;memcpy(ptr, &tmp, 4); ptr += 4; 1396 memcpy(ptr, &totalSize, 4); ptr += 4; 1397 1398 memcpy(ptr, &n, 4); ptr += 4; 1399 *(unsigned int *)(ptr) = __size_buffers; ptr += 4; 1400 1401 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1402 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1403 1404 stream->readback(buffers, __size_buffers); 1405 if (useChecksum) checksumCalculator->addBuffer(buffers, __size_buffers); 1406 if (useChecksum) { 1407 unsigned char *checksumBufPtr = NULL; 1408 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1409 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1410 stream->readback(checksumBufPtr, checksumSize); 1411 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1412 ALOGE("glGenBuffers: GL communication error, please report this issue to b.android.com.\n"); 1413 abort(); 1414 } 1415 } 1416 } 1417 1418 void glGenerateMipmap_enc(void *self , GLenum target) 1419 { 1420 1421 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1422 IOStream *stream = ctx->m_stream; 1423 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1424 bool useChecksum = checksumCalculator->getVersion() > 0; 1425 1426 unsigned char *ptr; 1427 unsigned char *buf; 1428 const size_t sizeWithoutChecksum = 8 + 4; 1429 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1430 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1431 buf = stream->alloc(totalSize); 1432 ptr = buf; 1433 int tmp = OP_glGenerateMipmap;memcpy(ptr, &tmp, 4); ptr += 4; 1434 memcpy(ptr, &totalSize, 4); ptr += 4; 1435 1436 memcpy(ptr, &target, 4); ptr += 4; 1437 1438 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1439 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1440 1441 } 1442 1443 void glGenFramebuffers_enc(void *self , GLsizei n, GLuint* framebuffers) 1444 { 1445 1446 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1447 IOStream *stream = ctx->m_stream; 1448 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1449 bool useChecksum = checksumCalculator->getVersion() > 0; 1450 1451 const unsigned int __size_framebuffers = (n * sizeof(GLuint)); 1452 unsigned char *ptr; 1453 unsigned char *buf; 1454 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 1455 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1456 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1457 buf = stream->alloc(totalSize); 1458 ptr = buf; 1459 int tmp = OP_glGenFramebuffers;memcpy(ptr, &tmp, 4); ptr += 4; 1460 memcpy(ptr, &totalSize, 4); ptr += 4; 1461 1462 memcpy(ptr, &n, 4); ptr += 4; 1463 *(unsigned int *)(ptr) = __size_framebuffers; ptr += 4; 1464 1465 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1466 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1467 1468 stream->readback(framebuffers, __size_framebuffers); 1469 if (useChecksum) checksumCalculator->addBuffer(framebuffers, __size_framebuffers); 1470 if (useChecksum) { 1471 unsigned char *checksumBufPtr = NULL; 1472 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1473 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1474 stream->readback(checksumBufPtr, checksumSize); 1475 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1476 ALOGE("glGenFramebuffers: GL communication error, please report this issue to b.android.com.\n"); 1477 abort(); 1478 } 1479 } 1480 } 1481 1482 void glGenRenderbuffers_enc(void *self , GLsizei n, GLuint* renderbuffers) 1483 { 1484 1485 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1486 IOStream *stream = ctx->m_stream; 1487 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1488 bool useChecksum = checksumCalculator->getVersion() > 0; 1489 1490 const unsigned int __size_renderbuffers = (n * sizeof(GLuint)); 1491 unsigned char *ptr; 1492 unsigned char *buf; 1493 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 1494 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1495 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1496 buf = stream->alloc(totalSize); 1497 ptr = buf; 1498 int tmp = OP_glGenRenderbuffers;memcpy(ptr, &tmp, 4); ptr += 4; 1499 memcpy(ptr, &totalSize, 4); ptr += 4; 1500 1501 memcpy(ptr, &n, 4); ptr += 4; 1502 *(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4; 1503 1504 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1505 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1506 1507 stream->readback(renderbuffers, __size_renderbuffers); 1508 if (useChecksum) checksumCalculator->addBuffer(renderbuffers, __size_renderbuffers); 1509 if (useChecksum) { 1510 unsigned char *checksumBufPtr = NULL; 1511 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1512 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1513 stream->readback(checksumBufPtr, checksumSize); 1514 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1515 ALOGE("glGenRenderbuffers: GL communication error, please report this issue to b.android.com.\n"); 1516 abort(); 1517 } 1518 } 1519 } 1520 1521 void glGenTextures_enc(void *self , GLsizei n, GLuint* textures) 1522 { 1523 1524 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1525 IOStream *stream = ctx->m_stream; 1526 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1527 bool useChecksum = checksumCalculator->getVersion() > 0; 1528 1529 const unsigned int __size_textures = (n * sizeof(GLuint)); 1530 unsigned char *ptr; 1531 unsigned char *buf; 1532 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 1533 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1534 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1535 buf = stream->alloc(totalSize); 1536 ptr = buf; 1537 int tmp = OP_glGenTextures;memcpy(ptr, &tmp, 4); ptr += 4; 1538 memcpy(ptr, &totalSize, 4); ptr += 4; 1539 1540 memcpy(ptr, &n, 4); ptr += 4; 1541 *(unsigned int *)(ptr) = __size_textures; ptr += 4; 1542 1543 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1544 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1545 1546 stream->readback(textures, __size_textures); 1547 if (useChecksum) checksumCalculator->addBuffer(textures, __size_textures); 1548 if (useChecksum) { 1549 unsigned char *checksumBufPtr = NULL; 1550 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1551 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1552 stream->readback(checksumBufPtr, checksumSize); 1553 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1554 ALOGE("glGenTextures: GL communication error, please report this issue to b.android.com.\n"); 1555 abort(); 1556 } 1557 } 1558 } 1559 1560 void glGetActiveAttrib_enc(void *self , GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) 1561 { 1562 1563 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1564 IOStream *stream = ctx->m_stream; 1565 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1566 bool useChecksum = checksumCalculator->getVersion() > 0; 1567 1568 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0); 1569 const unsigned int __size_size = ((size != NULL) ? (sizeof(GLint)) : 0); 1570 const unsigned int __size_type = ((type != NULL) ? (sizeof(GLenum)) : 0); 1571 const unsigned int __size_name = ((name != NULL) ? bufsize : 0); 1572 unsigned char *ptr; 1573 unsigned char *buf; 1574 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 0 + 0 + 0 + 0 + 4*4; 1575 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1576 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1577 buf = stream->alloc(totalSize); 1578 ptr = buf; 1579 int tmp = OP_glGetActiveAttrib;memcpy(ptr, &tmp, 4); ptr += 4; 1580 memcpy(ptr, &totalSize, 4); ptr += 4; 1581 1582 memcpy(ptr, &program, 4); ptr += 4; 1583 memcpy(ptr, &index, 4); ptr += 4; 1584 memcpy(ptr, &bufsize, 4); ptr += 4; 1585 *(unsigned int *)(ptr) = __size_length; ptr += 4; 1586 *(unsigned int *)(ptr) = __size_size; ptr += 4; 1587 *(unsigned int *)(ptr) = __size_type; ptr += 4; 1588 *(unsigned int *)(ptr) = __size_name; ptr += 4; 1589 1590 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1591 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1592 1593 if (length != NULL) { 1594 stream->readback(length, __size_length); 1595 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 1596 } 1597 if (size != NULL) { 1598 stream->readback(size, __size_size); 1599 if (useChecksum) checksumCalculator->addBuffer(size, __size_size); 1600 } 1601 if (type != NULL) { 1602 stream->readback(type, __size_type); 1603 if (useChecksum) checksumCalculator->addBuffer(type, __size_type); 1604 } 1605 if (name != NULL) { 1606 stream->readback(name, __size_name); 1607 if (useChecksum) checksumCalculator->addBuffer(name, __size_name); 1608 } 1609 if (useChecksum) { 1610 unsigned char *checksumBufPtr = NULL; 1611 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1612 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1613 stream->readback(checksumBufPtr, checksumSize); 1614 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1615 ALOGE("glGetActiveAttrib: GL communication error, please report this issue to b.android.com.\n"); 1616 abort(); 1617 } 1618 } 1619 } 1620 1621 void glGetActiveUniform_enc(void *self , GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) 1622 { 1623 1624 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1625 IOStream *stream = ctx->m_stream; 1626 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1627 bool useChecksum = checksumCalculator->getVersion() > 0; 1628 1629 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0); 1630 const unsigned int __size_size = ((size != NULL) ? (sizeof(GLint)) : 0); 1631 const unsigned int __size_type = ((type != NULL) ? (sizeof(GLenum)) : 0); 1632 const unsigned int __size_name = ((name != NULL) ? bufsize : 0); 1633 unsigned char *ptr; 1634 unsigned char *buf; 1635 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 0 + 0 + 0 + 0 + 4*4; 1636 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1637 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1638 buf = stream->alloc(totalSize); 1639 ptr = buf; 1640 int tmp = OP_glGetActiveUniform;memcpy(ptr, &tmp, 4); ptr += 4; 1641 memcpy(ptr, &totalSize, 4); ptr += 4; 1642 1643 memcpy(ptr, &program, 4); ptr += 4; 1644 memcpy(ptr, &index, 4); ptr += 4; 1645 memcpy(ptr, &bufsize, 4); ptr += 4; 1646 *(unsigned int *)(ptr) = __size_length; ptr += 4; 1647 *(unsigned int *)(ptr) = __size_size; ptr += 4; 1648 *(unsigned int *)(ptr) = __size_type; ptr += 4; 1649 *(unsigned int *)(ptr) = __size_name; ptr += 4; 1650 1651 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1652 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1653 1654 if (length != NULL) { 1655 stream->readback(length, __size_length); 1656 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 1657 } 1658 if (size != NULL) { 1659 stream->readback(size, __size_size); 1660 if (useChecksum) checksumCalculator->addBuffer(size, __size_size); 1661 } 1662 if (type != NULL) { 1663 stream->readback(type, __size_type); 1664 if (useChecksum) checksumCalculator->addBuffer(type, __size_type); 1665 } 1666 if (name != NULL) { 1667 stream->readback(name, __size_name); 1668 if (useChecksum) checksumCalculator->addBuffer(name, __size_name); 1669 } 1670 if (useChecksum) { 1671 unsigned char *checksumBufPtr = NULL; 1672 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1673 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1674 stream->readback(checksumBufPtr, checksumSize); 1675 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1676 ALOGE("glGetActiveUniform: GL communication error, please report this issue to b.android.com.\n"); 1677 abort(); 1678 } 1679 } 1680 } 1681 1682 void glGetAttachedShaders_enc(void *self , GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) 1683 { 1684 1685 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1686 IOStream *stream = ctx->m_stream; 1687 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1688 bool useChecksum = checksumCalculator->getVersion() > 0; 1689 1690 const unsigned int __size_count = ((count != NULL) ? (sizeof(GLsizei)) : 0); 1691 const unsigned int __size_shaders = (maxcount*sizeof(GLuint)); 1692 unsigned char *ptr; 1693 unsigned char *buf; 1694 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 0 + 2*4; 1695 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1696 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1697 buf = stream->alloc(totalSize); 1698 ptr = buf; 1699 int tmp = OP_glGetAttachedShaders;memcpy(ptr, &tmp, 4); ptr += 4; 1700 memcpy(ptr, &totalSize, 4); ptr += 4; 1701 1702 memcpy(ptr, &program, 4); ptr += 4; 1703 memcpy(ptr, &maxcount, 4); ptr += 4; 1704 *(unsigned int *)(ptr) = __size_count; ptr += 4; 1705 *(unsigned int *)(ptr) = __size_shaders; ptr += 4; 1706 1707 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1708 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1709 1710 if (count != NULL) { 1711 stream->readback(count, __size_count); 1712 if (useChecksum) checksumCalculator->addBuffer(count, __size_count); 1713 } 1714 stream->readback(shaders, __size_shaders); 1715 if (useChecksum) checksumCalculator->addBuffer(shaders, __size_shaders); 1716 if (useChecksum) { 1717 unsigned char *checksumBufPtr = NULL; 1718 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1719 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1720 stream->readback(checksumBufPtr, checksumSize); 1721 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1722 ALOGE("glGetAttachedShaders: GL communication error, please report this issue to b.android.com.\n"); 1723 abort(); 1724 } 1725 } 1726 } 1727 1728 int glGetAttribLocation_enc(void *self , GLuint program, const GLchar* name) 1729 { 1730 1731 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1732 IOStream *stream = ctx->m_stream; 1733 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1734 bool useChecksum = checksumCalculator->getVersion() > 0; 1735 1736 const unsigned int __size_name = (strlen(name) + 1); 1737 unsigned char *ptr; 1738 unsigned char *buf; 1739 const size_t sizeWithoutChecksum = 8 + 4 + __size_name + 1*4; 1740 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1741 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1742 buf = stream->alloc(totalSize); 1743 ptr = buf; 1744 int tmp = OP_glGetAttribLocation;memcpy(ptr, &tmp, 4); ptr += 4; 1745 memcpy(ptr, &totalSize, 4); ptr += 4; 1746 1747 memcpy(ptr, &program, 4); ptr += 4; 1748 *(unsigned int *)(ptr) = __size_name; ptr += 4; 1749 memcpy(ptr, name, __size_name);ptr += __size_name; 1750 1751 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1752 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1753 1754 1755 int retval; 1756 stream->readback(&retval, 4); 1757 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 1758 if (useChecksum) { 1759 unsigned char *checksumBufPtr = NULL; 1760 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1761 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1762 stream->readback(checksumBufPtr, checksumSize); 1763 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1764 ALOGE("glGetAttribLocation: GL communication error, please report this issue to b.android.com.\n"); 1765 abort(); 1766 } 1767 } 1768 return retval; 1769 } 1770 1771 void glGetBooleanv_enc(void *self , GLenum pname, GLboolean* params) 1772 { 1773 1774 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1775 IOStream *stream = ctx->m_stream; 1776 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1777 bool useChecksum = checksumCalculator->getVersion() > 0; 1778 1779 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLboolean)); 1780 unsigned char *ptr; 1781 unsigned char *buf; 1782 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 1783 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1784 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1785 buf = stream->alloc(totalSize); 1786 ptr = buf; 1787 int tmp = OP_glGetBooleanv;memcpy(ptr, &tmp, 4); ptr += 4; 1788 memcpy(ptr, &totalSize, 4); ptr += 4; 1789 1790 memcpy(ptr, &pname, 4); ptr += 4; 1791 *(unsigned int *)(ptr) = __size_params; ptr += 4; 1792 1793 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1794 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1795 1796 stream->readback(params, __size_params); 1797 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 1798 if (useChecksum) { 1799 unsigned char *checksumBufPtr = NULL; 1800 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1801 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1802 stream->readback(checksumBufPtr, checksumSize); 1803 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1804 ALOGE("glGetBooleanv: GL communication error, please report this issue to b.android.com.\n"); 1805 abort(); 1806 } 1807 } 1808 } 1809 1810 void glGetBufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params) 1811 { 1812 1813 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1814 IOStream *stream = ctx->m_stream; 1815 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1816 bool useChecksum = checksumCalculator->getVersion() > 0; 1817 1818 const unsigned int __size_params = (sizeof(GLint)); 1819 unsigned char *ptr; 1820 unsigned char *buf; 1821 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 1822 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1823 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1824 buf = stream->alloc(totalSize); 1825 ptr = buf; 1826 int tmp = OP_glGetBufferParameteriv;memcpy(ptr, &tmp, 4); ptr += 4; 1827 memcpy(ptr, &totalSize, 4); ptr += 4; 1828 1829 memcpy(ptr, &target, 4); ptr += 4; 1830 memcpy(ptr, &pname, 4); ptr += 4; 1831 *(unsigned int *)(ptr) = __size_params; ptr += 4; 1832 1833 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1834 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1835 1836 stream->readback(params, __size_params); 1837 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 1838 if (useChecksum) { 1839 unsigned char *checksumBufPtr = NULL; 1840 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1841 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1842 stream->readback(checksumBufPtr, checksumSize); 1843 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1844 ALOGE("glGetBufferParameteriv: GL communication error, please report this issue to b.android.com.\n"); 1845 abort(); 1846 } 1847 } 1848 } 1849 1850 GLenum glGetError_enc(void *self ) 1851 { 1852 1853 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1854 IOStream *stream = ctx->m_stream; 1855 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1856 bool useChecksum = checksumCalculator->getVersion() > 0; 1857 1858 unsigned char *ptr; 1859 unsigned char *buf; 1860 const size_t sizeWithoutChecksum = 8; 1861 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1862 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1863 buf = stream->alloc(totalSize); 1864 ptr = buf; 1865 int tmp = OP_glGetError;memcpy(ptr, &tmp, 4); ptr += 4; 1866 memcpy(ptr, &totalSize, 4); ptr += 4; 1867 1868 1869 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1870 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1871 1872 1873 GLenum retval; 1874 stream->readback(&retval, 4); 1875 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 1876 if (useChecksum) { 1877 unsigned char *checksumBufPtr = NULL; 1878 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1879 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1880 stream->readback(checksumBufPtr, checksumSize); 1881 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1882 ALOGE("glGetError: GL communication error, please report this issue to b.android.com.\n"); 1883 abort(); 1884 } 1885 } 1886 return retval; 1887 } 1888 1889 void glGetFloatv_enc(void *self , GLenum pname, GLfloat* params) 1890 { 1891 1892 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1893 IOStream *stream = ctx->m_stream; 1894 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1895 bool useChecksum = checksumCalculator->getVersion() > 0; 1896 1897 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLfloat)); 1898 unsigned char *ptr; 1899 unsigned char *buf; 1900 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*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_glGetFloatv;memcpy(ptr, &tmp, 4); ptr += 4; 1906 memcpy(ptr, &totalSize, 4); ptr += 4; 1907 1908 memcpy(ptr, &pname, 4); ptr += 4; 1909 *(unsigned int *)(ptr) = __size_params; ptr += 4; 1910 1911 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1912 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1913 1914 stream->readback(params, __size_params); 1915 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 1916 if (useChecksum) { 1917 unsigned char *checksumBufPtr = NULL; 1918 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1919 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1920 stream->readback(checksumBufPtr, checksumSize); 1921 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1922 ALOGE("glGetFloatv: GL communication error, please report this issue to b.android.com.\n"); 1923 abort(); 1924 } 1925 } 1926 } 1927 1928 void glGetFramebufferAttachmentParameteriv_enc(void *self , GLenum target, GLenum attachment, GLenum pname, GLint* params) 1929 { 1930 1931 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1932 IOStream *stream = ctx->m_stream; 1933 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1934 bool useChecksum = checksumCalculator->getVersion() > 0; 1935 1936 const unsigned int __size_params = (sizeof(GLint)); 1937 unsigned char *ptr; 1938 unsigned char *buf; 1939 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 0 + 1*4; 1940 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1941 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1942 buf = stream->alloc(totalSize); 1943 ptr = buf; 1944 int tmp = OP_glGetFramebufferAttachmentParameteriv;memcpy(ptr, &tmp, 4); ptr += 4; 1945 memcpy(ptr, &totalSize, 4); ptr += 4; 1946 1947 memcpy(ptr, &target, 4); ptr += 4; 1948 memcpy(ptr, &attachment, 4); ptr += 4; 1949 memcpy(ptr, &pname, 4); ptr += 4; 1950 *(unsigned int *)(ptr) = __size_params; ptr += 4; 1951 1952 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1953 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1954 1955 stream->readback(params, __size_params); 1956 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 1957 if (useChecksum) { 1958 unsigned char *checksumBufPtr = NULL; 1959 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1960 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 1961 stream->readback(checksumBufPtr, checksumSize); 1962 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 1963 ALOGE("glGetFramebufferAttachmentParameteriv: GL communication error, please report this issue to b.android.com.\n"); 1964 abort(); 1965 } 1966 } 1967 } 1968 1969 void glGetIntegerv_enc(void *self , GLenum pname, GLint* params) 1970 { 1971 1972 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 1973 IOStream *stream = ctx->m_stream; 1974 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 1975 bool useChecksum = checksumCalculator->getVersion() > 0; 1976 1977 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 1978 unsigned char *ptr; 1979 unsigned char *buf; 1980 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 1981 const size_t checksumSize = checksumCalculator->checksumByteSize(); 1982 const size_t totalSize = sizeWithoutChecksum + checksumSize; 1983 buf = stream->alloc(totalSize); 1984 ptr = buf; 1985 int tmp = OP_glGetIntegerv;memcpy(ptr, &tmp, 4); ptr += 4; 1986 memcpy(ptr, &totalSize, 4); ptr += 4; 1987 1988 memcpy(ptr, &pname, 4); ptr += 4; 1989 *(unsigned int *)(ptr) = __size_params; ptr += 4; 1990 1991 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 1992 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 1993 1994 stream->readback(params, __size_params); 1995 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 1996 if (useChecksum) { 1997 unsigned char *checksumBufPtr = NULL; 1998 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 1999 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2000 stream->readback(checksumBufPtr, checksumSize); 2001 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2002 ALOGE("glGetIntegerv: GL communication error, please report this issue to b.android.com.\n"); 2003 abort(); 2004 } 2005 } 2006 } 2007 2008 void glGetProgramiv_enc(void *self , GLuint program, GLenum pname, GLint* params) 2009 { 2010 2011 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2012 IOStream *stream = ctx->m_stream; 2013 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2014 bool useChecksum = checksumCalculator->getVersion() > 0; 2015 2016 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 2017 unsigned char *ptr; 2018 unsigned char *buf; 2019 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 2020 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2021 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2022 buf = stream->alloc(totalSize); 2023 ptr = buf; 2024 int tmp = OP_glGetProgramiv;memcpy(ptr, &tmp, 4); ptr += 4; 2025 memcpy(ptr, &totalSize, 4); ptr += 4; 2026 2027 memcpy(ptr, &program, 4); ptr += 4; 2028 memcpy(ptr, &pname, 4); ptr += 4; 2029 *(unsigned int *)(ptr) = __size_params; ptr += 4; 2030 2031 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2032 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2033 2034 stream->readback(params, __size_params); 2035 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 2036 if (useChecksum) { 2037 unsigned char *checksumBufPtr = NULL; 2038 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2039 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2040 stream->readback(checksumBufPtr, checksumSize); 2041 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2042 ALOGE("glGetProgramiv: GL communication error, please report this issue to b.android.com.\n"); 2043 abort(); 2044 } 2045 } 2046 } 2047 2048 void glGetProgramInfoLog_enc(void *self , GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog) 2049 { 2050 2051 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2052 IOStream *stream = ctx->m_stream; 2053 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2054 bool useChecksum = checksumCalculator->getVersion() > 0; 2055 2056 const unsigned int __size_length = ((length != NULL) ? sizeof(GLsizei) : 0); 2057 const unsigned int __size_infolog = bufsize; 2058 unsigned char *ptr; 2059 unsigned char *buf; 2060 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 0 + 2*4; 2061 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2062 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2063 buf = stream->alloc(totalSize); 2064 ptr = buf; 2065 int tmp = OP_glGetProgramInfoLog;memcpy(ptr, &tmp, 4); ptr += 4; 2066 memcpy(ptr, &totalSize, 4); ptr += 4; 2067 2068 memcpy(ptr, &program, 4); ptr += 4; 2069 memcpy(ptr, &bufsize, 4); ptr += 4; 2070 *(unsigned int *)(ptr) = __size_length; ptr += 4; 2071 *(unsigned int *)(ptr) = __size_infolog; ptr += 4; 2072 2073 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2074 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2075 2076 if (length != NULL) { 2077 stream->readback(length, __size_length); 2078 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 2079 } 2080 stream->readback(infolog, __size_infolog); 2081 if (useChecksum) checksumCalculator->addBuffer(infolog, __size_infolog); 2082 if (useChecksum) { 2083 unsigned char *checksumBufPtr = NULL; 2084 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2085 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2086 stream->readback(checksumBufPtr, checksumSize); 2087 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2088 ALOGE("glGetProgramInfoLog: GL communication error, please report this issue to b.android.com.\n"); 2089 abort(); 2090 } 2091 } 2092 } 2093 2094 void glGetRenderbufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params) 2095 { 2096 2097 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2098 IOStream *stream = ctx->m_stream; 2099 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2100 bool useChecksum = checksumCalculator->getVersion() > 0; 2101 2102 const unsigned int __size_params = sizeof(GLint); 2103 unsigned char *ptr; 2104 unsigned char *buf; 2105 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 2106 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2107 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2108 buf = stream->alloc(totalSize); 2109 ptr = buf; 2110 int tmp = OP_glGetRenderbufferParameteriv;memcpy(ptr, &tmp, 4); ptr += 4; 2111 memcpy(ptr, &totalSize, 4); ptr += 4; 2112 2113 memcpy(ptr, &target, 4); ptr += 4; 2114 memcpy(ptr, &pname, 4); ptr += 4; 2115 *(unsigned int *)(ptr) = __size_params; ptr += 4; 2116 2117 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2118 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2119 2120 stream->readback(params, __size_params); 2121 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 2122 if (useChecksum) { 2123 unsigned char *checksumBufPtr = NULL; 2124 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2125 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2126 stream->readback(checksumBufPtr, checksumSize); 2127 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2128 ALOGE("glGetRenderbufferParameteriv: GL communication error, please report this issue to b.android.com.\n"); 2129 abort(); 2130 } 2131 } 2132 } 2133 2134 void glGetShaderiv_enc(void *self , GLuint shader, GLenum pname, GLint* params) 2135 { 2136 2137 gl2_encoder_context_t *ctx = (gl2_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 + 0 + 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_glGetShaderiv;memcpy(ptr, &tmp, 4); ptr += 4; 2151 memcpy(ptr, &totalSize, 4); ptr += 4; 2152 2153 memcpy(ptr, &shader, 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 unsigned char *checksumBufPtr = NULL; 2164 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2165 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2166 stream->readback(checksumBufPtr, checksumSize); 2167 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2168 ALOGE("glGetShaderiv: GL communication error, please report this issue to b.android.com.\n"); 2169 abort(); 2170 } 2171 } 2172 } 2173 2174 void glGetShaderInfoLog_enc(void *self , GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog) 2175 { 2176 2177 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2178 IOStream *stream = ctx->m_stream; 2179 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2180 bool useChecksum = checksumCalculator->getVersion() > 0; 2181 2182 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0); 2183 const unsigned int __size_infolog = bufsize; 2184 unsigned char *ptr; 2185 unsigned char *buf; 2186 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 0 + 2*4; 2187 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2188 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2189 buf = stream->alloc(totalSize); 2190 ptr = buf; 2191 int tmp = OP_glGetShaderInfoLog;memcpy(ptr, &tmp, 4); ptr += 4; 2192 memcpy(ptr, &totalSize, 4); ptr += 4; 2193 2194 memcpy(ptr, &shader, 4); ptr += 4; 2195 memcpy(ptr, &bufsize, 4); ptr += 4; 2196 *(unsigned int *)(ptr) = __size_length; ptr += 4; 2197 *(unsigned int *)(ptr) = __size_infolog; ptr += 4; 2198 2199 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2200 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2201 2202 if (length != NULL) { 2203 stream->readback(length, __size_length); 2204 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 2205 } 2206 stream->readback(infolog, __size_infolog); 2207 if (useChecksum) checksumCalculator->addBuffer(infolog, __size_infolog); 2208 if (useChecksum) { 2209 unsigned char *checksumBufPtr = NULL; 2210 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2211 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2212 stream->readback(checksumBufPtr, checksumSize); 2213 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2214 ALOGE("glGetShaderInfoLog: GL communication error, please report this issue to b.android.com.\n"); 2215 abort(); 2216 } 2217 } 2218 } 2219 2220 void glGetShaderPrecisionFormat_enc(void *self , GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) 2221 { 2222 2223 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2224 IOStream *stream = ctx->m_stream; 2225 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2226 bool useChecksum = checksumCalculator->getVersion() > 0; 2227 2228 const unsigned int __size_range = (2 * sizeof(GLint)); 2229 const unsigned int __size_precision = (sizeof(GLint)); 2230 unsigned char *ptr; 2231 unsigned char *buf; 2232 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 0 + 2*4; 2233 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2234 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2235 buf = stream->alloc(totalSize); 2236 ptr = buf; 2237 int tmp = OP_glGetShaderPrecisionFormat;memcpy(ptr, &tmp, 4); ptr += 4; 2238 memcpy(ptr, &totalSize, 4); ptr += 4; 2239 2240 memcpy(ptr, &shadertype, 4); ptr += 4; 2241 memcpy(ptr, &precisiontype, 4); ptr += 4; 2242 *(unsigned int *)(ptr) = __size_range; ptr += 4; 2243 *(unsigned int *)(ptr) = __size_precision; ptr += 4; 2244 2245 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2246 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2247 2248 stream->readback(range, __size_range); 2249 if (useChecksum) checksumCalculator->addBuffer(range, __size_range); 2250 stream->readback(precision, __size_precision); 2251 if (useChecksum) checksumCalculator->addBuffer(precision, __size_precision); 2252 if (useChecksum) { 2253 unsigned char *checksumBufPtr = NULL; 2254 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2255 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2256 stream->readback(checksumBufPtr, checksumSize); 2257 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2258 ALOGE("glGetShaderPrecisionFormat: GL communication error, please report this issue to b.android.com.\n"); 2259 abort(); 2260 } 2261 } 2262 } 2263 2264 void glGetShaderSource_enc(void *self , GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source) 2265 { 2266 2267 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2268 IOStream *stream = ctx->m_stream; 2269 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2270 bool useChecksum = checksumCalculator->getVersion() > 0; 2271 2272 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0); 2273 const unsigned int __size_source = bufsize; 2274 unsigned char *ptr; 2275 unsigned char *buf; 2276 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 0 + 2*4; 2277 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2278 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2279 buf = stream->alloc(totalSize); 2280 ptr = buf; 2281 int tmp = OP_glGetShaderSource;memcpy(ptr, &tmp, 4); ptr += 4; 2282 memcpy(ptr, &totalSize, 4); ptr += 4; 2283 2284 memcpy(ptr, &shader, 4); ptr += 4; 2285 memcpy(ptr, &bufsize, 4); ptr += 4; 2286 *(unsigned int *)(ptr) = __size_length; ptr += 4; 2287 *(unsigned int *)(ptr) = __size_source; ptr += 4; 2288 2289 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2290 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2291 2292 if (length != NULL) { 2293 stream->readback(length, __size_length); 2294 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 2295 } 2296 stream->readback(source, __size_source); 2297 if (useChecksum) checksumCalculator->addBuffer(source, __size_source); 2298 if (useChecksum) { 2299 unsigned char *checksumBufPtr = NULL; 2300 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2301 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2302 stream->readback(checksumBufPtr, checksumSize); 2303 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2304 ALOGE("glGetShaderSource: GL communication error, please report this issue to b.android.com.\n"); 2305 abort(); 2306 } 2307 } 2308 } 2309 2310 void glGetTexParameterfv_enc(void *self , GLenum target, GLenum pname, GLfloat* params) 2311 { 2312 2313 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2314 IOStream *stream = ctx->m_stream; 2315 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2316 bool useChecksum = checksumCalculator->getVersion() > 0; 2317 2318 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLfloat)); 2319 unsigned char *ptr; 2320 unsigned char *buf; 2321 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 2322 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2323 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2324 buf = stream->alloc(totalSize); 2325 ptr = buf; 2326 int tmp = OP_glGetTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4; 2327 memcpy(ptr, &totalSize, 4); ptr += 4; 2328 2329 memcpy(ptr, &target, 4); ptr += 4; 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 unsigned char *checksumBufPtr = NULL; 2340 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2341 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2342 stream->readback(checksumBufPtr, checksumSize); 2343 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2344 ALOGE("glGetTexParameterfv: GL communication error, please report this issue to b.android.com.\n"); 2345 abort(); 2346 } 2347 } 2348 } 2349 2350 void glGetTexParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params) 2351 { 2352 2353 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2354 IOStream *stream = ctx->m_stream; 2355 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2356 bool useChecksum = checksumCalculator->getVersion() > 0; 2357 2358 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 2359 unsigned char *ptr; 2360 unsigned char *buf; 2361 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 2362 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2363 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2364 buf = stream->alloc(totalSize); 2365 ptr = buf; 2366 int tmp = OP_glGetTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4; 2367 memcpy(ptr, &totalSize, 4); ptr += 4; 2368 2369 memcpy(ptr, &target, 4); ptr += 4; 2370 memcpy(ptr, &pname, 4); ptr += 4; 2371 *(unsigned int *)(ptr) = __size_params; ptr += 4; 2372 2373 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2374 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2375 2376 stream->readback(params, __size_params); 2377 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 2378 if (useChecksum) { 2379 unsigned char *checksumBufPtr = NULL; 2380 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2381 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2382 stream->readback(checksumBufPtr, checksumSize); 2383 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2384 ALOGE("glGetTexParameteriv: GL communication error, please report this issue to b.android.com.\n"); 2385 abort(); 2386 } 2387 } 2388 } 2389 2390 void glGetUniformfv_enc(void *self , GLuint program, GLint location, GLfloat* params) 2391 { 2392 2393 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2394 IOStream *stream = ctx->m_stream; 2395 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2396 bool useChecksum = checksumCalculator->getVersion() > 0; 2397 2398 const unsigned int __size_params = glSizeof(glesv2_enc::uniformType(self, program, location)); 2399 unsigned char *ptr; 2400 unsigned char *buf; 2401 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 2402 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2403 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2404 buf = stream->alloc(totalSize); 2405 ptr = buf; 2406 int tmp = OP_glGetUniformfv;memcpy(ptr, &tmp, 4); ptr += 4; 2407 memcpy(ptr, &totalSize, 4); ptr += 4; 2408 2409 memcpy(ptr, &program, 4); ptr += 4; 2410 memcpy(ptr, &location, 4); ptr += 4; 2411 *(unsigned int *)(ptr) = __size_params; ptr += 4; 2412 2413 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2414 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2415 2416 stream->readback(params, __size_params); 2417 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 2418 if (useChecksum) { 2419 unsigned char *checksumBufPtr = NULL; 2420 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2421 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2422 stream->readback(checksumBufPtr, checksumSize); 2423 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2424 ALOGE("glGetUniformfv: GL communication error, please report this issue to b.android.com.\n"); 2425 abort(); 2426 } 2427 } 2428 } 2429 2430 void glGetUniformiv_enc(void *self , GLuint program, GLint location, GLint* params) 2431 { 2432 2433 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2434 IOStream *stream = ctx->m_stream; 2435 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2436 bool useChecksum = checksumCalculator->getVersion() > 0; 2437 2438 const unsigned int __size_params = glSizeof(glesv2_enc::uniformType(self, program, location)); 2439 unsigned char *ptr; 2440 unsigned char *buf; 2441 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 2442 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2443 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2444 buf = stream->alloc(totalSize); 2445 ptr = buf; 2446 int tmp = OP_glGetUniformiv;memcpy(ptr, &tmp, 4); ptr += 4; 2447 memcpy(ptr, &totalSize, 4); ptr += 4; 2448 2449 memcpy(ptr, &program, 4); ptr += 4; 2450 memcpy(ptr, &location, 4); ptr += 4; 2451 *(unsigned int *)(ptr) = __size_params; ptr += 4; 2452 2453 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2454 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2455 2456 stream->readback(params, __size_params); 2457 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 2458 if (useChecksum) { 2459 unsigned char *checksumBufPtr = NULL; 2460 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2461 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2462 stream->readback(checksumBufPtr, checksumSize); 2463 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2464 ALOGE("glGetUniformiv: GL communication error, please report this issue to b.android.com.\n"); 2465 abort(); 2466 } 2467 } 2468 } 2469 2470 int glGetUniformLocation_enc(void *self , GLuint program, const GLchar* name) 2471 { 2472 2473 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2474 IOStream *stream = ctx->m_stream; 2475 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2476 bool useChecksum = checksumCalculator->getVersion() > 0; 2477 2478 const unsigned int __size_name = (strlen(name) + 1); 2479 unsigned char *ptr; 2480 unsigned char *buf; 2481 const size_t sizeWithoutChecksum = 8 + 4 + __size_name + 1*4; 2482 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2483 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2484 buf = stream->alloc(totalSize); 2485 ptr = buf; 2486 int tmp = OP_glGetUniformLocation;memcpy(ptr, &tmp, 4); ptr += 4; 2487 memcpy(ptr, &totalSize, 4); ptr += 4; 2488 2489 memcpy(ptr, &program, 4); ptr += 4; 2490 *(unsigned int *)(ptr) = __size_name; ptr += 4; 2491 memcpy(ptr, name, __size_name);ptr += __size_name; 2492 2493 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2494 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2495 2496 2497 int retval; 2498 stream->readback(&retval, 4); 2499 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 2500 if (useChecksum) { 2501 unsigned char *checksumBufPtr = NULL; 2502 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2503 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2504 stream->readback(checksumBufPtr, checksumSize); 2505 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2506 ALOGE("glGetUniformLocation: GL communication error, please report this issue to b.android.com.\n"); 2507 abort(); 2508 } 2509 } 2510 return retval; 2511 } 2512 2513 void glGetVertexAttribfv_enc(void *self , GLuint index, GLenum pname, GLfloat* params) 2514 { 2515 2516 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2517 IOStream *stream = ctx->m_stream; 2518 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2519 bool useChecksum = checksumCalculator->getVersion() > 0; 2520 2521 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLfloat)); 2522 unsigned char *ptr; 2523 unsigned char *buf; 2524 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 2525 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2526 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2527 buf = stream->alloc(totalSize); 2528 ptr = buf; 2529 int tmp = OP_glGetVertexAttribfv;memcpy(ptr, &tmp, 4); ptr += 4; 2530 memcpy(ptr, &totalSize, 4); ptr += 4; 2531 2532 memcpy(ptr, &index, 4); ptr += 4; 2533 memcpy(ptr, &pname, 4); ptr += 4; 2534 *(unsigned int *)(ptr) = __size_params; ptr += 4; 2535 2536 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2537 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2538 2539 stream->readback(params, __size_params); 2540 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 2541 if (useChecksum) { 2542 unsigned char *checksumBufPtr = NULL; 2543 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2544 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2545 stream->readback(checksumBufPtr, checksumSize); 2546 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2547 ALOGE("glGetVertexAttribfv: GL communication error, please report this issue to b.android.com.\n"); 2548 abort(); 2549 } 2550 } 2551 } 2552 2553 void glGetVertexAttribiv_enc(void *self , GLuint index, GLenum pname, GLint* params) 2554 { 2555 2556 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2557 IOStream *stream = ctx->m_stream; 2558 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2559 bool useChecksum = checksumCalculator->getVersion() > 0; 2560 2561 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 2562 unsigned char *ptr; 2563 unsigned char *buf; 2564 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 2565 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2566 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2567 buf = stream->alloc(totalSize); 2568 ptr = buf; 2569 int tmp = OP_glGetVertexAttribiv;memcpy(ptr, &tmp, 4); ptr += 4; 2570 memcpy(ptr, &totalSize, 4); ptr += 4; 2571 2572 memcpy(ptr, &index, 4); ptr += 4; 2573 memcpy(ptr, &pname, 4); ptr += 4; 2574 *(unsigned int *)(ptr) = __size_params; ptr += 4; 2575 2576 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2577 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2578 2579 stream->readback(params, __size_params); 2580 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 2581 if (useChecksum) { 2582 unsigned char *checksumBufPtr = NULL; 2583 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2584 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2585 stream->readback(checksumBufPtr, checksumSize); 2586 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2587 ALOGE("glGetVertexAttribiv: GL communication error, please report this issue to b.android.com.\n"); 2588 abort(); 2589 } 2590 } 2591 } 2592 2593 void glHint_enc(void *self , GLenum target, GLenum mode) 2594 { 2595 2596 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2597 IOStream *stream = ctx->m_stream; 2598 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2599 bool useChecksum = checksumCalculator->getVersion() > 0; 2600 2601 unsigned char *ptr; 2602 unsigned char *buf; 2603 const size_t sizeWithoutChecksum = 8 + 4 + 4; 2604 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2605 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2606 buf = stream->alloc(totalSize); 2607 ptr = buf; 2608 int tmp = OP_glHint;memcpy(ptr, &tmp, 4); ptr += 4; 2609 memcpy(ptr, &totalSize, 4); ptr += 4; 2610 2611 memcpy(ptr, &target, 4); ptr += 4; 2612 memcpy(ptr, &mode, 4); ptr += 4; 2613 2614 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2615 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2616 2617 } 2618 2619 GLboolean glIsBuffer_enc(void *self , GLuint buffer) 2620 { 2621 2622 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2623 IOStream *stream = ctx->m_stream; 2624 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2625 bool useChecksum = checksumCalculator->getVersion() > 0; 2626 2627 unsigned char *ptr; 2628 unsigned char *buf; 2629 const size_t sizeWithoutChecksum = 8 + 4; 2630 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2631 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2632 buf = stream->alloc(totalSize); 2633 ptr = buf; 2634 int tmp = OP_glIsBuffer;memcpy(ptr, &tmp, 4); ptr += 4; 2635 memcpy(ptr, &totalSize, 4); ptr += 4; 2636 2637 memcpy(ptr, &buffer, 4); ptr += 4; 2638 2639 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2640 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2641 2642 2643 GLboolean retval; 2644 stream->readback(&retval, 1); 2645 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 2646 if (useChecksum) { 2647 unsigned char *checksumBufPtr = NULL; 2648 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2649 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2650 stream->readback(checksumBufPtr, checksumSize); 2651 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2652 ALOGE("glIsBuffer: GL communication error, please report this issue to b.android.com.\n"); 2653 abort(); 2654 } 2655 } 2656 return retval; 2657 } 2658 2659 GLboolean glIsEnabled_enc(void *self , GLenum cap) 2660 { 2661 2662 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2663 IOStream *stream = ctx->m_stream; 2664 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2665 bool useChecksum = checksumCalculator->getVersion() > 0; 2666 2667 unsigned char *ptr; 2668 unsigned char *buf; 2669 const size_t sizeWithoutChecksum = 8 + 4; 2670 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2671 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2672 buf = stream->alloc(totalSize); 2673 ptr = buf; 2674 int tmp = OP_glIsEnabled;memcpy(ptr, &tmp, 4); ptr += 4; 2675 memcpy(ptr, &totalSize, 4); ptr += 4; 2676 2677 memcpy(ptr, &cap, 4); ptr += 4; 2678 2679 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2680 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2681 2682 2683 GLboolean retval; 2684 stream->readback(&retval, 1); 2685 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 2686 if (useChecksum) { 2687 unsigned char *checksumBufPtr = NULL; 2688 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2689 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2690 stream->readback(checksumBufPtr, checksumSize); 2691 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2692 ALOGE("glIsEnabled: GL communication error, please report this issue to b.android.com.\n"); 2693 abort(); 2694 } 2695 } 2696 return retval; 2697 } 2698 2699 GLboolean glIsFramebuffer_enc(void *self , GLuint framebuffer) 2700 { 2701 2702 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2703 IOStream *stream = ctx->m_stream; 2704 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2705 bool useChecksum = checksumCalculator->getVersion() > 0; 2706 2707 unsigned char *ptr; 2708 unsigned char *buf; 2709 const size_t sizeWithoutChecksum = 8 + 4; 2710 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2711 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2712 buf = stream->alloc(totalSize); 2713 ptr = buf; 2714 int tmp = OP_glIsFramebuffer;memcpy(ptr, &tmp, 4); ptr += 4; 2715 memcpy(ptr, &totalSize, 4); ptr += 4; 2716 2717 memcpy(ptr, &framebuffer, 4); ptr += 4; 2718 2719 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2720 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2721 2722 2723 GLboolean retval; 2724 stream->readback(&retval, 1); 2725 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 2726 if (useChecksum) { 2727 unsigned char *checksumBufPtr = NULL; 2728 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2729 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2730 stream->readback(checksumBufPtr, checksumSize); 2731 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2732 ALOGE("glIsFramebuffer: GL communication error, please report this issue to b.android.com.\n"); 2733 abort(); 2734 } 2735 } 2736 return retval; 2737 } 2738 2739 GLboolean glIsProgram_enc(void *self , GLuint program) 2740 { 2741 2742 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2743 IOStream *stream = ctx->m_stream; 2744 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2745 bool useChecksum = checksumCalculator->getVersion() > 0; 2746 2747 unsigned char *ptr; 2748 unsigned char *buf; 2749 const size_t sizeWithoutChecksum = 8 + 4; 2750 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2751 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2752 buf = stream->alloc(totalSize); 2753 ptr = buf; 2754 int tmp = OP_glIsProgram;memcpy(ptr, &tmp, 4); ptr += 4; 2755 memcpy(ptr, &totalSize, 4); ptr += 4; 2756 2757 memcpy(ptr, &program, 4); ptr += 4; 2758 2759 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2760 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2761 2762 2763 GLboolean retval; 2764 stream->readback(&retval, 1); 2765 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 2766 if (useChecksum) { 2767 unsigned char *checksumBufPtr = NULL; 2768 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2769 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2770 stream->readback(checksumBufPtr, checksumSize); 2771 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2772 ALOGE("glIsProgram: GL communication error, please report this issue to b.android.com.\n"); 2773 abort(); 2774 } 2775 } 2776 return retval; 2777 } 2778 2779 GLboolean glIsRenderbuffer_enc(void *self , GLuint renderbuffer) 2780 { 2781 2782 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2783 IOStream *stream = ctx->m_stream; 2784 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2785 bool useChecksum = checksumCalculator->getVersion() > 0; 2786 2787 unsigned char *ptr; 2788 unsigned char *buf; 2789 const size_t sizeWithoutChecksum = 8 + 4; 2790 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2791 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2792 buf = stream->alloc(totalSize); 2793 ptr = buf; 2794 int tmp = OP_glIsRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4; 2795 memcpy(ptr, &totalSize, 4); ptr += 4; 2796 2797 memcpy(ptr, &renderbuffer, 4); ptr += 4; 2798 2799 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2800 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2801 2802 2803 GLboolean retval; 2804 stream->readback(&retval, 1); 2805 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 2806 if (useChecksum) { 2807 unsigned char *checksumBufPtr = NULL; 2808 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2809 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2810 stream->readback(checksumBufPtr, checksumSize); 2811 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2812 ALOGE("glIsRenderbuffer: GL communication error, please report this issue to b.android.com.\n"); 2813 abort(); 2814 } 2815 } 2816 return retval; 2817 } 2818 2819 GLboolean glIsShader_enc(void *self , GLuint shader) 2820 { 2821 2822 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2823 IOStream *stream = ctx->m_stream; 2824 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2825 bool useChecksum = checksumCalculator->getVersion() > 0; 2826 2827 unsigned char *ptr; 2828 unsigned char *buf; 2829 const size_t sizeWithoutChecksum = 8 + 4; 2830 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2831 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2832 buf = stream->alloc(totalSize); 2833 ptr = buf; 2834 int tmp = OP_glIsShader;memcpy(ptr, &tmp, 4); ptr += 4; 2835 memcpy(ptr, &totalSize, 4); ptr += 4; 2836 2837 memcpy(ptr, &shader, 4); ptr += 4; 2838 2839 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2840 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2841 2842 2843 GLboolean retval; 2844 stream->readback(&retval, 1); 2845 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 2846 if (useChecksum) { 2847 unsigned char *checksumBufPtr = NULL; 2848 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2849 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2850 stream->readback(checksumBufPtr, checksumSize); 2851 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2852 ALOGE("glIsShader: GL communication error, please report this issue to b.android.com.\n"); 2853 abort(); 2854 } 2855 } 2856 return retval; 2857 } 2858 2859 GLboolean glIsTexture_enc(void *self , GLuint texture) 2860 { 2861 2862 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2863 IOStream *stream = ctx->m_stream; 2864 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2865 bool useChecksum = checksumCalculator->getVersion() > 0; 2866 2867 unsigned char *ptr; 2868 unsigned char *buf; 2869 const size_t sizeWithoutChecksum = 8 + 4; 2870 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2871 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2872 buf = stream->alloc(totalSize); 2873 ptr = buf; 2874 int tmp = OP_glIsTexture;memcpy(ptr, &tmp, 4); ptr += 4; 2875 memcpy(ptr, &totalSize, 4); ptr += 4; 2876 2877 memcpy(ptr, &texture, 4); ptr += 4; 2878 2879 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2880 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2881 2882 2883 GLboolean retval; 2884 stream->readback(&retval, 1); 2885 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 2886 if (useChecksum) { 2887 unsigned char *checksumBufPtr = NULL; 2888 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 2889 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 2890 stream->readback(checksumBufPtr, checksumSize); 2891 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 2892 ALOGE("glIsTexture: GL communication error, please report this issue to b.android.com.\n"); 2893 abort(); 2894 } 2895 } 2896 return retval; 2897 } 2898 2899 void glLineWidth_enc(void *self , GLfloat width) 2900 { 2901 2902 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2903 IOStream *stream = ctx->m_stream; 2904 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2905 bool useChecksum = checksumCalculator->getVersion() > 0; 2906 2907 unsigned char *ptr; 2908 unsigned char *buf; 2909 const size_t sizeWithoutChecksum = 8 + 4; 2910 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2911 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2912 buf = stream->alloc(totalSize); 2913 ptr = buf; 2914 int tmp = OP_glLineWidth;memcpy(ptr, &tmp, 4); ptr += 4; 2915 memcpy(ptr, &totalSize, 4); ptr += 4; 2916 2917 memcpy(ptr, &width, 4); ptr += 4; 2918 2919 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2920 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2921 2922 } 2923 2924 void glLinkProgram_enc(void *self , GLuint program) 2925 { 2926 2927 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2928 IOStream *stream = ctx->m_stream; 2929 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2930 bool useChecksum = checksumCalculator->getVersion() > 0; 2931 2932 unsigned char *ptr; 2933 unsigned char *buf; 2934 const size_t sizeWithoutChecksum = 8 + 4; 2935 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2936 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2937 buf = stream->alloc(totalSize); 2938 ptr = buf; 2939 int tmp = OP_glLinkProgram;memcpy(ptr, &tmp, 4); ptr += 4; 2940 memcpy(ptr, &totalSize, 4); ptr += 4; 2941 2942 memcpy(ptr, &program, 4); ptr += 4; 2943 2944 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2945 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2946 2947 } 2948 2949 void glPixelStorei_enc(void *self , GLenum pname, GLint param) 2950 { 2951 2952 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2953 IOStream *stream = ctx->m_stream; 2954 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2955 bool useChecksum = checksumCalculator->getVersion() > 0; 2956 2957 unsigned char *ptr; 2958 unsigned char *buf; 2959 const size_t sizeWithoutChecksum = 8 + 4 + 4; 2960 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2961 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2962 buf = stream->alloc(totalSize); 2963 ptr = buf; 2964 int tmp = OP_glPixelStorei;memcpy(ptr, &tmp, 4); ptr += 4; 2965 memcpy(ptr, &totalSize, 4); ptr += 4; 2966 2967 memcpy(ptr, &pname, 4); ptr += 4; 2968 memcpy(ptr, ¶m, 4); ptr += 4; 2969 2970 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2971 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2972 2973 } 2974 2975 void glPolygonOffset_enc(void *self , GLfloat factor, GLfloat units) 2976 { 2977 2978 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 2979 IOStream *stream = ctx->m_stream; 2980 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 2981 bool useChecksum = checksumCalculator->getVersion() > 0; 2982 2983 unsigned char *ptr; 2984 unsigned char *buf; 2985 const size_t sizeWithoutChecksum = 8 + 4 + 4; 2986 const size_t checksumSize = checksumCalculator->checksumByteSize(); 2987 const size_t totalSize = sizeWithoutChecksum + checksumSize; 2988 buf = stream->alloc(totalSize); 2989 ptr = buf; 2990 int tmp = OP_glPolygonOffset;memcpy(ptr, &tmp, 4); ptr += 4; 2991 memcpy(ptr, &totalSize, 4); ptr += 4; 2992 2993 memcpy(ptr, &factor, 4); ptr += 4; 2994 memcpy(ptr, &units, 4); ptr += 4; 2995 2996 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 2997 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 2998 2999 } 3000 3001 void glReadPixels_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels) 3002 { 3003 3004 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3005 IOStream *stream = ctx->m_stream; 3006 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3007 bool useChecksum = checksumCalculator->getVersion() > 0; 3008 3009 const unsigned int __size_pixels = glesv2_enc::pixelDataSize(self, width, height, format, type, 1); 3010 unsigned char *ptr; 3011 unsigned char *buf; 3012 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + 1*4; 3013 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3014 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3015 buf = stream->alloc(totalSize); 3016 ptr = buf; 3017 int tmp = OP_glReadPixels;memcpy(ptr, &tmp, 4); ptr += 4; 3018 memcpy(ptr, &totalSize, 4); ptr += 4; 3019 3020 memcpy(ptr, &x, 4); ptr += 4; 3021 memcpy(ptr, &y, 4); ptr += 4; 3022 memcpy(ptr, &width, 4); ptr += 4; 3023 memcpy(ptr, &height, 4); ptr += 4; 3024 memcpy(ptr, &format, 4); ptr += 4; 3025 memcpy(ptr, &type, 4); ptr += 4; 3026 *(unsigned int *)(ptr) = __size_pixels; ptr += 4; 3027 3028 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3029 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3030 3031 stream->readback(pixels, __size_pixels); 3032 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels); 3033 if (useChecksum) { 3034 unsigned char *checksumBufPtr = NULL; 3035 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 3036 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 3037 stream->readback(checksumBufPtr, checksumSize); 3038 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 3039 ALOGE("glReadPixels: GL communication error, please report this issue to b.android.com.\n"); 3040 abort(); 3041 } 3042 } 3043 } 3044 3045 void glReleaseShaderCompiler_enc(void *self ) 3046 { 3047 3048 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3049 IOStream *stream = ctx->m_stream; 3050 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3051 bool useChecksum = checksumCalculator->getVersion() > 0; 3052 3053 unsigned char *ptr; 3054 unsigned char *buf; 3055 const size_t sizeWithoutChecksum = 8; 3056 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3057 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3058 buf = stream->alloc(totalSize); 3059 ptr = buf; 3060 int tmp = OP_glReleaseShaderCompiler;memcpy(ptr, &tmp, 4); ptr += 4; 3061 memcpy(ptr, &totalSize, 4); ptr += 4; 3062 3063 3064 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3065 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3066 3067 } 3068 3069 void glRenderbufferStorage_enc(void *self , GLenum target, GLenum internalformat, GLsizei width, GLsizei height) 3070 { 3071 3072 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3073 IOStream *stream = ctx->m_stream; 3074 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3075 bool useChecksum = checksumCalculator->getVersion() > 0; 3076 3077 unsigned char *ptr; 3078 unsigned char *buf; 3079 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 3080 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3081 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3082 buf = stream->alloc(totalSize); 3083 ptr = buf; 3084 int tmp = OP_glRenderbufferStorage;memcpy(ptr, &tmp, 4); ptr += 4; 3085 memcpy(ptr, &totalSize, 4); ptr += 4; 3086 3087 memcpy(ptr, &target, 4); ptr += 4; 3088 memcpy(ptr, &internalformat, 4); ptr += 4; 3089 memcpy(ptr, &width, 4); ptr += 4; 3090 memcpy(ptr, &height, 4); ptr += 4; 3091 3092 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3093 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3094 3095 } 3096 3097 void glSampleCoverage_enc(void *self , GLclampf value, GLboolean invert) 3098 { 3099 3100 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3101 IOStream *stream = ctx->m_stream; 3102 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3103 bool useChecksum = checksumCalculator->getVersion() > 0; 3104 3105 unsigned char *ptr; 3106 unsigned char *buf; 3107 const size_t sizeWithoutChecksum = 8 + 4 + 1; 3108 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3109 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3110 buf = stream->alloc(totalSize); 3111 ptr = buf; 3112 int tmp = OP_glSampleCoverage;memcpy(ptr, &tmp, 4); ptr += 4; 3113 memcpy(ptr, &totalSize, 4); ptr += 4; 3114 3115 memcpy(ptr, &value, 4); ptr += 4; 3116 memcpy(ptr, &invert, 1); ptr += 1; 3117 3118 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3119 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3120 3121 } 3122 3123 void glScissor_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height) 3124 { 3125 3126 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3127 IOStream *stream = ctx->m_stream; 3128 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3129 bool useChecksum = checksumCalculator->getVersion() > 0; 3130 3131 unsigned char *ptr; 3132 unsigned char *buf; 3133 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 3134 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3135 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3136 buf = stream->alloc(totalSize); 3137 ptr = buf; 3138 int tmp = OP_glScissor;memcpy(ptr, &tmp, 4); ptr += 4; 3139 memcpy(ptr, &totalSize, 4); ptr += 4; 3140 3141 memcpy(ptr, &x, 4); ptr += 4; 3142 memcpy(ptr, &y, 4); ptr += 4; 3143 memcpy(ptr, &width, 4); ptr += 4; 3144 memcpy(ptr, &height, 4); ptr += 4; 3145 3146 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3147 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3148 3149 } 3150 3151 void glStencilFunc_enc(void *self , GLenum func, GLint ref, GLuint mask) 3152 { 3153 3154 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3155 IOStream *stream = ctx->m_stream; 3156 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3157 bool useChecksum = checksumCalculator->getVersion() > 0; 3158 3159 unsigned char *ptr; 3160 unsigned char *buf; 3161 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 3162 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3163 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3164 buf = stream->alloc(totalSize); 3165 ptr = buf; 3166 int tmp = OP_glStencilFunc;memcpy(ptr, &tmp, 4); ptr += 4; 3167 memcpy(ptr, &totalSize, 4); ptr += 4; 3168 3169 memcpy(ptr, &func, 4); ptr += 4; 3170 memcpy(ptr, &ref, 4); ptr += 4; 3171 memcpy(ptr, &mask, 4); ptr += 4; 3172 3173 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3174 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3175 3176 } 3177 3178 void glStencilFuncSeparate_enc(void *self , GLenum face, GLenum func, GLint ref, GLuint mask) 3179 { 3180 3181 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3182 IOStream *stream = ctx->m_stream; 3183 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3184 bool useChecksum = checksumCalculator->getVersion() > 0; 3185 3186 unsigned char *ptr; 3187 unsigned char *buf; 3188 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 3189 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3190 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3191 buf = stream->alloc(totalSize); 3192 ptr = buf; 3193 int tmp = OP_glStencilFuncSeparate;memcpy(ptr, &tmp, 4); ptr += 4; 3194 memcpy(ptr, &totalSize, 4); ptr += 4; 3195 3196 memcpy(ptr, &face, 4); ptr += 4; 3197 memcpy(ptr, &func, 4); ptr += 4; 3198 memcpy(ptr, &ref, 4); ptr += 4; 3199 memcpy(ptr, &mask, 4); ptr += 4; 3200 3201 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3202 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3203 3204 } 3205 3206 void glStencilMask_enc(void *self , GLuint mask) 3207 { 3208 3209 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3210 IOStream *stream = ctx->m_stream; 3211 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3212 bool useChecksum = checksumCalculator->getVersion() > 0; 3213 3214 unsigned char *ptr; 3215 unsigned char *buf; 3216 const size_t sizeWithoutChecksum = 8 + 4; 3217 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3218 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3219 buf = stream->alloc(totalSize); 3220 ptr = buf; 3221 int tmp = OP_glStencilMask;memcpy(ptr, &tmp, 4); ptr += 4; 3222 memcpy(ptr, &totalSize, 4); ptr += 4; 3223 3224 memcpy(ptr, &mask, 4); ptr += 4; 3225 3226 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3227 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3228 3229 } 3230 3231 void glStencilMaskSeparate_enc(void *self , GLenum face, GLuint mask) 3232 { 3233 3234 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3235 IOStream *stream = ctx->m_stream; 3236 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3237 bool useChecksum = checksumCalculator->getVersion() > 0; 3238 3239 unsigned char *ptr; 3240 unsigned char *buf; 3241 const size_t sizeWithoutChecksum = 8 + 4 + 4; 3242 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3243 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3244 buf = stream->alloc(totalSize); 3245 ptr = buf; 3246 int tmp = OP_glStencilMaskSeparate;memcpy(ptr, &tmp, 4); ptr += 4; 3247 memcpy(ptr, &totalSize, 4); ptr += 4; 3248 3249 memcpy(ptr, &face, 4); ptr += 4; 3250 memcpy(ptr, &mask, 4); ptr += 4; 3251 3252 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3253 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3254 3255 } 3256 3257 void glStencilOp_enc(void *self , GLenum fail, GLenum zfail, GLenum zpass) 3258 { 3259 3260 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3261 IOStream *stream = ctx->m_stream; 3262 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3263 bool useChecksum = checksumCalculator->getVersion() > 0; 3264 3265 unsigned char *ptr; 3266 unsigned char *buf; 3267 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 3268 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3269 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3270 buf = stream->alloc(totalSize); 3271 ptr = buf; 3272 int tmp = OP_glStencilOp;memcpy(ptr, &tmp, 4); ptr += 4; 3273 memcpy(ptr, &totalSize, 4); ptr += 4; 3274 3275 memcpy(ptr, &fail, 4); ptr += 4; 3276 memcpy(ptr, &zfail, 4); ptr += 4; 3277 memcpy(ptr, &zpass, 4); ptr += 4; 3278 3279 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3280 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3281 3282 } 3283 3284 void glStencilOpSeparate_enc(void *self , GLenum face, GLenum fail, GLenum zfail, GLenum zpass) 3285 { 3286 3287 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3288 IOStream *stream = ctx->m_stream; 3289 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3290 bool useChecksum = checksumCalculator->getVersion() > 0; 3291 3292 unsigned char *ptr; 3293 unsigned char *buf; 3294 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 3295 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3296 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3297 buf = stream->alloc(totalSize); 3298 ptr = buf; 3299 int tmp = OP_glStencilOpSeparate;memcpy(ptr, &tmp, 4); ptr += 4; 3300 memcpy(ptr, &totalSize, 4); ptr += 4; 3301 3302 memcpy(ptr, &face, 4); ptr += 4; 3303 memcpy(ptr, &fail, 4); ptr += 4; 3304 memcpy(ptr, &zfail, 4); ptr += 4; 3305 memcpy(ptr, &zpass, 4); ptr += 4; 3306 3307 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3308 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3309 3310 } 3311 3312 void glTexImage2D_enc(void *self , GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels) 3313 { 3314 3315 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3316 IOStream *stream = ctx->m_stream; 3317 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3318 bool useChecksum = checksumCalculator->getVersion() > 0; 3319 3320 const unsigned int __size_pixels = ((pixels != NULL) ? glesv2_enc::pixelDataSize(self, width, height, format, type, 0) : 0); 3321 unsigned char *ptr; 3322 unsigned char *buf; 3323 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4; 3324 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3325 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3326 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 3327 ptr = buf; 3328 int tmp = OP_glTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4; 3329 memcpy(ptr, &totalSize, 4); ptr += 4; 3330 3331 memcpy(ptr, &target, 4); ptr += 4; 3332 memcpy(ptr, &level, 4); ptr += 4; 3333 memcpy(ptr, &internalformat, 4); ptr += 4; 3334 memcpy(ptr, &width, 4); ptr += 4; 3335 memcpy(ptr, &height, 4); ptr += 4; 3336 memcpy(ptr, &border, 4); ptr += 4; 3337 memcpy(ptr, &format, 4); ptr += 4; 3338 memcpy(ptr, &type, 4); ptr += 4; 3339 3340 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3341 stream->flush(); 3342 stream->writeFully(&__size_pixels,4); 3343 if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4); 3344 if (pixels != NULL) { 3345 stream->writeFully(pixels, __size_pixels); 3346 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels); 3347 } 3348 buf = stream->alloc(checksumSize); 3349 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 3350 3351 } 3352 3353 void glTexParameterf_enc(void *self , GLenum target, GLenum pname, GLfloat param) 3354 { 3355 3356 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3357 IOStream *stream = ctx->m_stream; 3358 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3359 bool useChecksum = checksumCalculator->getVersion() > 0; 3360 3361 unsigned char *ptr; 3362 unsigned char *buf; 3363 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 3364 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3365 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3366 buf = stream->alloc(totalSize); 3367 ptr = buf; 3368 int tmp = OP_glTexParameterf;memcpy(ptr, &tmp, 4); ptr += 4; 3369 memcpy(ptr, &totalSize, 4); ptr += 4; 3370 3371 memcpy(ptr, &target, 4); ptr += 4; 3372 memcpy(ptr, &pname, 4); ptr += 4; 3373 memcpy(ptr, ¶m, 4); ptr += 4; 3374 3375 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3376 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3377 3378 } 3379 3380 void glTexParameterfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params) 3381 { 3382 3383 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3384 IOStream *stream = ctx->m_stream; 3385 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3386 bool useChecksum = checksumCalculator->getVersion() > 0; 3387 3388 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLfloat)); 3389 unsigned char *ptr; 3390 unsigned char *buf; 3391 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4; 3392 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3393 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3394 buf = stream->alloc(totalSize); 3395 ptr = buf; 3396 int tmp = OP_glTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4; 3397 memcpy(ptr, &totalSize, 4); ptr += 4; 3398 3399 memcpy(ptr, &target, 4); ptr += 4; 3400 memcpy(ptr, &pname, 4); ptr += 4; 3401 *(unsigned int *)(ptr) = __size_params; ptr += 4; 3402 memcpy(ptr, params, __size_params);ptr += __size_params; 3403 3404 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3405 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3406 3407 } 3408 3409 void glTexParameteri_enc(void *self , GLenum target, GLenum pname, GLint param) 3410 { 3411 3412 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3413 IOStream *stream = ctx->m_stream; 3414 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3415 bool useChecksum = checksumCalculator->getVersion() > 0; 3416 3417 unsigned char *ptr; 3418 unsigned char *buf; 3419 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 3420 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3421 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3422 buf = stream->alloc(totalSize); 3423 ptr = buf; 3424 int tmp = OP_glTexParameteri;memcpy(ptr, &tmp, 4); ptr += 4; 3425 memcpy(ptr, &totalSize, 4); ptr += 4; 3426 3427 memcpy(ptr, &target, 4); ptr += 4; 3428 memcpy(ptr, &pname, 4); ptr += 4; 3429 memcpy(ptr, ¶m, 4); ptr += 4; 3430 3431 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3432 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3433 3434 } 3435 3436 void glTexParameteriv_enc(void *self , GLenum target, GLenum pname, const GLint* params) 3437 { 3438 3439 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3440 IOStream *stream = ctx->m_stream; 3441 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3442 bool useChecksum = checksumCalculator->getVersion() > 0; 3443 3444 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 3445 unsigned char *ptr; 3446 unsigned char *buf; 3447 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4; 3448 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3449 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3450 buf = stream->alloc(totalSize); 3451 ptr = buf; 3452 int tmp = OP_glTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4; 3453 memcpy(ptr, &totalSize, 4); ptr += 4; 3454 3455 memcpy(ptr, &target, 4); ptr += 4; 3456 memcpy(ptr, &pname, 4); ptr += 4; 3457 *(unsigned int *)(ptr) = __size_params; ptr += 4; 3458 memcpy(ptr, params, __size_params);ptr += __size_params; 3459 3460 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3461 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3462 3463 } 3464 3465 void glTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels) 3466 { 3467 3468 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3469 IOStream *stream = ctx->m_stream; 3470 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3471 bool useChecksum = checksumCalculator->getVersion() > 0; 3472 3473 const unsigned int __size_pixels = ((pixels != NULL) ? glesv2_enc::pixelDataSize(self, width, height, format, type, 0) : 0); 3474 unsigned char *ptr; 3475 unsigned char *buf; 3476 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4; 3477 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3478 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3479 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 3480 ptr = buf; 3481 int tmp = OP_glTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4; 3482 memcpy(ptr, &totalSize, 4); ptr += 4; 3483 3484 memcpy(ptr, &target, 4); ptr += 4; 3485 memcpy(ptr, &level, 4); ptr += 4; 3486 memcpy(ptr, &xoffset, 4); ptr += 4; 3487 memcpy(ptr, &yoffset, 4); ptr += 4; 3488 memcpy(ptr, &width, 4); ptr += 4; 3489 memcpy(ptr, &height, 4); ptr += 4; 3490 memcpy(ptr, &format, 4); ptr += 4; 3491 memcpy(ptr, &type, 4); ptr += 4; 3492 3493 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3494 stream->flush(); 3495 stream->writeFully(&__size_pixels,4); 3496 if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4); 3497 if (pixels != NULL) { 3498 stream->writeFully(pixels, __size_pixels); 3499 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels); 3500 } 3501 buf = stream->alloc(checksumSize); 3502 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 3503 3504 } 3505 3506 void glUniform1f_enc(void *self , GLint location, GLfloat x) 3507 { 3508 3509 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3510 IOStream *stream = ctx->m_stream; 3511 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3512 bool useChecksum = checksumCalculator->getVersion() > 0; 3513 3514 unsigned char *ptr; 3515 unsigned char *buf; 3516 const size_t sizeWithoutChecksum = 8 + 4 + 4; 3517 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3518 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3519 buf = stream->alloc(totalSize); 3520 ptr = buf; 3521 int tmp = OP_glUniform1f;memcpy(ptr, &tmp, 4); ptr += 4; 3522 memcpy(ptr, &totalSize, 4); ptr += 4; 3523 3524 memcpy(ptr, &location, 4); ptr += 4; 3525 memcpy(ptr, &x, 4); ptr += 4; 3526 3527 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3528 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3529 3530 } 3531 3532 void glUniform1fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v) 3533 { 3534 3535 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3536 IOStream *stream = ctx->m_stream; 3537 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3538 bool useChecksum = checksumCalculator->getVersion() > 0; 3539 3540 const unsigned int __size_v = (count * sizeof(GLfloat)); 3541 unsigned char *ptr; 3542 unsigned char *buf; 3543 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4; 3544 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3545 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3546 buf = stream->alloc(totalSize); 3547 ptr = buf; 3548 int tmp = OP_glUniform1fv;memcpy(ptr, &tmp, 4); ptr += 4; 3549 memcpy(ptr, &totalSize, 4); ptr += 4; 3550 3551 memcpy(ptr, &location, 4); ptr += 4; 3552 memcpy(ptr, &count, 4); ptr += 4; 3553 *(unsigned int *)(ptr) = __size_v; ptr += 4; 3554 memcpy(ptr, v, __size_v);ptr += __size_v; 3555 3556 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3557 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3558 3559 } 3560 3561 void glUniform1i_enc(void *self , GLint location, GLint x) 3562 { 3563 3564 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3565 IOStream *stream = ctx->m_stream; 3566 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3567 bool useChecksum = checksumCalculator->getVersion() > 0; 3568 3569 unsigned char *ptr; 3570 unsigned char *buf; 3571 const size_t sizeWithoutChecksum = 8 + 4 + 4; 3572 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3573 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3574 buf = stream->alloc(totalSize); 3575 ptr = buf; 3576 int tmp = OP_glUniform1i;memcpy(ptr, &tmp, 4); ptr += 4; 3577 memcpy(ptr, &totalSize, 4); ptr += 4; 3578 3579 memcpy(ptr, &location, 4); ptr += 4; 3580 memcpy(ptr, &x, 4); ptr += 4; 3581 3582 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3583 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3584 3585 } 3586 3587 void glUniform1iv_enc(void *self , GLint location, GLsizei count, const GLint* v) 3588 { 3589 3590 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3591 IOStream *stream = ctx->m_stream; 3592 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3593 bool useChecksum = checksumCalculator->getVersion() > 0; 3594 3595 const unsigned int __size_v = (count * sizeof(GLint)); 3596 unsigned char *ptr; 3597 unsigned char *buf; 3598 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4; 3599 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3600 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3601 buf = stream->alloc(totalSize); 3602 ptr = buf; 3603 int tmp = OP_glUniform1iv;memcpy(ptr, &tmp, 4); ptr += 4; 3604 memcpy(ptr, &totalSize, 4); ptr += 4; 3605 3606 memcpy(ptr, &location, 4); ptr += 4; 3607 memcpy(ptr, &count, 4); ptr += 4; 3608 *(unsigned int *)(ptr) = __size_v; ptr += 4; 3609 memcpy(ptr, v, __size_v);ptr += __size_v; 3610 3611 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3612 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3613 3614 } 3615 3616 void glUniform2f_enc(void *self , GLint location, GLfloat x, GLfloat y) 3617 { 3618 3619 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3620 IOStream *stream = ctx->m_stream; 3621 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3622 bool useChecksum = checksumCalculator->getVersion() > 0; 3623 3624 unsigned char *ptr; 3625 unsigned char *buf; 3626 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 3627 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3628 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3629 buf = stream->alloc(totalSize); 3630 ptr = buf; 3631 int tmp = OP_glUniform2f;memcpy(ptr, &tmp, 4); ptr += 4; 3632 memcpy(ptr, &totalSize, 4); ptr += 4; 3633 3634 memcpy(ptr, &location, 4); ptr += 4; 3635 memcpy(ptr, &x, 4); ptr += 4; 3636 memcpy(ptr, &y, 4); ptr += 4; 3637 3638 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3639 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3640 3641 } 3642 3643 void glUniform2fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v) 3644 { 3645 3646 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3647 IOStream *stream = ctx->m_stream; 3648 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3649 bool useChecksum = checksumCalculator->getVersion() > 0; 3650 3651 const unsigned int __size_v = (count * 2 * sizeof(GLfloat)); 3652 unsigned char *ptr; 3653 unsigned char *buf; 3654 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4; 3655 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3656 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3657 buf = stream->alloc(totalSize); 3658 ptr = buf; 3659 int tmp = OP_glUniform2fv;memcpy(ptr, &tmp, 4); ptr += 4; 3660 memcpy(ptr, &totalSize, 4); ptr += 4; 3661 3662 memcpy(ptr, &location, 4); ptr += 4; 3663 memcpy(ptr, &count, 4); ptr += 4; 3664 *(unsigned int *)(ptr) = __size_v; ptr += 4; 3665 memcpy(ptr, v, __size_v);ptr += __size_v; 3666 3667 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3668 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3669 3670 } 3671 3672 void glUniform2i_enc(void *self , GLint location, GLint x, GLint y) 3673 { 3674 3675 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3676 IOStream *stream = ctx->m_stream; 3677 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3678 bool useChecksum = checksumCalculator->getVersion() > 0; 3679 3680 unsigned char *ptr; 3681 unsigned char *buf; 3682 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 3683 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3684 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3685 buf = stream->alloc(totalSize); 3686 ptr = buf; 3687 int tmp = OP_glUniform2i;memcpy(ptr, &tmp, 4); ptr += 4; 3688 memcpy(ptr, &totalSize, 4); ptr += 4; 3689 3690 memcpy(ptr, &location, 4); ptr += 4; 3691 memcpy(ptr, &x, 4); ptr += 4; 3692 memcpy(ptr, &y, 4); ptr += 4; 3693 3694 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3695 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3696 3697 } 3698 3699 void glUniform2iv_enc(void *self , GLint location, GLsizei count, const GLint* v) 3700 { 3701 3702 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3703 IOStream *stream = ctx->m_stream; 3704 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3705 bool useChecksum = checksumCalculator->getVersion() > 0; 3706 3707 const unsigned int __size_v = (count * 2 * sizeof(GLint)); 3708 unsigned char *ptr; 3709 unsigned char *buf; 3710 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4; 3711 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3712 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3713 buf = stream->alloc(totalSize); 3714 ptr = buf; 3715 int tmp = OP_glUniform2iv;memcpy(ptr, &tmp, 4); ptr += 4; 3716 memcpy(ptr, &totalSize, 4); ptr += 4; 3717 3718 memcpy(ptr, &location, 4); ptr += 4; 3719 memcpy(ptr, &count, 4); ptr += 4; 3720 *(unsigned int *)(ptr) = __size_v; ptr += 4; 3721 memcpy(ptr, v, __size_v);ptr += __size_v; 3722 3723 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3724 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3725 3726 } 3727 3728 void glUniform3f_enc(void *self , GLint location, GLfloat x, GLfloat y, GLfloat z) 3729 { 3730 3731 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3732 IOStream *stream = ctx->m_stream; 3733 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3734 bool useChecksum = checksumCalculator->getVersion() > 0; 3735 3736 unsigned char *ptr; 3737 unsigned char *buf; 3738 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 3739 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3740 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3741 buf = stream->alloc(totalSize); 3742 ptr = buf; 3743 int tmp = OP_glUniform3f;memcpy(ptr, &tmp, 4); ptr += 4; 3744 memcpy(ptr, &totalSize, 4); ptr += 4; 3745 3746 memcpy(ptr, &location, 4); ptr += 4; 3747 memcpy(ptr, &x, 4); ptr += 4; 3748 memcpy(ptr, &y, 4); ptr += 4; 3749 memcpy(ptr, &z, 4); ptr += 4; 3750 3751 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3752 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3753 3754 } 3755 3756 void glUniform3fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v) 3757 { 3758 3759 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3760 IOStream *stream = ctx->m_stream; 3761 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3762 bool useChecksum = checksumCalculator->getVersion() > 0; 3763 3764 const unsigned int __size_v = (count * 3 * sizeof(GLfloat)); 3765 unsigned char *ptr; 3766 unsigned char *buf; 3767 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4; 3768 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3769 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3770 buf = stream->alloc(totalSize); 3771 ptr = buf; 3772 int tmp = OP_glUniform3fv;memcpy(ptr, &tmp, 4); ptr += 4; 3773 memcpy(ptr, &totalSize, 4); ptr += 4; 3774 3775 memcpy(ptr, &location, 4); ptr += 4; 3776 memcpy(ptr, &count, 4); ptr += 4; 3777 *(unsigned int *)(ptr) = __size_v; ptr += 4; 3778 memcpy(ptr, v, __size_v);ptr += __size_v; 3779 3780 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3781 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3782 3783 } 3784 3785 void glUniform3i_enc(void *self , GLint location, GLint x, GLint y, GLint z) 3786 { 3787 3788 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3789 IOStream *stream = ctx->m_stream; 3790 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3791 bool useChecksum = checksumCalculator->getVersion() > 0; 3792 3793 unsigned char *ptr; 3794 unsigned char *buf; 3795 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 3796 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3797 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3798 buf = stream->alloc(totalSize); 3799 ptr = buf; 3800 int tmp = OP_glUniform3i;memcpy(ptr, &tmp, 4); ptr += 4; 3801 memcpy(ptr, &totalSize, 4); ptr += 4; 3802 3803 memcpy(ptr, &location, 4); ptr += 4; 3804 memcpy(ptr, &x, 4); ptr += 4; 3805 memcpy(ptr, &y, 4); ptr += 4; 3806 memcpy(ptr, &z, 4); ptr += 4; 3807 3808 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3809 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3810 3811 } 3812 3813 void glUniform3iv_enc(void *self , GLint location, GLsizei count, const GLint* v) 3814 { 3815 3816 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3817 IOStream *stream = ctx->m_stream; 3818 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3819 bool useChecksum = checksumCalculator->getVersion() > 0; 3820 3821 const unsigned int __size_v = (3 * count * sizeof(GLint)); 3822 unsigned char *ptr; 3823 unsigned char *buf; 3824 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4; 3825 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3826 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3827 buf = stream->alloc(totalSize); 3828 ptr = buf; 3829 int tmp = OP_glUniform3iv;memcpy(ptr, &tmp, 4); ptr += 4; 3830 memcpy(ptr, &totalSize, 4); ptr += 4; 3831 3832 memcpy(ptr, &location, 4); ptr += 4; 3833 memcpy(ptr, &count, 4); ptr += 4; 3834 *(unsigned int *)(ptr) = __size_v; ptr += 4; 3835 memcpy(ptr, v, __size_v);ptr += __size_v; 3836 3837 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3838 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3839 3840 } 3841 3842 void glUniform4f_enc(void *self , GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) 3843 { 3844 3845 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3846 IOStream *stream = ctx->m_stream; 3847 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3848 bool useChecksum = checksumCalculator->getVersion() > 0; 3849 3850 unsigned char *ptr; 3851 unsigned char *buf; 3852 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 3853 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3854 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3855 buf = stream->alloc(totalSize); 3856 ptr = buf; 3857 int tmp = OP_glUniform4f;memcpy(ptr, &tmp, 4); ptr += 4; 3858 memcpy(ptr, &totalSize, 4); ptr += 4; 3859 3860 memcpy(ptr, &location, 4); ptr += 4; 3861 memcpy(ptr, &x, 4); ptr += 4; 3862 memcpy(ptr, &y, 4); ptr += 4; 3863 memcpy(ptr, &z, 4); ptr += 4; 3864 memcpy(ptr, &w, 4); ptr += 4; 3865 3866 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3867 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3868 3869 } 3870 3871 void glUniform4fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v) 3872 { 3873 3874 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3875 IOStream *stream = ctx->m_stream; 3876 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3877 bool useChecksum = checksumCalculator->getVersion() > 0; 3878 3879 const unsigned int __size_v = (4 * count * sizeof(GLfloat)); 3880 unsigned char *ptr; 3881 unsigned char *buf; 3882 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4; 3883 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3884 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3885 buf = stream->alloc(totalSize); 3886 ptr = buf; 3887 int tmp = OP_glUniform4fv;memcpy(ptr, &tmp, 4); ptr += 4; 3888 memcpy(ptr, &totalSize, 4); ptr += 4; 3889 3890 memcpy(ptr, &location, 4); ptr += 4; 3891 memcpy(ptr, &count, 4); ptr += 4; 3892 *(unsigned int *)(ptr) = __size_v; ptr += 4; 3893 memcpy(ptr, v, __size_v);ptr += __size_v; 3894 3895 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3896 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3897 3898 } 3899 3900 void glUniform4i_enc(void *self , GLint location, GLint x, GLint y, GLint z, GLint w) 3901 { 3902 3903 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3904 IOStream *stream = ctx->m_stream; 3905 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3906 bool useChecksum = checksumCalculator->getVersion() > 0; 3907 3908 unsigned char *ptr; 3909 unsigned char *buf; 3910 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 3911 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3912 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3913 buf = stream->alloc(totalSize); 3914 ptr = buf; 3915 int tmp = OP_glUniform4i;memcpy(ptr, &tmp, 4); ptr += 4; 3916 memcpy(ptr, &totalSize, 4); ptr += 4; 3917 3918 memcpy(ptr, &location, 4); ptr += 4; 3919 memcpy(ptr, &x, 4); ptr += 4; 3920 memcpy(ptr, &y, 4); ptr += 4; 3921 memcpy(ptr, &z, 4); ptr += 4; 3922 memcpy(ptr, &w, 4); ptr += 4; 3923 3924 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3925 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3926 3927 } 3928 3929 void glUniform4iv_enc(void *self , GLint location, GLsizei count, const GLint* v) 3930 { 3931 3932 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3933 IOStream *stream = ctx->m_stream; 3934 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3935 bool useChecksum = checksumCalculator->getVersion() > 0; 3936 3937 const unsigned int __size_v = (4 * count * sizeof(GLint)); 3938 unsigned char *ptr; 3939 unsigned char *buf; 3940 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_v + 1*4; 3941 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3942 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3943 buf = stream->alloc(totalSize); 3944 ptr = buf; 3945 int tmp = OP_glUniform4iv;memcpy(ptr, &tmp, 4); ptr += 4; 3946 memcpy(ptr, &totalSize, 4); ptr += 4; 3947 3948 memcpy(ptr, &location, 4); ptr += 4; 3949 memcpy(ptr, &count, 4); ptr += 4; 3950 *(unsigned int *)(ptr) = __size_v; ptr += 4; 3951 memcpy(ptr, v, __size_v);ptr += __size_v; 3952 3953 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3954 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3955 3956 } 3957 3958 void glUniformMatrix2fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 3959 { 3960 3961 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3962 IOStream *stream = ctx->m_stream; 3963 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3964 bool useChecksum = checksumCalculator->getVersion() > 0; 3965 3966 const unsigned int __size_value = (count * 4 * sizeof(GLfloat)); 3967 unsigned char *ptr; 3968 unsigned char *buf; 3969 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4; 3970 const size_t checksumSize = checksumCalculator->checksumByteSize(); 3971 const size_t totalSize = sizeWithoutChecksum + checksumSize; 3972 buf = stream->alloc(totalSize); 3973 ptr = buf; 3974 int tmp = OP_glUniformMatrix2fv;memcpy(ptr, &tmp, 4); ptr += 4; 3975 memcpy(ptr, &totalSize, 4); ptr += 4; 3976 3977 memcpy(ptr, &location, 4); ptr += 4; 3978 memcpy(ptr, &count, 4); ptr += 4; 3979 memcpy(ptr, &transpose, 1); ptr += 1; 3980 *(unsigned int *)(ptr) = __size_value; ptr += 4; 3981 memcpy(ptr, value, __size_value);ptr += __size_value; 3982 3983 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 3984 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 3985 3986 } 3987 3988 void glUniformMatrix3fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 3989 { 3990 3991 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 3992 IOStream *stream = ctx->m_stream; 3993 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 3994 bool useChecksum = checksumCalculator->getVersion() > 0; 3995 3996 const unsigned int __size_value = (count * 9 * sizeof(GLfloat)); 3997 unsigned char *ptr; 3998 unsigned char *buf; 3999 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4; 4000 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4001 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4002 buf = stream->alloc(totalSize); 4003 ptr = buf; 4004 int tmp = OP_glUniformMatrix3fv;memcpy(ptr, &tmp, 4); ptr += 4; 4005 memcpy(ptr, &totalSize, 4); ptr += 4; 4006 4007 memcpy(ptr, &location, 4); ptr += 4; 4008 memcpy(ptr, &count, 4); ptr += 4; 4009 memcpy(ptr, &transpose, 1); ptr += 1; 4010 *(unsigned int *)(ptr) = __size_value; ptr += 4; 4011 memcpy(ptr, value, __size_value);ptr += __size_value; 4012 4013 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4014 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4015 4016 } 4017 4018 void glUniformMatrix4fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 4019 { 4020 4021 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4022 IOStream *stream = ctx->m_stream; 4023 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4024 bool useChecksum = checksumCalculator->getVersion() > 0; 4025 4026 const unsigned int __size_value = (count * 16 * sizeof(GLfloat)); 4027 unsigned char *ptr; 4028 unsigned char *buf; 4029 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4; 4030 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4031 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4032 buf = stream->alloc(totalSize); 4033 ptr = buf; 4034 int tmp = OP_glUniformMatrix4fv;memcpy(ptr, &tmp, 4); ptr += 4; 4035 memcpy(ptr, &totalSize, 4); ptr += 4; 4036 4037 memcpy(ptr, &location, 4); ptr += 4; 4038 memcpy(ptr, &count, 4); ptr += 4; 4039 memcpy(ptr, &transpose, 1); ptr += 1; 4040 *(unsigned int *)(ptr) = __size_value; ptr += 4; 4041 memcpy(ptr, value, __size_value);ptr += __size_value; 4042 4043 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4044 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4045 4046 } 4047 4048 void glUseProgram_enc(void *self , GLuint program) 4049 { 4050 4051 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4052 IOStream *stream = ctx->m_stream; 4053 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4054 bool useChecksum = checksumCalculator->getVersion() > 0; 4055 4056 unsigned char *ptr; 4057 unsigned char *buf; 4058 const size_t sizeWithoutChecksum = 8 + 4; 4059 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4060 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4061 buf = stream->alloc(totalSize); 4062 ptr = buf; 4063 int tmp = OP_glUseProgram;memcpy(ptr, &tmp, 4); ptr += 4; 4064 memcpy(ptr, &totalSize, 4); ptr += 4; 4065 4066 memcpy(ptr, &program, 4); ptr += 4; 4067 4068 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4069 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4070 4071 } 4072 4073 void glValidateProgram_enc(void *self , GLuint program) 4074 { 4075 4076 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4077 IOStream *stream = ctx->m_stream; 4078 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4079 bool useChecksum = checksumCalculator->getVersion() > 0; 4080 4081 unsigned char *ptr; 4082 unsigned char *buf; 4083 const size_t sizeWithoutChecksum = 8 + 4; 4084 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4085 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4086 buf = stream->alloc(totalSize); 4087 ptr = buf; 4088 int tmp = OP_glValidateProgram;memcpy(ptr, &tmp, 4); ptr += 4; 4089 memcpy(ptr, &totalSize, 4); ptr += 4; 4090 4091 memcpy(ptr, &program, 4); ptr += 4; 4092 4093 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4094 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4095 4096 } 4097 4098 void glVertexAttrib1f_enc(void *self , GLuint indx, GLfloat x) 4099 { 4100 4101 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4102 IOStream *stream = ctx->m_stream; 4103 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4104 bool useChecksum = checksumCalculator->getVersion() > 0; 4105 4106 unsigned char *ptr; 4107 unsigned char *buf; 4108 const size_t sizeWithoutChecksum = 8 + 4 + 4; 4109 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4110 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4111 buf = stream->alloc(totalSize); 4112 ptr = buf; 4113 int tmp = OP_glVertexAttrib1f;memcpy(ptr, &tmp, 4); ptr += 4; 4114 memcpy(ptr, &totalSize, 4); ptr += 4; 4115 4116 memcpy(ptr, &indx, 4); ptr += 4; 4117 memcpy(ptr, &x, 4); ptr += 4; 4118 4119 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4120 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4121 4122 } 4123 4124 void glVertexAttrib1fv_enc(void *self , GLuint indx, const GLfloat* values) 4125 { 4126 4127 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4128 IOStream *stream = ctx->m_stream; 4129 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4130 bool useChecksum = checksumCalculator->getVersion() > 0; 4131 4132 const unsigned int __size_values = (sizeof(GLfloat)); 4133 unsigned char *ptr; 4134 unsigned char *buf; 4135 const size_t sizeWithoutChecksum = 8 + 4 + __size_values + 1*4; 4136 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4137 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4138 buf = stream->alloc(totalSize); 4139 ptr = buf; 4140 int tmp = OP_glVertexAttrib1fv;memcpy(ptr, &tmp, 4); ptr += 4; 4141 memcpy(ptr, &totalSize, 4); ptr += 4; 4142 4143 memcpy(ptr, &indx, 4); ptr += 4; 4144 *(unsigned int *)(ptr) = __size_values; ptr += 4; 4145 memcpy(ptr, values, __size_values);ptr += __size_values; 4146 4147 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4148 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4149 4150 } 4151 4152 void glVertexAttrib2f_enc(void *self , GLuint indx, GLfloat x, GLfloat y) 4153 { 4154 4155 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4156 IOStream *stream = ctx->m_stream; 4157 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4158 bool useChecksum = checksumCalculator->getVersion() > 0; 4159 4160 unsigned char *ptr; 4161 unsigned char *buf; 4162 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 4163 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4164 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4165 buf = stream->alloc(totalSize); 4166 ptr = buf; 4167 int tmp = OP_glVertexAttrib2f;memcpy(ptr, &tmp, 4); ptr += 4; 4168 memcpy(ptr, &totalSize, 4); ptr += 4; 4169 4170 memcpy(ptr, &indx, 4); ptr += 4; 4171 memcpy(ptr, &x, 4); ptr += 4; 4172 memcpy(ptr, &y, 4); ptr += 4; 4173 4174 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4175 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4176 4177 } 4178 4179 void glVertexAttrib2fv_enc(void *self , GLuint indx, const GLfloat* values) 4180 { 4181 4182 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4183 IOStream *stream = ctx->m_stream; 4184 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4185 bool useChecksum = checksumCalculator->getVersion() > 0; 4186 4187 const unsigned int __size_values = (2 * sizeof(GLfloat)); 4188 unsigned char *ptr; 4189 unsigned char *buf; 4190 const size_t sizeWithoutChecksum = 8 + 4 + __size_values + 1*4; 4191 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4192 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4193 buf = stream->alloc(totalSize); 4194 ptr = buf; 4195 int tmp = OP_glVertexAttrib2fv;memcpy(ptr, &tmp, 4); ptr += 4; 4196 memcpy(ptr, &totalSize, 4); ptr += 4; 4197 4198 memcpy(ptr, &indx, 4); ptr += 4; 4199 *(unsigned int *)(ptr) = __size_values; ptr += 4; 4200 memcpy(ptr, values, __size_values);ptr += __size_values; 4201 4202 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4203 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4204 4205 } 4206 4207 void glVertexAttrib3f_enc(void *self , GLuint indx, GLfloat x, GLfloat y, GLfloat z) 4208 { 4209 4210 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4211 IOStream *stream = ctx->m_stream; 4212 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4213 bool useChecksum = checksumCalculator->getVersion() > 0; 4214 4215 unsigned char *ptr; 4216 unsigned char *buf; 4217 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 4218 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4219 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4220 buf = stream->alloc(totalSize); 4221 ptr = buf; 4222 int tmp = OP_glVertexAttrib3f;memcpy(ptr, &tmp, 4); ptr += 4; 4223 memcpy(ptr, &totalSize, 4); ptr += 4; 4224 4225 memcpy(ptr, &indx, 4); ptr += 4; 4226 memcpy(ptr, &x, 4); ptr += 4; 4227 memcpy(ptr, &y, 4); ptr += 4; 4228 memcpy(ptr, &z, 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 glVertexAttrib3fv_enc(void *self , GLuint indx, const GLfloat* values) 4236 { 4237 4238 gl2_encoder_context_t *ctx = (gl2_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_values = (3 * sizeof(GLfloat)); 4244 unsigned char *ptr; 4245 unsigned char *buf; 4246 const size_t sizeWithoutChecksum = 8 + 4 + __size_values + 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_glVertexAttrib3fv;memcpy(ptr, &tmp, 4); ptr += 4; 4252 memcpy(ptr, &totalSize, 4); ptr += 4; 4253 4254 memcpy(ptr, &indx, 4); ptr += 4; 4255 *(unsigned int *)(ptr) = __size_values; ptr += 4; 4256 memcpy(ptr, values, __size_values);ptr += __size_values; 4257 4258 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4259 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4260 4261 } 4262 4263 void glVertexAttrib4f_enc(void *self , GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) 4264 { 4265 4266 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4267 IOStream *stream = ctx->m_stream; 4268 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4269 bool useChecksum = checksumCalculator->getVersion() > 0; 4270 4271 unsigned char *ptr; 4272 unsigned char *buf; 4273 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 4274 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4275 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4276 buf = stream->alloc(totalSize); 4277 ptr = buf; 4278 int tmp = OP_glVertexAttrib4f;memcpy(ptr, &tmp, 4); ptr += 4; 4279 memcpy(ptr, &totalSize, 4); ptr += 4; 4280 4281 memcpy(ptr, &indx, 4); ptr += 4; 4282 memcpy(ptr, &x, 4); ptr += 4; 4283 memcpy(ptr, &y, 4); ptr += 4; 4284 memcpy(ptr, &z, 4); ptr += 4; 4285 memcpy(ptr, &w, 4); ptr += 4; 4286 4287 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4288 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4289 4290 } 4291 4292 void glVertexAttrib4fv_enc(void *self , GLuint indx, const GLfloat* values) 4293 { 4294 4295 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4296 IOStream *stream = ctx->m_stream; 4297 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4298 bool useChecksum = checksumCalculator->getVersion() > 0; 4299 4300 const unsigned int __size_values = (4 * sizeof(GLfloat)); 4301 unsigned char *ptr; 4302 unsigned char *buf; 4303 const size_t sizeWithoutChecksum = 8 + 4 + __size_values + 1*4; 4304 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4305 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4306 buf = stream->alloc(totalSize); 4307 ptr = buf; 4308 int tmp = OP_glVertexAttrib4fv;memcpy(ptr, &tmp, 4); ptr += 4; 4309 memcpy(ptr, &totalSize, 4); ptr += 4; 4310 4311 memcpy(ptr, &indx, 4); ptr += 4; 4312 *(unsigned int *)(ptr) = __size_values; ptr += 4; 4313 memcpy(ptr, values, __size_values);ptr += __size_values; 4314 4315 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4316 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4317 4318 } 4319 4320 void glViewport_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height) 4321 { 4322 4323 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4324 IOStream *stream = ctx->m_stream; 4325 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4326 bool useChecksum = checksumCalculator->getVersion() > 0; 4327 4328 unsigned char *ptr; 4329 unsigned char *buf; 4330 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 4331 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4332 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4333 buf = stream->alloc(totalSize); 4334 ptr = buf; 4335 int tmp = OP_glViewport;memcpy(ptr, &tmp, 4); ptr += 4; 4336 memcpy(ptr, &totalSize, 4); ptr += 4; 4337 4338 memcpy(ptr, &x, 4); ptr += 4; 4339 memcpy(ptr, &y, 4); ptr += 4; 4340 memcpy(ptr, &width, 4); ptr += 4; 4341 memcpy(ptr, &height, 4); ptr += 4; 4342 4343 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4344 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4345 4346 } 4347 4348 void glEGLImageTargetTexture2DOES_enc(void *self , GLenum target, GLeglImageOES image) 4349 { 4350 4351 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4352 IOStream *stream = ctx->m_stream; 4353 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4354 bool useChecksum = checksumCalculator->getVersion() > 0; 4355 4356 unsigned char *ptr; 4357 unsigned char *buf; 4358 const size_t sizeWithoutChecksum = 8 + 4 + 4; 4359 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4360 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4361 buf = stream->alloc(totalSize); 4362 ptr = buf; 4363 int tmp = OP_glEGLImageTargetTexture2DOES;memcpy(ptr, &tmp, 4); ptr += 4; 4364 memcpy(ptr, &totalSize, 4); ptr += 4; 4365 4366 memcpy(ptr, &target, 4); ptr += 4; 4367 memcpy(ptr, &image, 4); ptr += 4; 4368 4369 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4370 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4371 4372 } 4373 4374 void glEGLImageTargetRenderbufferStorageOES_enc(void *self , GLenum target, GLeglImageOES image) 4375 { 4376 4377 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4378 IOStream *stream = ctx->m_stream; 4379 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4380 bool useChecksum = checksumCalculator->getVersion() > 0; 4381 4382 unsigned char *ptr; 4383 unsigned char *buf; 4384 const size_t sizeWithoutChecksum = 8 + 4 + 4; 4385 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4386 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4387 buf = stream->alloc(totalSize); 4388 ptr = buf; 4389 int tmp = OP_glEGLImageTargetRenderbufferStorageOES;memcpy(ptr, &tmp, 4); ptr += 4; 4390 memcpy(ptr, &totalSize, 4); ptr += 4; 4391 4392 memcpy(ptr, &target, 4); ptr += 4; 4393 memcpy(ptr, &image, 4); ptr += 4; 4394 4395 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4396 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4397 4398 } 4399 4400 GLboolean glUnmapBufferOES_enc(void *self , GLenum target) 4401 { 4402 4403 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4404 IOStream *stream = ctx->m_stream; 4405 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4406 bool useChecksum = checksumCalculator->getVersion() > 0; 4407 4408 unsigned char *ptr; 4409 unsigned char *buf; 4410 const size_t sizeWithoutChecksum = 8 + 4; 4411 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4412 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4413 buf = stream->alloc(totalSize); 4414 ptr = buf; 4415 int tmp = OP_glUnmapBufferOES;memcpy(ptr, &tmp, 4); ptr += 4; 4416 memcpy(ptr, &totalSize, 4); ptr += 4; 4417 4418 memcpy(ptr, &target, 4); ptr += 4; 4419 4420 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4421 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4422 4423 4424 GLboolean retval; 4425 stream->readback(&retval, 1); 4426 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 4427 if (useChecksum) { 4428 unsigned char *checksumBufPtr = NULL; 4429 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 4430 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 4431 stream->readback(checksumBufPtr, checksumSize); 4432 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 4433 ALOGE("glUnmapBufferOES: GL communication error, please report this issue to b.android.com.\n"); 4434 abort(); 4435 } 4436 } 4437 return retval; 4438 } 4439 4440 void glTexImage3DOES_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels) 4441 { 4442 4443 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4444 IOStream *stream = ctx->m_stream; 4445 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4446 bool useChecksum = checksumCalculator->getVersion() > 0; 4447 4448 const unsigned int __size_pixels = ((pixels != NULL) ? glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0) : 0); 4449 unsigned char *ptr; 4450 unsigned char *buf; 4451 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4; 4452 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4453 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4454 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 4455 ptr = buf; 4456 int tmp = OP_glTexImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4; 4457 memcpy(ptr, &totalSize, 4); ptr += 4; 4458 4459 memcpy(ptr, &target, 4); ptr += 4; 4460 memcpy(ptr, &level, 4); ptr += 4; 4461 memcpy(ptr, &internalformat, 4); ptr += 4; 4462 memcpy(ptr, &width, 4); ptr += 4; 4463 memcpy(ptr, &height, 4); ptr += 4; 4464 memcpy(ptr, &depth, 4); ptr += 4; 4465 memcpy(ptr, &border, 4); ptr += 4; 4466 memcpy(ptr, &format, 4); ptr += 4; 4467 memcpy(ptr, &type, 4); ptr += 4; 4468 4469 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4470 stream->flush(); 4471 stream->writeFully(&__size_pixels,4); 4472 if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4); 4473 if (pixels != NULL) { 4474 stream->writeFully(pixels, __size_pixels); 4475 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels); 4476 } 4477 buf = stream->alloc(checksumSize); 4478 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 4479 4480 } 4481 4482 void glTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels) 4483 { 4484 4485 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4486 IOStream *stream = ctx->m_stream; 4487 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4488 bool useChecksum = checksumCalculator->getVersion() > 0; 4489 4490 const unsigned int __size_pixels = ((pixels != NULL) ? glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0) : 0); 4491 unsigned char *ptr; 4492 unsigned char *buf; 4493 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4; 4494 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4495 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4496 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 4497 ptr = buf; 4498 int tmp = OP_glTexSubImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4; 4499 memcpy(ptr, &totalSize, 4); ptr += 4; 4500 4501 memcpy(ptr, &target, 4); ptr += 4; 4502 memcpy(ptr, &level, 4); ptr += 4; 4503 memcpy(ptr, &xoffset, 4); ptr += 4; 4504 memcpy(ptr, &yoffset, 4); ptr += 4; 4505 memcpy(ptr, &zoffset, 4); ptr += 4; 4506 memcpy(ptr, &width, 4); ptr += 4; 4507 memcpy(ptr, &height, 4); ptr += 4; 4508 memcpy(ptr, &depth, 4); ptr += 4; 4509 memcpy(ptr, &format, 4); ptr += 4; 4510 memcpy(ptr, &type, 4); ptr += 4; 4511 4512 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4513 stream->flush(); 4514 stream->writeFully(&__size_pixels,4); 4515 if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4); 4516 if (pixels != NULL) { 4517 stream->writeFully(pixels, __size_pixels); 4518 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels); 4519 } 4520 buf = stream->alloc(checksumSize); 4521 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 4522 4523 } 4524 4525 void glCopyTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) 4526 { 4527 4528 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4529 IOStream *stream = ctx->m_stream; 4530 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4531 bool useChecksum = checksumCalculator->getVersion() > 0; 4532 4533 unsigned char *ptr; 4534 unsigned char *buf; 4535 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 4536 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4537 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4538 buf = stream->alloc(totalSize); 4539 ptr = buf; 4540 int tmp = OP_glCopyTexSubImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4; 4541 memcpy(ptr, &totalSize, 4); ptr += 4; 4542 4543 memcpy(ptr, &target, 4); ptr += 4; 4544 memcpy(ptr, &level, 4); ptr += 4; 4545 memcpy(ptr, &xoffset, 4); ptr += 4; 4546 memcpy(ptr, &yoffset, 4); ptr += 4; 4547 memcpy(ptr, &zoffset, 4); ptr += 4; 4548 memcpy(ptr, &x, 4); ptr += 4; 4549 memcpy(ptr, &y, 4); ptr += 4; 4550 memcpy(ptr, &width, 4); ptr += 4; 4551 memcpy(ptr, &height, 4); ptr += 4; 4552 4553 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4554 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4555 4556 } 4557 4558 void glCompressedTexImage3DOES_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data) 4559 { 4560 4561 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4562 IOStream *stream = ctx->m_stream; 4563 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4564 bool useChecksum = checksumCalculator->getVersion() > 0; 4565 4566 const unsigned int __size_data = ((data != NULL) ? imageSize : 0); 4567 unsigned char *ptr; 4568 unsigned char *buf; 4569 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4; 4570 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4571 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4572 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 4573 ptr = buf; 4574 int tmp = OP_glCompressedTexImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4; 4575 memcpy(ptr, &totalSize, 4); ptr += 4; 4576 4577 memcpy(ptr, &target, 4); ptr += 4; 4578 memcpy(ptr, &level, 4); ptr += 4; 4579 memcpy(ptr, &internalformat, 4); ptr += 4; 4580 memcpy(ptr, &width, 4); ptr += 4; 4581 memcpy(ptr, &height, 4); ptr += 4; 4582 memcpy(ptr, &depth, 4); ptr += 4; 4583 memcpy(ptr, &border, 4); ptr += 4; 4584 memcpy(ptr, &imageSize, 4); ptr += 4; 4585 4586 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4587 stream->flush(); 4588 stream->writeFully(&__size_data,4); 4589 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4); 4590 if (data != NULL) { 4591 stream->writeFully(data, __size_data); 4592 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 4593 } 4594 buf = stream->alloc(checksumSize); 4595 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 4596 4597 } 4598 4599 void glCompressedTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data) 4600 { 4601 4602 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4603 IOStream *stream = ctx->m_stream; 4604 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4605 bool useChecksum = checksumCalculator->getVersion() > 0; 4606 4607 const unsigned int __size_data = ((data != NULL) ? imageSize : 0); 4608 unsigned char *ptr; 4609 unsigned char *buf; 4610 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4; 4611 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4612 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4613 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 4614 ptr = buf; 4615 int tmp = OP_glCompressedTexSubImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4; 4616 memcpy(ptr, &totalSize, 4); ptr += 4; 4617 4618 memcpy(ptr, &target, 4); ptr += 4; 4619 memcpy(ptr, &level, 4); ptr += 4; 4620 memcpy(ptr, &xoffset, 4); ptr += 4; 4621 memcpy(ptr, &yoffset, 4); ptr += 4; 4622 memcpy(ptr, &zoffset, 4); ptr += 4; 4623 memcpy(ptr, &width, 4); ptr += 4; 4624 memcpy(ptr, &height, 4); ptr += 4; 4625 memcpy(ptr, &depth, 4); ptr += 4; 4626 memcpy(ptr, &format, 4); ptr += 4; 4627 memcpy(ptr, &imageSize, 4); ptr += 4; 4628 4629 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4630 stream->flush(); 4631 stream->writeFully(&__size_data,4); 4632 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4); 4633 if (data != NULL) { 4634 stream->writeFully(data, __size_data); 4635 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 4636 } 4637 buf = stream->alloc(checksumSize); 4638 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 4639 4640 } 4641 4642 void glFramebufferTexture3DOES_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) 4643 { 4644 4645 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4646 IOStream *stream = ctx->m_stream; 4647 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4648 bool useChecksum = checksumCalculator->getVersion() > 0; 4649 4650 unsigned char *ptr; 4651 unsigned char *buf; 4652 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4; 4653 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4654 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4655 buf = stream->alloc(totalSize); 4656 ptr = buf; 4657 int tmp = OP_glFramebufferTexture3DOES;memcpy(ptr, &tmp, 4); ptr += 4; 4658 memcpy(ptr, &totalSize, 4); ptr += 4; 4659 4660 memcpy(ptr, &target, 4); ptr += 4; 4661 memcpy(ptr, &attachment, 4); ptr += 4; 4662 memcpy(ptr, &textarget, 4); ptr += 4; 4663 memcpy(ptr, &texture, 4); ptr += 4; 4664 memcpy(ptr, &level, 4); ptr += 4; 4665 memcpy(ptr, &zoffset, 4); ptr += 4; 4666 4667 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4668 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4669 4670 } 4671 4672 void glBindVertexArrayOES_enc(void *self , GLuint array) 4673 { 4674 4675 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4676 IOStream *stream = ctx->m_stream; 4677 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4678 bool useChecksum = checksumCalculator->getVersion() > 0; 4679 4680 unsigned char *ptr; 4681 unsigned char *buf; 4682 const size_t sizeWithoutChecksum = 8 + 4; 4683 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4684 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4685 buf = stream->alloc(totalSize); 4686 ptr = buf; 4687 int tmp = OP_glBindVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4; 4688 memcpy(ptr, &totalSize, 4); ptr += 4; 4689 4690 memcpy(ptr, &array, 4); ptr += 4; 4691 4692 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4693 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4694 4695 } 4696 4697 void glDeleteVertexArraysOES_enc(void *self , GLsizei n, const GLuint* arrays) 4698 { 4699 4700 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4701 IOStream *stream = ctx->m_stream; 4702 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4703 bool useChecksum = checksumCalculator->getVersion() > 0; 4704 4705 const unsigned int __size_arrays = (n * sizeof(GLuint)); 4706 unsigned char *ptr; 4707 unsigned char *buf; 4708 const size_t sizeWithoutChecksum = 8 + 4 + __size_arrays + 1*4; 4709 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4710 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4711 buf = stream->alloc(totalSize); 4712 ptr = buf; 4713 int tmp = OP_glDeleteVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4; 4714 memcpy(ptr, &totalSize, 4); ptr += 4; 4715 4716 memcpy(ptr, &n, 4); ptr += 4; 4717 *(unsigned int *)(ptr) = __size_arrays; ptr += 4; 4718 memcpy(ptr, arrays, __size_arrays);ptr += __size_arrays; 4719 4720 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4721 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4722 4723 } 4724 4725 void glGenVertexArraysOES_enc(void *self , GLsizei n, GLuint* arrays) 4726 { 4727 4728 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4729 IOStream *stream = ctx->m_stream; 4730 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4731 bool useChecksum = checksumCalculator->getVersion() > 0; 4732 4733 const unsigned int __size_arrays = (n * sizeof(GLuint)); 4734 unsigned char *ptr; 4735 unsigned char *buf; 4736 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 4737 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4738 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4739 buf = stream->alloc(totalSize); 4740 ptr = buf; 4741 int tmp = OP_glGenVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4; 4742 memcpy(ptr, &totalSize, 4); ptr += 4; 4743 4744 memcpy(ptr, &n, 4); ptr += 4; 4745 *(unsigned int *)(ptr) = __size_arrays; ptr += 4; 4746 4747 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4748 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4749 4750 stream->readback(arrays, __size_arrays); 4751 if (useChecksum) checksumCalculator->addBuffer(arrays, __size_arrays); 4752 if (useChecksum) { 4753 unsigned char *checksumBufPtr = NULL; 4754 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 4755 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 4756 stream->readback(checksumBufPtr, checksumSize); 4757 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 4758 ALOGE("glGenVertexArraysOES: GL communication error, please report this issue to b.android.com.\n"); 4759 abort(); 4760 } 4761 } 4762 } 4763 4764 GLboolean glIsVertexArrayOES_enc(void *self , GLuint array) 4765 { 4766 4767 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4768 IOStream *stream = ctx->m_stream; 4769 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4770 bool useChecksum = checksumCalculator->getVersion() > 0; 4771 4772 unsigned char *ptr; 4773 unsigned char *buf; 4774 const size_t sizeWithoutChecksum = 8 + 4; 4775 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4776 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4777 buf = stream->alloc(totalSize); 4778 ptr = buf; 4779 int tmp = OP_glIsVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4; 4780 memcpy(ptr, &totalSize, 4); ptr += 4; 4781 4782 memcpy(ptr, &array, 4); ptr += 4; 4783 4784 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4785 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4786 4787 4788 GLboolean retval; 4789 stream->readback(&retval, 1); 4790 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 4791 if (useChecksum) { 4792 unsigned char *checksumBufPtr = NULL; 4793 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 4794 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 4795 stream->readback(checksumBufPtr, checksumSize); 4796 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 4797 ALOGE("glIsVertexArrayOES: GL communication error, please report this issue to b.android.com.\n"); 4798 abort(); 4799 } 4800 } 4801 return retval; 4802 } 4803 4804 void glDiscardFramebufferEXT_enc(void *self , GLenum target, GLsizei numAttachments, const GLenum* attachments) 4805 { 4806 4807 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4808 IOStream *stream = ctx->m_stream; 4809 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4810 bool useChecksum = checksumCalculator->getVersion() > 0; 4811 4812 const unsigned int __size_attachments = (numAttachments * sizeof(GLenum)); 4813 unsigned char *ptr; 4814 unsigned char *buf; 4815 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_attachments + 1*4; 4816 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4817 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4818 buf = stream->alloc(totalSize); 4819 ptr = buf; 4820 int tmp = OP_glDiscardFramebufferEXT;memcpy(ptr, &tmp, 4); ptr += 4; 4821 memcpy(ptr, &totalSize, 4); ptr += 4; 4822 4823 memcpy(ptr, &target, 4); ptr += 4; 4824 memcpy(ptr, &numAttachments, 4); ptr += 4; 4825 *(unsigned int *)(ptr) = __size_attachments; ptr += 4; 4826 memcpy(ptr, attachments, __size_attachments);ptr += __size_attachments; 4827 4828 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4829 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4830 4831 } 4832 4833 void glVertexAttribPointerData_enc(void *self , GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen) 4834 { 4835 4836 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4837 IOStream *stream = ctx->m_stream; 4838 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4839 bool useChecksum = checksumCalculator->getVersion() > 0; 4840 4841 const unsigned int __size_data = datalen; 4842 unsigned char *ptr; 4843 unsigned char *buf; 4844 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + 4 + __size_data + 4 + 1*4; 4845 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4846 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4847 buf = stream->alloc(totalSize); 4848 ptr = buf; 4849 int tmp = OP_glVertexAttribPointerData;memcpy(ptr, &tmp, 4); ptr += 4; 4850 memcpy(ptr, &totalSize, 4); ptr += 4; 4851 4852 memcpy(ptr, &indx, 4); ptr += 4; 4853 memcpy(ptr, &size, 4); ptr += 4; 4854 memcpy(ptr, &type, 4); ptr += 4; 4855 memcpy(ptr, &normalized, 1); ptr += 1; 4856 memcpy(ptr, &stride, 4); ptr += 4; 4857 *(unsigned int *)(ptr) = __size_data; ptr += 4; 4858 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data; 4859 memcpy(ptr, &datalen, 4); ptr += 4; 4860 4861 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4862 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4863 4864 } 4865 4866 void glVertexAttribPointerOffset_enc(void *self , GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset) 4867 { 4868 4869 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4870 IOStream *stream = ctx->m_stream; 4871 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4872 bool useChecksum = checksumCalculator->getVersion() > 0; 4873 4874 unsigned char *ptr; 4875 unsigned char *buf; 4876 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + 4 + 4; 4877 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4878 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4879 buf = stream->alloc(totalSize); 4880 ptr = buf; 4881 int tmp = OP_glVertexAttribPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4; 4882 memcpy(ptr, &totalSize, 4); ptr += 4; 4883 4884 memcpy(ptr, &indx, 4); ptr += 4; 4885 memcpy(ptr, &size, 4); ptr += 4; 4886 memcpy(ptr, &type, 4); ptr += 4; 4887 memcpy(ptr, &normalized, 1); ptr += 1; 4888 memcpy(ptr, &stride, 4); ptr += 4; 4889 memcpy(ptr, &offset, 4); ptr += 4; 4890 4891 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4892 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4893 4894 } 4895 4896 void glDrawElementsOffset_enc(void *self , GLenum mode, GLsizei count, GLenum type, GLuint offset) 4897 { 4898 4899 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4900 IOStream *stream = ctx->m_stream; 4901 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4902 bool useChecksum = checksumCalculator->getVersion() > 0; 4903 4904 unsigned char *ptr; 4905 unsigned char *buf; 4906 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 4907 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4908 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4909 buf = stream->alloc(totalSize); 4910 ptr = buf; 4911 int tmp = OP_glDrawElementsOffset;memcpy(ptr, &tmp, 4); ptr += 4; 4912 memcpy(ptr, &totalSize, 4); ptr += 4; 4913 4914 memcpy(ptr, &mode, 4); ptr += 4; 4915 memcpy(ptr, &count, 4); ptr += 4; 4916 memcpy(ptr, &type, 4); ptr += 4; 4917 memcpy(ptr, &offset, 4); ptr += 4; 4918 4919 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4920 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4921 4922 } 4923 4924 void glDrawElementsData_enc(void *self , GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen) 4925 { 4926 4927 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4928 IOStream *stream = ctx->m_stream; 4929 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4930 bool useChecksum = checksumCalculator->getVersion() > 0; 4931 4932 const unsigned int __size_data = datalen; 4933 unsigned char *ptr; 4934 unsigned char *buf; 4935 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4; 4936 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4937 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4938 buf = stream->alloc(totalSize); 4939 ptr = buf; 4940 int tmp = OP_glDrawElementsData;memcpy(ptr, &tmp, 4); ptr += 4; 4941 memcpy(ptr, &totalSize, 4); ptr += 4; 4942 4943 memcpy(ptr, &mode, 4); ptr += 4; 4944 memcpy(ptr, &count, 4); ptr += 4; 4945 memcpy(ptr, &type, 4); ptr += 4; 4946 *(unsigned int *)(ptr) = __size_data; ptr += 4; 4947 memcpy(ptr, data, __size_data);ptr += __size_data; 4948 memcpy(ptr, &datalen, 4); ptr += 4; 4949 4950 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4951 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4952 4953 } 4954 4955 void glGetCompressedTextureFormats_enc(void *self , int count, GLint* formats) 4956 { 4957 4958 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4959 IOStream *stream = ctx->m_stream; 4960 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 4961 bool useChecksum = checksumCalculator->getVersion() > 0; 4962 4963 const unsigned int __size_formats = (count * sizeof(GLint)); 4964 unsigned char *ptr; 4965 unsigned char *buf; 4966 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 4967 const size_t checksumSize = checksumCalculator->checksumByteSize(); 4968 const size_t totalSize = sizeWithoutChecksum + checksumSize; 4969 buf = stream->alloc(totalSize); 4970 ptr = buf; 4971 int tmp = OP_glGetCompressedTextureFormats;memcpy(ptr, &tmp, 4); ptr += 4; 4972 memcpy(ptr, &totalSize, 4); ptr += 4; 4973 4974 memcpy(ptr, &count, 4); ptr += 4; 4975 *(unsigned int *)(ptr) = __size_formats; ptr += 4; 4976 4977 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 4978 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 4979 4980 stream->readback(formats, __size_formats); 4981 if (useChecksum) checksumCalculator->addBuffer(formats, __size_formats); 4982 if (useChecksum) { 4983 unsigned char *checksumBufPtr = NULL; 4984 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 4985 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 4986 stream->readback(checksumBufPtr, checksumSize); 4987 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 4988 ALOGE("glGetCompressedTextureFormats: GL communication error, please report this issue to b.android.com.\n"); 4989 abort(); 4990 } 4991 } 4992 } 4993 4994 void glShaderString_enc(void *self , GLuint shader, const GLchar* string, GLsizei len) 4995 { 4996 4997 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 4998 IOStream *stream = ctx->m_stream; 4999 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5000 bool useChecksum = checksumCalculator->getVersion() > 0; 5001 5002 const unsigned int __size_string = len; 5003 unsigned char *ptr; 5004 unsigned char *buf; 5005 const size_t sizeWithoutChecksum = 8 + 4 + __size_string + 4 + 1*4; 5006 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5007 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5008 buf = stream->alloc(totalSize); 5009 ptr = buf; 5010 int tmp = OP_glShaderString;memcpy(ptr, &tmp, 4); ptr += 4; 5011 memcpy(ptr, &totalSize, 4); ptr += 4; 5012 5013 memcpy(ptr, &shader, 4); ptr += 4; 5014 *(unsigned int *)(ptr) = __size_string; ptr += 4; 5015 memcpy(ptr, string, __size_string);ptr += __size_string; 5016 memcpy(ptr, &len, 4); ptr += 4; 5017 5018 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5019 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5020 5021 } 5022 5023 int glFinishRoundTrip_enc(void *self ) 5024 { 5025 5026 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5027 IOStream *stream = ctx->m_stream; 5028 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5029 bool useChecksum = checksumCalculator->getVersion() > 0; 5030 5031 unsigned char *ptr; 5032 unsigned char *buf; 5033 const size_t sizeWithoutChecksum = 8; 5034 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5035 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5036 buf = stream->alloc(totalSize); 5037 ptr = buf; 5038 int tmp = OP_glFinishRoundTrip;memcpy(ptr, &tmp, 4); ptr += 4; 5039 memcpy(ptr, &totalSize, 4); ptr += 4; 5040 5041 5042 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5043 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5044 5045 5046 int retval; 5047 stream->readback(&retval, 4); 5048 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 5049 if (useChecksum) { 5050 unsigned char *checksumBufPtr = NULL; 5051 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 5052 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 5053 stream->readback(checksumBufPtr, checksumSize); 5054 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 5055 ALOGE("glFinishRoundTrip: GL communication error, please report this issue to b.android.com.\n"); 5056 abort(); 5057 } 5058 } 5059 return retval; 5060 } 5061 5062 void glGenVertexArrays_enc(void *self , GLsizei n, GLuint* arrays) 5063 { 5064 5065 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5066 IOStream *stream = ctx->m_stream; 5067 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5068 bool useChecksum = checksumCalculator->getVersion() > 0; 5069 5070 const unsigned int __size_arrays = (n * sizeof(GLuint)); 5071 unsigned char *ptr; 5072 unsigned char *buf; 5073 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 5074 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5075 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5076 buf = stream->alloc(totalSize); 5077 ptr = buf; 5078 int tmp = OP_glGenVertexArrays;memcpy(ptr, &tmp, 4); ptr += 4; 5079 memcpy(ptr, &totalSize, 4); ptr += 4; 5080 5081 memcpy(ptr, &n, 4); ptr += 4; 5082 *(unsigned int *)(ptr) = __size_arrays; ptr += 4; 5083 5084 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5085 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5086 5087 stream->readback(arrays, __size_arrays); 5088 if (useChecksum) checksumCalculator->addBuffer(arrays, __size_arrays); 5089 if (useChecksum) { 5090 unsigned char *checksumBufPtr = NULL; 5091 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 5092 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 5093 stream->readback(checksumBufPtr, checksumSize); 5094 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 5095 ALOGE("glGenVertexArrays: GL communication error, please report this issue to b.android.com.\n"); 5096 abort(); 5097 } 5098 } 5099 } 5100 5101 void glBindVertexArray_enc(void *self , GLuint array) 5102 { 5103 5104 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5105 IOStream *stream = ctx->m_stream; 5106 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5107 bool useChecksum = checksumCalculator->getVersion() > 0; 5108 5109 unsigned char *ptr; 5110 unsigned char *buf; 5111 const size_t sizeWithoutChecksum = 8 + 4; 5112 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5113 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5114 buf = stream->alloc(totalSize); 5115 ptr = buf; 5116 int tmp = OP_glBindVertexArray;memcpy(ptr, &tmp, 4); ptr += 4; 5117 memcpy(ptr, &totalSize, 4); ptr += 4; 5118 5119 memcpy(ptr, &array, 4); ptr += 4; 5120 5121 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5122 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5123 5124 } 5125 5126 void glDeleteVertexArrays_enc(void *self , GLsizei n, const GLuint* arrays) 5127 { 5128 5129 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5130 IOStream *stream = ctx->m_stream; 5131 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5132 bool useChecksum = checksumCalculator->getVersion() > 0; 5133 5134 const unsigned int __size_arrays = (n * sizeof(GLuint)); 5135 unsigned char *ptr; 5136 unsigned char *buf; 5137 const size_t sizeWithoutChecksum = 8 + 4 + __size_arrays + 1*4; 5138 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5139 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5140 buf = stream->alloc(totalSize); 5141 ptr = buf; 5142 int tmp = OP_glDeleteVertexArrays;memcpy(ptr, &tmp, 4); ptr += 4; 5143 memcpy(ptr, &totalSize, 4); ptr += 4; 5144 5145 memcpy(ptr, &n, 4); ptr += 4; 5146 *(unsigned int *)(ptr) = __size_arrays; ptr += 4; 5147 memcpy(ptr, arrays, __size_arrays);ptr += __size_arrays; 5148 5149 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5150 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5151 5152 } 5153 5154 GLboolean glIsVertexArray_enc(void *self , GLuint array) 5155 { 5156 5157 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5158 IOStream *stream = ctx->m_stream; 5159 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5160 bool useChecksum = checksumCalculator->getVersion() > 0; 5161 5162 unsigned char *ptr; 5163 unsigned char *buf; 5164 const size_t sizeWithoutChecksum = 8 + 4; 5165 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5166 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5167 buf = stream->alloc(totalSize); 5168 ptr = buf; 5169 int tmp = OP_glIsVertexArray;memcpy(ptr, &tmp, 4); ptr += 4; 5170 memcpy(ptr, &totalSize, 4); ptr += 4; 5171 5172 memcpy(ptr, &array, 4); ptr += 4; 5173 5174 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5175 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5176 5177 5178 GLboolean retval; 5179 stream->readback(&retval, 1); 5180 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 5181 if (useChecksum) { 5182 unsigned char *checksumBufPtr = NULL; 5183 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 5184 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 5185 stream->readback(checksumBufPtr, checksumSize); 5186 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 5187 ALOGE("glIsVertexArray: GL communication error, please report this issue to b.android.com.\n"); 5188 abort(); 5189 } 5190 } 5191 return retval; 5192 } 5193 5194 void glMapBufferRangeAEMU_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* mapped) 5195 { 5196 5197 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5198 IOStream *stream = ctx->m_stream; 5199 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5200 bool useChecksum = checksumCalculator->getVersion() > 0; 5201 5202 const unsigned int __size_mapped = ((mapped != NULL) ? length : 0); 5203 unsigned char *ptr; 5204 unsigned char *buf; 5205 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 0 + 1*4; 5206 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5207 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5208 buf = stream->alloc(totalSize); 5209 ptr = buf; 5210 int tmp = OP_glMapBufferRangeAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 5211 memcpy(ptr, &totalSize, 4); ptr += 4; 5212 5213 memcpy(ptr, &target, 4); ptr += 4; 5214 memcpy(ptr, &offset, 4); ptr += 4; 5215 memcpy(ptr, &length, 4); ptr += 4; 5216 memcpy(ptr, &access, 4); ptr += 4; 5217 *(unsigned int *)(ptr) = __size_mapped; ptr += 4; 5218 5219 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5220 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5221 5222 if (mapped != NULL) { 5223 stream->readback(mapped, __size_mapped); 5224 if (useChecksum) checksumCalculator->addBuffer(mapped, __size_mapped); 5225 } 5226 if (useChecksum) { 5227 unsigned char *checksumBufPtr = NULL; 5228 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 5229 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 5230 stream->readback(checksumBufPtr, checksumSize); 5231 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 5232 ALOGE("glMapBufferRangeAEMU: GL communication error, please report this issue to b.android.com.\n"); 5233 abort(); 5234 } 5235 } 5236 } 5237 5238 void glUnmapBufferAEMU_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* guest_buffer, GLboolean* out_res) 5239 { 5240 5241 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5242 IOStream *stream = ctx->m_stream; 5243 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5244 bool useChecksum = checksumCalculator->getVersion() > 0; 5245 5246 const unsigned int __size_guest_buffer = ((guest_buffer != NULL) ? length : 0); 5247 const unsigned int __size_out_res = (sizeof(GLboolean)); 5248 unsigned char *ptr; 5249 unsigned char *buf; 5250 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + __size_guest_buffer + 0 + 2*4; 5251 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5252 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5253 buf = stream->alloc(totalSize); 5254 ptr = buf; 5255 int tmp = OP_glUnmapBufferAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 5256 memcpy(ptr, &totalSize, 4); ptr += 4; 5257 5258 memcpy(ptr, &target, 4); ptr += 4; 5259 memcpy(ptr, &offset, 4); ptr += 4; 5260 memcpy(ptr, &length, 4); ptr += 4; 5261 memcpy(ptr, &access, 4); ptr += 4; 5262 *(unsigned int *)(ptr) = __size_guest_buffer; ptr += 4; 5263 if (guest_buffer != NULL) memcpy(ptr, guest_buffer, __size_guest_buffer);ptr += __size_guest_buffer; 5264 *(unsigned int *)(ptr) = __size_out_res; ptr += 4; 5265 5266 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5267 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5268 5269 stream->readback(out_res, __size_out_res); 5270 if (useChecksum) checksumCalculator->addBuffer(out_res, __size_out_res); 5271 if (useChecksum) { 5272 unsigned char *checksumBufPtr = NULL; 5273 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 5274 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 5275 stream->readback(checksumBufPtr, checksumSize); 5276 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 5277 ALOGE("glUnmapBufferAEMU: GL communication error, please report this issue to b.android.com.\n"); 5278 abort(); 5279 } 5280 } 5281 } 5282 5283 void glFlushMappedBufferRangeAEMU_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* guest_buffer) 5284 { 5285 5286 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5287 IOStream *stream = ctx->m_stream; 5288 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5289 bool useChecksum = checksumCalculator->getVersion() > 0; 5290 5291 const unsigned int __size_guest_buffer = ((guest_buffer != NULL) ? length : 0); 5292 unsigned char *ptr; 5293 unsigned char *buf; 5294 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + __size_guest_buffer + 1*4; 5295 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5296 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5297 buf = stream->alloc(totalSize); 5298 ptr = buf; 5299 int tmp = OP_glFlushMappedBufferRangeAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 5300 memcpy(ptr, &totalSize, 4); ptr += 4; 5301 5302 memcpy(ptr, &target, 4); ptr += 4; 5303 memcpy(ptr, &offset, 4); ptr += 4; 5304 memcpy(ptr, &length, 4); ptr += 4; 5305 memcpy(ptr, &access, 4); ptr += 4; 5306 *(unsigned int *)(ptr) = __size_guest_buffer; ptr += 4; 5307 if (guest_buffer != NULL) memcpy(ptr, guest_buffer, __size_guest_buffer);ptr += __size_guest_buffer; 5308 5309 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5310 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5311 5312 } 5313 5314 void glReadPixelsOffsetAEMU_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLuint offset) 5315 { 5316 5317 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5318 IOStream *stream = ctx->m_stream; 5319 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5320 bool useChecksum = checksumCalculator->getVersion() > 0; 5321 5322 unsigned char *ptr; 5323 unsigned char *buf; 5324 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 5325 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5326 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5327 buf = stream->alloc(totalSize); 5328 ptr = buf; 5329 int tmp = OP_glReadPixelsOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 5330 memcpy(ptr, &totalSize, 4); ptr += 4; 5331 5332 memcpy(ptr, &x, 4); ptr += 4; 5333 memcpy(ptr, &y, 4); ptr += 4; 5334 memcpy(ptr, &width, 4); ptr += 4; 5335 memcpy(ptr, &height, 4); ptr += 4; 5336 memcpy(ptr, &format, 4); ptr += 4; 5337 memcpy(ptr, &type, 4); ptr += 4; 5338 memcpy(ptr, &offset, 4); ptr += 4; 5339 5340 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5341 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5342 5343 } 5344 5345 void glCompressedTexImage2DOffsetAEMU_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLuint offset) 5346 { 5347 5348 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5349 IOStream *stream = ctx->m_stream; 5350 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5351 bool useChecksum = checksumCalculator->getVersion() > 0; 5352 5353 unsigned char *ptr; 5354 unsigned char *buf; 5355 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 5356 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5357 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5358 buf = stream->alloc(totalSize); 5359 ptr = buf; 5360 int tmp = OP_glCompressedTexImage2DOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 5361 memcpy(ptr, &totalSize, 4); ptr += 4; 5362 5363 memcpy(ptr, &target, 4); ptr += 4; 5364 memcpy(ptr, &level, 4); ptr += 4; 5365 memcpy(ptr, &internalformat, 4); ptr += 4; 5366 memcpy(ptr, &width, 4); ptr += 4; 5367 memcpy(ptr, &height, 4); ptr += 4; 5368 memcpy(ptr, &border, 4); ptr += 4; 5369 memcpy(ptr, &imageSize, 4); ptr += 4; 5370 memcpy(ptr, &offset, 4); ptr += 4; 5371 5372 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5373 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5374 5375 } 5376 5377 void glCompressedTexSubImage2DOffsetAEMU_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLuint offset) 5378 { 5379 5380 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5381 IOStream *stream = ctx->m_stream; 5382 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5383 bool useChecksum = checksumCalculator->getVersion() > 0; 5384 5385 unsigned char *ptr; 5386 unsigned char *buf; 5387 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 5388 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5389 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5390 buf = stream->alloc(totalSize); 5391 ptr = buf; 5392 int tmp = OP_glCompressedTexSubImage2DOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 5393 memcpy(ptr, &totalSize, 4); ptr += 4; 5394 5395 memcpy(ptr, &target, 4); ptr += 4; 5396 memcpy(ptr, &level, 4); ptr += 4; 5397 memcpy(ptr, &xoffset, 4); ptr += 4; 5398 memcpy(ptr, &yoffset, 4); ptr += 4; 5399 memcpy(ptr, &width, 4); ptr += 4; 5400 memcpy(ptr, &height, 4); ptr += 4; 5401 memcpy(ptr, &format, 4); ptr += 4; 5402 memcpy(ptr, &imageSize, 4); ptr += 4; 5403 memcpy(ptr, &offset, 4); ptr += 4; 5404 5405 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5406 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5407 5408 } 5409 5410 void glTexImage2DOffsetAEMU_enc(void *self , GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLuint offset) 5411 { 5412 5413 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5414 IOStream *stream = ctx->m_stream; 5415 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5416 bool useChecksum = checksumCalculator->getVersion() > 0; 5417 5418 unsigned char *ptr; 5419 unsigned char *buf; 5420 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 5421 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5422 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5423 buf = stream->alloc(totalSize); 5424 ptr = buf; 5425 int tmp = OP_glTexImage2DOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 5426 memcpy(ptr, &totalSize, 4); ptr += 4; 5427 5428 memcpy(ptr, &target, 4); ptr += 4; 5429 memcpy(ptr, &level, 4); ptr += 4; 5430 memcpy(ptr, &internalformat, 4); ptr += 4; 5431 memcpy(ptr, &width, 4); ptr += 4; 5432 memcpy(ptr, &height, 4); ptr += 4; 5433 memcpy(ptr, &border, 4); ptr += 4; 5434 memcpy(ptr, &format, 4); ptr += 4; 5435 memcpy(ptr, &type, 4); ptr += 4; 5436 memcpy(ptr, &offset, 4); ptr += 4; 5437 5438 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5439 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5440 5441 } 5442 5443 void glTexSubImage2DOffsetAEMU_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLuint offset) 5444 { 5445 5446 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5447 IOStream *stream = ctx->m_stream; 5448 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5449 bool useChecksum = checksumCalculator->getVersion() > 0; 5450 5451 unsigned char *ptr; 5452 unsigned char *buf; 5453 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 5454 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5455 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5456 buf = stream->alloc(totalSize); 5457 ptr = buf; 5458 int tmp = OP_glTexSubImage2DOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 5459 memcpy(ptr, &totalSize, 4); ptr += 4; 5460 5461 memcpy(ptr, &target, 4); ptr += 4; 5462 memcpy(ptr, &level, 4); ptr += 4; 5463 memcpy(ptr, &xoffset, 4); ptr += 4; 5464 memcpy(ptr, &yoffset, 4); ptr += 4; 5465 memcpy(ptr, &width, 4); ptr += 4; 5466 memcpy(ptr, &height, 4); ptr += 4; 5467 memcpy(ptr, &format, 4); ptr += 4; 5468 memcpy(ptr, &type, 4); ptr += 4; 5469 memcpy(ptr, &offset, 4); ptr += 4; 5470 5471 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5472 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5473 5474 } 5475 5476 void glBindBufferRange_enc(void *self , GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) 5477 { 5478 5479 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5480 IOStream *stream = ctx->m_stream; 5481 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5482 bool useChecksum = checksumCalculator->getVersion() > 0; 5483 5484 unsigned char *ptr; 5485 unsigned char *buf; 5486 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 5487 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5488 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5489 buf = stream->alloc(totalSize); 5490 ptr = buf; 5491 int tmp = OP_glBindBufferRange;memcpy(ptr, &tmp, 4); ptr += 4; 5492 memcpy(ptr, &totalSize, 4); ptr += 4; 5493 5494 memcpy(ptr, &target, 4); ptr += 4; 5495 memcpy(ptr, &index, 4); ptr += 4; 5496 memcpy(ptr, &buffer, 4); ptr += 4; 5497 memcpy(ptr, &offset, 4); ptr += 4; 5498 memcpy(ptr, &size, 4); ptr += 4; 5499 5500 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5501 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5502 5503 } 5504 5505 void glBindBufferBase_enc(void *self , GLenum target, GLuint index, GLuint buffer) 5506 { 5507 5508 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5509 IOStream *stream = ctx->m_stream; 5510 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5511 bool useChecksum = checksumCalculator->getVersion() > 0; 5512 5513 unsigned char *ptr; 5514 unsigned char *buf; 5515 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 5516 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5517 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5518 buf = stream->alloc(totalSize); 5519 ptr = buf; 5520 int tmp = OP_glBindBufferBase;memcpy(ptr, &tmp, 4); ptr += 4; 5521 memcpy(ptr, &totalSize, 4); ptr += 4; 5522 5523 memcpy(ptr, &target, 4); ptr += 4; 5524 memcpy(ptr, &index, 4); ptr += 4; 5525 memcpy(ptr, &buffer, 4); ptr += 4; 5526 5527 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5528 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5529 5530 } 5531 5532 void glCopyBufferSubData_enc(void *self , GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size) 5533 { 5534 5535 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5536 IOStream *stream = ctx->m_stream; 5537 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5538 bool useChecksum = checksumCalculator->getVersion() > 0; 5539 5540 unsigned char *ptr; 5541 unsigned char *buf; 5542 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 5543 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5544 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5545 buf = stream->alloc(totalSize); 5546 ptr = buf; 5547 int tmp = OP_glCopyBufferSubData;memcpy(ptr, &tmp, 4); ptr += 4; 5548 memcpy(ptr, &totalSize, 4); ptr += 4; 5549 5550 memcpy(ptr, &readtarget, 4); ptr += 4; 5551 memcpy(ptr, &writetarget, 4); ptr += 4; 5552 memcpy(ptr, &readoffset, 4); ptr += 4; 5553 memcpy(ptr, &writeoffset, 4); ptr += 4; 5554 memcpy(ptr, &size, 4); ptr += 4; 5555 5556 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5557 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5558 5559 stream->flush(); 5560 } 5561 5562 void glClearBufferiv_enc(void *self , GLenum buffer, GLint drawBuffer, const GLint* value) 5563 { 5564 5565 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5566 IOStream *stream = ctx->m_stream; 5567 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5568 bool useChecksum = checksumCalculator->getVersion() > 0; 5569 5570 const unsigned int __size_value = (sizeof(GLint) * glesv2_enc::clearBufferNumElts(self, buffer)); 5571 unsigned char *ptr; 5572 unsigned char *buf; 5573 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_value + 1*4; 5574 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5575 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5576 buf = stream->alloc(totalSize); 5577 ptr = buf; 5578 int tmp = OP_glClearBufferiv;memcpy(ptr, &tmp, 4); ptr += 4; 5579 memcpy(ptr, &totalSize, 4); ptr += 4; 5580 5581 memcpy(ptr, &buffer, 4); ptr += 4; 5582 memcpy(ptr, &drawBuffer, 4); ptr += 4; 5583 *(unsigned int *)(ptr) = __size_value; ptr += 4; 5584 memcpy(ptr, value, __size_value);ptr += __size_value; 5585 5586 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5587 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5588 5589 } 5590 5591 void glClearBufferuiv_enc(void *self , GLenum buffer, GLint drawBuffer, const GLuint* value) 5592 { 5593 5594 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5595 IOStream *stream = ctx->m_stream; 5596 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5597 bool useChecksum = checksumCalculator->getVersion() > 0; 5598 5599 const unsigned int __size_value = (sizeof(GLuint) * glesv2_enc::clearBufferNumElts(self, buffer)); 5600 unsigned char *ptr; 5601 unsigned char *buf; 5602 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_value + 1*4; 5603 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5604 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5605 buf = stream->alloc(totalSize); 5606 ptr = buf; 5607 int tmp = OP_glClearBufferuiv;memcpy(ptr, &tmp, 4); ptr += 4; 5608 memcpy(ptr, &totalSize, 4); ptr += 4; 5609 5610 memcpy(ptr, &buffer, 4); ptr += 4; 5611 memcpy(ptr, &drawBuffer, 4); ptr += 4; 5612 *(unsigned int *)(ptr) = __size_value; ptr += 4; 5613 memcpy(ptr, value, __size_value);ptr += __size_value; 5614 5615 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5616 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5617 5618 } 5619 5620 void glClearBufferfv_enc(void *self , GLenum buffer, GLint drawBuffer, const GLfloat* value) 5621 { 5622 5623 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5624 IOStream *stream = ctx->m_stream; 5625 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5626 bool useChecksum = checksumCalculator->getVersion() > 0; 5627 5628 const unsigned int __size_value = (sizeof(GLfloat) * glesv2_enc::clearBufferNumElts(self, buffer)); 5629 unsigned char *ptr; 5630 unsigned char *buf; 5631 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_value + 1*4; 5632 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5633 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5634 buf = stream->alloc(totalSize); 5635 ptr = buf; 5636 int tmp = OP_glClearBufferfv;memcpy(ptr, &tmp, 4); ptr += 4; 5637 memcpy(ptr, &totalSize, 4); ptr += 4; 5638 5639 memcpy(ptr, &buffer, 4); ptr += 4; 5640 memcpy(ptr, &drawBuffer, 4); ptr += 4; 5641 *(unsigned int *)(ptr) = __size_value; ptr += 4; 5642 memcpy(ptr, value, __size_value);ptr += __size_value; 5643 5644 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5645 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5646 5647 } 5648 5649 void glClearBufferfi_enc(void *self , GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil) 5650 { 5651 5652 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5653 IOStream *stream = ctx->m_stream; 5654 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5655 bool useChecksum = checksumCalculator->getVersion() > 0; 5656 5657 unsigned char *ptr; 5658 unsigned char *buf; 5659 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 5660 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5661 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5662 buf = stream->alloc(totalSize); 5663 ptr = buf; 5664 int tmp = OP_glClearBufferfi;memcpy(ptr, &tmp, 4); ptr += 4; 5665 memcpy(ptr, &totalSize, 4); ptr += 4; 5666 5667 memcpy(ptr, &buffer, 4); ptr += 4; 5668 memcpy(ptr, &drawBuffer, 4); ptr += 4; 5669 memcpy(ptr, &depth, 4); ptr += 4; 5670 memcpy(ptr, &stencil, 4); ptr += 4; 5671 5672 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5673 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5674 5675 } 5676 5677 void glUniformBlockBinding_enc(void *self , GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) 5678 { 5679 5680 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5681 IOStream *stream = ctx->m_stream; 5682 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5683 bool useChecksum = checksumCalculator->getVersion() > 0; 5684 5685 unsigned char *ptr; 5686 unsigned char *buf; 5687 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 5688 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5689 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5690 buf = stream->alloc(totalSize); 5691 ptr = buf; 5692 int tmp = OP_glUniformBlockBinding;memcpy(ptr, &tmp, 4); ptr += 4; 5693 memcpy(ptr, &totalSize, 4); ptr += 4; 5694 5695 memcpy(ptr, &program, 4); ptr += 4; 5696 memcpy(ptr, &uniformBlockIndex, 4); ptr += 4; 5697 memcpy(ptr, &uniformBlockBinding, 4); ptr += 4; 5698 5699 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5700 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5701 5702 } 5703 5704 GLuint glGetUniformBlockIndex_enc(void *self , GLuint program, const GLchar* uniformBlockName) 5705 { 5706 5707 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5708 IOStream *stream = ctx->m_stream; 5709 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5710 bool useChecksum = checksumCalculator->getVersion() > 0; 5711 5712 const unsigned int __size_uniformBlockName = (strlen(uniformBlockName) + 1); 5713 unsigned char *ptr; 5714 unsigned char *buf; 5715 const size_t sizeWithoutChecksum = 8 + 4 + __size_uniformBlockName + 1*4; 5716 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5717 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5718 buf = stream->alloc(totalSize); 5719 ptr = buf; 5720 int tmp = OP_glGetUniformBlockIndex;memcpy(ptr, &tmp, 4); ptr += 4; 5721 memcpy(ptr, &totalSize, 4); ptr += 4; 5722 5723 memcpy(ptr, &program, 4); ptr += 4; 5724 *(unsigned int *)(ptr) = __size_uniformBlockName; ptr += 4; 5725 memcpy(ptr, uniformBlockName, __size_uniformBlockName);ptr += __size_uniformBlockName; 5726 5727 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5728 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5729 5730 5731 GLuint retval; 5732 stream->readback(&retval, 4); 5733 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 5734 if (useChecksum) { 5735 unsigned char *checksumBufPtr = NULL; 5736 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 5737 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 5738 stream->readback(checksumBufPtr, checksumSize); 5739 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 5740 ALOGE("glGetUniformBlockIndex: GL communication error, please report this issue to b.android.com.\n"); 5741 abort(); 5742 } 5743 } 5744 return retval; 5745 } 5746 5747 void glGetUniformIndicesAEMU_enc(void *self , GLuint program, GLsizei uniformCount, const GLchar* packedUniformNames, GLsizei packedLen, GLuint* uniformIndices) 5748 { 5749 5750 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5751 IOStream *stream = ctx->m_stream; 5752 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5753 bool useChecksum = checksumCalculator->getVersion() > 0; 5754 5755 const unsigned int __size_packedUniformNames = packedLen; 5756 const unsigned int __size_uniformIndices = (uniformCount * sizeof(GLuint)); 5757 unsigned char *ptr; 5758 unsigned char *buf; 5759 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_packedUniformNames + 4 + 0 + 2*4; 5760 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5761 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5762 buf = stream->alloc(totalSize); 5763 ptr = buf; 5764 int tmp = OP_glGetUniformIndicesAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 5765 memcpy(ptr, &totalSize, 4); ptr += 4; 5766 5767 memcpy(ptr, &program, 4); ptr += 4; 5768 memcpy(ptr, &uniformCount, 4); ptr += 4; 5769 *(unsigned int *)(ptr) = __size_packedUniformNames; ptr += 4; 5770 memcpy(ptr, packedUniformNames, __size_packedUniformNames);ptr += __size_packedUniformNames; 5771 memcpy(ptr, &packedLen, 4); ptr += 4; 5772 *(unsigned int *)(ptr) = __size_uniformIndices; ptr += 4; 5773 5774 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5775 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5776 5777 stream->readback(uniformIndices, __size_uniformIndices); 5778 if (useChecksum) checksumCalculator->addBuffer(uniformIndices, __size_uniformIndices); 5779 if (useChecksum) { 5780 unsigned char *checksumBufPtr = NULL; 5781 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 5782 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 5783 stream->readback(checksumBufPtr, checksumSize); 5784 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 5785 ALOGE("glGetUniformIndicesAEMU: GL communication error, please report this issue to b.android.com.\n"); 5786 abort(); 5787 } 5788 } 5789 } 5790 5791 void glGetActiveUniformBlockiv_enc(void *self , GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params) 5792 { 5793 5794 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5795 IOStream *stream = ctx->m_stream; 5796 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5797 bool useChecksum = checksumCalculator->getVersion() > 0; 5798 5799 const unsigned int __size_params = (glesv2_enc::glActiveUniformBlockivParamSize(self, program, uniformBlockIndex, pname) * sizeof(GLint)); 5800 unsigned char *ptr; 5801 unsigned char *buf; 5802 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 0 + 1*4; 5803 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5804 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5805 buf = stream->alloc(totalSize); 5806 ptr = buf; 5807 int tmp = OP_glGetActiveUniformBlockiv;memcpy(ptr, &tmp, 4); ptr += 4; 5808 memcpy(ptr, &totalSize, 4); ptr += 4; 5809 5810 memcpy(ptr, &program, 4); ptr += 4; 5811 memcpy(ptr, &uniformBlockIndex, 4); ptr += 4; 5812 memcpy(ptr, &pname, 4); ptr += 4; 5813 *(unsigned int *)(ptr) = __size_params; ptr += 4; 5814 5815 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5816 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5817 5818 stream->readback(params, __size_params); 5819 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 5820 if (useChecksum) { 5821 unsigned char *checksumBufPtr = NULL; 5822 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 5823 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 5824 stream->readback(checksumBufPtr, checksumSize); 5825 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 5826 ALOGE("glGetActiveUniformBlockiv: GL communication error, please report this issue to b.android.com.\n"); 5827 abort(); 5828 } 5829 } 5830 } 5831 5832 void glGetActiveUniformBlockName_enc(void *self , GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName) 5833 { 5834 5835 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5836 IOStream *stream = ctx->m_stream; 5837 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5838 bool useChecksum = checksumCalculator->getVersion() > 0; 5839 5840 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0); 5841 const unsigned int __size_uniformBlockName = ((uniformBlockName != NULL) ? bufSize : 0); 5842 unsigned char *ptr; 5843 unsigned char *buf; 5844 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 0 + 0 + 2*4; 5845 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5846 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5847 buf = stream->alloc(totalSize); 5848 ptr = buf; 5849 int tmp = OP_glGetActiveUniformBlockName;memcpy(ptr, &tmp, 4); ptr += 4; 5850 memcpy(ptr, &totalSize, 4); ptr += 4; 5851 5852 memcpy(ptr, &program, 4); ptr += 4; 5853 memcpy(ptr, &uniformBlockIndex, 4); ptr += 4; 5854 memcpy(ptr, &bufSize, 4); ptr += 4; 5855 *(unsigned int *)(ptr) = __size_length; ptr += 4; 5856 *(unsigned int *)(ptr) = __size_uniformBlockName; ptr += 4; 5857 5858 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5859 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5860 5861 if (length != NULL) { 5862 stream->readback(length, __size_length); 5863 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 5864 } 5865 if (uniformBlockName != NULL) { 5866 stream->readback(uniformBlockName, __size_uniformBlockName); 5867 if (useChecksum) checksumCalculator->addBuffer(uniformBlockName, __size_uniformBlockName); 5868 } 5869 if (useChecksum) { 5870 unsigned char *checksumBufPtr = NULL; 5871 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 5872 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 5873 stream->readback(checksumBufPtr, checksumSize); 5874 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 5875 ALOGE("glGetActiveUniformBlockName: GL communication error, please report this issue to b.android.com.\n"); 5876 abort(); 5877 } 5878 } 5879 } 5880 5881 void glUniform1ui_enc(void *self , GLint location, GLuint v0) 5882 { 5883 5884 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5885 IOStream *stream = ctx->m_stream; 5886 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5887 bool useChecksum = checksumCalculator->getVersion() > 0; 5888 5889 unsigned char *ptr; 5890 unsigned char *buf; 5891 const size_t sizeWithoutChecksum = 8 + 4 + 4; 5892 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5893 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5894 buf = stream->alloc(totalSize); 5895 ptr = buf; 5896 int tmp = OP_glUniform1ui;memcpy(ptr, &tmp, 4); ptr += 4; 5897 memcpy(ptr, &totalSize, 4); ptr += 4; 5898 5899 memcpy(ptr, &location, 4); ptr += 4; 5900 memcpy(ptr, &v0, 4); ptr += 4; 5901 5902 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5903 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5904 5905 } 5906 5907 void glUniform2ui_enc(void *self , GLint location, GLuint v0, GLuint v1) 5908 { 5909 5910 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5911 IOStream *stream = ctx->m_stream; 5912 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5913 bool useChecksum = checksumCalculator->getVersion() > 0; 5914 5915 unsigned char *ptr; 5916 unsigned char *buf; 5917 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 5918 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5919 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5920 buf = stream->alloc(totalSize); 5921 ptr = buf; 5922 int tmp = OP_glUniform2ui;memcpy(ptr, &tmp, 4); ptr += 4; 5923 memcpy(ptr, &totalSize, 4); ptr += 4; 5924 5925 memcpy(ptr, &location, 4); ptr += 4; 5926 memcpy(ptr, &v0, 4); ptr += 4; 5927 memcpy(ptr, &v1, 4); ptr += 4; 5928 5929 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5930 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5931 5932 } 5933 5934 void glUniform3ui_enc(void *self , GLint location, GLuint v0, GLuint v1, GLuint v2) 5935 { 5936 5937 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5938 IOStream *stream = ctx->m_stream; 5939 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5940 bool useChecksum = checksumCalculator->getVersion() > 0; 5941 5942 unsigned char *ptr; 5943 unsigned char *buf; 5944 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 5945 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5946 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5947 buf = stream->alloc(totalSize); 5948 ptr = buf; 5949 int tmp = OP_glUniform3ui;memcpy(ptr, &tmp, 4); ptr += 4; 5950 memcpy(ptr, &totalSize, 4); ptr += 4; 5951 5952 memcpy(ptr, &location, 4); ptr += 4; 5953 memcpy(ptr, &v0, 4); ptr += 4; 5954 memcpy(ptr, &v1, 4); ptr += 4; 5955 memcpy(ptr, &v2, 4); ptr += 4; 5956 5957 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5958 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5959 5960 } 5961 5962 void glUniform4ui_enc(void *self , GLint location, GLint v0, GLuint v1, GLuint v2, GLuint v3) 5963 { 5964 5965 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5966 IOStream *stream = ctx->m_stream; 5967 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5968 bool useChecksum = checksumCalculator->getVersion() > 0; 5969 5970 unsigned char *ptr; 5971 unsigned char *buf; 5972 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 5973 const size_t checksumSize = checksumCalculator->checksumByteSize(); 5974 const size_t totalSize = sizeWithoutChecksum + checksumSize; 5975 buf = stream->alloc(totalSize); 5976 ptr = buf; 5977 int tmp = OP_glUniform4ui;memcpy(ptr, &tmp, 4); ptr += 4; 5978 memcpy(ptr, &totalSize, 4); ptr += 4; 5979 5980 memcpy(ptr, &location, 4); ptr += 4; 5981 memcpy(ptr, &v0, 4); ptr += 4; 5982 memcpy(ptr, &v1, 4); ptr += 4; 5983 memcpy(ptr, &v2, 4); ptr += 4; 5984 memcpy(ptr, &v3, 4); ptr += 4; 5985 5986 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 5987 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 5988 5989 } 5990 5991 void glUniform1uiv_enc(void *self , GLint location, GLsizei count, const GLuint* value) 5992 { 5993 5994 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 5995 IOStream *stream = ctx->m_stream; 5996 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 5997 bool useChecksum = checksumCalculator->getVersion() > 0; 5998 5999 const unsigned int __size_value = (count * sizeof(GLuint)); 6000 unsigned char *ptr; 6001 unsigned char *buf; 6002 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_value + 1*4; 6003 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6004 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6005 buf = stream->alloc(totalSize); 6006 ptr = buf; 6007 int tmp = OP_glUniform1uiv;memcpy(ptr, &tmp, 4); ptr += 4; 6008 memcpy(ptr, &totalSize, 4); ptr += 4; 6009 6010 memcpy(ptr, &location, 4); ptr += 4; 6011 memcpy(ptr, &count, 4); ptr += 4; 6012 *(unsigned int *)(ptr) = __size_value; ptr += 4; 6013 memcpy(ptr, value, __size_value);ptr += __size_value; 6014 6015 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6016 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6017 6018 } 6019 6020 void glUniform2uiv_enc(void *self , GLint location, GLsizei count, const GLuint* value) 6021 { 6022 6023 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6024 IOStream *stream = ctx->m_stream; 6025 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6026 bool useChecksum = checksumCalculator->getVersion() > 0; 6027 6028 const unsigned int __size_value = (count * 2 * sizeof(GLuint)); 6029 unsigned char *ptr; 6030 unsigned char *buf; 6031 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_value + 1*4; 6032 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6033 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6034 buf = stream->alloc(totalSize); 6035 ptr = buf; 6036 int tmp = OP_glUniform2uiv;memcpy(ptr, &tmp, 4); ptr += 4; 6037 memcpy(ptr, &totalSize, 4); ptr += 4; 6038 6039 memcpy(ptr, &location, 4); ptr += 4; 6040 memcpy(ptr, &count, 4); ptr += 4; 6041 *(unsigned int *)(ptr) = __size_value; ptr += 4; 6042 memcpy(ptr, value, __size_value);ptr += __size_value; 6043 6044 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6045 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6046 6047 } 6048 6049 void glUniform3uiv_enc(void *self , GLint location, GLsizei count, const GLuint* value) 6050 { 6051 6052 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6053 IOStream *stream = ctx->m_stream; 6054 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6055 bool useChecksum = checksumCalculator->getVersion() > 0; 6056 6057 const unsigned int __size_value = (count * 3 * sizeof(GLuint)); 6058 unsigned char *ptr; 6059 unsigned char *buf; 6060 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_value + 1*4; 6061 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6062 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6063 buf = stream->alloc(totalSize); 6064 ptr = buf; 6065 int tmp = OP_glUniform3uiv;memcpy(ptr, &tmp, 4); ptr += 4; 6066 memcpy(ptr, &totalSize, 4); ptr += 4; 6067 6068 memcpy(ptr, &location, 4); ptr += 4; 6069 memcpy(ptr, &count, 4); ptr += 4; 6070 *(unsigned int *)(ptr) = __size_value; ptr += 4; 6071 memcpy(ptr, value, __size_value);ptr += __size_value; 6072 6073 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6074 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6075 6076 } 6077 6078 void glUniform4uiv_enc(void *self , GLint location, GLsizei count, const GLuint* value) 6079 { 6080 6081 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6082 IOStream *stream = ctx->m_stream; 6083 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6084 bool useChecksum = checksumCalculator->getVersion() > 0; 6085 6086 const unsigned int __size_value = (count * 4 * sizeof(GLuint)); 6087 unsigned char *ptr; 6088 unsigned char *buf; 6089 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_value + 1*4; 6090 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6091 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6092 buf = stream->alloc(totalSize); 6093 ptr = buf; 6094 int tmp = OP_glUniform4uiv;memcpy(ptr, &tmp, 4); ptr += 4; 6095 memcpy(ptr, &totalSize, 4); ptr += 4; 6096 6097 memcpy(ptr, &location, 4); ptr += 4; 6098 memcpy(ptr, &count, 4); ptr += 4; 6099 *(unsigned int *)(ptr) = __size_value; ptr += 4; 6100 memcpy(ptr, value, __size_value);ptr += __size_value; 6101 6102 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6103 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6104 6105 } 6106 6107 void glUniformMatrix2x3fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 6108 { 6109 6110 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6111 IOStream *stream = ctx->m_stream; 6112 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6113 bool useChecksum = checksumCalculator->getVersion() > 0; 6114 6115 const unsigned int __size_value = (count * 6 * sizeof(GLfloat)); 6116 unsigned char *ptr; 6117 unsigned char *buf; 6118 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4; 6119 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6120 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6121 buf = stream->alloc(totalSize); 6122 ptr = buf; 6123 int tmp = OP_glUniformMatrix2x3fv;memcpy(ptr, &tmp, 4); ptr += 4; 6124 memcpy(ptr, &totalSize, 4); ptr += 4; 6125 6126 memcpy(ptr, &location, 4); ptr += 4; 6127 memcpy(ptr, &count, 4); ptr += 4; 6128 memcpy(ptr, &transpose, 1); ptr += 1; 6129 *(unsigned int *)(ptr) = __size_value; ptr += 4; 6130 memcpy(ptr, value, __size_value);ptr += __size_value; 6131 6132 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6133 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6134 6135 } 6136 6137 void glUniformMatrix3x2fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 6138 { 6139 6140 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6141 IOStream *stream = ctx->m_stream; 6142 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6143 bool useChecksum = checksumCalculator->getVersion() > 0; 6144 6145 const unsigned int __size_value = (count * 6 * sizeof(GLfloat)); 6146 unsigned char *ptr; 6147 unsigned char *buf; 6148 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4; 6149 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6150 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6151 buf = stream->alloc(totalSize); 6152 ptr = buf; 6153 int tmp = OP_glUniformMatrix3x2fv;memcpy(ptr, &tmp, 4); ptr += 4; 6154 memcpy(ptr, &totalSize, 4); ptr += 4; 6155 6156 memcpy(ptr, &location, 4); ptr += 4; 6157 memcpy(ptr, &count, 4); ptr += 4; 6158 memcpy(ptr, &transpose, 1); ptr += 1; 6159 *(unsigned int *)(ptr) = __size_value; ptr += 4; 6160 memcpy(ptr, value, __size_value);ptr += __size_value; 6161 6162 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6163 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6164 6165 } 6166 6167 void glUniformMatrix2x4fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 6168 { 6169 6170 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6171 IOStream *stream = ctx->m_stream; 6172 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6173 bool useChecksum = checksumCalculator->getVersion() > 0; 6174 6175 const unsigned int __size_value = (count * 8 * sizeof(GLfloat)); 6176 unsigned char *ptr; 6177 unsigned char *buf; 6178 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4; 6179 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6180 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6181 buf = stream->alloc(totalSize); 6182 ptr = buf; 6183 int tmp = OP_glUniformMatrix2x4fv;memcpy(ptr, &tmp, 4); ptr += 4; 6184 memcpy(ptr, &totalSize, 4); ptr += 4; 6185 6186 memcpy(ptr, &location, 4); ptr += 4; 6187 memcpy(ptr, &count, 4); ptr += 4; 6188 memcpy(ptr, &transpose, 1); ptr += 1; 6189 *(unsigned int *)(ptr) = __size_value; ptr += 4; 6190 memcpy(ptr, value, __size_value);ptr += __size_value; 6191 6192 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6193 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6194 6195 } 6196 6197 void glUniformMatrix4x2fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 6198 { 6199 6200 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6201 IOStream *stream = ctx->m_stream; 6202 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6203 bool useChecksum = checksumCalculator->getVersion() > 0; 6204 6205 const unsigned int __size_value = (count * 8 * sizeof(GLfloat)); 6206 unsigned char *ptr; 6207 unsigned char *buf; 6208 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*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_glUniformMatrix4x2fv;memcpy(ptr, &tmp, 4); ptr += 4; 6214 memcpy(ptr, &totalSize, 4); ptr += 4; 6215 6216 memcpy(ptr, &location, 4); ptr += 4; 6217 memcpy(ptr, &count, 4); ptr += 4; 6218 memcpy(ptr, &transpose, 1); ptr += 1; 6219 *(unsigned int *)(ptr) = __size_value; ptr += 4; 6220 memcpy(ptr, value, __size_value);ptr += __size_value; 6221 6222 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6223 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6224 6225 } 6226 6227 void glUniformMatrix3x4fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 6228 { 6229 6230 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6231 IOStream *stream = ctx->m_stream; 6232 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6233 bool useChecksum = checksumCalculator->getVersion() > 0; 6234 6235 const unsigned int __size_value = (count * 12 * sizeof(GLfloat)); 6236 unsigned char *ptr; 6237 unsigned char *buf; 6238 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4; 6239 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6240 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6241 buf = stream->alloc(totalSize); 6242 ptr = buf; 6243 int tmp = OP_glUniformMatrix3x4fv;memcpy(ptr, &tmp, 4); ptr += 4; 6244 memcpy(ptr, &totalSize, 4); ptr += 4; 6245 6246 memcpy(ptr, &location, 4); ptr += 4; 6247 memcpy(ptr, &count, 4); ptr += 4; 6248 memcpy(ptr, &transpose, 1); ptr += 1; 6249 *(unsigned int *)(ptr) = __size_value; ptr += 4; 6250 memcpy(ptr, value, __size_value);ptr += __size_value; 6251 6252 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6253 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6254 6255 } 6256 6257 void glUniformMatrix4x3fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 6258 { 6259 6260 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6261 IOStream *stream = ctx->m_stream; 6262 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6263 bool useChecksum = checksumCalculator->getVersion() > 0; 6264 6265 const unsigned int __size_value = (count * 12 * sizeof(GLfloat)); 6266 unsigned char *ptr; 6267 unsigned char *buf; 6268 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 1 + __size_value + 1*4; 6269 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6270 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6271 buf = stream->alloc(totalSize); 6272 ptr = buf; 6273 int tmp = OP_glUniformMatrix4x3fv;memcpy(ptr, &tmp, 4); ptr += 4; 6274 memcpy(ptr, &totalSize, 4); ptr += 4; 6275 6276 memcpy(ptr, &location, 4); ptr += 4; 6277 memcpy(ptr, &count, 4); ptr += 4; 6278 memcpy(ptr, &transpose, 1); ptr += 1; 6279 *(unsigned int *)(ptr) = __size_value; ptr += 4; 6280 memcpy(ptr, value, __size_value);ptr += __size_value; 6281 6282 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6283 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6284 6285 } 6286 6287 void glGetUniformuiv_enc(void *self , GLuint program, GLint location, GLuint* params) 6288 { 6289 6290 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6291 IOStream *stream = ctx->m_stream; 6292 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6293 bool useChecksum = checksumCalculator->getVersion() > 0; 6294 6295 const unsigned int __size_params = glSizeof(glesv2_enc::uniformType(self, program, location)); 6296 unsigned char *ptr; 6297 unsigned char *buf; 6298 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 6299 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6300 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6301 buf = stream->alloc(totalSize); 6302 ptr = buf; 6303 int tmp = OP_glGetUniformuiv;memcpy(ptr, &tmp, 4); ptr += 4; 6304 memcpy(ptr, &totalSize, 4); ptr += 4; 6305 6306 memcpy(ptr, &program, 4); ptr += 4; 6307 memcpy(ptr, &location, 4); ptr += 4; 6308 *(unsigned int *)(ptr) = __size_params; ptr += 4; 6309 6310 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6311 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6312 6313 stream->readback(params, __size_params); 6314 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 6315 if (useChecksum) { 6316 unsigned char *checksumBufPtr = NULL; 6317 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 6318 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 6319 stream->readback(checksumBufPtr, checksumSize); 6320 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 6321 ALOGE("glGetUniformuiv: GL communication error, please report this issue to b.android.com.\n"); 6322 abort(); 6323 } 6324 } 6325 } 6326 6327 void glGetActiveUniformsiv_enc(void *self , GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params) 6328 { 6329 6330 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6331 IOStream *stream = ctx->m_stream; 6332 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6333 bool useChecksum = checksumCalculator->getVersion() > 0; 6334 6335 const unsigned int __size_uniformIndices = (uniformCount * sizeof(GLuint)); 6336 const unsigned int __size_params = (uniformCount * sizeof(GLint)); 6337 unsigned char *ptr; 6338 unsigned char *buf; 6339 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_uniformIndices + 4 + 0 + 2*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_glGetActiveUniformsiv;memcpy(ptr, &tmp, 4); ptr += 4; 6345 memcpy(ptr, &totalSize, 4); ptr += 4; 6346 6347 memcpy(ptr, &program, 4); ptr += 4; 6348 memcpy(ptr, &uniformCount, 4); ptr += 4; 6349 *(unsigned int *)(ptr) = __size_uniformIndices; ptr += 4; 6350 memcpy(ptr, uniformIndices, __size_uniformIndices);ptr += __size_uniformIndices; 6351 memcpy(ptr, &pname, 4); ptr += 4; 6352 *(unsigned int *)(ptr) = __size_params; ptr += 4; 6353 6354 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6355 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6356 6357 stream->readback(params, __size_params); 6358 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 6359 if (useChecksum) { 6360 unsigned char *checksumBufPtr = NULL; 6361 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 6362 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 6363 stream->readback(checksumBufPtr, checksumSize); 6364 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 6365 ALOGE("glGetActiveUniformsiv: GL communication error, please report this issue to b.android.com.\n"); 6366 abort(); 6367 } 6368 } 6369 } 6370 6371 void glVertexAttribI4i_enc(void *self , GLuint index, GLint v0, GLint v1, GLint v2, GLint v3) 6372 { 6373 6374 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6375 IOStream *stream = ctx->m_stream; 6376 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6377 bool useChecksum = checksumCalculator->getVersion() > 0; 6378 6379 unsigned char *ptr; 6380 unsigned char *buf; 6381 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 6382 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6383 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6384 buf = stream->alloc(totalSize); 6385 ptr = buf; 6386 int tmp = OP_glVertexAttribI4i;memcpy(ptr, &tmp, 4); ptr += 4; 6387 memcpy(ptr, &totalSize, 4); ptr += 4; 6388 6389 memcpy(ptr, &index, 4); ptr += 4; 6390 memcpy(ptr, &v0, 4); ptr += 4; 6391 memcpy(ptr, &v1, 4); ptr += 4; 6392 memcpy(ptr, &v2, 4); ptr += 4; 6393 memcpy(ptr, &v3, 4); ptr += 4; 6394 6395 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6396 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6397 6398 } 6399 6400 void glVertexAttribI4ui_enc(void *self , GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3) 6401 { 6402 6403 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6404 IOStream *stream = ctx->m_stream; 6405 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6406 bool useChecksum = checksumCalculator->getVersion() > 0; 6407 6408 unsigned char *ptr; 6409 unsigned char *buf; 6410 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 6411 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6412 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6413 buf = stream->alloc(totalSize); 6414 ptr = buf; 6415 int tmp = OP_glVertexAttribI4ui;memcpy(ptr, &tmp, 4); ptr += 4; 6416 memcpy(ptr, &totalSize, 4); ptr += 4; 6417 6418 memcpy(ptr, &index, 4); ptr += 4; 6419 memcpy(ptr, &v0, 4); ptr += 4; 6420 memcpy(ptr, &v1, 4); ptr += 4; 6421 memcpy(ptr, &v2, 4); ptr += 4; 6422 memcpy(ptr, &v3, 4); ptr += 4; 6423 6424 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6425 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6426 6427 } 6428 6429 void glVertexAttribI4iv_enc(void *self , GLuint index, const GLint* v) 6430 { 6431 6432 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6433 IOStream *stream = ctx->m_stream; 6434 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6435 bool useChecksum = checksumCalculator->getVersion() > 0; 6436 6437 const unsigned int __size_v = (4 * sizeof(GLint)); 6438 unsigned char *ptr; 6439 unsigned char *buf; 6440 const size_t sizeWithoutChecksum = 8 + 4 + __size_v + 1*4; 6441 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6442 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6443 buf = stream->alloc(totalSize); 6444 ptr = buf; 6445 int tmp = OP_glVertexAttribI4iv;memcpy(ptr, &tmp, 4); ptr += 4; 6446 memcpy(ptr, &totalSize, 4); ptr += 4; 6447 6448 memcpy(ptr, &index, 4); ptr += 4; 6449 *(unsigned int *)(ptr) = __size_v; ptr += 4; 6450 memcpy(ptr, v, __size_v);ptr += __size_v; 6451 6452 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6453 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6454 6455 } 6456 6457 void glVertexAttribI4uiv_enc(void *self , GLuint index, const GLuint* v) 6458 { 6459 6460 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6461 IOStream *stream = ctx->m_stream; 6462 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6463 bool useChecksum = checksumCalculator->getVersion() > 0; 6464 6465 const unsigned int __size_v = (4 * sizeof(GLuint)); 6466 unsigned char *ptr; 6467 unsigned char *buf; 6468 const size_t sizeWithoutChecksum = 8 + 4 + __size_v + 1*4; 6469 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6470 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6471 buf = stream->alloc(totalSize); 6472 ptr = buf; 6473 int tmp = OP_glVertexAttribI4uiv;memcpy(ptr, &tmp, 4); ptr += 4; 6474 memcpy(ptr, &totalSize, 4); ptr += 4; 6475 6476 memcpy(ptr, &index, 4); ptr += 4; 6477 *(unsigned int *)(ptr) = __size_v; ptr += 4; 6478 memcpy(ptr, v, __size_v);ptr += __size_v; 6479 6480 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6481 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6482 6483 } 6484 6485 void glVertexAttribIPointerOffsetAEMU_enc(void *self , GLuint index, GLint size, GLenum type, GLsizei stride, GLuint offset) 6486 { 6487 6488 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6489 IOStream *stream = ctx->m_stream; 6490 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6491 bool useChecksum = checksumCalculator->getVersion() > 0; 6492 6493 unsigned char *ptr; 6494 unsigned char *buf; 6495 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 6496 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6497 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6498 buf = stream->alloc(totalSize); 6499 ptr = buf; 6500 int tmp = OP_glVertexAttribIPointerOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6501 memcpy(ptr, &totalSize, 4); ptr += 4; 6502 6503 memcpy(ptr, &index, 4); ptr += 4; 6504 memcpy(ptr, &size, 4); ptr += 4; 6505 memcpy(ptr, &type, 4); ptr += 4; 6506 memcpy(ptr, &stride, 4); ptr += 4; 6507 memcpy(ptr, &offset, 4); ptr += 4; 6508 6509 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6510 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6511 6512 } 6513 6514 void glVertexAttribIPointerDataAEMU_enc(void *self , GLuint index, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen) 6515 { 6516 6517 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6518 IOStream *stream = ctx->m_stream; 6519 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6520 bool useChecksum = checksumCalculator->getVersion() > 0; 6521 6522 const unsigned int __size_data = datalen; 6523 unsigned char *ptr; 6524 unsigned char *buf; 6525 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + __size_data + 4 + 1*4; 6526 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6527 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6528 buf = stream->alloc(totalSize); 6529 ptr = buf; 6530 int tmp = OP_glVertexAttribIPointerDataAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6531 memcpy(ptr, &totalSize, 4); ptr += 4; 6532 6533 memcpy(ptr, &index, 4); ptr += 4; 6534 memcpy(ptr, &size, 4); ptr += 4; 6535 memcpy(ptr, &type, 4); ptr += 4; 6536 memcpy(ptr, &stride, 4); ptr += 4; 6537 *(unsigned int *)(ptr) = __size_data; ptr += 4; 6538 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data; 6539 memcpy(ptr, &datalen, 4); ptr += 4; 6540 6541 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6542 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6543 6544 } 6545 6546 void glGetVertexAttribIiv_enc(void *self , GLuint index, GLenum pname, GLint* params) 6547 { 6548 6549 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6550 IOStream *stream = ctx->m_stream; 6551 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6552 bool useChecksum = checksumCalculator->getVersion() > 0; 6553 6554 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 6555 unsigned char *ptr; 6556 unsigned char *buf; 6557 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 6558 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6559 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6560 buf = stream->alloc(totalSize); 6561 ptr = buf; 6562 int tmp = OP_glGetVertexAttribIiv;memcpy(ptr, &tmp, 4); ptr += 4; 6563 memcpy(ptr, &totalSize, 4); ptr += 4; 6564 6565 memcpy(ptr, &index, 4); ptr += 4; 6566 memcpy(ptr, &pname, 4); ptr += 4; 6567 *(unsigned int *)(ptr) = __size_params; ptr += 4; 6568 6569 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6570 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6571 6572 stream->readback(params, __size_params); 6573 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 6574 if (useChecksum) { 6575 unsigned char *checksumBufPtr = NULL; 6576 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 6577 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 6578 stream->readback(checksumBufPtr, checksumSize); 6579 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 6580 ALOGE("glGetVertexAttribIiv: GL communication error, please report this issue to b.android.com.\n"); 6581 abort(); 6582 } 6583 } 6584 } 6585 6586 void glGetVertexAttribIuiv_enc(void *self , GLuint index, GLenum pname, GLuint* params) 6587 { 6588 6589 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6590 IOStream *stream = ctx->m_stream; 6591 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6592 bool useChecksum = checksumCalculator->getVersion() > 0; 6593 6594 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLuint)); 6595 unsigned char *ptr; 6596 unsigned char *buf; 6597 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 6598 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6599 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6600 buf = stream->alloc(totalSize); 6601 ptr = buf; 6602 int tmp = OP_glGetVertexAttribIuiv;memcpy(ptr, &tmp, 4); ptr += 4; 6603 memcpy(ptr, &totalSize, 4); ptr += 4; 6604 6605 memcpy(ptr, &index, 4); ptr += 4; 6606 memcpy(ptr, &pname, 4); ptr += 4; 6607 *(unsigned int *)(ptr) = __size_params; ptr += 4; 6608 6609 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6610 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6611 6612 stream->readback(params, __size_params); 6613 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 6614 if (useChecksum) { 6615 unsigned char *checksumBufPtr = NULL; 6616 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 6617 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 6618 stream->readback(checksumBufPtr, checksumSize); 6619 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 6620 ALOGE("glGetVertexAttribIuiv: GL communication error, please report this issue to b.android.com.\n"); 6621 abort(); 6622 } 6623 } 6624 } 6625 6626 void glVertexAttribDivisor_enc(void *self , GLuint index, GLuint divisor) 6627 { 6628 6629 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6630 IOStream *stream = ctx->m_stream; 6631 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6632 bool useChecksum = checksumCalculator->getVersion() > 0; 6633 6634 unsigned char *ptr; 6635 unsigned char *buf; 6636 const size_t sizeWithoutChecksum = 8 + 4 + 4; 6637 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6638 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6639 buf = stream->alloc(totalSize); 6640 ptr = buf; 6641 int tmp = OP_glVertexAttribDivisor;memcpy(ptr, &tmp, 4); ptr += 4; 6642 memcpy(ptr, &totalSize, 4); ptr += 4; 6643 6644 memcpy(ptr, &index, 4); ptr += 4; 6645 memcpy(ptr, &divisor, 4); ptr += 4; 6646 6647 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6648 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6649 6650 } 6651 6652 void glDrawArraysInstanced_enc(void *self , GLenum mode, GLint first, GLsizei count, GLsizei primcount) 6653 { 6654 6655 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6656 IOStream *stream = ctx->m_stream; 6657 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6658 bool useChecksum = checksumCalculator->getVersion() > 0; 6659 6660 unsigned char *ptr; 6661 unsigned char *buf; 6662 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 6663 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6664 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6665 buf = stream->alloc(totalSize); 6666 ptr = buf; 6667 int tmp = OP_glDrawArraysInstanced;memcpy(ptr, &tmp, 4); ptr += 4; 6668 memcpy(ptr, &totalSize, 4); ptr += 4; 6669 6670 memcpy(ptr, &mode, 4); ptr += 4; 6671 memcpy(ptr, &first, 4); ptr += 4; 6672 memcpy(ptr, &count, 4); ptr += 4; 6673 memcpy(ptr, &primcount, 4); ptr += 4; 6674 6675 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6676 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6677 6678 } 6679 6680 void glDrawElementsInstancedDataAEMU_enc(void *self , GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLsizei datalen) 6681 { 6682 6683 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6684 IOStream *stream = ctx->m_stream; 6685 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6686 bool useChecksum = checksumCalculator->getVersion() > 0; 6687 6688 const unsigned int __size_indices = datalen; 6689 unsigned char *ptr; 6690 unsigned char *buf; 6691 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_indices + 4 + 4 + 1*4; 6692 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6693 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6694 buf = stream->alloc(totalSize); 6695 ptr = buf; 6696 int tmp = OP_glDrawElementsInstancedDataAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6697 memcpy(ptr, &totalSize, 4); ptr += 4; 6698 6699 memcpy(ptr, &mode, 4); ptr += 4; 6700 memcpy(ptr, &count, 4); ptr += 4; 6701 memcpy(ptr, &type, 4); ptr += 4; 6702 *(unsigned int *)(ptr) = __size_indices; ptr += 4; 6703 memcpy(ptr, indices, __size_indices);ptr += __size_indices; 6704 memcpy(ptr, &primcount, 4); ptr += 4; 6705 memcpy(ptr, &datalen, 4); ptr += 4; 6706 6707 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6708 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6709 6710 } 6711 6712 void glDrawElementsInstancedOffsetAEMU_enc(void *self , GLenum mode, GLsizei count, GLenum type, GLuint offset, GLsizei primcount) 6713 { 6714 6715 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6716 IOStream *stream = ctx->m_stream; 6717 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6718 bool useChecksum = checksumCalculator->getVersion() > 0; 6719 6720 unsigned char *ptr; 6721 unsigned char *buf; 6722 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 6723 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6724 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6725 buf = stream->alloc(totalSize); 6726 ptr = buf; 6727 int tmp = OP_glDrawElementsInstancedOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6728 memcpy(ptr, &totalSize, 4); ptr += 4; 6729 6730 memcpy(ptr, &mode, 4); ptr += 4; 6731 memcpy(ptr, &count, 4); ptr += 4; 6732 memcpy(ptr, &type, 4); ptr += 4; 6733 memcpy(ptr, &offset, 4); ptr += 4; 6734 memcpy(ptr, &primcount, 4); ptr += 4; 6735 6736 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6737 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6738 6739 } 6740 6741 void glDrawRangeElementsDataAEMU_enc(void *self , GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices, GLsizei datalen) 6742 { 6743 6744 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6745 IOStream *stream = ctx->m_stream; 6746 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6747 bool useChecksum = checksumCalculator->getVersion() > 0; 6748 6749 const unsigned int __size_indices = datalen; 6750 unsigned char *ptr; 6751 unsigned char *buf; 6752 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + __size_indices + 4 + 1*4; 6753 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6754 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6755 buf = stream->alloc(totalSize); 6756 ptr = buf; 6757 int tmp = OP_glDrawRangeElementsDataAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6758 memcpy(ptr, &totalSize, 4); ptr += 4; 6759 6760 memcpy(ptr, &mode, 4); ptr += 4; 6761 memcpy(ptr, &start, 4); ptr += 4; 6762 memcpy(ptr, &end, 4); ptr += 4; 6763 memcpy(ptr, &count, 4); ptr += 4; 6764 memcpy(ptr, &type, 4); ptr += 4; 6765 *(unsigned int *)(ptr) = __size_indices; ptr += 4; 6766 memcpy(ptr, indices, __size_indices);ptr += __size_indices; 6767 memcpy(ptr, &datalen, 4); ptr += 4; 6768 6769 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6770 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6771 6772 } 6773 6774 void glDrawRangeElementsOffsetAEMU_enc(void *self , GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLuint offset) 6775 { 6776 6777 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6778 IOStream *stream = ctx->m_stream; 6779 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6780 bool useChecksum = checksumCalculator->getVersion() > 0; 6781 6782 unsigned char *ptr; 6783 unsigned char *buf; 6784 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4; 6785 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6786 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6787 buf = stream->alloc(totalSize); 6788 ptr = buf; 6789 int tmp = OP_glDrawRangeElementsOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6790 memcpy(ptr, &totalSize, 4); ptr += 4; 6791 6792 memcpy(ptr, &mode, 4); ptr += 4; 6793 memcpy(ptr, &start, 4); ptr += 4; 6794 memcpy(ptr, &end, 4); ptr += 4; 6795 memcpy(ptr, &count, 4); ptr += 4; 6796 memcpy(ptr, &type, 4); ptr += 4; 6797 memcpy(ptr, &offset, 4); ptr += 4; 6798 6799 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6800 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6801 6802 } 6803 6804 uint64_t glFenceSyncAEMU_enc(void *self , GLenum condition, GLbitfield flags) 6805 { 6806 6807 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6808 IOStream *stream = ctx->m_stream; 6809 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6810 bool useChecksum = checksumCalculator->getVersion() > 0; 6811 6812 unsigned char *ptr; 6813 unsigned char *buf; 6814 const size_t sizeWithoutChecksum = 8 + 4 + 4; 6815 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6816 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6817 buf = stream->alloc(totalSize); 6818 ptr = buf; 6819 int tmp = OP_glFenceSyncAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6820 memcpy(ptr, &totalSize, 4); ptr += 4; 6821 6822 memcpy(ptr, &condition, 4); ptr += 4; 6823 memcpy(ptr, &flags, 4); ptr += 4; 6824 6825 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6826 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6827 6828 6829 uint64_t retval; 6830 stream->readback(&retval, 8); 6831 if (useChecksum) checksumCalculator->addBuffer(&retval, 8); 6832 if (useChecksum) { 6833 unsigned char *checksumBufPtr = NULL; 6834 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 6835 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 6836 stream->readback(checksumBufPtr, checksumSize); 6837 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 6838 ALOGE("glFenceSyncAEMU: GL communication error, please report this issue to b.android.com.\n"); 6839 abort(); 6840 } 6841 } 6842 return retval; 6843 } 6844 6845 GLenum glClientWaitSyncAEMU_enc(void *self , uint64_t wait_on, GLbitfield flags, GLuint64 timeout) 6846 { 6847 6848 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6849 IOStream *stream = ctx->m_stream; 6850 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6851 bool useChecksum = checksumCalculator->getVersion() > 0; 6852 6853 unsigned char *ptr; 6854 unsigned char *buf; 6855 const size_t sizeWithoutChecksum = 8 + 8 + 4 + 8; 6856 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6857 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6858 buf = stream->alloc(totalSize); 6859 ptr = buf; 6860 int tmp = OP_glClientWaitSyncAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6861 memcpy(ptr, &totalSize, 4); ptr += 4; 6862 6863 memcpy(ptr, &wait_on, 8); ptr += 8; 6864 memcpy(ptr, &flags, 4); ptr += 4; 6865 memcpy(ptr, &timeout, 8); ptr += 8; 6866 6867 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6868 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6869 6870 6871 GLenum retval; 6872 stream->readback(&retval, 4); 6873 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 6874 if (useChecksum) { 6875 unsigned char *checksumBufPtr = NULL; 6876 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 6877 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 6878 stream->readback(checksumBufPtr, checksumSize); 6879 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 6880 ALOGE("glClientWaitSyncAEMU: GL communication error, please report this issue to b.android.com.\n"); 6881 abort(); 6882 } 6883 } 6884 return retval; 6885 } 6886 6887 void glWaitSyncAEMU_enc(void *self , uint64_t wait_on, GLbitfield flags, GLuint64 timeout) 6888 { 6889 6890 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6891 IOStream *stream = ctx->m_stream; 6892 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6893 bool useChecksum = checksumCalculator->getVersion() > 0; 6894 6895 unsigned char *ptr; 6896 unsigned char *buf; 6897 const size_t sizeWithoutChecksum = 8 + 8 + 4 + 8; 6898 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6899 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6900 buf = stream->alloc(totalSize); 6901 ptr = buf; 6902 int tmp = OP_glWaitSyncAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6903 memcpy(ptr, &totalSize, 4); ptr += 4; 6904 6905 memcpy(ptr, &wait_on, 8); ptr += 8; 6906 memcpy(ptr, &flags, 4); ptr += 4; 6907 memcpy(ptr, &timeout, 8); ptr += 8; 6908 6909 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6910 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6911 6912 } 6913 6914 void glDeleteSyncAEMU_enc(void *self , uint64_t to_delete) 6915 { 6916 6917 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6918 IOStream *stream = ctx->m_stream; 6919 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6920 bool useChecksum = checksumCalculator->getVersion() > 0; 6921 6922 unsigned char *ptr; 6923 unsigned char *buf; 6924 const size_t sizeWithoutChecksum = 8 + 8; 6925 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6926 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6927 buf = stream->alloc(totalSize); 6928 ptr = buf; 6929 int tmp = OP_glDeleteSyncAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6930 memcpy(ptr, &totalSize, 4); ptr += 4; 6931 6932 memcpy(ptr, &to_delete, 8); ptr += 8; 6933 6934 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6935 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6936 6937 } 6938 6939 GLboolean glIsSyncAEMU_enc(void *self , uint64_t sync) 6940 { 6941 6942 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6943 IOStream *stream = ctx->m_stream; 6944 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6945 bool useChecksum = checksumCalculator->getVersion() > 0; 6946 6947 unsigned char *ptr; 6948 unsigned char *buf; 6949 const size_t sizeWithoutChecksum = 8 + 8; 6950 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6951 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6952 buf = stream->alloc(totalSize); 6953 ptr = buf; 6954 int tmp = OP_glIsSyncAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6955 memcpy(ptr, &totalSize, 4); ptr += 4; 6956 6957 memcpy(ptr, &sync, 8); ptr += 8; 6958 6959 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 6960 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 6961 6962 6963 GLboolean retval; 6964 stream->readback(&retval, 1); 6965 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 6966 if (useChecksum) { 6967 unsigned char *checksumBufPtr = NULL; 6968 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 6969 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 6970 stream->readback(checksumBufPtr, checksumSize); 6971 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 6972 ALOGE("glIsSyncAEMU: GL communication error, please report this issue to b.android.com.\n"); 6973 abort(); 6974 } 6975 } 6976 return retval; 6977 } 6978 6979 void glGetSyncivAEMU_enc(void *self , uint64_t sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) 6980 { 6981 6982 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 6983 IOStream *stream = ctx->m_stream; 6984 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 6985 bool useChecksum = checksumCalculator->getVersion() > 0; 6986 6987 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0); 6988 const unsigned int __size_values = (bufSize * sizeof(GLint)); 6989 unsigned char *ptr; 6990 unsigned char *buf; 6991 const size_t sizeWithoutChecksum = 8 + 8 + 4 + 4 + 0 + 0 + 2*4; 6992 const size_t checksumSize = checksumCalculator->checksumByteSize(); 6993 const size_t totalSize = sizeWithoutChecksum + checksumSize; 6994 buf = stream->alloc(totalSize); 6995 ptr = buf; 6996 int tmp = OP_glGetSyncivAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 6997 memcpy(ptr, &totalSize, 4); ptr += 4; 6998 6999 memcpy(ptr, &sync, 8); ptr += 8; 7000 memcpy(ptr, &pname, 4); ptr += 4; 7001 memcpy(ptr, &bufSize, 4); ptr += 4; 7002 *(unsigned int *)(ptr) = __size_length; ptr += 4; 7003 *(unsigned int *)(ptr) = __size_values; ptr += 4; 7004 7005 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7006 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7007 7008 if (length != NULL) { 7009 stream->readback(length, __size_length); 7010 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 7011 } 7012 stream->readback(values, __size_values); 7013 if (useChecksum) checksumCalculator->addBuffer(values, __size_values); 7014 if (useChecksum) { 7015 unsigned char *checksumBufPtr = NULL; 7016 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 7017 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 7018 stream->readback(checksumBufPtr, checksumSize); 7019 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 7020 ALOGE("glGetSyncivAEMU: GL communication error, please report this issue to b.android.com.\n"); 7021 abort(); 7022 } 7023 } 7024 } 7025 7026 void glDrawBuffers_enc(void *self , GLsizei n, const GLenum* bufs) 7027 { 7028 7029 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7030 IOStream *stream = ctx->m_stream; 7031 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7032 bool useChecksum = checksumCalculator->getVersion() > 0; 7033 7034 const unsigned int __size_bufs = (n * sizeof(GLenum)); 7035 unsigned char *ptr; 7036 unsigned char *buf; 7037 const size_t sizeWithoutChecksum = 8 + 4 + __size_bufs + 1*4; 7038 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7039 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7040 buf = stream->alloc(totalSize); 7041 ptr = buf; 7042 int tmp = OP_glDrawBuffers;memcpy(ptr, &tmp, 4); ptr += 4; 7043 memcpy(ptr, &totalSize, 4); ptr += 4; 7044 7045 memcpy(ptr, &n, 4); ptr += 4; 7046 *(unsigned int *)(ptr) = __size_bufs; ptr += 4; 7047 memcpy(ptr, bufs, __size_bufs);ptr += __size_bufs; 7048 7049 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7050 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7051 7052 } 7053 7054 void glReadBuffer_enc(void *self , GLenum src) 7055 { 7056 7057 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7058 IOStream *stream = ctx->m_stream; 7059 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7060 bool useChecksum = checksumCalculator->getVersion() > 0; 7061 7062 unsigned char *ptr; 7063 unsigned char *buf; 7064 const size_t sizeWithoutChecksum = 8 + 4; 7065 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7066 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7067 buf = stream->alloc(totalSize); 7068 ptr = buf; 7069 int tmp = OP_glReadBuffer;memcpy(ptr, &tmp, 4); ptr += 4; 7070 memcpy(ptr, &totalSize, 4); ptr += 4; 7071 7072 memcpy(ptr, &src, 4); ptr += 4; 7073 7074 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7075 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7076 7077 } 7078 7079 void glBlitFramebuffer_enc(void *self , GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) 7080 { 7081 7082 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7083 IOStream *stream = ctx->m_stream; 7084 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7085 bool useChecksum = checksumCalculator->getVersion() > 0; 7086 7087 unsigned char *ptr; 7088 unsigned char *buf; 7089 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 7090 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7091 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7092 buf = stream->alloc(totalSize); 7093 ptr = buf; 7094 int tmp = OP_glBlitFramebuffer;memcpy(ptr, &tmp, 4); ptr += 4; 7095 memcpy(ptr, &totalSize, 4); ptr += 4; 7096 7097 memcpy(ptr, &srcX0, 4); ptr += 4; 7098 memcpy(ptr, &srcY0, 4); ptr += 4; 7099 memcpy(ptr, &srcX1, 4); ptr += 4; 7100 memcpy(ptr, &srcY1, 4); ptr += 4; 7101 memcpy(ptr, &dstX0, 4); ptr += 4; 7102 memcpy(ptr, &dstY0, 4); ptr += 4; 7103 memcpy(ptr, &dstX1, 4); ptr += 4; 7104 memcpy(ptr, &dstY1, 4); ptr += 4; 7105 memcpy(ptr, &mask, 4); ptr += 4; 7106 memcpy(ptr, &filter, 4); ptr += 4; 7107 7108 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7109 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7110 7111 } 7112 7113 void glInvalidateFramebuffer_enc(void *self , GLenum target, GLsizei numAttachments, const GLenum* attachments) 7114 { 7115 7116 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7117 IOStream *stream = ctx->m_stream; 7118 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7119 bool useChecksum = checksumCalculator->getVersion() > 0; 7120 7121 const unsigned int __size_attachments = (numAttachments * sizeof(GLenum)); 7122 unsigned char *ptr; 7123 unsigned char *buf; 7124 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_attachments + 1*4; 7125 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7126 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7127 buf = stream->alloc(totalSize); 7128 ptr = buf; 7129 int tmp = OP_glInvalidateFramebuffer;memcpy(ptr, &tmp, 4); ptr += 4; 7130 memcpy(ptr, &totalSize, 4); ptr += 4; 7131 7132 memcpy(ptr, &target, 4); ptr += 4; 7133 memcpy(ptr, &numAttachments, 4); ptr += 4; 7134 *(unsigned int *)(ptr) = __size_attachments; ptr += 4; 7135 memcpy(ptr, attachments, __size_attachments);ptr += __size_attachments; 7136 7137 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7138 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7139 7140 } 7141 7142 void glInvalidateSubFramebuffer_enc(void *self , GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height) 7143 { 7144 7145 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7146 IOStream *stream = ctx->m_stream; 7147 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7148 bool useChecksum = checksumCalculator->getVersion() > 0; 7149 7150 const unsigned int __size_attachments = (numAttachments * sizeof(GLenum)); 7151 unsigned char *ptr; 7152 unsigned char *buf; 7153 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_attachments + 4 + 4 + 4 + 4 + 1*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_glInvalidateSubFramebuffer;memcpy(ptr, &tmp, 4); ptr += 4; 7159 memcpy(ptr, &totalSize, 4); ptr += 4; 7160 7161 memcpy(ptr, &target, 4); ptr += 4; 7162 memcpy(ptr, &numAttachments, 4); ptr += 4; 7163 *(unsigned int *)(ptr) = __size_attachments; ptr += 4; 7164 memcpy(ptr, attachments, __size_attachments);ptr += __size_attachments; 7165 memcpy(ptr, &x, 4); ptr += 4; 7166 memcpy(ptr, &y, 4); ptr += 4; 7167 memcpy(ptr, &width, 4); ptr += 4; 7168 memcpy(ptr, &height, 4); ptr += 4; 7169 7170 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7171 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7172 7173 } 7174 7175 void glFramebufferTextureLayer_enc(void *self , GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) 7176 { 7177 7178 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7179 IOStream *stream = ctx->m_stream; 7180 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7181 bool useChecksum = checksumCalculator->getVersion() > 0; 7182 7183 unsigned char *ptr; 7184 unsigned char *buf; 7185 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 7186 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7187 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7188 buf = stream->alloc(totalSize); 7189 ptr = buf; 7190 int tmp = OP_glFramebufferTextureLayer;memcpy(ptr, &tmp, 4); ptr += 4; 7191 memcpy(ptr, &totalSize, 4); ptr += 4; 7192 7193 memcpy(ptr, &target, 4); ptr += 4; 7194 memcpy(ptr, &attachment, 4); ptr += 4; 7195 memcpy(ptr, &texture, 4); ptr += 4; 7196 memcpy(ptr, &level, 4); ptr += 4; 7197 memcpy(ptr, &layer, 4); ptr += 4; 7198 7199 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7200 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7201 7202 } 7203 7204 void glRenderbufferStorageMultisample_enc(void *self , GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) 7205 { 7206 7207 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7208 IOStream *stream = ctx->m_stream; 7209 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7210 bool useChecksum = checksumCalculator->getVersion() > 0; 7211 7212 unsigned char *ptr; 7213 unsigned char *buf; 7214 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 7215 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7216 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7217 buf = stream->alloc(totalSize); 7218 ptr = buf; 7219 int tmp = OP_glRenderbufferStorageMultisample;memcpy(ptr, &tmp, 4); ptr += 4; 7220 memcpy(ptr, &totalSize, 4); ptr += 4; 7221 7222 memcpy(ptr, &target, 4); ptr += 4; 7223 memcpy(ptr, &samples, 4); ptr += 4; 7224 memcpy(ptr, &internalformat, 4); ptr += 4; 7225 memcpy(ptr, &width, 4); ptr += 4; 7226 memcpy(ptr, &height, 4); ptr += 4; 7227 7228 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7229 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7230 7231 } 7232 7233 void glTexStorage2D_enc(void *self , GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) 7234 { 7235 7236 gl2_encoder_context_t *ctx = (gl2_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 + 4 + 4 + 4 + 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_glTexStorage2D;memcpy(ptr, &tmp, 4); ptr += 4; 7249 memcpy(ptr, &totalSize, 4); ptr += 4; 7250 7251 memcpy(ptr, &target, 4); ptr += 4; 7252 memcpy(ptr, &levels, 4); ptr += 4; 7253 memcpy(ptr, &internalformat, 4); ptr += 4; 7254 memcpy(ptr, &width, 4); ptr += 4; 7255 memcpy(ptr, &height, 4); ptr += 4; 7256 7257 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7258 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7259 7260 } 7261 7262 void glGetInternalformativ_enc(void *self , GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params) 7263 { 7264 7265 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7266 IOStream *stream = ctx->m_stream; 7267 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7268 bool useChecksum = checksumCalculator->getVersion() > 0; 7269 7270 const unsigned int __size_params = (sizeof(GLint) * bufSize); 7271 unsigned char *ptr; 7272 unsigned char *buf; 7273 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 0 + 1*4; 7274 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7275 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7276 buf = stream->alloc(totalSize); 7277 ptr = buf; 7278 int tmp = OP_glGetInternalformativ;memcpy(ptr, &tmp, 4); ptr += 4; 7279 memcpy(ptr, &totalSize, 4); ptr += 4; 7280 7281 memcpy(ptr, &target, 4); ptr += 4; 7282 memcpy(ptr, &internalformat, 4); ptr += 4; 7283 memcpy(ptr, &pname, 4); ptr += 4; 7284 memcpy(ptr, &bufSize, 4); ptr += 4; 7285 *(unsigned int *)(ptr) = __size_params; ptr += 4; 7286 7287 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7288 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7289 7290 stream->readback(params, __size_params); 7291 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 7292 if (useChecksum) { 7293 unsigned char *checksumBufPtr = NULL; 7294 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 7295 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 7296 stream->readback(checksumBufPtr, checksumSize); 7297 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 7298 ALOGE("glGetInternalformativ: GL communication error, please report this issue to b.android.com.\n"); 7299 abort(); 7300 } 7301 } 7302 } 7303 7304 void glBeginTransformFeedback_enc(void *self , GLenum primitiveMode) 7305 { 7306 7307 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7308 IOStream *stream = ctx->m_stream; 7309 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7310 bool useChecksum = checksumCalculator->getVersion() > 0; 7311 7312 unsigned char *ptr; 7313 unsigned char *buf; 7314 const size_t sizeWithoutChecksum = 8 + 4; 7315 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7316 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7317 buf = stream->alloc(totalSize); 7318 ptr = buf; 7319 int tmp = OP_glBeginTransformFeedback;memcpy(ptr, &tmp, 4); ptr += 4; 7320 memcpy(ptr, &totalSize, 4); ptr += 4; 7321 7322 memcpy(ptr, &primitiveMode, 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 glEndTransformFeedback_enc(void *self ) 7330 { 7331 7332 gl2_encoder_context_t *ctx = (gl2_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; 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_glEndTransformFeedback;memcpy(ptr, &tmp, 4); ptr += 4; 7345 memcpy(ptr, &totalSize, 4); ptr += 4; 7346 7347 7348 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7349 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7350 7351 } 7352 7353 void glGenTransformFeedbacks_enc(void *self , GLsizei n, GLuint* ids) 7354 { 7355 7356 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7357 IOStream *stream = ctx->m_stream; 7358 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7359 bool useChecksum = checksumCalculator->getVersion() > 0; 7360 7361 const unsigned int __size_ids = (n * sizeof(GLuint)); 7362 unsigned char *ptr; 7363 unsigned char *buf; 7364 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 7365 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7366 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7367 buf = stream->alloc(totalSize); 7368 ptr = buf; 7369 int tmp = OP_glGenTransformFeedbacks;memcpy(ptr, &tmp, 4); ptr += 4; 7370 memcpy(ptr, &totalSize, 4); ptr += 4; 7371 7372 memcpy(ptr, &n, 4); ptr += 4; 7373 *(unsigned int *)(ptr) = __size_ids; ptr += 4; 7374 7375 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7376 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7377 7378 stream->readback(ids, __size_ids); 7379 if (useChecksum) checksumCalculator->addBuffer(ids, __size_ids); 7380 if (useChecksum) { 7381 unsigned char *checksumBufPtr = NULL; 7382 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 7383 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 7384 stream->readback(checksumBufPtr, checksumSize); 7385 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 7386 ALOGE("glGenTransformFeedbacks: GL communication error, please report this issue to b.android.com.\n"); 7387 abort(); 7388 } 7389 } 7390 } 7391 7392 void glDeleteTransformFeedbacks_enc(void *self , GLsizei n, const GLuint* ids) 7393 { 7394 7395 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7396 IOStream *stream = ctx->m_stream; 7397 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7398 bool useChecksum = checksumCalculator->getVersion() > 0; 7399 7400 const unsigned int __size_ids = (n * sizeof(GLuint)); 7401 unsigned char *ptr; 7402 unsigned char *buf; 7403 const size_t sizeWithoutChecksum = 8 + 4 + __size_ids + 1*4; 7404 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7405 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7406 buf = stream->alloc(totalSize); 7407 ptr = buf; 7408 int tmp = OP_glDeleteTransformFeedbacks;memcpy(ptr, &tmp, 4); ptr += 4; 7409 memcpy(ptr, &totalSize, 4); ptr += 4; 7410 7411 memcpy(ptr, &n, 4); ptr += 4; 7412 *(unsigned int *)(ptr) = __size_ids; ptr += 4; 7413 memcpy(ptr, ids, __size_ids);ptr += __size_ids; 7414 7415 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7416 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7417 7418 } 7419 7420 void glBindTransformFeedback_enc(void *self , GLenum target, GLuint id) 7421 { 7422 7423 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7424 IOStream *stream = ctx->m_stream; 7425 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7426 bool useChecksum = checksumCalculator->getVersion() > 0; 7427 7428 unsigned char *ptr; 7429 unsigned char *buf; 7430 const size_t sizeWithoutChecksum = 8 + 4 + 4; 7431 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7432 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7433 buf = stream->alloc(totalSize); 7434 ptr = buf; 7435 int tmp = OP_glBindTransformFeedback;memcpy(ptr, &tmp, 4); ptr += 4; 7436 memcpy(ptr, &totalSize, 4); ptr += 4; 7437 7438 memcpy(ptr, &target, 4); ptr += 4; 7439 memcpy(ptr, &id, 4); ptr += 4; 7440 7441 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7442 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7443 7444 } 7445 7446 void glPauseTransformFeedback_enc(void *self ) 7447 { 7448 7449 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7450 IOStream *stream = ctx->m_stream; 7451 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7452 bool useChecksum = checksumCalculator->getVersion() > 0; 7453 7454 unsigned char *ptr; 7455 unsigned char *buf; 7456 const size_t sizeWithoutChecksum = 8; 7457 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7458 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7459 buf = stream->alloc(totalSize); 7460 ptr = buf; 7461 int tmp = OP_glPauseTransformFeedback;memcpy(ptr, &tmp, 4); ptr += 4; 7462 memcpy(ptr, &totalSize, 4); ptr += 4; 7463 7464 7465 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7466 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7467 7468 } 7469 7470 void glResumeTransformFeedback_enc(void *self ) 7471 { 7472 7473 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7474 IOStream *stream = ctx->m_stream; 7475 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7476 bool useChecksum = checksumCalculator->getVersion() > 0; 7477 7478 unsigned char *ptr; 7479 unsigned char *buf; 7480 const size_t sizeWithoutChecksum = 8; 7481 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7482 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7483 buf = stream->alloc(totalSize); 7484 ptr = buf; 7485 int tmp = OP_glResumeTransformFeedback;memcpy(ptr, &tmp, 4); ptr += 4; 7486 memcpy(ptr, &totalSize, 4); ptr += 4; 7487 7488 7489 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7490 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7491 7492 } 7493 7494 GLboolean glIsTransformFeedback_enc(void *self , GLuint id) 7495 { 7496 7497 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7498 IOStream *stream = ctx->m_stream; 7499 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7500 bool useChecksum = checksumCalculator->getVersion() > 0; 7501 7502 unsigned char *ptr; 7503 unsigned char *buf; 7504 const size_t sizeWithoutChecksum = 8 + 4; 7505 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7506 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7507 buf = stream->alloc(totalSize); 7508 ptr = buf; 7509 int tmp = OP_glIsTransformFeedback;memcpy(ptr, &tmp, 4); ptr += 4; 7510 memcpy(ptr, &totalSize, 4); ptr += 4; 7511 7512 memcpy(ptr, &id, 4); ptr += 4; 7513 7514 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7515 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7516 7517 7518 GLboolean retval; 7519 stream->readback(&retval, 1); 7520 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 7521 if (useChecksum) { 7522 unsigned char *checksumBufPtr = NULL; 7523 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 7524 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 7525 stream->readback(checksumBufPtr, checksumSize); 7526 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 7527 ALOGE("glIsTransformFeedback: GL communication error, please report this issue to b.android.com.\n"); 7528 abort(); 7529 } 7530 } 7531 return retval; 7532 } 7533 7534 void glTransformFeedbackVaryingsAEMU_enc(void *self , GLuint program, GLsizei count, const char* packedVaryings, GLuint packedVaryingsLen, GLenum bufferMode) 7535 { 7536 7537 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7538 IOStream *stream = ctx->m_stream; 7539 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7540 bool useChecksum = checksumCalculator->getVersion() > 0; 7541 7542 const unsigned int __size_packedVaryings = packedVaryingsLen; 7543 unsigned char *ptr; 7544 unsigned char *buf; 7545 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_packedVaryings + 4 + 4 + 1*4; 7546 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7547 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7548 buf = stream->alloc(totalSize); 7549 ptr = buf; 7550 int tmp = OP_glTransformFeedbackVaryingsAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 7551 memcpy(ptr, &totalSize, 4); ptr += 4; 7552 7553 memcpy(ptr, &program, 4); ptr += 4; 7554 memcpy(ptr, &count, 4); ptr += 4; 7555 *(unsigned int *)(ptr) = __size_packedVaryings; ptr += 4; 7556 memcpy(ptr, packedVaryings, __size_packedVaryings);ptr += __size_packedVaryings; 7557 memcpy(ptr, &packedVaryingsLen, 4); ptr += 4; 7558 memcpy(ptr, &bufferMode, 4); ptr += 4; 7559 7560 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7561 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7562 7563 } 7564 7565 void glGetTransformFeedbackVarying_enc(void *self , GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, char* name) 7566 { 7567 7568 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7569 IOStream *stream = ctx->m_stream; 7570 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7571 bool useChecksum = checksumCalculator->getVersion() > 0; 7572 7573 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0); 7574 const unsigned int __size_size = (sizeof(GLsizei)); 7575 const unsigned int __size_type = ((type != NULL) ? (sizeof(GLenum)) : 0); 7576 const unsigned int __size_name = ((name != NULL) ? bufSize : 0); 7577 unsigned char *ptr; 7578 unsigned char *buf; 7579 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 0 + 0 + 0 + 0 + 4*4; 7580 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7581 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7582 buf = stream->alloc(totalSize); 7583 ptr = buf; 7584 int tmp = OP_glGetTransformFeedbackVarying;memcpy(ptr, &tmp, 4); ptr += 4; 7585 memcpy(ptr, &totalSize, 4); ptr += 4; 7586 7587 memcpy(ptr, &program, 4); ptr += 4; 7588 memcpy(ptr, &index, 4); ptr += 4; 7589 memcpy(ptr, &bufSize, 4); ptr += 4; 7590 *(unsigned int *)(ptr) = __size_length; ptr += 4; 7591 *(unsigned int *)(ptr) = __size_size; ptr += 4; 7592 *(unsigned int *)(ptr) = __size_type; ptr += 4; 7593 *(unsigned int *)(ptr) = __size_name; ptr += 4; 7594 7595 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7596 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7597 7598 if (length != NULL) { 7599 stream->readback(length, __size_length); 7600 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 7601 } 7602 stream->readback(size, __size_size); 7603 if (useChecksum) checksumCalculator->addBuffer(size, __size_size); 7604 if (type != NULL) { 7605 stream->readback(type, __size_type); 7606 if (useChecksum) checksumCalculator->addBuffer(type, __size_type); 7607 } 7608 if (name != NULL) { 7609 stream->readback(name, __size_name); 7610 if (useChecksum) checksumCalculator->addBuffer(name, __size_name); 7611 } 7612 if (useChecksum) { 7613 unsigned char *checksumBufPtr = NULL; 7614 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 7615 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 7616 stream->readback(checksumBufPtr, checksumSize); 7617 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 7618 ALOGE("glGetTransformFeedbackVarying: GL communication error, please report this issue to b.android.com.\n"); 7619 abort(); 7620 } 7621 } 7622 } 7623 7624 void glGenSamplers_enc(void *self , GLsizei n, GLuint* samplers) 7625 { 7626 7627 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7628 IOStream *stream = ctx->m_stream; 7629 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7630 bool useChecksum = checksumCalculator->getVersion() > 0; 7631 7632 const unsigned int __size_samplers = (n * sizeof(GLuint)); 7633 unsigned char *ptr; 7634 unsigned char *buf; 7635 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 7636 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7637 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7638 buf = stream->alloc(totalSize); 7639 ptr = buf; 7640 int tmp = OP_glGenSamplers;memcpy(ptr, &tmp, 4); ptr += 4; 7641 memcpy(ptr, &totalSize, 4); ptr += 4; 7642 7643 memcpy(ptr, &n, 4); ptr += 4; 7644 *(unsigned int *)(ptr) = __size_samplers; ptr += 4; 7645 7646 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7647 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7648 7649 stream->readback(samplers, __size_samplers); 7650 if (useChecksum) checksumCalculator->addBuffer(samplers, __size_samplers); 7651 if (useChecksum) { 7652 unsigned char *checksumBufPtr = NULL; 7653 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 7654 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 7655 stream->readback(checksumBufPtr, checksumSize); 7656 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 7657 ALOGE("glGenSamplers: GL communication error, please report this issue to b.android.com.\n"); 7658 abort(); 7659 } 7660 } 7661 } 7662 7663 void glDeleteSamplers_enc(void *self , GLsizei n, const GLuint* samplers) 7664 { 7665 7666 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7667 IOStream *stream = ctx->m_stream; 7668 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7669 bool useChecksum = checksumCalculator->getVersion() > 0; 7670 7671 const unsigned int __size_samplers = (n * sizeof(GLuint)); 7672 unsigned char *ptr; 7673 unsigned char *buf; 7674 const size_t sizeWithoutChecksum = 8 + 4 + __size_samplers + 1*4; 7675 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7676 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7677 buf = stream->alloc(totalSize); 7678 ptr = buf; 7679 int tmp = OP_glDeleteSamplers;memcpy(ptr, &tmp, 4); ptr += 4; 7680 memcpy(ptr, &totalSize, 4); ptr += 4; 7681 7682 memcpy(ptr, &n, 4); ptr += 4; 7683 *(unsigned int *)(ptr) = __size_samplers; ptr += 4; 7684 memcpy(ptr, samplers, __size_samplers);ptr += __size_samplers; 7685 7686 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7687 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7688 7689 } 7690 7691 void glBindSampler_enc(void *self , GLuint unit, GLuint sampler) 7692 { 7693 7694 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7695 IOStream *stream = ctx->m_stream; 7696 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7697 bool useChecksum = checksumCalculator->getVersion() > 0; 7698 7699 unsigned char *ptr; 7700 unsigned char *buf; 7701 const size_t sizeWithoutChecksum = 8 + 4 + 4; 7702 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7703 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7704 buf = stream->alloc(totalSize); 7705 ptr = buf; 7706 int tmp = OP_glBindSampler;memcpy(ptr, &tmp, 4); ptr += 4; 7707 memcpy(ptr, &totalSize, 4); ptr += 4; 7708 7709 memcpy(ptr, &unit, 4); ptr += 4; 7710 memcpy(ptr, &sampler, 4); ptr += 4; 7711 7712 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7713 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7714 7715 } 7716 7717 void glSamplerParameterf_enc(void *self , GLuint sampler, GLenum pname, GLfloat param) 7718 { 7719 7720 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7721 IOStream *stream = ctx->m_stream; 7722 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7723 bool useChecksum = checksumCalculator->getVersion() > 0; 7724 7725 unsigned char *ptr; 7726 unsigned char *buf; 7727 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 7728 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7729 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7730 buf = stream->alloc(totalSize); 7731 ptr = buf; 7732 int tmp = OP_glSamplerParameterf;memcpy(ptr, &tmp, 4); ptr += 4; 7733 memcpy(ptr, &totalSize, 4); ptr += 4; 7734 7735 memcpy(ptr, &sampler, 4); ptr += 4; 7736 memcpy(ptr, &pname, 4); ptr += 4; 7737 memcpy(ptr, ¶m, 4); ptr += 4; 7738 7739 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7740 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7741 7742 } 7743 7744 void glSamplerParameteri_enc(void *self , GLuint sampler, GLenum pname, GLint param) 7745 { 7746 7747 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7748 IOStream *stream = ctx->m_stream; 7749 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7750 bool useChecksum = checksumCalculator->getVersion() > 0; 7751 7752 unsigned char *ptr; 7753 unsigned char *buf; 7754 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 7755 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7756 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7757 buf = stream->alloc(totalSize); 7758 ptr = buf; 7759 int tmp = OP_glSamplerParameteri;memcpy(ptr, &tmp, 4); ptr += 4; 7760 memcpy(ptr, &totalSize, 4); ptr += 4; 7761 7762 memcpy(ptr, &sampler, 4); ptr += 4; 7763 memcpy(ptr, &pname, 4); ptr += 4; 7764 memcpy(ptr, ¶m, 4); ptr += 4; 7765 7766 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7767 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7768 7769 } 7770 7771 void glSamplerParameterfv_enc(void *self , GLuint sampler, GLenum pname, const GLfloat* params) 7772 { 7773 7774 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7775 IOStream *stream = ctx->m_stream; 7776 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7777 bool useChecksum = checksumCalculator->getVersion() > 0; 7778 7779 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLfloat)); 7780 unsigned char *ptr; 7781 unsigned char *buf; 7782 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4; 7783 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7784 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7785 buf = stream->alloc(totalSize); 7786 ptr = buf; 7787 int tmp = OP_glSamplerParameterfv;memcpy(ptr, &tmp, 4); ptr += 4; 7788 memcpy(ptr, &totalSize, 4); ptr += 4; 7789 7790 memcpy(ptr, &sampler, 4); ptr += 4; 7791 memcpy(ptr, &pname, 4); ptr += 4; 7792 *(unsigned int *)(ptr) = __size_params; ptr += 4; 7793 memcpy(ptr, params, __size_params);ptr += __size_params; 7794 7795 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7796 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7797 7798 } 7799 7800 void glSamplerParameteriv_enc(void *self , GLuint sampler, GLenum pname, const GLint* params) 7801 { 7802 7803 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7804 IOStream *stream = ctx->m_stream; 7805 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7806 bool useChecksum = checksumCalculator->getVersion() > 0; 7807 7808 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 7809 unsigned char *ptr; 7810 unsigned char *buf; 7811 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_params + 1*4; 7812 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7813 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7814 buf = stream->alloc(totalSize); 7815 ptr = buf; 7816 int tmp = OP_glSamplerParameteriv;memcpy(ptr, &tmp, 4); ptr += 4; 7817 memcpy(ptr, &totalSize, 4); ptr += 4; 7818 7819 memcpy(ptr, &sampler, 4); ptr += 4; 7820 memcpy(ptr, &pname, 4); ptr += 4; 7821 *(unsigned int *)(ptr) = __size_params; ptr += 4; 7822 memcpy(ptr, params, __size_params);ptr += __size_params; 7823 7824 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7825 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7826 7827 } 7828 7829 void glGetSamplerParameterfv_enc(void *self , GLuint sampler, GLenum pname, GLfloat* params) 7830 { 7831 7832 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7833 IOStream *stream = ctx->m_stream; 7834 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7835 bool useChecksum = checksumCalculator->getVersion() > 0; 7836 7837 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLfloat)); 7838 unsigned char *ptr; 7839 unsigned char *buf; 7840 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 7841 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7842 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7843 buf = stream->alloc(totalSize); 7844 ptr = buf; 7845 int tmp = OP_glGetSamplerParameterfv;memcpy(ptr, &tmp, 4); ptr += 4; 7846 memcpy(ptr, &totalSize, 4); ptr += 4; 7847 7848 memcpy(ptr, &sampler, 4); ptr += 4; 7849 memcpy(ptr, &pname, 4); ptr += 4; 7850 *(unsigned int *)(ptr) = __size_params; ptr += 4; 7851 7852 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7853 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7854 7855 stream->readback(params, __size_params); 7856 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 7857 if (useChecksum) { 7858 unsigned char *checksumBufPtr = NULL; 7859 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 7860 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 7861 stream->readback(checksumBufPtr, checksumSize); 7862 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 7863 ALOGE("glGetSamplerParameterfv: GL communication error, please report this issue to b.android.com.\n"); 7864 abort(); 7865 } 7866 } 7867 } 7868 7869 void glGetSamplerParameteriv_enc(void *self , GLuint sampler, GLenum pname, GLint* params) 7870 { 7871 7872 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7873 IOStream *stream = ctx->m_stream; 7874 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7875 bool useChecksum = checksumCalculator->getVersion() > 0; 7876 7877 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 7878 unsigned char *ptr; 7879 unsigned char *buf; 7880 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 7881 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7882 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7883 buf = stream->alloc(totalSize); 7884 ptr = buf; 7885 int tmp = OP_glGetSamplerParameteriv;memcpy(ptr, &tmp, 4); ptr += 4; 7886 memcpy(ptr, &totalSize, 4); ptr += 4; 7887 7888 memcpy(ptr, &sampler, 4); ptr += 4; 7889 memcpy(ptr, &pname, 4); ptr += 4; 7890 *(unsigned int *)(ptr) = __size_params; ptr += 4; 7891 7892 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7893 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7894 7895 stream->readback(params, __size_params); 7896 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 7897 if (useChecksum) { 7898 unsigned char *checksumBufPtr = NULL; 7899 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 7900 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 7901 stream->readback(checksumBufPtr, checksumSize); 7902 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 7903 ALOGE("glGetSamplerParameteriv: GL communication error, please report this issue to b.android.com.\n"); 7904 abort(); 7905 } 7906 } 7907 } 7908 7909 GLboolean glIsSampler_enc(void *self , GLuint sampler) 7910 { 7911 7912 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7913 IOStream *stream = ctx->m_stream; 7914 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7915 bool useChecksum = checksumCalculator->getVersion() > 0; 7916 7917 unsigned char *ptr; 7918 unsigned char *buf; 7919 const size_t sizeWithoutChecksum = 8 + 4; 7920 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7921 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7922 buf = stream->alloc(totalSize); 7923 ptr = buf; 7924 int tmp = OP_glIsSampler;memcpy(ptr, &tmp, 4); ptr += 4; 7925 memcpy(ptr, &totalSize, 4); ptr += 4; 7926 7927 memcpy(ptr, &sampler, 4); ptr += 4; 7928 7929 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7930 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7931 7932 7933 GLboolean retval; 7934 stream->readback(&retval, 1); 7935 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 7936 if (useChecksum) { 7937 unsigned char *checksumBufPtr = NULL; 7938 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 7939 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 7940 stream->readback(checksumBufPtr, checksumSize); 7941 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 7942 ALOGE("glIsSampler: GL communication error, please report this issue to b.android.com.\n"); 7943 abort(); 7944 } 7945 } 7946 return retval; 7947 } 7948 7949 void glGenQueries_enc(void *self , GLsizei n, GLuint* queries) 7950 { 7951 7952 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7953 IOStream *stream = ctx->m_stream; 7954 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7955 bool useChecksum = checksumCalculator->getVersion() > 0; 7956 7957 const unsigned int __size_queries = (n * sizeof(GLuint)); 7958 unsigned char *ptr; 7959 unsigned char *buf; 7960 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 7961 const size_t checksumSize = checksumCalculator->checksumByteSize(); 7962 const size_t totalSize = sizeWithoutChecksum + checksumSize; 7963 buf = stream->alloc(totalSize); 7964 ptr = buf; 7965 int tmp = OP_glGenQueries;memcpy(ptr, &tmp, 4); ptr += 4; 7966 memcpy(ptr, &totalSize, 4); ptr += 4; 7967 7968 memcpy(ptr, &n, 4); ptr += 4; 7969 *(unsigned int *)(ptr) = __size_queries; ptr += 4; 7970 7971 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 7972 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 7973 7974 stream->readback(queries, __size_queries); 7975 if (useChecksum) checksumCalculator->addBuffer(queries, __size_queries); 7976 if (useChecksum) { 7977 unsigned char *checksumBufPtr = NULL; 7978 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 7979 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 7980 stream->readback(checksumBufPtr, checksumSize); 7981 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 7982 ALOGE("glGenQueries: GL communication error, please report this issue to b.android.com.\n"); 7983 abort(); 7984 } 7985 } 7986 } 7987 7988 void glDeleteQueries_enc(void *self , GLsizei n, const GLuint* queries) 7989 { 7990 7991 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 7992 IOStream *stream = ctx->m_stream; 7993 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 7994 bool useChecksum = checksumCalculator->getVersion() > 0; 7995 7996 const unsigned int __size_queries = (n * sizeof(GLuint)); 7997 unsigned char *ptr; 7998 unsigned char *buf; 7999 const size_t sizeWithoutChecksum = 8 + 4 + __size_queries + 1*4; 8000 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8001 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8002 buf = stream->alloc(totalSize); 8003 ptr = buf; 8004 int tmp = OP_glDeleteQueries;memcpy(ptr, &tmp, 4); ptr += 4; 8005 memcpy(ptr, &totalSize, 4); ptr += 4; 8006 8007 memcpy(ptr, &n, 4); ptr += 4; 8008 *(unsigned int *)(ptr) = __size_queries; ptr += 4; 8009 memcpy(ptr, queries, __size_queries);ptr += __size_queries; 8010 8011 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8012 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8013 8014 } 8015 8016 void glBeginQuery_enc(void *self , GLenum target, GLuint query) 8017 { 8018 8019 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8020 IOStream *stream = ctx->m_stream; 8021 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8022 bool useChecksum = checksumCalculator->getVersion() > 0; 8023 8024 unsigned char *ptr; 8025 unsigned char *buf; 8026 const size_t sizeWithoutChecksum = 8 + 4 + 4; 8027 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8028 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8029 buf = stream->alloc(totalSize); 8030 ptr = buf; 8031 int tmp = OP_glBeginQuery;memcpy(ptr, &tmp, 4); ptr += 4; 8032 memcpy(ptr, &totalSize, 4); ptr += 4; 8033 8034 memcpy(ptr, &target, 4); ptr += 4; 8035 memcpy(ptr, &query, 4); ptr += 4; 8036 8037 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8038 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8039 8040 } 8041 8042 void glEndQuery_enc(void *self , GLenum target) 8043 { 8044 8045 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8046 IOStream *stream = ctx->m_stream; 8047 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8048 bool useChecksum = checksumCalculator->getVersion() > 0; 8049 8050 unsigned char *ptr; 8051 unsigned char *buf; 8052 const size_t sizeWithoutChecksum = 8 + 4; 8053 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8054 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8055 buf = stream->alloc(totalSize); 8056 ptr = buf; 8057 int tmp = OP_glEndQuery;memcpy(ptr, &tmp, 4); ptr += 4; 8058 memcpy(ptr, &totalSize, 4); ptr += 4; 8059 8060 memcpy(ptr, &target, 4); ptr += 4; 8061 8062 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8063 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8064 8065 } 8066 8067 void glGetQueryiv_enc(void *self , GLenum target, GLenum pname, GLint* params) 8068 { 8069 8070 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8071 IOStream *stream = ctx->m_stream; 8072 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8073 bool useChecksum = checksumCalculator->getVersion() > 0; 8074 8075 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 8076 unsigned char *ptr; 8077 unsigned char *buf; 8078 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 8079 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8080 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8081 buf = stream->alloc(totalSize); 8082 ptr = buf; 8083 int tmp = OP_glGetQueryiv;memcpy(ptr, &tmp, 4); ptr += 4; 8084 memcpy(ptr, &totalSize, 4); ptr += 4; 8085 8086 memcpy(ptr, &target, 4); ptr += 4; 8087 memcpy(ptr, &pname, 4); ptr += 4; 8088 *(unsigned int *)(ptr) = __size_params; ptr += 4; 8089 8090 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8091 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8092 8093 stream->readback(params, __size_params); 8094 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 8095 if (useChecksum) { 8096 unsigned char *checksumBufPtr = NULL; 8097 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 8098 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 8099 stream->readback(checksumBufPtr, checksumSize); 8100 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 8101 ALOGE("glGetQueryiv: GL communication error, please report this issue to b.android.com.\n"); 8102 abort(); 8103 } 8104 } 8105 } 8106 8107 void glGetQueryObjectuiv_enc(void *self , GLuint query, GLenum pname, GLuint* params) 8108 { 8109 8110 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8111 IOStream *stream = ctx->m_stream; 8112 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8113 bool useChecksum = checksumCalculator->getVersion() > 0; 8114 8115 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLuint)); 8116 unsigned char *ptr; 8117 unsigned char *buf; 8118 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 8119 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8120 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8121 buf = stream->alloc(totalSize); 8122 ptr = buf; 8123 int tmp = OP_glGetQueryObjectuiv;memcpy(ptr, &tmp, 4); ptr += 4; 8124 memcpy(ptr, &totalSize, 4); ptr += 4; 8125 8126 memcpy(ptr, &query, 4); ptr += 4; 8127 memcpy(ptr, &pname, 4); ptr += 4; 8128 *(unsigned int *)(ptr) = __size_params; ptr += 4; 8129 8130 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8131 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8132 8133 stream->readback(params, __size_params); 8134 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 8135 if (useChecksum) { 8136 unsigned char *checksumBufPtr = NULL; 8137 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 8138 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 8139 stream->readback(checksumBufPtr, checksumSize); 8140 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 8141 ALOGE("glGetQueryObjectuiv: GL communication error, please report this issue to b.android.com.\n"); 8142 abort(); 8143 } 8144 } 8145 } 8146 8147 GLboolean glIsQuery_enc(void *self , GLuint query) 8148 { 8149 8150 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8151 IOStream *stream = ctx->m_stream; 8152 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8153 bool useChecksum = checksumCalculator->getVersion() > 0; 8154 8155 unsigned char *ptr; 8156 unsigned char *buf; 8157 const size_t sizeWithoutChecksum = 8 + 4; 8158 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8159 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8160 buf = stream->alloc(totalSize); 8161 ptr = buf; 8162 int tmp = OP_glIsQuery;memcpy(ptr, &tmp, 4); ptr += 4; 8163 memcpy(ptr, &totalSize, 4); ptr += 4; 8164 8165 memcpy(ptr, &query, 4); ptr += 4; 8166 8167 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8168 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8169 8170 8171 GLboolean retval; 8172 stream->readback(&retval, 1); 8173 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 8174 if (useChecksum) { 8175 unsigned char *checksumBufPtr = NULL; 8176 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 8177 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 8178 stream->readback(checksumBufPtr, checksumSize); 8179 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 8180 ALOGE("glIsQuery: GL communication error, please report this issue to b.android.com.\n"); 8181 abort(); 8182 } 8183 } 8184 return retval; 8185 } 8186 8187 void glProgramParameteri_enc(void *self , GLuint program, GLenum pname, GLint value) 8188 { 8189 8190 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8191 IOStream *stream = ctx->m_stream; 8192 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8193 bool useChecksum = checksumCalculator->getVersion() > 0; 8194 8195 unsigned char *ptr; 8196 unsigned char *buf; 8197 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 8198 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8199 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8200 buf = stream->alloc(totalSize); 8201 ptr = buf; 8202 int tmp = OP_glProgramParameteri;memcpy(ptr, &tmp, 4); ptr += 4; 8203 memcpy(ptr, &totalSize, 4); ptr += 4; 8204 8205 memcpy(ptr, &program, 4); ptr += 4; 8206 memcpy(ptr, &pname, 4); ptr += 4; 8207 memcpy(ptr, &value, 4); ptr += 4; 8208 8209 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8210 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8211 8212 } 8213 8214 void glProgramBinary_enc(void *self , GLuint program, GLenum binaryFormat, const void* binary, GLsizei length) 8215 { 8216 8217 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8218 IOStream *stream = ctx->m_stream; 8219 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8220 bool useChecksum = checksumCalculator->getVersion() > 0; 8221 8222 const unsigned int __size_binary = length; 8223 unsigned char *ptr; 8224 unsigned char *buf; 8225 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_binary + 4 + 1*4; 8226 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8227 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8228 buf = stream->alloc(totalSize); 8229 ptr = buf; 8230 int tmp = OP_glProgramBinary;memcpy(ptr, &tmp, 4); ptr += 4; 8231 memcpy(ptr, &totalSize, 4); ptr += 4; 8232 8233 memcpy(ptr, &program, 4); ptr += 4; 8234 memcpy(ptr, &binaryFormat, 4); ptr += 4; 8235 *(unsigned int *)(ptr) = __size_binary; ptr += 4; 8236 memcpy(ptr, binary, __size_binary);ptr += __size_binary; 8237 memcpy(ptr, &length, 4); ptr += 4; 8238 8239 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8240 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8241 8242 } 8243 8244 void glGetProgramBinary_enc(void *self , GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, void* binary) 8245 { 8246 8247 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8248 IOStream *stream = ctx->m_stream; 8249 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8250 bool useChecksum = checksumCalculator->getVersion() > 0; 8251 8252 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0); 8253 const unsigned int __size_binaryFormat = (sizeof(GLenum)); 8254 const unsigned int __size_binary = bufSize; 8255 unsigned char *ptr; 8256 unsigned char *buf; 8257 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 0 + 0 + 3*4; 8258 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8259 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8260 buf = stream->alloc(totalSize); 8261 ptr = buf; 8262 int tmp = OP_glGetProgramBinary;memcpy(ptr, &tmp, 4); ptr += 4; 8263 memcpy(ptr, &totalSize, 4); ptr += 4; 8264 8265 memcpy(ptr, &program, 4); ptr += 4; 8266 memcpy(ptr, &bufSize, 4); ptr += 4; 8267 *(unsigned int *)(ptr) = __size_length; ptr += 4; 8268 *(unsigned int *)(ptr) = __size_binaryFormat; ptr += 4; 8269 *(unsigned int *)(ptr) = __size_binary; ptr += 4; 8270 8271 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8272 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8273 8274 if (length != NULL) { 8275 stream->readback(length, __size_length); 8276 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 8277 } 8278 stream->readback(binaryFormat, __size_binaryFormat); 8279 if (useChecksum) checksumCalculator->addBuffer(binaryFormat, __size_binaryFormat); 8280 stream->readback(binary, __size_binary); 8281 if (useChecksum) checksumCalculator->addBuffer(binary, __size_binary); 8282 if (useChecksum) { 8283 unsigned char *checksumBufPtr = NULL; 8284 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 8285 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 8286 stream->readback(checksumBufPtr, checksumSize); 8287 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 8288 ALOGE("glGetProgramBinary: GL communication error, please report this issue to b.android.com.\n"); 8289 abort(); 8290 } 8291 } 8292 } 8293 8294 GLint glGetFragDataLocation_enc(void *self , GLuint program, const char* name) 8295 { 8296 8297 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8298 IOStream *stream = ctx->m_stream; 8299 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8300 bool useChecksum = checksumCalculator->getVersion() > 0; 8301 8302 const unsigned int __size_name = (strlen(name) + 1); 8303 unsigned char *ptr; 8304 unsigned char *buf; 8305 const size_t sizeWithoutChecksum = 8 + 4 + __size_name + 1*4; 8306 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8307 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8308 buf = stream->alloc(totalSize); 8309 ptr = buf; 8310 int tmp = OP_glGetFragDataLocation;memcpy(ptr, &tmp, 4); ptr += 4; 8311 memcpy(ptr, &totalSize, 4); ptr += 4; 8312 8313 memcpy(ptr, &program, 4); ptr += 4; 8314 *(unsigned int *)(ptr) = __size_name; ptr += 4; 8315 memcpy(ptr, name, __size_name);ptr += __size_name; 8316 8317 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8318 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8319 8320 8321 GLint retval; 8322 stream->readback(&retval, 4); 8323 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 8324 if (useChecksum) { 8325 unsigned char *checksumBufPtr = NULL; 8326 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 8327 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 8328 stream->readback(checksumBufPtr, checksumSize); 8329 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 8330 ALOGE("glGetFragDataLocation: GL communication error, please report this issue to b.android.com.\n"); 8331 abort(); 8332 } 8333 } 8334 return retval; 8335 } 8336 8337 void glGetInteger64v_enc(void *self , GLenum pname, GLint64* data) 8338 { 8339 8340 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8341 IOStream *stream = ctx->m_stream; 8342 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8343 bool useChecksum = checksumCalculator->getVersion() > 0; 8344 8345 const unsigned int __size_data = (glUtilsParamSize(pname) * sizeof(GLint64)); 8346 unsigned char *ptr; 8347 unsigned char *buf; 8348 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 8349 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8350 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8351 buf = stream->alloc(totalSize); 8352 ptr = buf; 8353 int tmp = OP_glGetInteger64v;memcpy(ptr, &tmp, 4); ptr += 4; 8354 memcpy(ptr, &totalSize, 4); ptr += 4; 8355 8356 memcpy(ptr, &pname, 4); ptr += 4; 8357 *(unsigned int *)(ptr) = __size_data; ptr += 4; 8358 8359 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8360 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8361 8362 stream->readback(data, __size_data); 8363 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 8364 if (useChecksum) { 8365 unsigned char *checksumBufPtr = NULL; 8366 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 8367 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 8368 stream->readback(checksumBufPtr, checksumSize); 8369 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 8370 ALOGE("glGetInteger64v: GL communication error, please report this issue to b.android.com.\n"); 8371 abort(); 8372 } 8373 } 8374 } 8375 8376 void glGetIntegeri_v_enc(void *self , GLenum target, GLuint index, GLint* data) 8377 { 8378 8379 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8380 IOStream *stream = ctx->m_stream; 8381 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8382 bool useChecksum = checksumCalculator->getVersion() > 0; 8383 8384 const unsigned int __size_data = (sizeof(GLint)); 8385 unsigned char *ptr; 8386 unsigned char *buf; 8387 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 8388 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8389 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8390 buf = stream->alloc(totalSize); 8391 ptr = buf; 8392 int tmp = OP_glGetIntegeri_v;memcpy(ptr, &tmp, 4); ptr += 4; 8393 memcpy(ptr, &totalSize, 4); ptr += 4; 8394 8395 memcpy(ptr, &target, 4); ptr += 4; 8396 memcpy(ptr, &index, 4); ptr += 4; 8397 *(unsigned int *)(ptr) = __size_data; ptr += 4; 8398 8399 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8400 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8401 8402 stream->readback(data, __size_data); 8403 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 8404 if (useChecksum) { 8405 unsigned char *checksumBufPtr = NULL; 8406 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 8407 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 8408 stream->readback(checksumBufPtr, checksumSize); 8409 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 8410 ALOGE("glGetIntegeri_v: GL communication error, please report this issue to b.android.com.\n"); 8411 abort(); 8412 } 8413 } 8414 } 8415 8416 void glGetInteger64i_v_enc(void *self , GLenum target, GLuint index, GLint64* data) 8417 { 8418 8419 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8420 IOStream *stream = ctx->m_stream; 8421 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8422 bool useChecksum = checksumCalculator->getVersion() > 0; 8423 8424 const unsigned int __size_data = (sizeof(GLint64)); 8425 unsigned char *ptr; 8426 unsigned char *buf; 8427 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 8428 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8429 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8430 buf = stream->alloc(totalSize); 8431 ptr = buf; 8432 int tmp = OP_glGetInteger64i_v;memcpy(ptr, &tmp, 4); ptr += 4; 8433 memcpy(ptr, &totalSize, 4); ptr += 4; 8434 8435 memcpy(ptr, &target, 4); ptr += 4; 8436 memcpy(ptr, &index, 4); ptr += 4; 8437 *(unsigned int *)(ptr) = __size_data; ptr += 4; 8438 8439 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8440 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8441 8442 stream->readback(data, __size_data); 8443 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 8444 if (useChecksum) { 8445 unsigned char *checksumBufPtr = NULL; 8446 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 8447 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 8448 stream->readback(checksumBufPtr, checksumSize); 8449 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 8450 ALOGE("glGetInteger64i_v: GL communication error, please report this issue to b.android.com.\n"); 8451 abort(); 8452 } 8453 } 8454 } 8455 8456 void glTexImage3D_enc(void *self , GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* data) 8457 { 8458 8459 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8460 IOStream *stream = ctx->m_stream; 8461 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8462 bool useChecksum = checksumCalculator->getVersion() > 0; 8463 8464 const unsigned int __size_data = ((data != NULL) ? glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0) : 0); 8465 unsigned char *ptr; 8466 unsigned char *buf; 8467 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4; 8468 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8469 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8470 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 8471 ptr = buf; 8472 int tmp = OP_glTexImage3D;memcpy(ptr, &tmp, 4); ptr += 4; 8473 memcpy(ptr, &totalSize, 4); ptr += 4; 8474 8475 memcpy(ptr, &target, 4); ptr += 4; 8476 memcpy(ptr, &level, 4); ptr += 4; 8477 memcpy(ptr, &internalFormat, 4); ptr += 4; 8478 memcpy(ptr, &width, 4); ptr += 4; 8479 memcpy(ptr, &height, 4); ptr += 4; 8480 memcpy(ptr, &depth, 4); ptr += 4; 8481 memcpy(ptr, &border, 4); ptr += 4; 8482 memcpy(ptr, &format, 4); ptr += 4; 8483 memcpy(ptr, &type, 4); ptr += 4; 8484 8485 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8486 stream->flush(); 8487 stream->writeFully(&__size_data,4); 8488 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4); 8489 if (data != NULL) { 8490 stream->writeFully(data, __size_data); 8491 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 8492 } 8493 buf = stream->alloc(checksumSize); 8494 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 8495 8496 } 8497 8498 void glTexImage3DOffsetAEMU_enc(void *self , GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLuint offset) 8499 { 8500 8501 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8502 IOStream *stream = ctx->m_stream; 8503 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8504 bool useChecksum = checksumCalculator->getVersion() > 0; 8505 8506 unsigned char *ptr; 8507 unsigned char *buf; 8508 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 8509 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8510 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8511 buf = stream->alloc(totalSize); 8512 ptr = buf; 8513 int tmp = OP_glTexImage3DOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 8514 memcpy(ptr, &totalSize, 4); ptr += 4; 8515 8516 memcpy(ptr, &target, 4); ptr += 4; 8517 memcpy(ptr, &level, 4); ptr += 4; 8518 memcpy(ptr, &internalFormat, 4); ptr += 4; 8519 memcpy(ptr, &width, 4); ptr += 4; 8520 memcpy(ptr, &height, 4); ptr += 4; 8521 memcpy(ptr, &depth, 4); ptr += 4; 8522 memcpy(ptr, &border, 4); ptr += 4; 8523 memcpy(ptr, &format, 4); ptr += 4; 8524 memcpy(ptr, &type, 4); ptr += 4; 8525 memcpy(ptr, &offset, 4); ptr += 4; 8526 8527 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8528 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8529 8530 } 8531 8532 void glTexStorage3D_enc(void *self , GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) 8533 { 8534 8535 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8536 IOStream *stream = ctx->m_stream; 8537 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8538 bool useChecksum = checksumCalculator->getVersion() > 0; 8539 8540 unsigned char *ptr; 8541 unsigned char *buf; 8542 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4; 8543 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8544 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8545 buf = stream->alloc(totalSize); 8546 ptr = buf; 8547 int tmp = OP_glTexStorage3D;memcpy(ptr, &tmp, 4); ptr += 4; 8548 memcpy(ptr, &totalSize, 4); ptr += 4; 8549 8550 memcpy(ptr, &target, 4); ptr += 4; 8551 memcpy(ptr, &levels, 4); ptr += 4; 8552 memcpy(ptr, &internalformat, 4); ptr += 4; 8553 memcpy(ptr, &width, 4); ptr += 4; 8554 memcpy(ptr, &height, 4); ptr += 4; 8555 memcpy(ptr, &depth, 4); ptr += 4; 8556 8557 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8558 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8559 8560 } 8561 8562 void glTexSubImage3D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* data) 8563 { 8564 8565 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8566 IOStream *stream = ctx->m_stream; 8567 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8568 bool useChecksum = checksumCalculator->getVersion() > 0; 8569 8570 const unsigned int __size_data = ((data != NULL) ? glesv2_enc::pixelDataSize3D(self, width, height, depth, format, type, 0) : 0); 8571 unsigned char *ptr; 8572 unsigned char *buf; 8573 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4; 8574 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8575 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8576 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 8577 ptr = buf; 8578 int tmp = OP_glTexSubImage3D;memcpy(ptr, &tmp, 4); ptr += 4; 8579 memcpy(ptr, &totalSize, 4); ptr += 4; 8580 8581 memcpy(ptr, &target, 4); ptr += 4; 8582 memcpy(ptr, &level, 4); ptr += 4; 8583 memcpy(ptr, &xoffset, 4); ptr += 4; 8584 memcpy(ptr, &yoffset, 4); ptr += 4; 8585 memcpy(ptr, &zoffset, 4); ptr += 4; 8586 memcpy(ptr, &width, 4); ptr += 4; 8587 memcpy(ptr, &height, 4); ptr += 4; 8588 memcpy(ptr, &depth, 4); ptr += 4; 8589 memcpy(ptr, &format, 4); ptr += 4; 8590 memcpy(ptr, &type, 4); ptr += 4; 8591 8592 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8593 stream->flush(); 8594 stream->writeFully(&__size_data,4); 8595 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4); 8596 if (data != NULL) { 8597 stream->writeFully(data, __size_data); 8598 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 8599 } 8600 buf = stream->alloc(checksumSize); 8601 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 8602 8603 } 8604 8605 void glTexSubImage3DOffsetAEMU_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLuint offset) 8606 { 8607 8608 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8609 IOStream *stream = ctx->m_stream; 8610 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8611 bool useChecksum = checksumCalculator->getVersion() > 0; 8612 8613 unsigned char *ptr; 8614 unsigned char *buf; 8615 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 8616 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8617 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8618 buf = stream->alloc(totalSize); 8619 ptr = buf; 8620 int tmp = OP_glTexSubImage3DOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 8621 memcpy(ptr, &totalSize, 4); ptr += 4; 8622 8623 memcpy(ptr, &target, 4); ptr += 4; 8624 memcpy(ptr, &level, 4); ptr += 4; 8625 memcpy(ptr, &xoffset, 4); ptr += 4; 8626 memcpy(ptr, &yoffset, 4); ptr += 4; 8627 memcpy(ptr, &zoffset, 4); ptr += 4; 8628 memcpy(ptr, &width, 4); ptr += 4; 8629 memcpy(ptr, &height, 4); ptr += 4; 8630 memcpy(ptr, &depth, 4); ptr += 4; 8631 memcpy(ptr, &format, 4); ptr += 4; 8632 memcpy(ptr, &type, 4); ptr += 4; 8633 memcpy(ptr, &offset, 4); ptr += 4; 8634 8635 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8636 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8637 8638 } 8639 8640 void glCompressedTexImage3D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data) 8641 { 8642 8643 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8644 IOStream *stream = ctx->m_stream; 8645 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8646 bool useChecksum = checksumCalculator->getVersion() > 0; 8647 8648 const unsigned int __size_data = ((data != NULL) ? imageSize : 0); 8649 unsigned char *ptr; 8650 unsigned char *buf; 8651 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4; 8652 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8653 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8654 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 8655 ptr = buf; 8656 int tmp = OP_glCompressedTexImage3D;memcpy(ptr, &tmp, 4); ptr += 4; 8657 memcpy(ptr, &totalSize, 4); ptr += 4; 8658 8659 memcpy(ptr, &target, 4); ptr += 4; 8660 memcpy(ptr, &level, 4); ptr += 4; 8661 memcpy(ptr, &internalformat, 4); ptr += 4; 8662 memcpy(ptr, &width, 4); ptr += 4; 8663 memcpy(ptr, &height, 4); ptr += 4; 8664 memcpy(ptr, &depth, 4); ptr += 4; 8665 memcpy(ptr, &border, 4); ptr += 4; 8666 memcpy(ptr, &imageSize, 4); ptr += 4; 8667 8668 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8669 stream->flush(); 8670 stream->writeFully(&__size_data,4); 8671 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4); 8672 if (data != NULL) { 8673 stream->writeFully(data, __size_data); 8674 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 8675 } 8676 buf = stream->alloc(checksumSize); 8677 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 8678 8679 } 8680 8681 void glCompressedTexImage3DOffsetAEMU_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLuint offset) 8682 { 8683 8684 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8685 IOStream *stream = ctx->m_stream; 8686 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8687 bool useChecksum = checksumCalculator->getVersion() > 0; 8688 8689 unsigned char *ptr; 8690 unsigned char *buf; 8691 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 8692 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8693 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8694 buf = stream->alloc(totalSize); 8695 ptr = buf; 8696 int tmp = OP_glCompressedTexImage3DOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 8697 memcpy(ptr, &totalSize, 4); ptr += 4; 8698 8699 memcpy(ptr, &target, 4); ptr += 4; 8700 memcpy(ptr, &level, 4); ptr += 4; 8701 memcpy(ptr, &internalformat, 4); ptr += 4; 8702 memcpy(ptr, &width, 4); ptr += 4; 8703 memcpy(ptr, &height, 4); ptr += 4; 8704 memcpy(ptr, &depth, 4); ptr += 4; 8705 memcpy(ptr, &border, 4); ptr += 4; 8706 memcpy(ptr, &imageSize, 4); ptr += 4; 8707 memcpy(ptr, &offset, 4); ptr += 4; 8708 8709 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8710 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8711 8712 } 8713 8714 void glCompressedTexSubImage3D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data) 8715 { 8716 8717 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8718 IOStream *stream = ctx->m_stream; 8719 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8720 bool useChecksum = checksumCalculator->getVersion() > 0; 8721 8722 const unsigned int __size_data = ((data != NULL) ? imageSize : 0); 8723 unsigned char *ptr; 8724 unsigned char *buf; 8725 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4; 8726 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8727 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8728 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4); 8729 ptr = buf; 8730 int tmp = OP_glCompressedTexSubImage3D;memcpy(ptr, &tmp, 4); ptr += 4; 8731 memcpy(ptr, &totalSize, 4); ptr += 4; 8732 8733 memcpy(ptr, &target, 4); ptr += 4; 8734 memcpy(ptr, &level, 4); ptr += 4; 8735 memcpy(ptr, &xoffset, 4); ptr += 4; 8736 memcpy(ptr, &yoffset, 4); ptr += 4; 8737 memcpy(ptr, &zoffset, 4); ptr += 4; 8738 memcpy(ptr, &width, 4); ptr += 4; 8739 memcpy(ptr, &height, 4); ptr += 4; 8740 memcpy(ptr, &depth, 4); ptr += 4; 8741 memcpy(ptr, &format, 4); ptr += 4; 8742 memcpy(ptr, &imageSize, 4); ptr += 4; 8743 8744 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8745 stream->flush(); 8746 stream->writeFully(&__size_data,4); 8747 if (useChecksum) checksumCalculator->addBuffer(&__size_data,4); 8748 if (data != NULL) { 8749 stream->writeFully(data, __size_data); 8750 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 8751 } 8752 buf = stream->alloc(checksumSize); 8753 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize); 8754 8755 } 8756 8757 void glCompressedTexSubImage3DOffsetAEMU_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLuint data) 8758 { 8759 8760 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8761 IOStream *stream = ctx->m_stream; 8762 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8763 bool useChecksum = checksumCalculator->getVersion() > 0; 8764 8765 unsigned char *ptr; 8766 unsigned char *buf; 8767 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 8768 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8769 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8770 buf = stream->alloc(totalSize); 8771 ptr = buf; 8772 int tmp = OP_glCompressedTexSubImage3DOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 8773 memcpy(ptr, &totalSize, 4); ptr += 4; 8774 8775 memcpy(ptr, &target, 4); ptr += 4; 8776 memcpy(ptr, &level, 4); ptr += 4; 8777 memcpy(ptr, &xoffset, 4); ptr += 4; 8778 memcpy(ptr, &yoffset, 4); ptr += 4; 8779 memcpy(ptr, &zoffset, 4); ptr += 4; 8780 memcpy(ptr, &width, 4); ptr += 4; 8781 memcpy(ptr, &height, 4); ptr += 4; 8782 memcpy(ptr, &depth, 4); ptr += 4; 8783 memcpy(ptr, &format, 4); ptr += 4; 8784 memcpy(ptr, &imageSize, 4); ptr += 4; 8785 memcpy(ptr, &data, 4); ptr += 4; 8786 8787 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8788 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8789 8790 } 8791 8792 void glCopyTexSubImage3D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) 8793 { 8794 8795 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8796 IOStream *stream = ctx->m_stream; 8797 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8798 bool useChecksum = checksumCalculator->getVersion() > 0; 8799 8800 unsigned char *ptr; 8801 unsigned char *buf; 8802 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; 8803 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8804 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8805 buf = stream->alloc(totalSize); 8806 ptr = buf; 8807 int tmp = OP_glCopyTexSubImage3D;memcpy(ptr, &tmp, 4); ptr += 4; 8808 memcpy(ptr, &totalSize, 4); ptr += 4; 8809 8810 memcpy(ptr, &target, 4); ptr += 4; 8811 memcpy(ptr, &level, 4); ptr += 4; 8812 memcpy(ptr, &xoffset, 4); ptr += 4; 8813 memcpy(ptr, &yoffset, 4); ptr += 4; 8814 memcpy(ptr, &zoffset, 4); ptr += 4; 8815 memcpy(ptr, &x, 4); ptr += 4; 8816 memcpy(ptr, &y, 4); ptr += 4; 8817 memcpy(ptr, &width, 4); ptr += 4; 8818 memcpy(ptr, &height, 4); ptr += 4; 8819 8820 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8821 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8822 8823 } 8824 8825 void glGetBooleani_v_enc(void *self , GLenum target, GLuint index, GLboolean* data) 8826 { 8827 8828 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8829 IOStream *stream = ctx->m_stream; 8830 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8831 bool useChecksum = checksumCalculator->getVersion() > 0; 8832 8833 const unsigned int __size_data = (sizeof(GLboolean)); 8834 unsigned char *ptr; 8835 unsigned char *buf; 8836 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 8837 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8838 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8839 buf = stream->alloc(totalSize); 8840 ptr = buf; 8841 int tmp = OP_glGetBooleani_v;memcpy(ptr, &tmp, 4); ptr += 4; 8842 memcpy(ptr, &totalSize, 4); ptr += 4; 8843 8844 memcpy(ptr, &target, 4); ptr += 4; 8845 memcpy(ptr, &index, 4); ptr += 4; 8846 *(unsigned int *)(ptr) = __size_data; ptr += 4; 8847 8848 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8849 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8850 8851 stream->readback(data, __size_data); 8852 if (useChecksum) checksumCalculator->addBuffer(data, __size_data); 8853 if (useChecksum) { 8854 unsigned char *checksumBufPtr = NULL; 8855 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 8856 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 8857 stream->readback(checksumBufPtr, checksumSize); 8858 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 8859 ALOGE("glGetBooleani_v: GL communication error, please report this issue to b.android.com.\n"); 8860 abort(); 8861 } 8862 } 8863 } 8864 8865 void glMemoryBarrier_enc(void *self , GLbitfield barriers) 8866 { 8867 8868 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8869 IOStream *stream = ctx->m_stream; 8870 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8871 bool useChecksum = checksumCalculator->getVersion() > 0; 8872 8873 unsigned char *ptr; 8874 unsigned char *buf; 8875 const size_t sizeWithoutChecksum = 8 + 4; 8876 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8877 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8878 buf = stream->alloc(totalSize); 8879 ptr = buf; 8880 int tmp = OP_glMemoryBarrier;memcpy(ptr, &tmp, 4); ptr += 4; 8881 memcpy(ptr, &totalSize, 4); ptr += 4; 8882 8883 memcpy(ptr, &barriers, 4); ptr += 4; 8884 8885 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8886 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8887 8888 } 8889 8890 void glMemoryBarrierByRegion_enc(void *self , GLbitfield barriers) 8891 { 8892 8893 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8894 IOStream *stream = ctx->m_stream; 8895 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8896 bool useChecksum = checksumCalculator->getVersion() > 0; 8897 8898 unsigned char *ptr; 8899 unsigned char *buf; 8900 const size_t sizeWithoutChecksum = 8 + 4; 8901 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8902 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8903 buf = stream->alloc(totalSize); 8904 ptr = buf; 8905 int tmp = OP_glMemoryBarrierByRegion;memcpy(ptr, &tmp, 4); ptr += 4; 8906 memcpy(ptr, &totalSize, 4); ptr += 4; 8907 8908 memcpy(ptr, &barriers, 4); ptr += 4; 8909 8910 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8911 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8912 8913 } 8914 8915 void glGenProgramPipelines_enc(void *self , GLsizei n, GLuint* pipelines) 8916 { 8917 8918 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8919 IOStream *stream = ctx->m_stream; 8920 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8921 bool useChecksum = checksumCalculator->getVersion() > 0; 8922 8923 const unsigned int __size_pipelines = (n * sizeof(GLuint)); 8924 unsigned char *ptr; 8925 unsigned char *buf; 8926 const size_t sizeWithoutChecksum = 8 + 4 + 0 + 1*4; 8927 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8928 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8929 buf = stream->alloc(totalSize); 8930 ptr = buf; 8931 int tmp = OP_glGenProgramPipelines;memcpy(ptr, &tmp, 4); ptr += 4; 8932 memcpy(ptr, &totalSize, 4); ptr += 4; 8933 8934 memcpy(ptr, &n, 4); ptr += 4; 8935 *(unsigned int *)(ptr) = __size_pipelines; ptr += 4; 8936 8937 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8938 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8939 8940 stream->readback(pipelines, __size_pipelines); 8941 if (useChecksum) checksumCalculator->addBuffer(pipelines, __size_pipelines); 8942 if (useChecksum) { 8943 unsigned char *checksumBufPtr = NULL; 8944 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 8945 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 8946 stream->readback(checksumBufPtr, checksumSize); 8947 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 8948 ALOGE("glGenProgramPipelines: GL communication error, please report this issue to b.android.com.\n"); 8949 abort(); 8950 } 8951 } 8952 } 8953 8954 void glDeleteProgramPipelines_enc(void *self , GLsizei n, const GLuint* pipelines) 8955 { 8956 8957 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8958 IOStream *stream = ctx->m_stream; 8959 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8960 bool useChecksum = checksumCalculator->getVersion() > 0; 8961 8962 const unsigned int __size_pipelines = (n * sizeof(GLuint)); 8963 unsigned char *ptr; 8964 unsigned char *buf; 8965 const size_t sizeWithoutChecksum = 8 + 4 + __size_pipelines + 1*4; 8966 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8967 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8968 buf = stream->alloc(totalSize); 8969 ptr = buf; 8970 int tmp = OP_glDeleteProgramPipelines;memcpy(ptr, &tmp, 4); ptr += 4; 8971 memcpy(ptr, &totalSize, 4); ptr += 4; 8972 8973 memcpy(ptr, &n, 4); ptr += 4; 8974 *(unsigned int *)(ptr) = __size_pipelines; ptr += 4; 8975 memcpy(ptr, pipelines, __size_pipelines);ptr += __size_pipelines; 8976 8977 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 8978 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 8979 8980 } 8981 8982 void glBindProgramPipeline_enc(void *self , GLuint pipeline) 8983 { 8984 8985 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 8986 IOStream *stream = ctx->m_stream; 8987 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 8988 bool useChecksum = checksumCalculator->getVersion() > 0; 8989 8990 unsigned char *ptr; 8991 unsigned char *buf; 8992 const size_t sizeWithoutChecksum = 8 + 4; 8993 const size_t checksumSize = checksumCalculator->checksumByteSize(); 8994 const size_t totalSize = sizeWithoutChecksum + checksumSize; 8995 buf = stream->alloc(totalSize); 8996 ptr = buf; 8997 int tmp = OP_glBindProgramPipeline;memcpy(ptr, &tmp, 4); ptr += 4; 8998 memcpy(ptr, &totalSize, 4); ptr += 4; 8999 9000 memcpy(ptr, &pipeline, 4); ptr += 4; 9001 9002 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9003 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9004 9005 } 9006 9007 void glGetProgramPipelineiv_enc(void *self , GLuint pipeline, GLenum pname, GLint* params) 9008 { 9009 9010 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9011 IOStream *stream = ctx->m_stream; 9012 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9013 bool useChecksum = checksumCalculator->getVersion() > 0; 9014 9015 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 9016 unsigned char *ptr; 9017 unsigned char *buf; 9018 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 9019 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9020 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9021 buf = stream->alloc(totalSize); 9022 ptr = buf; 9023 int tmp = OP_glGetProgramPipelineiv;memcpy(ptr, &tmp, 4); ptr += 4; 9024 memcpy(ptr, &totalSize, 4); ptr += 4; 9025 9026 memcpy(ptr, &pipeline, 4); ptr += 4; 9027 memcpy(ptr, &pname, 4); ptr += 4; 9028 *(unsigned int *)(ptr) = __size_params; ptr += 4; 9029 9030 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9031 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9032 9033 stream->readback(params, __size_params); 9034 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 9035 if (useChecksum) { 9036 unsigned char *checksumBufPtr = NULL; 9037 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 9038 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 9039 stream->readback(checksumBufPtr, checksumSize); 9040 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 9041 ALOGE("glGetProgramPipelineiv: GL communication error, please report this issue to b.android.com.\n"); 9042 abort(); 9043 } 9044 } 9045 } 9046 9047 void glGetProgramPipelineInfoLog_enc(void *self , GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog) 9048 { 9049 9050 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9051 IOStream *stream = ctx->m_stream; 9052 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9053 bool useChecksum = checksumCalculator->getVersion() > 0; 9054 9055 const unsigned int __size_length = ((length != NULL) ? sizeof(GLsizei) : 0); 9056 const unsigned int __size_infoLog = bufSize; 9057 unsigned char *ptr; 9058 unsigned char *buf; 9059 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 0 + 2*4; 9060 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9061 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9062 buf = stream->alloc(totalSize); 9063 ptr = buf; 9064 int tmp = OP_glGetProgramPipelineInfoLog;memcpy(ptr, &tmp, 4); ptr += 4; 9065 memcpy(ptr, &totalSize, 4); ptr += 4; 9066 9067 memcpy(ptr, &pipeline, 4); ptr += 4; 9068 memcpy(ptr, &bufSize, 4); ptr += 4; 9069 *(unsigned int *)(ptr) = __size_length; ptr += 4; 9070 *(unsigned int *)(ptr) = __size_infoLog; ptr += 4; 9071 9072 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9073 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9074 9075 if (length != NULL) { 9076 stream->readback(length, __size_length); 9077 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 9078 } 9079 stream->readback(infoLog, __size_infoLog); 9080 if (useChecksum) checksumCalculator->addBuffer(infoLog, __size_infoLog); 9081 if (useChecksum) { 9082 unsigned char *checksumBufPtr = NULL; 9083 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 9084 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 9085 stream->readback(checksumBufPtr, checksumSize); 9086 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 9087 ALOGE("glGetProgramPipelineInfoLog: GL communication error, please report this issue to b.android.com.\n"); 9088 abort(); 9089 } 9090 } 9091 } 9092 9093 void glValidateProgramPipeline_enc(void *self , GLuint pipeline) 9094 { 9095 9096 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9097 IOStream *stream = ctx->m_stream; 9098 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9099 bool useChecksum = checksumCalculator->getVersion() > 0; 9100 9101 unsigned char *ptr; 9102 unsigned char *buf; 9103 const size_t sizeWithoutChecksum = 8 + 4; 9104 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9105 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9106 buf = stream->alloc(totalSize); 9107 ptr = buf; 9108 int tmp = OP_glValidateProgramPipeline;memcpy(ptr, &tmp, 4); ptr += 4; 9109 memcpy(ptr, &totalSize, 4); ptr += 4; 9110 9111 memcpy(ptr, &pipeline, 4); ptr += 4; 9112 9113 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9114 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9115 9116 } 9117 9118 GLboolean glIsProgramPipeline_enc(void *self , GLuint pipeline) 9119 { 9120 9121 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9122 IOStream *stream = ctx->m_stream; 9123 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9124 bool useChecksum = checksumCalculator->getVersion() > 0; 9125 9126 unsigned char *ptr; 9127 unsigned char *buf; 9128 const size_t sizeWithoutChecksum = 8 + 4; 9129 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9130 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9131 buf = stream->alloc(totalSize); 9132 ptr = buf; 9133 int tmp = OP_glIsProgramPipeline;memcpy(ptr, &tmp, 4); ptr += 4; 9134 memcpy(ptr, &totalSize, 4); ptr += 4; 9135 9136 memcpy(ptr, &pipeline, 4); ptr += 4; 9137 9138 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9139 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9140 9141 9142 GLboolean retval; 9143 stream->readback(&retval, 1); 9144 if (useChecksum) checksumCalculator->addBuffer(&retval, 1); 9145 if (useChecksum) { 9146 unsigned char *checksumBufPtr = NULL; 9147 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 9148 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 9149 stream->readback(checksumBufPtr, checksumSize); 9150 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 9151 ALOGE("glIsProgramPipeline: GL communication error, please report this issue to b.android.com.\n"); 9152 abort(); 9153 } 9154 } 9155 return retval; 9156 } 9157 9158 void glUseProgramStages_enc(void *self , GLuint pipeline, GLbitfield stages, GLuint program) 9159 { 9160 9161 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9162 IOStream *stream = ctx->m_stream; 9163 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9164 bool useChecksum = checksumCalculator->getVersion() > 0; 9165 9166 unsigned char *ptr; 9167 unsigned char *buf; 9168 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 9169 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9170 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9171 buf = stream->alloc(totalSize); 9172 ptr = buf; 9173 int tmp = OP_glUseProgramStages;memcpy(ptr, &tmp, 4); ptr += 4; 9174 memcpy(ptr, &totalSize, 4); ptr += 4; 9175 9176 memcpy(ptr, &pipeline, 4); ptr += 4; 9177 memcpy(ptr, &stages, 4); ptr += 4; 9178 memcpy(ptr, &program, 4); ptr += 4; 9179 9180 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9181 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9182 9183 } 9184 9185 void glActiveShaderProgram_enc(void *self , GLuint pipeline, GLuint program) 9186 { 9187 9188 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9189 IOStream *stream = ctx->m_stream; 9190 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9191 bool useChecksum = checksumCalculator->getVersion() > 0; 9192 9193 unsigned char *ptr; 9194 unsigned char *buf; 9195 const size_t sizeWithoutChecksum = 8 + 4 + 4; 9196 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9197 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9198 buf = stream->alloc(totalSize); 9199 ptr = buf; 9200 int tmp = OP_glActiveShaderProgram;memcpy(ptr, &tmp, 4); ptr += 4; 9201 memcpy(ptr, &totalSize, 4); ptr += 4; 9202 9203 memcpy(ptr, &pipeline, 4); ptr += 4; 9204 memcpy(ptr, &program, 4); ptr += 4; 9205 9206 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9207 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9208 9209 } 9210 9211 GLuint glCreateShaderProgramvAEMU_enc(void *self , GLenum type, GLsizei count, const char* packedStrings, GLuint packedLen) 9212 { 9213 9214 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9215 IOStream *stream = ctx->m_stream; 9216 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9217 bool useChecksum = checksumCalculator->getVersion() > 0; 9218 9219 const unsigned int __size_packedStrings = packedLen; 9220 unsigned char *ptr; 9221 unsigned char *buf; 9222 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_packedStrings + 4 + 1*4; 9223 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9224 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9225 buf = stream->alloc(totalSize); 9226 ptr = buf; 9227 int tmp = OP_glCreateShaderProgramvAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 9228 memcpy(ptr, &totalSize, 4); ptr += 4; 9229 9230 memcpy(ptr, &type, 4); ptr += 4; 9231 memcpy(ptr, &count, 4); ptr += 4; 9232 *(unsigned int *)(ptr) = __size_packedStrings; ptr += 4; 9233 memcpy(ptr, packedStrings, __size_packedStrings);ptr += __size_packedStrings; 9234 memcpy(ptr, &packedLen, 4); ptr += 4; 9235 9236 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9237 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9238 9239 9240 GLuint retval; 9241 stream->readback(&retval, 4); 9242 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 9243 if (useChecksum) { 9244 unsigned char *checksumBufPtr = NULL; 9245 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 9246 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 9247 stream->readback(checksumBufPtr, checksumSize); 9248 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 9249 ALOGE("glCreateShaderProgramvAEMU: GL communication error, please report this issue to b.android.com.\n"); 9250 abort(); 9251 } 9252 } 9253 return retval; 9254 } 9255 9256 void glProgramUniform1f_enc(void *self , GLuint program, GLint location, GLfloat v0) 9257 { 9258 9259 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9260 IOStream *stream = ctx->m_stream; 9261 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9262 bool useChecksum = checksumCalculator->getVersion() > 0; 9263 9264 unsigned char *ptr; 9265 unsigned char *buf; 9266 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 9267 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9268 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9269 buf = stream->alloc(totalSize); 9270 ptr = buf; 9271 int tmp = OP_glProgramUniform1f;memcpy(ptr, &tmp, 4); ptr += 4; 9272 memcpy(ptr, &totalSize, 4); ptr += 4; 9273 9274 memcpy(ptr, &program, 4); ptr += 4; 9275 memcpy(ptr, &location, 4); ptr += 4; 9276 memcpy(ptr, &v0, 4); ptr += 4; 9277 9278 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9279 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9280 9281 } 9282 9283 void glProgramUniform2f_enc(void *self , GLuint program, GLint location, GLfloat v0, GLfloat v1) 9284 { 9285 9286 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9287 IOStream *stream = ctx->m_stream; 9288 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9289 bool useChecksum = checksumCalculator->getVersion() > 0; 9290 9291 unsigned char *ptr; 9292 unsigned char *buf; 9293 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 9294 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9295 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9296 buf = stream->alloc(totalSize); 9297 ptr = buf; 9298 int tmp = OP_glProgramUniform2f;memcpy(ptr, &tmp, 4); ptr += 4; 9299 memcpy(ptr, &totalSize, 4); ptr += 4; 9300 9301 memcpy(ptr, &program, 4); ptr += 4; 9302 memcpy(ptr, &location, 4); ptr += 4; 9303 memcpy(ptr, &v0, 4); ptr += 4; 9304 memcpy(ptr, &v1, 4); ptr += 4; 9305 9306 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9307 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9308 9309 } 9310 9311 void glProgramUniform3f_enc(void *self , GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) 9312 { 9313 9314 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9315 IOStream *stream = ctx->m_stream; 9316 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9317 bool useChecksum = checksumCalculator->getVersion() > 0; 9318 9319 unsigned char *ptr; 9320 unsigned char *buf; 9321 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 9322 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9323 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9324 buf = stream->alloc(totalSize); 9325 ptr = buf; 9326 int tmp = OP_glProgramUniform3f;memcpy(ptr, &tmp, 4); ptr += 4; 9327 memcpy(ptr, &totalSize, 4); ptr += 4; 9328 9329 memcpy(ptr, &program, 4); ptr += 4; 9330 memcpy(ptr, &location, 4); ptr += 4; 9331 memcpy(ptr, &v0, 4); ptr += 4; 9332 memcpy(ptr, &v1, 4); ptr += 4; 9333 memcpy(ptr, &v2, 4); ptr += 4; 9334 9335 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9336 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9337 9338 } 9339 9340 void glProgramUniform4f_enc(void *self , GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) 9341 { 9342 9343 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9344 IOStream *stream = ctx->m_stream; 9345 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9346 bool useChecksum = checksumCalculator->getVersion() > 0; 9347 9348 unsigned char *ptr; 9349 unsigned char *buf; 9350 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4; 9351 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9352 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9353 buf = stream->alloc(totalSize); 9354 ptr = buf; 9355 int tmp = OP_glProgramUniform4f;memcpy(ptr, &tmp, 4); ptr += 4; 9356 memcpy(ptr, &totalSize, 4); ptr += 4; 9357 9358 memcpy(ptr, &program, 4); ptr += 4; 9359 memcpy(ptr, &location, 4); ptr += 4; 9360 memcpy(ptr, &v0, 4); ptr += 4; 9361 memcpy(ptr, &v1, 4); ptr += 4; 9362 memcpy(ptr, &v2, 4); ptr += 4; 9363 memcpy(ptr, &v3, 4); ptr += 4; 9364 9365 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9366 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9367 9368 } 9369 9370 void glProgramUniform1i_enc(void *self , GLuint program, GLint location, GLint v0) 9371 { 9372 9373 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9374 IOStream *stream = ctx->m_stream; 9375 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9376 bool useChecksum = checksumCalculator->getVersion() > 0; 9377 9378 unsigned char *ptr; 9379 unsigned char *buf; 9380 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 9381 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9382 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9383 buf = stream->alloc(totalSize); 9384 ptr = buf; 9385 int tmp = OP_glProgramUniform1i;memcpy(ptr, &tmp, 4); ptr += 4; 9386 memcpy(ptr, &totalSize, 4); ptr += 4; 9387 9388 memcpy(ptr, &program, 4); ptr += 4; 9389 memcpy(ptr, &location, 4); ptr += 4; 9390 memcpy(ptr, &v0, 4); ptr += 4; 9391 9392 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9393 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9394 9395 } 9396 9397 void glProgramUniform2i_enc(void *self , GLuint program, GLint location, GLint v0, GLint v1) 9398 { 9399 9400 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9401 IOStream *stream = ctx->m_stream; 9402 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9403 bool useChecksum = checksumCalculator->getVersion() > 0; 9404 9405 unsigned char *ptr; 9406 unsigned char *buf; 9407 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 9408 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9409 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9410 buf = stream->alloc(totalSize); 9411 ptr = buf; 9412 int tmp = OP_glProgramUniform2i;memcpy(ptr, &tmp, 4); ptr += 4; 9413 memcpy(ptr, &totalSize, 4); ptr += 4; 9414 9415 memcpy(ptr, &program, 4); ptr += 4; 9416 memcpy(ptr, &location, 4); ptr += 4; 9417 memcpy(ptr, &v0, 4); ptr += 4; 9418 memcpy(ptr, &v1, 4); ptr += 4; 9419 9420 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9421 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9422 9423 } 9424 9425 void glProgramUniform3i_enc(void *self , GLuint program, GLint location, GLint v0, GLint v1, GLint v2) 9426 { 9427 9428 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9429 IOStream *stream = ctx->m_stream; 9430 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9431 bool useChecksum = checksumCalculator->getVersion() > 0; 9432 9433 unsigned char *ptr; 9434 unsigned char *buf; 9435 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 9436 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9437 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9438 buf = stream->alloc(totalSize); 9439 ptr = buf; 9440 int tmp = OP_glProgramUniform3i;memcpy(ptr, &tmp, 4); ptr += 4; 9441 memcpy(ptr, &totalSize, 4); ptr += 4; 9442 9443 memcpy(ptr, &program, 4); ptr += 4; 9444 memcpy(ptr, &location, 4); ptr += 4; 9445 memcpy(ptr, &v0, 4); ptr += 4; 9446 memcpy(ptr, &v1, 4); ptr += 4; 9447 memcpy(ptr, &v2, 4); ptr += 4; 9448 9449 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9450 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9451 9452 } 9453 9454 void glProgramUniform4i_enc(void *self , GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) 9455 { 9456 9457 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9458 IOStream *stream = ctx->m_stream; 9459 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9460 bool useChecksum = checksumCalculator->getVersion() > 0; 9461 9462 unsigned char *ptr; 9463 unsigned char *buf; 9464 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4; 9465 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9466 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9467 buf = stream->alloc(totalSize); 9468 ptr = buf; 9469 int tmp = OP_glProgramUniform4i;memcpy(ptr, &tmp, 4); ptr += 4; 9470 memcpy(ptr, &totalSize, 4); ptr += 4; 9471 9472 memcpy(ptr, &program, 4); ptr += 4; 9473 memcpy(ptr, &location, 4); ptr += 4; 9474 memcpy(ptr, &v0, 4); ptr += 4; 9475 memcpy(ptr, &v1, 4); ptr += 4; 9476 memcpy(ptr, &v2, 4); ptr += 4; 9477 memcpy(ptr, &v3, 4); ptr += 4; 9478 9479 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9480 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9481 9482 } 9483 9484 void glProgramUniform1ui_enc(void *self , GLuint program, GLint location, GLuint v0) 9485 { 9486 9487 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9488 IOStream *stream = ctx->m_stream; 9489 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9490 bool useChecksum = checksumCalculator->getVersion() > 0; 9491 9492 unsigned char *ptr; 9493 unsigned char *buf; 9494 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 9495 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9496 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9497 buf = stream->alloc(totalSize); 9498 ptr = buf; 9499 int tmp = OP_glProgramUniform1ui;memcpy(ptr, &tmp, 4); ptr += 4; 9500 memcpy(ptr, &totalSize, 4); ptr += 4; 9501 9502 memcpy(ptr, &program, 4); ptr += 4; 9503 memcpy(ptr, &location, 4); ptr += 4; 9504 memcpy(ptr, &v0, 4); ptr += 4; 9505 9506 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9507 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9508 9509 } 9510 9511 void glProgramUniform2ui_enc(void *self , GLuint program, GLint location, GLint v0, GLuint v1) 9512 { 9513 9514 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9515 IOStream *stream = ctx->m_stream; 9516 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9517 bool useChecksum = checksumCalculator->getVersion() > 0; 9518 9519 unsigned char *ptr; 9520 unsigned char *buf; 9521 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 9522 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9523 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9524 buf = stream->alloc(totalSize); 9525 ptr = buf; 9526 int tmp = OP_glProgramUniform2ui;memcpy(ptr, &tmp, 4); ptr += 4; 9527 memcpy(ptr, &totalSize, 4); ptr += 4; 9528 9529 memcpy(ptr, &program, 4); ptr += 4; 9530 memcpy(ptr, &location, 4); ptr += 4; 9531 memcpy(ptr, &v0, 4); ptr += 4; 9532 memcpy(ptr, &v1, 4); ptr += 4; 9533 9534 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9535 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9536 9537 } 9538 9539 void glProgramUniform3ui_enc(void *self , GLuint program, GLint location, GLint v0, GLint v1, GLuint v2) 9540 { 9541 9542 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9543 IOStream *stream = ctx->m_stream; 9544 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9545 bool useChecksum = checksumCalculator->getVersion() > 0; 9546 9547 unsigned char *ptr; 9548 unsigned char *buf; 9549 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4; 9550 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9551 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9552 buf = stream->alloc(totalSize); 9553 ptr = buf; 9554 int tmp = OP_glProgramUniform3ui;memcpy(ptr, &tmp, 4); ptr += 4; 9555 memcpy(ptr, &totalSize, 4); ptr += 4; 9556 9557 memcpy(ptr, &program, 4); ptr += 4; 9558 memcpy(ptr, &location, 4); ptr += 4; 9559 memcpy(ptr, &v0, 4); ptr += 4; 9560 memcpy(ptr, &v1, 4); ptr += 4; 9561 memcpy(ptr, &v2, 4); ptr += 4; 9562 9563 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9564 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9565 9566 } 9567 9568 void glProgramUniform4ui_enc(void *self , GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLuint v3) 9569 { 9570 9571 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9572 IOStream *stream = ctx->m_stream; 9573 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9574 bool useChecksum = checksumCalculator->getVersion() > 0; 9575 9576 unsigned char *ptr; 9577 unsigned char *buf; 9578 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4; 9579 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9580 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9581 buf = stream->alloc(totalSize); 9582 ptr = buf; 9583 int tmp = OP_glProgramUniform4ui;memcpy(ptr, &tmp, 4); ptr += 4; 9584 memcpy(ptr, &totalSize, 4); ptr += 4; 9585 9586 memcpy(ptr, &program, 4); ptr += 4; 9587 memcpy(ptr, &location, 4); ptr += 4; 9588 memcpy(ptr, &v0, 4); ptr += 4; 9589 memcpy(ptr, &v1, 4); ptr += 4; 9590 memcpy(ptr, &v2, 4); ptr += 4; 9591 memcpy(ptr, &v3, 4); ptr += 4; 9592 9593 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9594 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9595 9596 } 9597 9598 void glProgramUniform1fv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLfloat* value) 9599 { 9600 9601 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9602 IOStream *stream = ctx->m_stream; 9603 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9604 bool useChecksum = checksumCalculator->getVersion() > 0; 9605 9606 const unsigned int __size_value = (count * sizeof(GLfloat)); 9607 unsigned char *ptr; 9608 unsigned char *buf; 9609 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9610 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9611 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9612 buf = stream->alloc(totalSize); 9613 ptr = buf; 9614 int tmp = OP_glProgramUniform1fv;memcpy(ptr, &tmp, 4); ptr += 4; 9615 memcpy(ptr, &totalSize, 4); ptr += 4; 9616 9617 memcpy(ptr, &program, 4); ptr += 4; 9618 memcpy(ptr, &location, 4); ptr += 4; 9619 memcpy(ptr, &count, 4); ptr += 4; 9620 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9621 memcpy(ptr, value, __size_value);ptr += __size_value; 9622 9623 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9624 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9625 9626 } 9627 9628 void glProgramUniform2fv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLfloat* value) 9629 { 9630 9631 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9632 IOStream *stream = ctx->m_stream; 9633 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9634 bool useChecksum = checksumCalculator->getVersion() > 0; 9635 9636 const unsigned int __size_value = (count * 2 * sizeof(GLfloat)); 9637 unsigned char *ptr; 9638 unsigned char *buf; 9639 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9640 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9641 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9642 buf = stream->alloc(totalSize); 9643 ptr = buf; 9644 int tmp = OP_glProgramUniform2fv;memcpy(ptr, &tmp, 4); ptr += 4; 9645 memcpy(ptr, &totalSize, 4); ptr += 4; 9646 9647 memcpy(ptr, &program, 4); ptr += 4; 9648 memcpy(ptr, &location, 4); ptr += 4; 9649 memcpy(ptr, &count, 4); ptr += 4; 9650 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9651 memcpy(ptr, value, __size_value);ptr += __size_value; 9652 9653 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9654 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9655 9656 } 9657 9658 void glProgramUniform3fv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLfloat* value) 9659 { 9660 9661 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9662 IOStream *stream = ctx->m_stream; 9663 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9664 bool useChecksum = checksumCalculator->getVersion() > 0; 9665 9666 const unsigned int __size_value = (count * 3 * sizeof(GLfloat)); 9667 unsigned char *ptr; 9668 unsigned char *buf; 9669 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9670 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9671 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9672 buf = stream->alloc(totalSize); 9673 ptr = buf; 9674 int tmp = OP_glProgramUniform3fv;memcpy(ptr, &tmp, 4); ptr += 4; 9675 memcpy(ptr, &totalSize, 4); ptr += 4; 9676 9677 memcpy(ptr, &program, 4); ptr += 4; 9678 memcpy(ptr, &location, 4); ptr += 4; 9679 memcpy(ptr, &count, 4); ptr += 4; 9680 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9681 memcpy(ptr, value, __size_value);ptr += __size_value; 9682 9683 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9684 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9685 9686 } 9687 9688 void glProgramUniform4fv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLfloat* value) 9689 { 9690 9691 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9692 IOStream *stream = ctx->m_stream; 9693 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9694 bool useChecksum = checksumCalculator->getVersion() > 0; 9695 9696 const unsigned int __size_value = (count * 4 * sizeof(GLfloat)); 9697 unsigned char *ptr; 9698 unsigned char *buf; 9699 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9700 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9701 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9702 buf = stream->alloc(totalSize); 9703 ptr = buf; 9704 int tmp = OP_glProgramUniform4fv;memcpy(ptr, &tmp, 4); ptr += 4; 9705 memcpy(ptr, &totalSize, 4); ptr += 4; 9706 9707 memcpy(ptr, &program, 4); ptr += 4; 9708 memcpy(ptr, &location, 4); ptr += 4; 9709 memcpy(ptr, &count, 4); ptr += 4; 9710 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9711 memcpy(ptr, value, __size_value);ptr += __size_value; 9712 9713 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9714 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9715 9716 } 9717 9718 void glProgramUniform1iv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLint* value) 9719 { 9720 9721 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9722 IOStream *stream = ctx->m_stream; 9723 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9724 bool useChecksum = checksumCalculator->getVersion() > 0; 9725 9726 const unsigned int __size_value = (count * sizeof(GLint)); 9727 unsigned char *ptr; 9728 unsigned char *buf; 9729 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9730 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9731 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9732 buf = stream->alloc(totalSize); 9733 ptr = buf; 9734 int tmp = OP_glProgramUniform1iv;memcpy(ptr, &tmp, 4); ptr += 4; 9735 memcpy(ptr, &totalSize, 4); ptr += 4; 9736 9737 memcpy(ptr, &program, 4); ptr += 4; 9738 memcpy(ptr, &location, 4); ptr += 4; 9739 memcpy(ptr, &count, 4); ptr += 4; 9740 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9741 memcpy(ptr, value, __size_value);ptr += __size_value; 9742 9743 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9744 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9745 9746 } 9747 9748 void glProgramUniform2iv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLint* value) 9749 { 9750 9751 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9752 IOStream *stream = ctx->m_stream; 9753 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9754 bool useChecksum = checksumCalculator->getVersion() > 0; 9755 9756 const unsigned int __size_value = (count * 2 * sizeof(GLint)); 9757 unsigned char *ptr; 9758 unsigned char *buf; 9759 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9760 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9761 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9762 buf = stream->alloc(totalSize); 9763 ptr = buf; 9764 int tmp = OP_glProgramUniform2iv;memcpy(ptr, &tmp, 4); ptr += 4; 9765 memcpy(ptr, &totalSize, 4); ptr += 4; 9766 9767 memcpy(ptr, &program, 4); ptr += 4; 9768 memcpy(ptr, &location, 4); ptr += 4; 9769 memcpy(ptr, &count, 4); ptr += 4; 9770 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9771 memcpy(ptr, value, __size_value);ptr += __size_value; 9772 9773 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9774 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9775 9776 } 9777 9778 void glProgramUniform3iv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLint* value) 9779 { 9780 9781 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9782 IOStream *stream = ctx->m_stream; 9783 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9784 bool useChecksum = checksumCalculator->getVersion() > 0; 9785 9786 const unsigned int __size_value = (count * 3 * sizeof(GLint)); 9787 unsigned char *ptr; 9788 unsigned char *buf; 9789 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9790 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9791 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9792 buf = stream->alloc(totalSize); 9793 ptr = buf; 9794 int tmp = OP_glProgramUniform3iv;memcpy(ptr, &tmp, 4); ptr += 4; 9795 memcpy(ptr, &totalSize, 4); ptr += 4; 9796 9797 memcpy(ptr, &program, 4); ptr += 4; 9798 memcpy(ptr, &location, 4); ptr += 4; 9799 memcpy(ptr, &count, 4); ptr += 4; 9800 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9801 memcpy(ptr, value, __size_value);ptr += __size_value; 9802 9803 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9804 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9805 9806 } 9807 9808 void glProgramUniform4iv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLint* value) 9809 { 9810 9811 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9812 IOStream *stream = ctx->m_stream; 9813 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9814 bool useChecksum = checksumCalculator->getVersion() > 0; 9815 9816 const unsigned int __size_value = (count * 4 * sizeof(GLint)); 9817 unsigned char *ptr; 9818 unsigned char *buf; 9819 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9820 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9821 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9822 buf = stream->alloc(totalSize); 9823 ptr = buf; 9824 int tmp = OP_glProgramUniform4iv;memcpy(ptr, &tmp, 4); ptr += 4; 9825 memcpy(ptr, &totalSize, 4); ptr += 4; 9826 9827 memcpy(ptr, &program, 4); ptr += 4; 9828 memcpy(ptr, &location, 4); ptr += 4; 9829 memcpy(ptr, &count, 4); ptr += 4; 9830 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9831 memcpy(ptr, value, __size_value);ptr += __size_value; 9832 9833 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9834 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9835 9836 } 9837 9838 void glProgramUniform1uiv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLuint* value) 9839 { 9840 9841 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9842 IOStream *stream = ctx->m_stream; 9843 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9844 bool useChecksum = checksumCalculator->getVersion() > 0; 9845 9846 const unsigned int __size_value = (count * sizeof(GLuint)); 9847 unsigned char *ptr; 9848 unsigned char *buf; 9849 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9850 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9851 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9852 buf = stream->alloc(totalSize); 9853 ptr = buf; 9854 int tmp = OP_glProgramUniform1uiv;memcpy(ptr, &tmp, 4); ptr += 4; 9855 memcpy(ptr, &totalSize, 4); ptr += 4; 9856 9857 memcpy(ptr, &program, 4); ptr += 4; 9858 memcpy(ptr, &location, 4); ptr += 4; 9859 memcpy(ptr, &count, 4); ptr += 4; 9860 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9861 memcpy(ptr, value, __size_value);ptr += __size_value; 9862 9863 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9864 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9865 9866 } 9867 9868 void glProgramUniform2uiv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLuint* value) 9869 { 9870 9871 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9872 IOStream *stream = ctx->m_stream; 9873 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9874 bool useChecksum = checksumCalculator->getVersion() > 0; 9875 9876 const unsigned int __size_value = (count * 2 * sizeof(GLuint)); 9877 unsigned char *ptr; 9878 unsigned char *buf; 9879 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9880 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9881 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9882 buf = stream->alloc(totalSize); 9883 ptr = buf; 9884 int tmp = OP_glProgramUniform2uiv;memcpy(ptr, &tmp, 4); ptr += 4; 9885 memcpy(ptr, &totalSize, 4); ptr += 4; 9886 9887 memcpy(ptr, &program, 4); ptr += 4; 9888 memcpy(ptr, &location, 4); ptr += 4; 9889 memcpy(ptr, &count, 4); ptr += 4; 9890 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9891 memcpy(ptr, value, __size_value);ptr += __size_value; 9892 9893 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9894 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9895 9896 } 9897 9898 void glProgramUniform3uiv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLuint* value) 9899 { 9900 9901 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9902 IOStream *stream = ctx->m_stream; 9903 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9904 bool useChecksum = checksumCalculator->getVersion() > 0; 9905 9906 const unsigned int __size_value = (count * 3 * sizeof(GLuint)); 9907 unsigned char *ptr; 9908 unsigned char *buf; 9909 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9910 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9911 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9912 buf = stream->alloc(totalSize); 9913 ptr = buf; 9914 int tmp = OP_glProgramUniform3uiv;memcpy(ptr, &tmp, 4); ptr += 4; 9915 memcpy(ptr, &totalSize, 4); ptr += 4; 9916 9917 memcpy(ptr, &program, 4); ptr += 4; 9918 memcpy(ptr, &location, 4); ptr += 4; 9919 memcpy(ptr, &count, 4); ptr += 4; 9920 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9921 memcpy(ptr, value, __size_value);ptr += __size_value; 9922 9923 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9924 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9925 9926 } 9927 9928 void glProgramUniform4uiv_enc(void *self , GLuint program, GLint location, GLsizei count, const GLuint* value) 9929 { 9930 9931 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9932 IOStream *stream = ctx->m_stream; 9933 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9934 bool useChecksum = checksumCalculator->getVersion() > 0; 9935 9936 const unsigned int __size_value = (count * 4 * sizeof(GLuint)); 9937 unsigned char *ptr; 9938 unsigned char *buf; 9939 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + __size_value + 1*4; 9940 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9941 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9942 buf = stream->alloc(totalSize); 9943 ptr = buf; 9944 int tmp = OP_glProgramUniform4uiv;memcpy(ptr, &tmp, 4); ptr += 4; 9945 memcpy(ptr, &totalSize, 4); ptr += 4; 9946 9947 memcpy(ptr, &program, 4); ptr += 4; 9948 memcpy(ptr, &location, 4); ptr += 4; 9949 memcpy(ptr, &count, 4); ptr += 4; 9950 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9951 memcpy(ptr, value, __size_value);ptr += __size_value; 9952 9953 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9954 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9955 9956 } 9957 9958 void glProgramUniformMatrix2fv_enc(void *self , GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 9959 { 9960 9961 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9962 IOStream *stream = ctx->m_stream; 9963 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9964 bool useChecksum = checksumCalculator->getVersion() > 0; 9965 9966 const unsigned int __size_value = (count * 4 * sizeof(GLfloat)); 9967 unsigned char *ptr; 9968 unsigned char *buf; 9969 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + __size_value + 1*4; 9970 const size_t checksumSize = checksumCalculator->checksumByteSize(); 9971 const size_t totalSize = sizeWithoutChecksum + checksumSize; 9972 buf = stream->alloc(totalSize); 9973 ptr = buf; 9974 int tmp = OP_glProgramUniformMatrix2fv;memcpy(ptr, &tmp, 4); ptr += 4; 9975 memcpy(ptr, &totalSize, 4); ptr += 4; 9976 9977 memcpy(ptr, &program, 4); ptr += 4; 9978 memcpy(ptr, &location, 4); ptr += 4; 9979 memcpy(ptr, &count, 4); ptr += 4; 9980 memcpy(ptr, &transpose, 1); ptr += 1; 9981 *(unsigned int *)(ptr) = __size_value; ptr += 4; 9982 memcpy(ptr, value, __size_value);ptr += __size_value; 9983 9984 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 9985 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 9986 9987 } 9988 9989 void glProgramUniformMatrix3fv_enc(void *self , GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 9990 { 9991 9992 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 9993 IOStream *stream = ctx->m_stream; 9994 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 9995 bool useChecksum = checksumCalculator->getVersion() > 0; 9996 9997 const unsigned int __size_value = (count * 9 * sizeof(GLfloat)); 9998 unsigned char *ptr; 9999 unsigned char *buf; 10000 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + __size_value + 1*4; 10001 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10002 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10003 buf = stream->alloc(totalSize); 10004 ptr = buf; 10005 int tmp = OP_glProgramUniformMatrix3fv;memcpy(ptr, &tmp, 4); ptr += 4; 10006 memcpy(ptr, &totalSize, 4); ptr += 4; 10007 10008 memcpy(ptr, &program, 4); ptr += 4; 10009 memcpy(ptr, &location, 4); ptr += 4; 10010 memcpy(ptr, &count, 4); ptr += 4; 10011 memcpy(ptr, &transpose, 1); ptr += 1; 10012 *(unsigned int *)(ptr) = __size_value; ptr += 4; 10013 memcpy(ptr, value, __size_value);ptr += __size_value; 10014 10015 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10016 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10017 10018 } 10019 10020 void glProgramUniformMatrix4fv_enc(void *self , GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 10021 { 10022 10023 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10024 IOStream *stream = ctx->m_stream; 10025 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10026 bool useChecksum = checksumCalculator->getVersion() > 0; 10027 10028 const unsigned int __size_value = (count * 16 * sizeof(GLfloat)); 10029 unsigned char *ptr; 10030 unsigned char *buf; 10031 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + __size_value + 1*4; 10032 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10033 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10034 buf = stream->alloc(totalSize); 10035 ptr = buf; 10036 int tmp = OP_glProgramUniformMatrix4fv;memcpy(ptr, &tmp, 4); ptr += 4; 10037 memcpy(ptr, &totalSize, 4); ptr += 4; 10038 10039 memcpy(ptr, &program, 4); ptr += 4; 10040 memcpy(ptr, &location, 4); ptr += 4; 10041 memcpy(ptr, &count, 4); ptr += 4; 10042 memcpy(ptr, &transpose, 1); ptr += 1; 10043 *(unsigned int *)(ptr) = __size_value; ptr += 4; 10044 memcpy(ptr, value, __size_value);ptr += __size_value; 10045 10046 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10047 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10048 10049 } 10050 10051 void glProgramUniformMatrix2x3fv_enc(void *self , GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 10052 { 10053 10054 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10055 IOStream *stream = ctx->m_stream; 10056 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10057 bool useChecksum = checksumCalculator->getVersion() > 0; 10058 10059 const unsigned int __size_value = (count * 6 * sizeof(GLfloat)); 10060 unsigned char *ptr; 10061 unsigned char *buf; 10062 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + __size_value + 1*4; 10063 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10064 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10065 buf = stream->alloc(totalSize); 10066 ptr = buf; 10067 int tmp = OP_glProgramUniformMatrix2x3fv;memcpy(ptr, &tmp, 4); ptr += 4; 10068 memcpy(ptr, &totalSize, 4); ptr += 4; 10069 10070 memcpy(ptr, &program, 4); ptr += 4; 10071 memcpy(ptr, &location, 4); ptr += 4; 10072 memcpy(ptr, &count, 4); ptr += 4; 10073 memcpy(ptr, &transpose, 1); ptr += 1; 10074 *(unsigned int *)(ptr) = __size_value; ptr += 4; 10075 memcpy(ptr, value, __size_value);ptr += __size_value; 10076 10077 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10078 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10079 10080 } 10081 10082 void glProgramUniformMatrix3x2fv_enc(void *self , GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 10083 { 10084 10085 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10086 IOStream *stream = ctx->m_stream; 10087 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10088 bool useChecksum = checksumCalculator->getVersion() > 0; 10089 10090 const unsigned int __size_value = (count * 6 * sizeof(GLfloat)); 10091 unsigned char *ptr; 10092 unsigned char *buf; 10093 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + __size_value + 1*4; 10094 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10095 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10096 buf = stream->alloc(totalSize); 10097 ptr = buf; 10098 int tmp = OP_glProgramUniformMatrix3x2fv;memcpy(ptr, &tmp, 4); ptr += 4; 10099 memcpy(ptr, &totalSize, 4); ptr += 4; 10100 10101 memcpy(ptr, &program, 4); ptr += 4; 10102 memcpy(ptr, &location, 4); ptr += 4; 10103 memcpy(ptr, &count, 4); ptr += 4; 10104 memcpy(ptr, &transpose, 1); ptr += 1; 10105 *(unsigned int *)(ptr) = __size_value; ptr += 4; 10106 memcpy(ptr, value, __size_value);ptr += __size_value; 10107 10108 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10109 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10110 10111 } 10112 10113 void glProgramUniformMatrix2x4fv_enc(void *self , GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 10114 { 10115 10116 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10117 IOStream *stream = ctx->m_stream; 10118 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10119 bool useChecksum = checksumCalculator->getVersion() > 0; 10120 10121 const unsigned int __size_value = (count * 8 * sizeof(GLfloat)); 10122 unsigned char *ptr; 10123 unsigned char *buf; 10124 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + __size_value + 1*4; 10125 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10126 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10127 buf = stream->alloc(totalSize); 10128 ptr = buf; 10129 int tmp = OP_glProgramUniformMatrix2x4fv;memcpy(ptr, &tmp, 4); ptr += 4; 10130 memcpy(ptr, &totalSize, 4); ptr += 4; 10131 10132 memcpy(ptr, &program, 4); ptr += 4; 10133 memcpy(ptr, &location, 4); ptr += 4; 10134 memcpy(ptr, &count, 4); ptr += 4; 10135 memcpy(ptr, &transpose, 1); ptr += 1; 10136 *(unsigned int *)(ptr) = __size_value; ptr += 4; 10137 memcpy(ptr, value, __size_value);ptr += __size_value; 10138 10139 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10140 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10141 10142 } 10143 10144 void glProgramUniformMatrix4x2fv_enc(void *self , GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 10145 { 10146 10147 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10148 IOStream *stream = ctx->m_stream; 10149 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10150 bool useChecksum = checksumCalculator->getVersion() > 0; 10151 10152 const unsigned int __size_value = (count * 8 * sizeof(GLfloat)); 10153 unsigned char *ptr; 10154 unsigned char *buf; 10155 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + __size_value + 1*4; 10156 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10157 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10158 buf = stream->alloc(totalSize); 10159 ptr = buf; 10160 int tmp = OP_glProgramUniformMatrix4x2fv;memcpy(ptr, &tmp, 4); ptr += 4; 10161 memcpy(ptr, &totalSize, 4); ptr += 4; 10162 10163 memcpy(ptr, &program, 4); ptr += 4; 10164 memcpy(ptr, &location, 4); ptr += 4; 10165 memcpy(ptr, &count, 4); ptr += 4; 10166 memcpy(ptr, &transpose, 1); ptr += 1; 10167 *(unsigned int *)(ptr) = __size_value; ptr += 4; 10168 memcpy(ptr, value, __size_value);ptr += __size_value; 10169 10170 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10171 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10172 10173 } 10174 10175 void glProgramUniformMatrix3x4fv_enc(void *self , GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 10176 { 10177 10178 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10179 IOStream *stream = ctx->m_stream; 10180 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10181 bool useChecksum = checksumCalculator->getVersion() > 0; 10182 10183 const unsigned int __size_value = (count * 12 * sizeof(GLfloat)); 10184 unsigned char *ptr; 10185 unsigned char *buf; 10186 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + __size_value + 1*4; 10187 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10188 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10189 buf = stream->alloc(totalSize); 10190 ptr = buf; 10191 int tmp = OP_glProgramUniformMatrix3x4fv;memcpy(ptr, &tmp, 4); ptr += 4; 10192 memcpy(ptr, &totalSize, 4); ptr += 4; 10193 10194 memcpy(ptr, &program, 4); ptr += 4; 10195 memcpy(ptr, &location, 4); ptr += 4; 10196 memcpy(ptr, &count, 4); ptr += 4; 10197 memcpy(ptr, &transpose, 1); ptr += 1; 10198 *(unsigned int *)(ptr) = __size_value; ptr += 4; 10199 memcpy(ptr, value, __size_value);ptr += __size_value; 10200 10201 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10202 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10203 10204 } 10205 10206 void glProgramUniformMatrix4x3fv_enc(void *self , GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) 10207 { 10208 10209 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10210 IOStream *stream = ctx->m_stream; 10211 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10212 bool useChecksum = checksumCalculator->getVersion() > 0; 10213 10214 const unsigned int __size_value = (count * 12 * sizeof(GLfloat)); 10215 unsigned char *ptr; 10216 unsigned char *buf; 10217 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + __size_value + 1*4; 10218 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10219 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10220 buf = stream->alloc(totalSize); 10221 ptr = buf; 10222 int tmp = OP_glProgramUniformMatrix4x3fv;memcpy(ptr, &tmp, 4); ptr += 4; 10223 memcpy(ptr, &totalSize, 4); ptr += 4; 10224 10225 memcpy(ptr, &program, 4); ptr += 4; 10226 memcpy(ptr, &location, 4); ptr += 4; 10227 memcpy(ptr, &count, 4); ptr += 4; 10228 memcpy(ptr, &transpose, 1); ptr += 1; 10229 *(unsigned int *)(ptr) = __size_value; ptr += 4; 10230 memcpy(ptr, value, __size_value);ptr += __size_value; 10231 10232 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10233 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10234 10235 } 10236 10237 void glGetProgramInterfaceiv_enc(void *self , GLuint program, GLenum programInterface, GLenum pname, GLint* params) 10238 { 10239 10240 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10241 IOStream *stream = ctx->m_stream; 10242 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10243 bool useChecksum = checksumCalculator->getVersion() > 0; 10244 10245 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 10246 unsigned char *ptr; 10247 unsigned char *buf; 10248 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 0 + 1*4; 10249 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10250 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10251 buf = stream->alloc(totalSize); 10252 ptr = buf; 10253 int tmp = OP_glGetProgramInterfaceiv;memcpy(ptr, &tmp, 4); ptr += 4; 10254 memcpy(ptr, &totalSize, 4); ptr += 4; 10255 10256 memcpy(ptr, &program, 4); ptr += 4; 10257 memcpy(ptr, &programInterface, 4); ptr += 4; 10258 memcpy(ptr, &pname, 4); ptr += 4; 10259 *(unsigned int *)(ptr) = __size_params; ptr += 4; 10260 10261 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10262 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10263 10264 stream->readback(params, __size_params); 10265 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 10266 if (useChecksum) { 10267 unsigned char *checksumBufPtr = NULL; 10268 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 10269 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 10270 stream->readback(checksumBufPtr, checksumSize); 10271 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 10272 ALOGE("glGetProgramInterfaceiv: GL communication error, please report this issue to b.android.com.\n"); 10273 abort(); 10274 } 10275 } 10276 } 10277 10278 void glGetProgramResourceiv_enc(void *self , GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params) 10279 { 10280 10281 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10282 IOStream *stream = ctx->m_stream; 10283 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10284 bool useChecksum = checksumCalculator->getVersion() > 0; 10285 10286 const unsigned int __size_props = (propCount * sizeof(GLenum)); 10287 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0); 10288 const unsigned int __size_params = (bufSize * sizeof(GLint)); 10289 unsigned char *ptr; 10290 unsigned char *buf; 10291 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + __size_props + 4 + 0 + 0 + 3*4; 10292 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10293 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10294 buf = stream->alloc(totalSize); 10295 ptr = buf; 10296 int tmp = OP_glGetProgramResourceiv;memcpy(ptr, &tmp, 4); ptr += 4; 10297 memcpy(ptr, &totalSize, 4); ptr += 4; 10298 10299 memcpy(ptr, &program, 4); ptr += 4; 10300 memcpy(ptr, &programInterface, 4); ptr += 4; 10301 memcpy(ptr, &index, 4); ptr += 4; 10302 memcpy(ptr, &propCount, 4); ptr += 4; 10303 *(unsigned int *)(ptr) = __size_props; ptr += 4; 10304 memcpy(ptr, props, __size_props);ptr += __size_props; 10305 memcpy(ptr, &bufSize, 4); ptr += 4; 10306 *(unsigned int *)(ptr) = __size_length; ptr += 4; 10307 *(unsigned int *)(ptr) = __size_params; ptr += 4; 10308 10309 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10310 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10311 10312 if (length != NULL) { 10313 stream->readback(length, __size_length); 10314 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 10315 } 10316 stream->readback(params, __size_params); 10317 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 10318 if (useChecksum) { 10319 unsigned char *checksumBufPtr = NULL; 10320 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 10321 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 10322 stream->readback(checksumBufPtr, checksumSize); 10323 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 10324 ALOGE("glGetProgramResourceiv: GL communication error, please report this issue to b.android.com.\n"); 10325 abort(); 10326 } 10327 } 10328 } 10329 10330 GLuint glGetProgramResourceIndex_enc(void *self , GLuint program, GLenum programInterface, const char* name) 10331 { 10332 10333 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10334 IOStream *stream = ctx->m_stream; 10335 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10336 bool useChecksum = checksumCalculator->getVersion() > 0; 10337 10338 const unsigned int __size_name = (strlen(name) + 1); 10339 unsigned char *ptr; 10340 unsigned char *buf; 10341 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_name + 1*4; 10342 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10343 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10344 buf = stream->alloc(totalSize); 10345 ptr = buf; 10346 int tmp = OP_glGetProgramResourceIndex;memcpy(ptr, &tmp, 4); ptr += 4; 10347 memcpy(ptr, &totalSize, 4); ptr += 4; 10348 10349 memcpy(ptr, &program, 4); ptr += 4; 10350 memcpy(ptr, &programInterface, 4); ptr += 4; 10351 *(unsigned int *)(ptr) = __size_name; ptr += 4; 10352 memcpy(ptr, name, __size_name);ptr += __size_name; 10353 10354 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10355 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10356 10357 10358 GLuint retval; 10359 stream->readback(&retval, 4); 10360 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 10361 if (useChecksum) { 10362 unsigned char *checksumBufPtr = NULL; 10363 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 10364 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 10365 stream->readback(checksumBufPtr, checksumSize); 10366 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 10367 ALOGE("glGetProgramResourceIndex: GL communication error, please report this issue to b.android.com.\n"); 10368 abort(); 10369 } 10370 } 10371 return retval; 10372 } 10373 10374 GLint glGetProgramResourceLocation_enc(void *self , GLuint program, GLenum programInterface, const char* name) 10375 { 10376 10377 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10378 IOStream *stream = ctx->m_stream; 10379 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10380 bool useChecksum = checksumCalculator->getVersion() > 0; 10381 10382 const unsigned int __size_name = (strlen(name) + 1); 10383 unsigned char *ptr; 10384 unsigned char *buf; 10385 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_name + 1*4; 10386 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10387 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10388 buf = stream->alloc(totalSize); 10389 ptr = buf; 10390 int tmp = OP_glGetProgramResourceLocation;memcpy(ptr, &tmp, 4); ptr += 4; 10391 memcpy(ptr, &totalSize, 4); ptr += 4; 10392 10393 memcpy(ptr, &program, 4); ptr += 4; 10394 memcpy(ptr, &programInterface, 4); ptr += 4; 10395 *(unsigned int *)(ptr) = __size_name; ptr += 4; 10396 memcpy(ptr, name, __size_name);ptr += __size_name; 10397 10398 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10399 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10400 10401 10402 GLint retval; 10403 stream->readback(&retval, 4); 10404 if (useChecksum) checksumCalculator->addBuffer(&retval, 4); 10405 if (useChecksum) { 10406 unsigned char *checksumBufPtr = NULL; 10407 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 10408 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 10409 stream->readback(checksumBufPtr, checksumSize); 10410 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 10411 ALOGE("glGetProgramResourceLocation: GL communication error, please report this issue to b.android.com.\n"); 10412 abort(); 10413 } 10414 } 10415 return retval; 10416 } 10417 10418 void glGetProgramResourceName_enc(void *self , GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, char* name) 10419 { 10420 10421 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10422 IOStream *stream = ctx->m_stream; 10423 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10424 bool useChecksum = checksumCalculator->getVersion() > 0; 10425 10426 const unsigned int __size_length = ((length != NULL) ? (sizeof(GLsizei)) : 0); 10427 const unsigned int __size_name = bufSize; 10428 unsigned char *ptr; 10429 unsigned char *buf; 10430 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 0 + 0 + 2*4; 10431 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10432 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10433 buf = stream->alloc(totalSize); 10434 ptr = buf; 10435 int tmp = OP_glGetProgramResourceName;memcpy(ptr, &tmp, 4); ptr += 4; 10436 memcpy(ptr, &totalSize, 4); ptr += 4; 10437 10438 memcpy(ptr, &program, 4); ptr += 4; 10439 memcpy(ptr, &programInterface, 4); ptr += 4; 10440 memcpy(ptr, &index, 4); ptr += 4; 10441 memcpy(ptr, &bufSize, 4); ptr += 4; 10442 *(unsigned int *)(ptr) = __size_length; ptr += 4; 10443 *(unsigned int *)(ptr) = __size_name; ptr += 4; 10444 10445 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10446 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10447 10448 if (length != NULL) { 10449 stream->readback(length, __size_length); 10450 if (useChecksum) checksumCalculator->addBuffer(length, __size_length); 10451 } 10452 stream->readback(name, __size_name); 10453 if (useChecksum) checksumCalculator->addBuffer(name, __size_name); 10454 if (useChecksum) { 10455 unsigned char *checksumBufPtr = NULL; 10456 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 10457 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 10458 stream->readback(checksumBufPtr, checksumSize); 10459 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 10460 ALOGE("glGetProgramResourceName: GL communication error, please report this issue to b.android.com.\n"); 10461 abort(); 10462 } 10463 } 10464 } 10465 10466 void glBindImageTexture_enc(void *self , GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) 10467 { 10468 10469 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10470 IOStream *stream = ctx->m_stream; 10471 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10472 bool useChecksum = checksumCalculator->getVersion() > 0; 10473 10474 unsigned char *ptr; 10475 unsigned char *buf; 10476 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + 4 + 4 + 4; 10477 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10478 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10479 buf = stream->alloc(totalSize); 10480 ptr = buf; 10481 int tmp = OP_glBindImageTexture;memcpy(ptr, &tmp, 4); ptr += 4; 10482 memcpy(ptr, &totalSize, 4); ptr += 4; 10483 10484 memcpy(ptr, &unit, 4); ptr += 4; 10485 memcpy(ptr, &texture, 4); ptr += 4; 10486 memcpy(ptr, &level, 4); ptr += 4; 10487 memcpy(ptr, &layered, 1); ptr += 1; 10488 memcpy(ptr, &layer, 4); ptr += 4; 10489 memcpy(ptr, &access, 4); ptr += 4; 10490 memcpy(ptr, &format, 4); ptr += 4; 10491 10492 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10493 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10494 10495 } 10496 10497 void glDispatchCompute_enc(void *self , GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) 10498 { 10499 10500 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10501 IOStream *stream = ctx->m_stream; 10502 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10503 bool useChecksum = checksumCalculator->getVersion() > 0; 10504 10505 unsigned char *ptr; 10506 unsigned char *buf; 10507 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 10508 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10509 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10510 buf = stream->alloc(totalSize); 10511 ptr = buf; 10512 int tmp = OP_glDispatchCompute;memcpy(ptr, &tmp, 4); ptr += 4; 10513 memcpy(ptr, &totalSize, 4); ptr += 4; 10514 10515 memcpy(ptr, &num_groups_x, 4); ptr += 4; 10516 memcpy(ptr, &num_groups_y, 4); ptr += 4; 10517 memcpy(ptr, &num_groups_z, 4); ptr += 4; 10518 10519 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10520 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10521 10522 } 10523 10524 void glDispatchComputeIndirect_enc(void *self , GLintptr indirect) 10525 { 10526 10527 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10528 IOStream *stream = ctx->m_stream; 10529 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10530 bool useChecksum = checksumCalculator->getVersion() > 0; 10531 10532 unsigned char *ptr; 10533 unsigned char *buf; 10534 const size_t sizeWithoutChecksum = 8 + 4; 10535 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10536 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10537 buf = stream->alloc(totalSize); 10538 ptr = buf; 10539 int tmp = OP_glDispatchComputeIndirect;memcpy(ptr, &tmp, 4); ptr += 4; 10540 memcpy(ptr, &totalSize, 4); ptr += 4; 10541 10542 memcpy(ptr, &indirect, 4); ptr += 4; 10543 10544 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10545 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10546 10547 } 10548 10549 void glBindVertexBuffer_enc(void *self , GLuint bindingindex, GLuint buffer, GLintptr offset, GLintptr stride) 10550 { 10551 10552 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10553 IOStream *stream = ctx->m_stream; 10554 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10555 bool useChecksum = checksumCalculator->getVersion() > 0; 10556 10557 unsigned char *ptr; 10558 unsigned char *buf; 10559 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 10560 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10561 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10562 buf = stream->alloc(totalSize); 10563 ptr = buf; 10564 int tmp = OP_glBindVertexBuffer;memcpy(ptr, &tmp, 4); ptr += 4; 10565 memcpy(ptr, &totalSize, 4); ptr += 4; 10566 10567 memcpy(ptr, &bindingindex, 4); ptr += 4; 10568 memcpy(ptr, &buffer, 4); ptr += 4; 10569 memcpy(ptr, &offset, 4); ptr += 4; 10570 memcpy(ptr, &stride, 4); ptr += 4; 10571 10572 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10573 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10574 10575 } 10576 10577 void glVertexAttribBinding_enc(void *self , GLuint attribindex, GLuint bindingindex) 10578 { 10579 10580 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10581 IOStream *stream = ctx->m_stream; 10582 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10583 bool useChecksum = checksumCalculator->getVersion() > 0; 10584 10585 unsigned char *ptr; 10586 unsigned char *buf; 10587 const size_t sizeWithoutChecksum = 8 + 4 + 4; 10588 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10589 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10590 buf = stream->alloc(totalSize); 10591 ptr = buf; 10592 int tmp = OP_glVertexAttribBinding;memcpy(ptr, &tmp, 4); ptr += 4; 10593 memcpy(ptr, &totalSize, 4); ptr += 4; 10594 10595 memcpy(ptr, &attribindex, 4); ptr += 4; 10596 memcpy(ptr, &bindingindex, 4); ptr += 4; 10597 10598 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10599 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10600 10601 } 10602 10603 void glVertexAttribFormat_enc(void *self , GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) 10604 { 10605 10606 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10607 IOStream *stream = ctx->m_stream; 10608 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10609 bool useChecksum = checksumCalculator->getVersion() > 0; 10610 10611 unsigned char *ptr; 10612 unsigned char *buf; 10613 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 1 + 4; 10614 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10615 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10616 buf = stream->alloc(totalSize); 10617 ptr = buf; 10618 int tmp = OP_glVertexAttribFormat;memcpy(ptr, &tmp, 4); ptr += 4; 10619 memcpy(ptr, &totalSize, 4); ptr += 4; 10620 10621 memcpy(ptr, &attribindex, 4); ptr += 4; 10622 memcpy(ptr, &size, 4); ptr += 4; 10623 memcpy(ptr, &type, 4); ptr += 4; 10624 memcpy(ptr, &normalized, 1); ptr += 1; 10625 memcpy(ptr, &relativeoffset, 4); ptr += 4; 10626 10627 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10628 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10629 10630 } 10631 10632 void glVertexAttribIFormat_enc(void *self , GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) 10633 { 10634 10635 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10636 IOStream *stream = ctx->m_stream; 10637 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10638 bool useChecksum = checksumCalculator->getVersion() > 0; 10639 10640 unsigned char *ptr; 10641 unsigned char *buf; 10642 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4; 10643 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10644 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10645 buf = stream->alloc(totalSize); 10646 ptr = buf; 10647 int tmp = OP_glVertexAttribIFormat;memcpy(ptr, &tmp, 4); ptr += 4; 10648 memcpy(ptr, &totalSize, 4); ptr += 4; 10649 10650 memcpy(ptr, &attribindex, 4); ptr += 4; 10651 memcpy(ptr, &size, 4); ptr += 4; 10652 memcpy(ptr, &type, 4); ptr += 4; 10653 memcpy(ptr, &relativeoffset, 4); ptr += 4; 10654 10655 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10656 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10657 10658 } 10659 10660 void glVertexBindingDivisor_enc(void *self , GLuint bindingindex, GLuint divisor) 10661 { 10662 10663 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10664 IOStream *stream = ctx->m_stream; 10665 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10666 bool useChecksum = checksumCalculator->getVersion() > 0; 10667 10668 unsigned char *ptr; 10669 unsigned char *buf; 10670 const size_t sizeWithoutChecksum = 8 + 4 + 4; 10671 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10672 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10673 buf = stream->alloc(totalSize); 10674 ptr = buf; 10675 int tmp = OP_glVertexBindingDivisor;memcpy(ptr, &tmp, 4); ptr += 4; 10676 memcpy(ptr, &totalSize, 4); ptr += 4; 10677 10678 memcpy(ptr, &bindingindex, 4); ptr += 4; 10679 memcpy(ptr, &divisor, 4); ptr += 4; 10680 10681 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10682 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10683 10684 } 10685 10686 void glDrawArraysIndirectDataAEMU_enc(void *self , GLenum mode, const void* indirect, GLuint datalen) 10687 { 10688 10689 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10690 IOStream *stream = ctx->m_stream; 10691 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10692 bool useChecksum = checksumCalculator->getVersion() > 0; 10693 10694 const unsigned int __size_indirect = datalen; 10695 unsigned char *ptr; 10696 unsigned char *buf; 10697 const size_t sizeWithoutChecksum = 8 + 4 + __size_indirect + 4 + 1*4; 10698 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10699 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10700 buf = stream->alloc(totalSize); 10701 ptr = buf; 10702 int tmp = OP_glDrawArraysIndirectDataAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 10703 memcpy(ptr, &totalSize, 4); ptr += 4; 10704 10705 memcpy(ptr, &mode, 4); ptr += 4; 10706 *(unsigned int *)(ptr) = __size_indirect; ptr += 4; 10707 memcpy(ptr, indirect, __size_indirect);ptr += __size_indirect; 10708 memcpy(ptr, &datalen, 4); ptr += 4; 10709 10710 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10711 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10712 10713 } 10714 10715 void glDrawArraysIndirectOffsetAEMU_enc(void *self , GLenum mode, GLuint offset) 10716 { 10717 10718 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10719 IOStream *stream = ctx->m_stream; 10720 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10721 bool useChecksum = checksumCalculator->getVersion() > 0; 10722 10723 unsigned char *ptr; 10724 unsigned char *buf; 10725 const size_t sizeWithoutChecksum = 8 + 4 + 4; 10726 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10727 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10728 buf = stream->alloc(totalSize); 10729 ptr = buf; 10730 int tmp = OP_glDrawArraysIndirectOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 10731 memcpy(ptr, &totalSize, 4); ptr += 4; 10732 10733 memcpy(ptr, &mode, 4); ptr += 4; 10734 memcpy(ptr, &offset, 4); ptr += 4; 10735 10736 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10737 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10738 10739 } 10740 10741 void glDrawElementsIndirectDataAEMU_enc(void *self , GLenum mode, GLenum type, const void* indirect, GLuint datalen) 10742 { 10743 10744 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10745 IOStream *stream = ctx->m_stream; 10746 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10747 bool useChecksum = checksumCalculator->getVersion() > 0; 10748 10749 const unsigned int __size_indirect = datalen; 10750 unsigned char *ptr; 10751 unsigned char *buf; 10752 const size_t sizeWithoutChecksum = 8 + 4 + 4 + __size_indirect + 4 + 1*4; 10753 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10754 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10755 buf = stream->alloc(totalSize); 10756 ptr = buf; 10757 int tmp = OP_glDrawElementsIndirectDataAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 10758 memcpy(ptr, &totalSize, 4); ptr += 4; 10759 10760 memcpy(ptr, &mode, 4); ptr += 4; 10761 memcpy(ptr, &type, 4); ptr += 4; 10762 *(unsigned int *)(ptr) = __size_indirect; ptr += 4; 10763 memcpy(ptr, indirect, __size_indirect);ptr += __size_indirect; 10764 memcpy(ptr, &datalen, 4); ptr += 4; 10765 10766 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10767 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10768 10769 } 10770 10771 void glDrawElementsIndirectOffsetAEMU_enc(void *self , GLenum mode, GLenum type, GLuint offset) 10772 { 10773 10774 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10775 IOStream *stream = ctx->m_stream; 10776 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10777 bool useChecksum = checksumCalculator->getVersion() > 0; 10778 10779 unsigned char *ptr; 10780 unsigned char *buf; 10781 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 10782 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10783 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10784 buf = stream->alloc(totalSize); 10785 ptr = buf; 10786 int tmp = OP_glDrawElementsIndirectOffsetAEMU;memcpy(ptr, &tmp, 4); ptr += 4; 10787 memcpy(ptr, &totalSize, 4); ptr += 4; 10788 10789 memcpy(ptr, &mode, 4); ptr += 4; 10790 memcpy(ptr, &type, 4); ptr += 4; 10791 memcpy(ptr, &offset, 4); ptr += 4; 10792 10793 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10794 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10795 10796 } 10797 10798 void glTexStorage2DMultisample_enc(void *self , GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) 10799 { 10800 10801 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10802 IOStream *stream = ctx->m_stream; 10803 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10804 bool useChecksum = checksumCalculator->getVersion() > 0; 10805 10806 unsigned char *ptr; 10807 unsigned char *buf; 10808 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 1; 10809 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10810 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10811 buf = stream->alloc(totalSize); 10812 ptr = buf; 10813 int tmp = OP_glTexStorage2DMultisample;memcpy(ptr, &tmp, 4); ptr += 4; 10814 memcpy(ptr, &totalSize, 4); ptr += 4; 10815 10816 memcpy(ptr, &target, 4); ptr += 4; 10817 memcpy(ptr, &samples, 4); ptr += 4; 10818 memcpy(ptr, &internalformat, 4); ptr += 4; 10819 memcpy(ptr, &width, 4); ptr += 4; 10820 memcpy(ptr, &height, 4); ptr += 4; 10821 memcpy(ptr, &fixedsamplelocations, 1); ptr += 1; 10822 10823 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10824 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10825 10826 } 10827 10828 void glSampleMaski_enc(void *self , GLuint maskNumber, GLbitfield mask) 10829 { 10830 10831 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10832 IOStream *stream = ctx->m_stream; 10833 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10834 bool useChecksum = checksumCalculator->getVersion() > 0; 10835 10836 unsigned char *ptr; 10837 unsigned char *buf; 10838 const size_t sizeWithoutChecksum = 8 + 4 + 4; 10839 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10840 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10841 buf = stream->alloc(totalSize); 10842 ptr = buf; 10843 int tmp = OP_glSampleMaski;memcpy(ptr, &tmp, 4); ptr += 4; 10844 memcpy(ptr, &totalSize, 4); ptr += 4; 10845 10846 memcpy(ptr, &maskNumber, 4); ptr += 4; 10847 memcpy(ptr, &mask, 4); ptr += 4; 10848 10849 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10850 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10851 10852 } 10853 10854 void glGetMultisamplefv_enc(void *self , GLenum pname, GLuint index, GLfloat* val) 10855 { 10856 10857 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10858 IOStream *stream = ctx->m_stream; 10859 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10860 bool useChecksum = checksumCalculator->getVersion() > 0; 10861 10862 const unsigned int __size_val = (glUtilsParamSize(pname) * sizeof(GLfloat)); 10863 unsigned char *ptr; 10864 unsigned char *buf; 10865 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 10866 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10867 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10868 buf = stream->alloc(totalSize); 10869 ptr = buf; 10870 int tmp = OP_glGetMultisamplefv;memcpy(ptr, &tmp, 4); ptr += 4; 10871 memcpy(ptr, &totalSize, 4); ptr += 4; 10872 10873 memcpy(ptr, &pname, 4); ptr += 4; 10874 memcpy(ptr, &index, 4); ptr += 4; 10875 *(unsigned int *)(ptr) = __size_val; ptr += 4; 10876 10877 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10878 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10879 10880 stream->readback(val, __size_val); 10881 if (useChecksum) checksumCalculator->addBuffer(val, __size_val); 10882 if (useChecksum) { 10883 unsigned char *checksumBufPtr = NULL; 10884 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 10885 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 10886 stream->readback(checksumBufPtr, checksumSize); 10887 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 10888 ALOGE("glGetMultisamplefv: GL communication error, please report this issue to b.android.com.\n"); 10889 abort(); 10890 } 10891 } 10892 } 10893 10894 void glFramebufferParameteri_enc(void *self , GLenum target, GLenum pname, GLint param) 10895 { 10896 10897 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10898 IOStream *stream = ctx->m_stream; 10899 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10900 bool useChecksum = checksumCalculator->getVersion() > 0; 10901 10902 unsigned char *ptr; 10903 unsigned char *buf; 10904 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4; 10905 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10906 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10907 buf = stream->alloc(totalSize); 10908 ptr = buf; 10909 int tmp = OP_glFramebufferParameteri;memcpy(ptr, &tmp, 4); ptr += 4; 10910 memcpy(ptr, &totalSize, 4); ptr += 4; 10911 10912 memcpy(ptr, &target, 4); ptr += 4; 10913 memcpy(ptr, &pname, 4); ptr += 4; 10914 memcpy(ptr, ¶m, 4); ptr += 4; 10915 10916 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10917 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10918 10919 } 10920 10921 void glGetFramebufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params) 10922 { 10923 10924 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10925 IOStream *stream = ctx->m_stream; 10926 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10927 bool useChecksum = checksumCalculator->getVersion() > 0; 10928 10929 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 10930 unsigned char *ptr; 10931 unsigned char *buf; 10932 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 0 + 1*4; 10933 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10934 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10935 buf = stream->alloc(totalSize); 10936 ptr = buf; 10937 int tmp = OP_glGetFramebufferParameteriv;memcpy(ptr, &tmp, 4); ptr += 4; 10938 memcpy(ptr, &totalSize, 4); ptr += 4; 10939 10940 memcpy(ptr, &target, 4); ptr += 4; 10941 memcpy(ptr, &pname, 4); ptr += 4; 10942 *(unsigned int *)(ptr) = __size_params; ptr += 4; 10943 10944 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10945 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10946 10947 stream->readback(params, __size_params); 10948 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 10949 if (useChecksum) { 10950 unsigned char *checksumBufPtr = NULL; 10951 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 10952 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 10953 stream->readback(checksumBufPtr, checksumSize); 10954 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 10955 ALOGE("glGetFramebufferParameteriv: GL communication error, please report this issue to b.android.com.\n"); 10956 abort(); 10957 } 10958 } 10959 } 10960 10961 void glGetTexLevelParameterfv_enc(void *self , GLenum target, GLint level, GLenum pname, GLfloat* params) 10962 { 10963 10964 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 10965 IOStream *stream = ctx->m_stream; 10966 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 10967 bool useChecksum = checksumCalculator->getVersion() > 0; 10968 10969 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLfloat)); 10970 unsigned char *ptr; 10971 unsigned char *buf; 10972 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 0 + 1*4; 10973 const size_t checksumSize = checksumCalculator->checksumByteSize(); 10974 const size_t totalSize = sizeWithoutChecksum + checksumSize; 10975 buf = stream->alloc(totalSize); 10976 ptr = buf; 10977 int tmp = OP_glGetTexLevelParameterfv;memcpy(ptr, &tmp, 4); ptr += 4; 10978 memcpy(ptr, &totalSize, 4); ptr += 4; 10979 10980 memcpy(ptr, &target, 4); ptr += 4; 10981 memcpy(ptr, &level, 4); ptr += 4; 10982 memcpy(ptr, &pname, 4); ptr += 4; 10983 *(unsigned int *)(ptr) = __size_params; ptr += 4; 10984 10985 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 10986 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 10987 10988 stream->readback(params, __size_params); 10989 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 10990 if (useChecksum) { 10991 unsigned char *checksumBufPtr = NULL; 10992 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 10993 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 10994 stream->readback(checksumBufPtr, checksumSize); 10995 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 10996 ALOGE("glGetTexLevelParameterfv: GL communication error, please report this issue to b.android.com.\n"); 10997 abort(); 10998 } 10999 } 11000 } 11001 11002 void glGetTexLevelParameteriv_enc(void *self , GLenum target, GLint level, GLenum pname, GLint* params) 11003 { 11004 11005 gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self; 11006 IOStream *stream = ctx->m_stream; 11007 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator; 11008 bool useChecksum = checksumCalculator->getVersion() > 0; 11009 11010 const unsigned int __size_params = (glUtilsParamSize(pname) * sizeof(GLint)); 11011 unsigned char *ptr; 11012 unsigned char *buf; 11013 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 0 + 1*4; 11014 const size_t checksumSize = checksumCalculator->checksumByteSize(); 11015 const size_t totalSize = sizeWithoutChecksum + checksumSize; 11016 buf = stream->alloc(totalSize); 11017 ptr = buf; 11018 int tmp = OP_glGetTexLevelParameteriv;memcpy(ptr, &tmp, 4); ptr += 4; 11019 memcpy(ptr, &totalSize, 4); ptr += 4; 11020 11021 memcpy(ptr, &target, 4); ptr += 4; 11022 memcpy(ptr, &level, 4); ptr += 4; 11023 memcpy(ptr, &pname, 4); ptr += 4; 11024 *(unsigned int *)(ptr) = __size_params; ptr += 4; 11025 11026 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf); 11027 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize; 11028 11029 stream->readback(params, __size_params); 11030 if (useChecksum) checksumCalculator->addBuffer(params, __size_params); 11031 if (useChecksum) { 11032 unsigned char *checksumBufPtr = NULL; 11033 unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize]; 11034 if (checksumSize > 0) checksumBufPtr = &checksumBuf[0]; 11035 stream->readback(checksumBufPtr, checksumSize); 11036 if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) { 11037 ALOGE("glGetTexLevelParameteriv: GL communication error, please report this issue to b.android.com.\n"); 11038 abort(); 11039 } 11040 } 11041 } 11042 11043 } // namespace 11044 11045 gl2_encoder_context_t::gl2_encoder_context_t(IOStream *stream, ChecksumCalculator *checksumCalculator) 11046 { 11047 m_stream = stream; 11048 m_checksumCalculator = checksumCalculator; 11049 11050 this->glActiveTexture = &glActiveTexture_enc; 11051 this->glAttachShader = &glAttachShader_enc; 11052 this->glBindAttribLocation = &glBindAttribLocation_enc; 11053 this->glBindBuffer = &glBindBuffer_enc; 11054 this->glBindFramebuffer = &glBindFramebuffer_enc; 11055 this->glBindRenderbuffer = &glBindRenderbuffer_enc; 11056 this->glBindTexture = &glBindTexture_enc; 11057 this->glBlendColor = &glBlendColor_enc; 11058 this->glBlendEquation = &glBlendEquation_enc; 11059 this->glBlendEquationSeparate = &glBlendEquationSeparate_enc; 11060 this->glBlendFunc = &glBlendFunc_enc; 11061 this->glBlendFuncSeparate = &glBlendFuncSeparate_enc; 11062 this->glBufferData = &glBufferData_enc; 11063 this->glBufferSubData = &glBufferSubData_enc; 11064 this->glCheckFramebufferStatus = &glCheckFramebufferStatus_enc; 11065 this->glClear = &glClear_enc; 11066 this->glClearColor = &glClearColor_enc; 11067 this->glClearDepthf = &glClearDepthf_enc; 11068 this->glClearStencil = &glClearStencil_enc; 11069 this->glColorMask = &glColorMask_enc; 11070 this->glCompileShader = &glCompileShader_enc; 11071 this->glCompressedTexImage2D = &glCompressedTexImage2D_enc; 11072 this->glCompressedTexSubImage2D = &glCompressedTexSubImage2D_enc; 11073 this->glCopyTexImage2D = &glCopyTexImage2D_enc; 11074 this->glCopyTexSubImage2D = &glCopyTexSubImage2D_enc; 11075 this->glCreateProgram = &glCreateProgram_enc; 11076 this->glCreateShader = &glCreateShader_enc; 11077 this->glCullFace = &glCullFace_enc; 11078 this->glDeleteBuffers = &glDeleteBuffers_enc; 11079 this->glDeleteFramebuffers = &glDeleteFramebuffers_enc; 11080 this->glDeleteProgram = &glDeleteProgram_enc; 11081 this->glDeleteRenderbuffers = &glDeleteRenderbuffers_enc; 11082 this->glDeleteShader = &glDeleteShader_enc; 11083 this->glDeleteTextures = &glDeleteTextures_enc; 11084 this->glDepthFunc = &glDepthFunc_enc; 11085 this->glDepthMask = &glDepthMask_enc; 11086 this->glDepthRangef = &glDepthRangef_enc; 11087 this->glDetachShader = &glDetachShader_enc; 11088 this->glDisable = &glDisable_enc; 11089 this->glDisableVertexAttribArray = &glDisableVertexAttribArray_enc; 11090 this->glDrawArrays = &glDrawArrays_enc; 11091 this->glDrawElements = (glDrawElements_client_proc_t) &enc_unsupported; 11092 this->glEnable = &glEnable_enc; 11093 this->glEnableVertexAttribArray = &glEnableVertexAttribArray_enc; 11094 this->glFinish = &glFinish_enc; 11095 this->glFlush = &glFlush_enc; 11096 this->glFramebufferRenderbuffer = &glFramebufferRenderbuffer_enc; 11097 this->glFramebufferTexture2D = &glFramebufferTexture2D_enc; 11098 this->glFrontFace = &glFrontFace_enc; 11099 this->glGenBuffers = &glGenBuffers_enc; 11100 this->glGenerateMipmap = &glGenerateMipmap_enc; 11101 this->glGenFramebuffers = &glGenFramebuffers_enc; 11102 this->glGenRenderbuffers = &glGenRenderbuffers_enc; 11103 this->glGenTextures = &glGenTextures_enc; 11104 this->glGetActiveAttrib = &glGetActiveAttrib_enc; 11105 this->glGetActiveUniform = &glGetActiveUniform_enc; 11106 this->glGetAttachedShaders = &glGetAttachedShaders_enc; 11107 this->glGetAttribLocation = &glGetAttribLocation_enc; 11108 this->glGetBooleanv = &glGetBooleanv_enc; 11109 this->glGetBufferParameteriv = &glGetBufferParameteriv_enc; 11110 this->glGetError = &glGetError_enc; 11111 this->glGetFloatv = &glGetFloatv_enc; 11112 this->glGetFramebufferAttachmentParameteriv = &glGetFramebufferAttachmentParameteriv_enc; 11113 this->glGetIntegerv = &glGetIntegerv_enc; 11114 this->glGetProgramiv = &glGetProgramiv_enc; 11115 this->glGetProgramInfoLog = &glGetProgramInfoLog_enc; 11116 this->glGetRenderbufferParameteriv = &glGetRenderbufferParameteriv_enc; 11117 this->glGetShaderiv = &glGetShaderiv_enc; 11118 this->glGetShaderInfoLog = &glGetShaderInfoLog_enc; 11119 this->glGetShaderPrecisionFormat = &glGetShaderPrecisionFormat_enc; 11120 this->glGetShaderSource = &glGetShaderSource_enc; 11121 this->glGetString = (glGetString_client_proc_t) &enc_unsupported; 11122 this->glGetTexParameterfv = &glGetTexParameterfv_enc; 11123 this->glGetTexParameteriv = &glGetTexParameteriv_enc; 11124 this->glGetUniformfv = &glGetUniformfv_enc; 11125 this->glGetUniformiv = &glGetUniformiv_enc; 11126 this->glGetUniformLocation = &glGetUniformLocation_enc; 11127 this->glGetVertexAttribfv = &glGetVertexAttribfv_enc; 11128 this->glGetVertexAttribiv = &glGetVertexAttribiv_enc; 11129 this->glGetVertexAttribPointerv = (glGetVertexAttribPointerv_client_proc_t) &enc_unsupported; 11130 this->glHint = &glHint_enc; 11131 this->glIsBuffer = &glIsBuffer_enc; 11132 this->glIsEnabled = &glIsEnabled_enc; 11133 this->glIsFramebuffer = &glIsFramebuffer_enc; 11134 this->glIsProgram = &glIsProgram_enc; 11135 this->glIsRenderbuffer = &glIsRenderbuffer_enc; 11136 this->glIsShader = &glIsShader_enc; 11137 this->glIsTexture = &glIsTexture_enc; 11138 this->glLineWidth = &glLineWidth_enc; 11139 this->glLinkProgram = &glLinkProgram_enc; 11140 this->glPixelStorei = &glPixelStorei_enc; 11141 this->glPolygonOffset = &glPolygonOffset_enc; 11142 this->glReadPixels = &glReadPixels_enc; 11143 this->glReleaseShaderCompiler = &glReleaseShaderCompiler_enc; 11144 this->glRenderbufferStorage = &glRenderbufferStorage_enc; 11145 this->glSampleCoverage = &glSampleCoverage_enc; 11146 this->glScissor = &glScissor_enc; 11147 this->glShaderBinary = (glShaderBinary_client_proc_t) &enc_unsupported; 11148 this->glShaderSource = (glShaderSource_client_proc_t) &enc_unsupported; 11149 this->glStencilFunc = &glStencilFunc_enc; 11150 this->glStencilFuncSeparate = &glStencilFuncSeparate_enc; 11151 this->glStencilMask = &glStencilMask_enc; 11152 this->glStencilMaskSeparate = &glStencilMaskSeparate_enc; 11153 this->glStencilOp = &glStencilOp_enc; 11154 this->glStencilOpSeparate = &glStencilOpSeparate_enc; 11155 this->glTexImage2D = &glTexImage2D_enc; 11156 this->glTexParameterf = &glTexParameterf_enc; 11157 this->glTexParameterfv = &glTexParameterfv_enc; 11158 this->glTexParameteri = &glTexParameteri_enc; 11159 this->glTexParameteriv = &glTexParameteriv_enc; 11160 this->glTexSubImage2D = &glTexSubImage2D_enc; 11161 this->glUniform1f = &glUniform1f_enc; 11162 this->glUniform1fv = &glUniform1fv_enc; 11163 this->glUniform1i = &glUniform1i_enc; 11164 this->glUniform1iv = &glUniform1iv_enc; 11165 this->glUniform2f = &glUniform2f_enc; 11166 this->glUniform2fv = &glUniform2fv_enc; 11167 this->glUniform2i = &glUniform2i_enc; 11168 this->glUniform2iv = &glUniform2iv_enc; 11169 this->glUniform3f = &glUniform3f_enc; 11170 this->glUniform3fv = &glUniform3fv_enc; 11171 this->glUniform3i = &glUniform3i_enc; 11172 this->glUniform3iv = &glUniform3iv_enc; 11173 this->glUniform4f = &glUniform4f_enc; 11174 this->glUniform4fv = &glUniform4fv_enc; 11175 this->glUniform4i = &glUniform4i_enc; 11176 this->glUniform4iv = &glUniform4iv_enc; 11177 this->glUniformMatrix2fv = &glUniformMatrix2fv_enc; 11178 this->glUniformMatrix3fv = &glUniformMatrix3fv_enc; 11179 this->glUniformMatrix4fv = &glUniformMatrix4fv_enc; 11180 this->glUseProgram = &glUseProgram_enc; 11181 this->glValidateProgram = &glValidateProgram_enc; 11182 this->glVertexAttrib1f = &glVertexAttrib1f_enc; 11183 this->glVertexAttrib1fv = &glVertexAttrib1fv_enc; 11184 this->glVertexAttrib2f = &glVertexAttrib2f_enc; 11185 this->glVertexAttrib2fv = &glVertexAttrib2fv_enc; 11186 this->glVertexAttrib3f = &glVertexAttrib3f_enc; 11187 this->glVertexAttrib3fv = &glVertexAttrib3fv_enc; 11188 this->glVertexAttrib4f = &glVertexAttrib4f_enc; 11189 this->glVertexAttrib4fv = &glVertexAttrib4fv_enc; 11190 this->glVertexAttribPointer = (glVertexAttribPointer_client_proc_t) &enc_unsupported; 11191 this->glViewport = &glViewport_enc; 11192 this->glEGLImageTargetTexture2DOES = &glEGLImageTargetTexture2DOES_enc; 11193 this->glEGLImageTargetRenderbufferStorageOES = &glEGLImageTargetRenderbufferStorageOES_enc; 11194 this->glGetProgramBinaryOES = (glGetProgramBinaryOES_client_proc_t) &enc_unsupported; 11195 this->glProgramBinaryOES = (glProgramBinaryOES_client_proc_t) &enc_unsupported; 11196 this->glMapBufferOES = (glMapBufferOES_client_proc_t) &enc_unsupported; 11197 this->glUnmapBufferOES = &glUnmapBufferOES_enc; 11198 this->glTexImage3DOES = &glTexImage3DOES_enc; 11199 this->glTexSubImage3DOES = &glTexSubImage3DOES_enc; 11200 this->glCopyTexSubImage3DOES = &glCopyTexSubImage3DOES_enc; 11201 this->glCompressedTexImage3DOES = &glCompressedTexImage3DOES_enc; 11202 this->glCompressedTexSubImage3DOES = &glCompressedTexSubImage3DOES_enc; 11203 this->glFramebufferTexture3DOES = &glFramebufferTexture3DOES_enc; 11204 this->glBindVertexArrayOES = &glBindVertexArrayOES_enc; 11205 this->glDeleteVertexArraysOES = &glDeleteVertexArraysOES_enc; 11206 this->glGenVertexArraysOES = &glGenVertexArraysOES_enc; 11207 this->glIsVertexArrayOES = &glIsVertexArrayOES_enc; 11208 this->glDiscardFramebufferEXT = &glDiscardFramebufferEXT_enc; 11209 this->glMultiDrawArraysEXT = (glMultiDrawArraysEXT_client_proc_t) &enc_unsupported; 11210 this->glMultiDrawElementsEXT = (glMultiDrawElementsEXT_client_proc_t) &enc_unsupported; 11211 this->glGetPerfMonitorGroupsAMD = (glGetPerfMonitorGroupsAMD_client_proc_t) &enc_unsupported; 11212 this->glGetPerfMonitorCountersAMD = (glGetPerfMonitorCountersAMD_client_proc_t) &enc_unsupported; 11213 this->glGetPerfMonitorGroupStringAMD = (glGetPerfMonitorGroupStringAMD_client_proc_t) &enc_unsupported; 11214 this->glGetPerfMonitorCounterStringAMD = (glGetPerfMonitorCounterStringAMD_client_proc_t) &enc_unsupported; 11215 this->glGetPerfMonitorCounterInfoAMD = (glGetPerfMonitorCounterInfoAMD_client_proc_t) &enc_unsupported; 11216 this->glGenPerfMonitorsAMD = (glGenPerfMonitorsAMD_client_proc_t) &enc_unsupported; 11217 this->glDeletePerfMonitorsAMD = (glDeletePerfMonitorsAMD_client_proc_t) &enc_unsupported; 11218 this->glSelectPerfMonitorCountersAMD = (glSelectPerfMonitorCountersAMD_client_proc_t) &enc_unsupported; 11219 this->glBeginPerfMonitorAMD = (glBeginPerfMonitorAMD_client_proc_t) &enc_unsupported; 11220 this->glEndPerfMonitorAMD = (glEndPerfMonitorAMD_client_proc_t) &enc_unsupported; 11221 this->glGetPerfMonitorCounterDataAMD = (glGetPerfMonitorCounterDataAMD_client_proc_t) &enc_unsupported; 11222 this->glRenderbufferStorageMultisampleIMG = (glRenderbufferStorageMultisampleIMG_client_proc_t) &enc_unsupported; 11223 this->glFramebufferTexture2DMultisampleIMG = (glFramebufferTexture2DMultisampleIMG_client_proc_t) &enc_unsupported; 11224 this->glDeleteFencesNV = (glDeleteFencesNV_client_proc_t) &enc_unsupported; 11225 this->glGenFencesNV = (glGenFencesNV_client_proc_t) &enc_unsupported; 11226 this->glIsFenceNV = (glIsFenceNV_client_proc_t) &enc_unsupported; 11227 this->glTestFenceNV = (glTestFenceNV_client_proc_t) &enc_unsupported; 11228 this->glGetFenceivNV = (glGetFenceivNV_client_proc_t) &enc_unsupported; 11229 this->glFinishFenceNV = (glFinishFenceNV_client_proc_t) &enc_unsupported; 11230 this->glSetFenceNV = (glSetFenceNV_client_proc_t) &enc_unsupported; 11231 this->glCoverageMaskNV = (glCoverageMaskNV_client_proc_t) &enc_unsupported; 11232 this->glCoverageOperationNV = (glCoverageOperationNV_client_proc_t) &enc_unsupported; 11233 this->glGetDriverControlsQCOM = (glGetDriverControlsQCOM_client_proc_t) &enc_unsupported; 11234 this->glGetDriverControlStringQCOM = (glGetDriverControlStringQCOM_client_proc_t) &enc_unsupported; 11235 this->glEnableDriverControlQCOM = (glEnableDriverControlQCOM_client_proc_t) &enc_unsupported; 11236 this->glDisableDriverControlQCOM = (glDisableDriverControlQCOM_client_proc_t) &enc_unsupported; 11237 this->glExtGetTexturesQCOM = (glExtGetTexturesQCOM_client_proc_t) &enc_unsupported; 11238 this->glExtGetBuffersQCOM = (glExtGetBuffersQCOM_client_proc_t) &enc_unsupported; 11239 this->glExtGetRenderbuffersQCOM = (glExtGetRenderbuffersQCOM_client_proc_t) &enc_unsupported; 11240 this->glExtGetFramebuffersQCOM = (glExtGetFramebuffersQCOM_client_proc_t) &enc_unsupported; 11241 this->glExtGetTexLevelParameterivQCOM = (glExtGetTexLevelParameterivQCOM_client_proc_t) &enc_unsupported; 11242 this->glExtTexObjectStateOverrideiQCOM = (glExtTexObjectStateOverrideiQCOM_client_proc_t) &enc_unsupported; 11243 this->glExtGetTexSubImageQCOM = (glExtGetTexSubImageQCOM_client_proc_t) &enc_unsupported; 11244 this->glExtGetBufferPointervQCOM = (glExtGetBufferPointervQCOM_client_proc_t) &enc_unsupported; 11245 this->glExtGetShadersQCOM = (glExtGetShadersQCOM_client_proc_t) &enc_unsupported; 11246 this->glExtGetProgramsQCOM = (glExtGetProgramsQCOM_client_proc_t) &enc_unsupported; 11247 this->glExtIsProgramBinaryQCOM = (glExtIsProgramBinaryQCOM_client_proc_t) &enc_unsupported; 11248 this->glExtGetProgramBinarySourceQCOM = (glExtGetProgramBinarySourceQCOM_client_proc_t) &enc_unsupported; 11249 this->glStartTilingQCOM = (glStartTilingQCOM_client_proc_t) &enc_unsupported; 11250 this->glEndTilingQCOM = (glEndTilingQCOM_client_proc_t) &enc_unsupported; 11251 this->glVertexAttribPointerData = &glVertexAttribPointerData_enc; 11252 this->glVertexAttribPointerOffset = &glVertexAttribPointerOffset_enc; 11253 this->glDrawElementsOffset = &glDrawElementsOffset_enc; 11254 this->glDrawElementsData = &glDrawElementsData_enc; 11255 this->glGetCompressedTextureFormats = &glGetCompressedTextureFormats_enc; 11256 this->glShaderString = &glShaderString_enc; 11257 this->glFinishRoundTrip = &glFinishRoundTrip_enc; 11258 this->glGenVertexArrays = &glGenVertexArrays_enc; 11259 this->glBindVertexArray = &glBindVertexArray_enc; 11260 this->glDeleteVertexArrays = &glDeleteVertexArrays_enc; 11261 this->glIsVertexArray = &glIsVertexArray_enc; 11262 this->glMapBufferRange = (glMapBufferRange_client_proc_t) &enc_unsupported; 11263 this->glUnmapBuffer = (glUnmapBuffer_client_proc_t) &enc_unsupported; 11264 this->glFlushMappedBufferRange = (glFlushMappedBufferRange_client_proc_t) &enc_unsupported; 11265 this->glMapBufferRangeAEMU = &glMapBufferRangeAEMU_enc; 11266 this->glUnmapBufferAEMU = &glUnmapBufferAEMU_enc; 11267 this->glFlushMappedBufferRangeAEMU = &glFlushMappedBufferRangeAEMU_enc; 11268 this->glReadPixelsOffsetAEMU = &glReadPixelsOffsetAEMU_enc; 11269 this->glCompressedTexImage2DOffsetAEMU = &glCompressedTexImage2DOffsetAEMU_enc; 11270 this->glCompressedTexSubImage2DOffsetAEMU = &glCompressedTexSubImage2DOffsetAEMU_enc; 11271 this->glTexImage2DOffsetAEMU = &glTexImage2DOffsetAEMU_enc; 11272 this->glTexSubImage2DOffsetAEMU = &glTexSubImage2DOffsetAEMU_enc; 11273 this->glBindBufferRange = &glBindBufferRange_enc; 11274 this->glBindBufferBase = &glBindBufferBase_enc; 11275 this->glCopyBufferSubData = &glCopyBufferSubData_enc; 11276 this->glClearBufferiv = &glClearBufferiv_enc; 11277 this->glClearBufferuiv = &glClearBufferuiv_enc; 11278 this->glClearBufferfv = &glClearBufferfv_enc; 11279 this->glClearBufferfi = &glClearBufferfi_enc; 11280 this->glGetBufferParameteri64v = (glGetBufferParameteri64v_client_proc_t) &enc_unsupported; 11281 this->glGetBufferPointerv = (glGetBufferPointerv_client_proc_t) &enc_unsupported; 11282 this->glUniformBlockBinding = &glUniformBlockBinding_enc; 11283 this->glGetUniformBlockIndex = &glGetUniformBlockIndex_enc; 11284 this->glGetUniformIndices = (glGetUniformIndices_client_proc_t) &enc_unsupported; 11285 this->glGetUniformIndicesAEMU = &glGetUniformIndicesAEMU_enc; 11286 this->glGetActiveUniformBlockiv = &glGetActiveUniformBlockiv_enc; 11287 this->glGetActiveUniformBlockName = &glGetActiveUniformBlockName_enc; 11288 this->glUniform1ui = &glUniform1ui_enc; 11289 this->glUniform2ui = &glUniform2ui_enc; 11290 this->glUniform3ui = &glUniform3ui_enc; 11291 this->glUniform4ui = &glUniform4ui_enc; 11292 this->glUniform1uiv = &glUniform1uiv_enc; 11293 this->glUniform2uiv = &glUniform2uiv_enc; 11294 this->glUniform3uiv = &glUniform3uiv_enc; 11295 this->glUniform4uiv = &glUniform4uiv_enc; 11296 this->glUniformMatrix2x3fv = &glUniformMatrix2x3fv_enc; 11297 this->glUniformMatrix3x2fv = &glUniformMatrix3x2fv_enc; 11298 this->glUniformMatrix2x4fv = &glUniformMatrix2x4fv_enc; 11299 this->glUniformMatrix4x2fv = &glUniformMatrix4x2fv_enc; 11300 this->glUniformMatrix3x4fv = &glUniformMatrix3x4fv_enc; 11301 this->glUniformMatrix4x3fv = &glUniformMatrix4x3fv_enc; 11302 this->glGetUniformuiv = &glGetUniformuiv_enc; 11303 this->glGetActiveUniformsiv = &glGetActiveUniformsiv_enc; 11304 this->glVertexAttribI4i = &glVertexAttribI4i_enc; 11305 this->glVertexAttribI4ui = &glVertexAttribI4ui_enc; 11306 this->glVertexAttribI4iv = &glVertexAttribI4iv_enc; 11307 this->glVertexAttribI4uiv = &glVertexAttribI4uiv_enc; 11308 this->glVertexAttribIPointer = (glVertexAttribIPointer_client_proc_t) &enc_unsupported; 11309 this->glVertexAttribIPointerOffsetAEMU = &glVertexAttribIPointerOffsetAEMU_enc; 11310 this->glVertexAttribIPointerDataAEMU = &glVertexAttribIPointerDataAEMU_enc; 11311 this->glGetVertexAttribIiv = &glGetVertexAttribIiv_enc; 11312 this->glGetVertexAttribIuiv = &glGetVertexAttribIuiv_enc; 11313 this->glVertexAttribDivisor = &glVertexAttribDivisor_enc; 11314 this->glDrawArraysInstanced = &glDrawArraysInstanced_enc; 11315 this->glDrawElementsInstanced = (glDrawElementsInstanced_client_proc_t) &enc_unsupported; 11316 this->glDrawElementsInstancedDataAEMU = &glDrawElementsInstancedDataAEMU_enc; 11317 this->glDrawElementsInstancedOffsetAEMU = &glDrawElementsInstancedOffsetAEMU_enc; 11318 this->glDrawRangeElements = (glDrawRangeElements_client_proc_t) &enc_unsupported; 11319 this->glDrawRangeElementsDataAEMU = &glDrawRangeElementsDataAEMU_enc; 11320 this->glDrawRangeElementsOffsetAEMU = &glDrawRangeElementsOffsetAEMU_enc; 11321 this->glFenceSync = (glFenceSync_client_proc_t) &enc_unsupported; 11322 this->glClientWaitSync = (glClientWaitSync_client_proc_t) &enc_unsupported; 11323 this->glWaitSync = (glWaitSync_client_proc_t) &enc_unsupported; 11324 this->glDeleteSync = (glDeleteSync_client_proc_t) &enc_unsupported; 11325 this->glIsSync = (glIsSync_client_proc_t) &enc_unsupported; 11326 this->glGetSynciv = (glGetSynciv_client_proc_t) &enc_unsupported; 11327 this->glFenceSyncAEMU = &glFenceSyncAEMU_enc; 11328 this->glClientWaitSyncAEMU = &glClientWaitSyncAEMU_enc; 11329 this->glWaitSyncAEMU = &glWaitSyncAEMU_enc; 11330 this->glDeleteSyncAEMU = &glDeleteSyncAEMU_enc; 11331 this->glIsSyncAEMU = &glIsSyncAEMU_enc; 11332 this->glGetSyncivAEMU = &glGetSyncivAEMU_enc; 11333 this->glDrawBuffers = &glDrawBuffers_enc; 11334 this->glReadBuffer = &glReadBuffer_enc; 11335 this->glBlitFramebuffer = &glBlitFramebuffer_enc; 11336 this->glInvalidateFramebuffer = &glInvalidateFramebuffer_enc; 11337 this->glInvalidateSubFramebuffer = &glInvalidateSubFramebuffer_enc; 11338 this->glFramebufferTextureLayer = &glFramebufferTextureLayer_enc; 11339 this->glRenderbufferStorageMultisample = &glRenderbufferStorageMultisample_enc; 11340 this->glTexStorage2D = &glTexStorage2D_enc; 11341 this->glGetInternalformativ = &glGetInternalformativ_enc; 11342 this->glBeginTransformFeedback = &glBeginTransformFeedback_enc; 11343 this->glEndTransformFeedback = &glEndTransformFeedback_enc; 11344 this->glGenTransformFeedbacks = &glGenTransformFeedbacks_enc; 11345 this->glDeleteTransformFeedbacks = &glDeleteTransformFeedbacks_enc; 11346 this->glBindTransformFeedback = &glBindTransformFeedback_enc; 11347 this->glPauseTransformFeedback = &glPauseTransformFeedback_enc; 11348 this->glResumeTransformFeedback = &glResumeTransformFeedback_enc; 11349 this->glIsTransformFeedback = &glIsTransformFeedback_enc; 11350 this->glTransformFeedbackVaryings = (glTransformFeedbackVaryings_client_proc_t) &enc_unsupported; 11351 this->glTransformFeedbackVaryingsAEMU = &glTransformFeedbackVaryingsAEMU_enc; 11352 this->glGetTransformFeedbackVarying = &glGetTransformFeedbackVarying_enc; 11353 this->glGenSamplers = &glGenSamplers_enc; 11354 this->glDeleteSamplers = &glDeleteSamplers_enc; 11355 this->glBindSampler = &glBindSampler_enc; 11356 this->glSamplerParameterf = &glSamplerParameterf_enc; 11357 this->glSamplerParameteri = &glSamplerParameteri_enc; 11358 this->glSamplerParameterfv = &glSamplerParameterfv_enc; 11359 this->glSamplerParameteriv = &glSamplerParameteriv_enc; 11360 this->glGetSamplerParameterfv = &glGetSamplerParameterfv_enc; 11361 this->glGetSamplerParameteriv = &glGetSamplerParameteriv_enc; 11362 this->glIsSampler = &glIsSampler_enc; 11363 this->glGenQueries = &glGenQueries_enc; 11364 this->glDeleteQueries = &glDeleteQueries_enc; 11365 this->glBeginQuery = &glBeginQuery_enc; 11366 this->glEndQuery = &glEndQuery_enc; 11367 this->glGetQueryiv = &glGetQueryiv_enc; 11368 this->glGetQueryObjectuiv = &glGetQueryObjectuiv_enc; 11369 this->glIsQuery = &glIsQuery_enc; 11370 this->glProgramParameteri = &glProgramParameteri_enc; 11371 this->glProgramBinary = &glProgramBinary_enc; 11372 this->glGetProgramBinary = &glGetProgramBinary_enc; 11373 this->glGetFragDataLocation = &glGetFragDataLocation_enc; 11374 this->glGetInteger64v = &glGetInteger64v_enc; 11375 this->glGetIntegeri_v = &glGetIntegeri_v_enc; 11376 this->glGetInteger64i_v = &glGetInteger64i_v_enc; 11377 this->glTexImage3D = &glTexImage3D_enc; 11378 this->glTexImage3DOffsetAEMU = &glTexImage3DOffsetAEMU_enc; 11379 this->glTexStorage3D = &glTexStorage3D_enc; 11380 this->glTexSubImage3D = &glTexSubImage3D_enc; 11381 this->glTexSubImage3DOffsetAEMU = &glTexSubImage3DOffsetAEMU_enc; 11382 this->glCompressedTexImage3D = &glCompressedTexImage3D_enc; 11383 this->glCompressedTexImage3DOffsetAEMU = &glCompressedTexImage3DOffsetAEMU_enc; 11384 this->glCompressedTexSubImage3D = &glCompressedTexSubImage3D_enc; 11385 this->glCompressedTexSubImage3DOffsetAEMU = &glCompressedTexSubImage3DOffsetAEMU_enc; 11386 this->glCopyTexSubImage3D = &glCopyTexSubImage3D_enc; 11387 this->glGetStringi = (glGetStringi_client_proc_t) &enc_unsupported; 11388 this->glGetBooleani_v = &glGetBooleani_v_enc; 11389 this->glMemoryBarrier = &glMemoryBarrier_enc; 11390 this->glMemoryBarrierByRegion = &glMemoryBarrierByRegion_enc; 11391 this->glGenProgramPipelines = &glGenProgramPipelines_enc; 11392 this->glDeleteProgramPipelines = &glDeleteProgramPipelines_enc; 11393 this->glBindProgramPipeline = &glBindProgramPipeline_enc; 11394 this->glGetProgramPipelineiv = &glGetProgramPipelineiv_enc; 11395 this->glGetProgramPipelineInfoLog = &glGetProgramPipelineInfoLog_enc; 11396 this->glValidateProgramPipeline = &glValidateProgramPipeline_enc; 11397 this->glIsProgramPipeline = &glIsProgramPipeline_enc; 11398 this->glUseProgramStages = &glUseProgramStages_enc; 11399 this->glActiveShaderProgram = &glActiveShaderProgram_enc; 11400 this->glCreateShaderProgramv = (glCreateShaderProgramv_client_proc_t) &enc_unsupported; 11401 this->glCreateShaderProgramvAEMU = &glCreateShaderProgramvAEMU_enc; 11402 this->glProgramUniform1f = &glProgramUniform1f_enc; 11403 this->glProgramUniform2f = &glProgramUniform2f_enc; 11404 this->glProgramUniform3f = &glProgramUniform3f_enc; 11405 this->glProgramUniform4f = &glProgramUniform4f_enc; 11406 this->glProgramUniform1i = &glProgramUniform1i_enc; 11407 this->glProgramUniform2i = &glProgramUniform2i_enc; 11408 this->glProgramUniform3i = &glProgramUniform3i_enc; 11409 this->glProgramUniform4i = &glProgramUniform4i_enc; 11410 this->glProgramUniform1ui = &glProgramUniform1ui_enc; 11411 this->glProgramUniform2ui = &glProgramUniform2ui_enc; 11412 this->glProgramUniform3ui = &glProgramUniform3ui_enc; 11413 this->glProgramUniform4ui = &glProgramUniform4ui_enc; 11414 this->glProgramUniform1fv = &glProgramUniform1fv_enc; 11415 this->glProgramUniform2fv = &glProgramUniform2fv_enc; 11416 this->glProgramUniform3fv = &glProgramUniform3fv_enc; 11417 this->glProgramUniform4fv = &glProgramUniform4fv_enc; 11418 this->glProgramUniform1iv = &glProgramUniform1iv_enc; 11419 this->glProgramUniform2iv = &glProgramUniform2iv_enc; 11420 this->glProgramUniform3iv = &glProgramUniform3iv_enc; 11421 this->glProgramUniform4iv = &glProgramUniform4iv_enc; 11422 this->glProgramUniform1uiv = &glProgramUniform1uiv_enc; 11423 this->glProgramUniform2uiv = &glProgramUniform2uiv_enc; 11424 this->glProgramUniform3uiv = &glProgramUniform3uiv_enc; 11425 this->glProgramUniform4uiv = &glProgramUniform4uiv_enc; 11426 this->glProgramUniformMatrix2fv = &glProgramUniformMatrix2fv_enc; 11427 this->glProgramUniformMatrix3fv = &glProgramUniformMatrix3fv_enc; 11428 this->glProgramUniformMatrix4fv = &glProgramUniformMatrix4fv_enc; 11429 this->glProgramUniformMatrix2x3fv = &glProgramUniformMatrix2x3fv_enc; 11430 this->glProgramUniformMatrix3x2fv = &glProgramUniformMatrix3x2fv_enc; 11431 this->glProgramUniformMatrix2x4fv = &glProgramUniformMatrix2x4fv_enc; 11432 this->glProgramUniformMatrix4x2fv = &glProgramUniformMatrix4x2fv_enc; 11433 this->glProgramUniformMatrix3x4fv = &glProgramUniformMatrix3x4fv_enc; 11434 this->glProgramUniformMatrix4x3fv = &glProgramUniformMatrix4x3fv_enc; 11435 this->glGetProgramInterfaceiv = &glGetProgramInterfaceiv_enc; 11436 this->glGetProgramResourceiv = &glGetProgramResourceiv_enc; 11437 this->glGetProgramResourceIndex = &glGetProgramResourceIndex_enc; 11438 this->glGetProgramResourceLocation = &glGetProgramResourceLocation_enc; 11439 this->glGetProgramResourceName = &glGetProgramResourceName_enc; 11440 this->glBindImageTexture = &glBindImageTexture_enc; 11441 this->glDispatchCompute = &glDispatchCompute_enc; 11442 this->glDispatchComputeIndirect = &glDispatchComputeIndirect_enc; 11443 this->glBindVertexBuffer = &glBindVertexBuffer_enc; 11444 this->glVertexAttribBinding = &glVertexAttribBinding_enc; 11445 this->glVertexAttribFormat = &glVertexAttribFormat_enc; 11446 this->glVertexAttribIFormat = &glVertexAttribIFormat_enc; 11447 this->glVertexBindingDivisor = &glVertexBindingDivisor_enc; 11448 this->glDrawArraysIndirect = (glDrawArraysIndirect_client_proc_t) &enc_unsupported; 11449 this->glDrawArraysIndirectDataAEMU = &glDrawArraysIndirectDataAEMU_enc; 11450 this->glDrawArraysIndirectOffsetAEMU = &glDrawArraysIndirectOffsetAEMU_enc; 11451 this->glDrawElementsIndirect = (glDrawElementsIndirect_client_proc_t) &enc_unsupported; 11452 this->glDrawElementsIndirectDataAEMU = &glDrawElementsIndirectDataAEMU_enc; 11453 this->glDrawElementsIndirectOffsetAEMU = &glDrawElementsIndirectOffsetAEMU_enc; 11454 this->glTexStorage2DMultisample = &glTexStorage2DMultisample_enc; 11455 this->glSampleMaski = &glSampleMaski_enc; 11456 this->glGetMultisamplefv = &glGetMultisamplefv_enc; 11457 this->glFramebufferParameteri = &glFramebufferParameteri_enc; 11458 this->glGetFramebufferParameteriv = &glGetFramebufferParameteriv_enc; 11459 this->glGetTexLevelParameterfv = &glGetTexLevelParameterfv_enc; 11460 this->glGetTexLevelParameteriv = &glGetTexLevelParameteriv_enc; 11461 } 11462 11463