1 // Generated Code - DO NOT EDIT !!
2 // generated by 'emugen'
7 #include "renderControl_opcodes.h"
9 #include "renderControl_enc.h"
16 void enc_unsupported()
18 ALOGE("Function is unsupported\n");
21 GLint rcGetRendererVersion_enc(void *self )
24 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
25 IOStream *stream = ctx->m_stream;
26 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
27 bool useChecksum = checksumCalculator->getVersion() > 0;
31 const size_t sizeWithoutChecksum = 8;
32 const size_t checksumSize = checksumCalculator->checksumByteSize();
33 const size_t totalSize = sizeWithoutChecksum + checksumSize;
34 buf = stream->alloc(totalSize);
36 int tmp = OP_rcGetRendererVersion;memcpy(ptr, &tmp, 4); ptr += 4;
37 memcpy(ptr, &totalSize, 4); ptr += 4;
40 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
41 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
45 stream->readback(&retval, 4);
46 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
48 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
49 stream->readback(checksumBuf.get(), checksumSize);
50 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
51 ALOGE("rcGetRendererVersion: GL communication error, please report this issue to b.android.com.\n");
58 EGLint rcGetEGLVersion_enc(void *self , EGLint* major, EGLint* minor)
61 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
62 IOStream *stream = ctx->m_stream;
63 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
64 bool useChecksum = checksumCalculator->getVersion() > 0;
66 const unsigned int __size_major = sizeof(EGLint);
67 const unsigned int __size_minor = sizeof(EGLint);
70 const size_t sizeWithoutChecksum = 8 + __size_major + __size_minor + 2*4;
71 const size_t checksumSize = checksumCalculator->checksumByteSize();
72 const size_t totalSize = sizeWithoutChecksum + checksumSize;
73 buf = stream->alloc(totalSize);
75 int tmp = OP_rcGetEGLVersion;memcpy(ptr, &tmp, 4); ptr += 4;
76 memcpy(ptr, &totalSize, 4); ptr += 4;
78 *(unsigned int *)(ptr) = __size_major; ptr += 4;
79 *(unsigned int *)(ptr) = __size_minor; ptr += 4;
81 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
82 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
84 stream->readback(major, __size_major);
85 if (useChecksum) checksumCalculator->addBuffer(major, __size_major);
86 stream->readback(minor, __size_minor);
87 if (useChecksum) checksumCalculator->addBuffer(minor, __size_minor);
90 stream->readback(&retval, 4);
91 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
93 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
94 stream->readback(checksumBuf.get(), checksumSize);
95 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
96 ALOGE("rcGetEGLVersion: GL communication error, please report this issue to b.android.com.\n");
103 EGLint rcQueryEGLString_enc(void *self , EGLenum name, void* buffer, EGLint bufferSize)
106 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
107 IOStream *stream = ctx->m_stream;
108 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
109 bool useChecksum = checksumCalculator->getVersion() > 0;
111 const unsigned int __size_buffer = bufferSize;
114 const size_t sizeWithoutChecksum = 8 + 4 + __size_buffer + 4 + 1*4;
115 const size_t checksumSize = checksumCalculator->checksumByteSize();
116 const size_t totalSize = sizeWithoutChecksum + checksumSize;
117 buf = stream->alloc(totalSize);
119 int tmp = OP_rcQueryEGLString;memcpy(ptr, &tmp, 4); ptr += 4;
120 memcpy(ptr, &totalSize, 4); ptr += 4;
122 memcpy(ptr, &name, 4); ptr += 4;
123 *(unsigned int *)(ptr) = __size_buffer; ptr += 4;
124 memcpy(ptr, &bufferSize, 4); ptr += 4;
126 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
127 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
129 stream->readback(buffer, __size_buffer);
130 if (useChecksum) checksumCalculator->addBuffer(buffer, __size_buffer);
133 stream->readback(&retval, 4);
134 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
136 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
137 stream->readback(checksumBuf.get(), checksumSize);
138 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
139 ALOGE("rcQueryEGLString: GL communication error, please report this issue to b.android.com.\n");
146 EGLint rcGetGLString_enc(void *self , EGLenum name, void* buffer, EGLint bufferSize)
149 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
150 IOStream *stream = ctx->m_stream;
151 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
152 bool useChecksum = checksumCalculator->getVersion() > 0;
154 const unsigned int __size_buffer = bufferSize;
157 const size_t sizeWithoutChecksum = 8 + 4 + __size_buffer + 4 + 1*4;
158 const size_t checksumSize = checksumCalculator->checksumByteSize();
159 const size_t totalSize = sizeWithoutChecksum + checksumSize;
160 buf = stream->alloc(totalSize);
162 int tmp = OP_rcGetGLString;memcpy(ptr, &tmp, 4); ptr += 4;
163 memcpy(ptr, &totalSize, 4); ptr += 4;
165 memcpy(ptr, &name, 4); ptr += 4;
166 *(unsigned int *)(ptr) = __size_buffer; ptr += 4;
167 memcpy(ptr, &bufferSize, 4); ptr += 4;
169 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
170 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
172 stream->readback(buffer, __size_buffer);
173 if (useChecksum) checksumCalculator->addBuffer(buffer, __size_buffer);
176 stream->readback(&retval, 4);
177 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
179 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
180 stream->readback(checksumBuf.get(), checksumSize);
181 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
182 ALOGE("rcGetGLString: GL communication error, please report this issue to b.android.com.\n");
189 EGLint rcGetNumConfigs_enc(void *self , uint32_t* numAttribs)
192 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
193 IOStream *stream = ctx->m_stream;
194 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
195 bool useChecksum = checksumCalculator->getVersion() > 0;
197 const unsigned int __size_numAttribs = sizeof(uint32_t);
200 const size_t sizeWithoutChecksum = 8 + __size_numAttribs + 1*4;
201 const size_t checksumSize = checksumCalculator->checksumByteSize();
202 const size_t totalSize = sizeWithoutChecksum + checksumSize;
203 buf = stream->alloc(totalSize);
205 int tmp = OP_rcGetNumConfigs;memcpy(ptr, &tmp, 4); ptr += 4;
206 memcpy(ptr, &totalSize, 4); ptr += 4;
208 *(unsigned int *)(ptr) = __size_numAttribs; ptr += 4;
210 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
211 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
213 stream->readback(numAttribs, __size_numAttribs);
214 if (useChecksum) checksumCalculator->addBuffer(numAttribs, __size_numAttribs);
217 stream->readback(&retval, 4);
218 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
220 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
221 stream->readback(checksumBuf.get(), checksumSize);
222 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
223 ALOGE("rcGetNumConfigs: GL communication error, please report this issue to b.android.com.\n");
230 EGLint rcGetConfigs_enc(void *self , uint32_t bufSize, GLuint* buffer)
233 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
234 IOStream *stream = ctx->m_stream;
235 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
236 bool useChecksum = checksumCalculator->getVersion() > 0;
238 const unsigned int __size_buffer = bufSize;
241 const size_t sizeWithoutChecksum = 8 + 4 + __size_buffer + 1*4;
242 const size_t checksumSize = checksumCalculator->checksumByteSize();
243 const size_t totalSize = sizeWithoutChecksum + checksumSize;
244 buf = stream->alloc(totalSize);
246 int tmp = OP_rcGetConfigs;memcpy(ptr, &tmp, 4); ptr += 4;
247 memcpy(ptr, &totalSize, 4); ptr += 4;
249 memcpy(ptr, &bufSize, 4); ptr += 4;
250 *(unsigned int *)(ptr) = __size_buffer; ptr += 4;
252 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
253 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
255 stream->readback(buffer, __size_buffer);
256 if (useChecksum) checksumCalculator->addBuffer(buffer, __size_buffer);
259 stream->readback(&retval, 4);
260 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
262 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
263 stream->readback(checksumBuf.get(), checksumSize);
264 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
265 ALOGE("rcGetConfigs: GL communication error, please report this issue to b.android.com.\n");
272 EGLint rcChooseConfig_enc(void *self , EGLint* attribs, uint32_t attribs_size, uint32_t* configs, uint32_t configs_size)
275 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
276 IOStream *stream = ctx->m_stream;
277 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
278 bool useChecksum = checksumCalculator->getVersion() > 0;
280 const unsigned int __size_attribs = attribs_size;
281 const unsigned int __size_configs = ((configs != NULL) ? configs_size*sizeof(uint32_t) : 0);
284 const size_t sizeWithoutChecksum = 8 + __size_attribs + 4 + __size_configs + 4 + 2*4;
285 const size_t checksumSize = checksumCalculator->checksumByteSize();
286 const size_t totalSize = sizeWithoutChecksum + checksumSize;
287 buf = stream->alloc(totalSize);
289 int tmp = OP_rcChooseConfig;memcpy(ptr, &tmp, 4); ptr += 4;
290 memcpy(ptr, &totalSize, 4); ptr += 4;
292 *(unsigned int *)(ptr) = __size_attribs; ptr += 4;
293 memcpy(ptr, attribs, __size_attribs);ptr += __size_attribs;
294 memcpy(ptr, &attribs_size, 4); ptr += 4;
295 *(unsigned int *)(ptr) = __size_configs; ptr += 4;
296 memcpy(ptr, &configs_size, 4); ptr += 4;
298 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
299 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
301 if (configs != NULL) {
302 stream->readback(configs, __size_configs);
303 if (useChecksum) checksumCalculator->addBuffer(configs, __size_configs);
307 stream->readback(&retval, 4);
308 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
310 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
311 stream->readback(checksumBuf.get(), checksumSize);
312 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
313 ALOGE("rcChooseConfig: GL communication error, please report this issue to b.android.com.\n");
320 EGLint rcGetFBParam_enc(void *self , EGLint param)
323 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
324 IOStream *stream = ctx->m_stream;
325 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
326 bool useChecksum = checksumCalculator->getVersion() > 0;
330 const size_t sizeWithoutChecksum = 8 + 4;
331 const size_t checksumSize = checksumCalculator->checksumByteSize();
332 const size_t totalSize = sizeWithoutChecksum + checksumSize;
333 buf = stream->alloc(totalSize);
335 int tmp = OP_rcGetFBParam;memcpy(ptr, &tmp, 4); ptr += 4;
336 memcpy(ptr, &totalSize, 4); ptr += 4;
338 memcpy(ptr, ¶m, 4); ptr += 4;
340 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
341 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
345 stream->readback(&retval, 4);
346 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
348 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
349 stream->readback(checksumBuf.get(), checksumSize);
350 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
351 ALOGE("rcGetFBParam: GL communication error, please report this issue to b.android.com.\n");
358 uint32_t rcCreateContext_enc(void *self , uint32_t config, uint32_t share, uint32_t glVersion)
361 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
362 IOStream *stream = ctx->m_stream;
363 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
364 bool useChecksum = checksumCalculator->getVersion() > 0;
368 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
369 const size_t checksumSize = checksumCalculator->checksumByteSize();
370 const size_t totalSize = sizeWithoutChecksum + checksumSize;
371 buf = stream->alloc(totalSize);
373 int tmp = OP_rcCreateContext;memcpy(ptr, &tmp, 4); ptr += 4;
374 memcpy(ptr, &totalSize, 4); ptr += 4;
376 memcpy(ptr, &config, 4); ptr += 4;
377 memcpy(ptr, &share, 4); ptr += 4;
378 memcpy(ptr, &glVersion, 4); ptr += 4;
380 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
381 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
385 stream->readback(&retval, 4);
386 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
388 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
389 stream->readback(checksumBuf.get(), checksumSize);
390 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
391 ALOGE("rcCreateContext: GL communication error, please report this issue to b.android.com.\n");
398 void rcDestroyContext_enc(void *self , uint32_t context)
401 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
402 IOStream *stream = ctx->m_stream;
403 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
404 bool useChecksum = checksumCalculator->getVersion() > 0;
408 const size_t sizeWithoutChecksum = 8 + 4;
409 const size_t checksumSize = checksumCalculator->checksumByteSize();
410 const size_t totalSize = sizeWithoutChecksum + checksumSize;
411 buf = stream->alloc(totalSize);
413 int tmp = OP_rcDestroyContext;memcpy(ptr, &tmp, 4); ptr += 4;
414 memcpy(ptr, &totalSize, 4); ptr += 4;
416 memcpy(ptr, &context, 4); ptr += 4;
418 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
419 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
423 uint32_t rcCreateWindowSurface_enc(void *self , uint32_t config, uint32_t width, uint32_t height)
426 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
427 IOStream *stream = ctx->m_stream;
428 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
429 bool useChecksum = checksumCalculator->getVersion() > 0;
433 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
434 const size_t checksumSize = checksumCalculator->checksumByteSize();
435 const size_t totalSize = sizeWithoutChecksum + checksumSize;
436 buf = stream->alloc(totalSize);
438 int tmp = OP_rcCreateWindowSurface;memcpy(ptr, &tmp, 4); ptr += 4;
439 memcpy(ptr, &totalSize, 4); ptr += 4;
441 memcpy(ptr, &config, 4); ptr += 4;
442 memcpy(ptr, &width, 4); ptr += 4;
443 memcpy(ptr, &height, 4); ptr += 4;
445 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
446 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
450 stream->readback(&retval, 4);
451 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
453 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
454 stream->readback(checksumBuf.get(), checksumSize);
455 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
456 ALOGE("rcCreateWindowSurface: GL communication error, please report this issue to b.android.com.\n");
463 void rcDestroyWindowSurface_enc(void *self , uint32_t windowSurface)
466 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
467 IOStream *stream = ctx->m_stream;
468 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
469 bool useChecksum = checksumCalculator->getVersion() > 0;
473 const size_t sizeWithoutChecksum = 8 + 4;
474 const size_t checksumSize = checksumCalculator->checksumByteSize();
475 const size_t totalSize = sizeWithoutChecksum + checksumSize;
476 buf = stream->alloc(totalSize);
478 int tmp = OP_rcDestroyWindowSurface;memcpy(ptr, &tmp, 4); ptr += 4;
479 memcpy(ptr, &totalSize, 4); ptr += 4;
481 memcpy(ptr, &windowSurface, 4); ptr += 4;
483 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
484 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
488 uint32_t rcCreateColorBuffer_enc(void *self , uint32_t width, uint32_t height, GLenum internalFormat)
491 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
492 IOStream *stream = ctx->m_stream;
493 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
494 bool useChecksum = checksumCalculator->getVersion() > 0;
498 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
499 const size_t checksumSize = checksumCalculator->checksumByteSize();
500 const size_t totalSize = sizeWithoutChecksum + checksumSize;
501 buf = stream->alloc(totalSize);
503 int tmp = OP_rcCreateColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
504 memcpy(ptr, &totalSize, 4); ptr += 4;
506 memcpy(ptr, &width, 4); ptr += 4;
507 memcpy(ptr, &height, 4); ptr += 4;
508 memcpy(ptr, &internalFormat, 4); ptr += 4;
510 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
511 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
515 stream->readback(&retval, 4);
516 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
518 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
519 stream->readback(checksumBuf.get(), checksumSize);
520 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
521 ALOGE("rcCreateColorBuffer: GL communication error, please report this issue to b.android.com.\n");
528 void rcOpenColorBuffer_enc(void *self , uint32_t colorbuffer)
531 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
532 IOStream *stream = ctx->m_stream;
533 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
534 bool useChecksum = checksumCalculator->getVersion() > 0;
538 const size_t sizeWithoutChecksum = 8 + 4;
539 const size_t checksumSize = checksumCalculator->checksumByteSize();
540 const size_t totalSize = sizeWithoutChecksum + checksumSize;
541 buf = stream->alloc(totalSize);
543 int tmp = OP_rcOpenColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
544 memcpy(ptr, &totalSize, 4); ptr += 4;
546 memcpy(ptr, &colorbuffer, 4); ptr += 4;
548 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
549 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
553 void rcCloseColorBuffer_enc(void *self , uint32_t colorbuffer)
556 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
557 IOStream *stream = ctx->m_stream;
558 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
559 bool useChecksum = checksumCalculator->getVersion() > 0;
563 const size_t sizeWithoutChecksum = 8 + 4;
564 const size_t checksumSize = checksumCalculator->checksumByteSize();
565 const size_t totalSize = sizeWithoutChecksum + checksumSize;
566 buf = stream->alloc(totalSize);
568 int tmp = OP_rcCloseColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
569 memcpy(ptr, &totalSize, 4); ptr += 4;
571 memcpy(ptr, &colorbuffer, 4); ptr += 4;
573 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
574 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
579 void rcSetWindowColorBuffer_enc(void *self , uint32_t windowSurface, uint32_t colorBuffer)
582 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
583 IOStream *stream = ctx->m_stream;
584 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
585 bool useChecksum = checksumCalculator->getVersion() > 0;
589 const size_t sizeWithoutChecksum = 8 + 4 + 4;
590 const size_t checksumSize = checksumCalculator->checksumByteSize();
591 const size_t totalSize = sizeWithoutChecksum + checksumSize;
592 buf = stream->alloc(totalSize);
594 int tmp = OP_rcSetWindowColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
595 memcpy(ptr, &totalSize, 4); ptr += 4;
597 memcpy(ptr, &windowSurface, 4); ptr += 4;
598 memcpy(ptr, &colorBuffer, 4); ptr += 4;
600 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
601 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
605 int rcFlushWindowColorBuffer_enc(void *self , uint32_t windowSurface)
608 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
609 IOStream *stream = ctx->m_stream;
610 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
611 bool useChecksum = checksumCalculator->getVersion() > 0;
615 const size_t sizeWithoutChecksum = 8 + 4;
616 const size_t checksumSize = checksumCalculator->checksumByteSize();
617 const size_t totalSize = sizeWithoutChecksum + checksumSize;
618 buf = stream->alloc(totalSize);
620 int tmp = OP_rcFlushWindowColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
621 memcpy(ptr, &totalSize, 4); ptr += 4;
623 memcpy(ptr, &windowSurface, 4); ptr += 4;
625 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
626 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
630 stream->readback(&retval, 4);
631 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
633 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
634 stream->readback(checksumBuf.get(), checksumSize);
635 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
636 ALOGE("rcFlushWindowColorBuffer: GL communication error, please report this issue to b.android.com.\n");
643 EGLint rcMakeCurrent_enc(void *self , uint32_t context, uint32_t drawSurf, uint32_t readSurf)
646 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
647 IOStream *stream = ctx->m_stream;
648 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
649 bool useChecksum = checksumCalculator->getVersion() > 0;
653 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
654 const size_t checksumSize = checksumCalculator->checksumByteSize();
655 const size_t totalSize = sizeWithoutChecksum + checksumSize;
656 buf = stream->alloc(totalSize);
658 int tmp = OP_rcMakeCurrent;memcpy(ptr, &tmp, 4); ptr += 4;
659 memcpy(ptr, &totalSize, 4); ptr += 4;
661 memcpy(ptr, &context, 4); ptr += 4;
662 memcpy(ptr, &drawSurf, 4); ptr += 4;
663 memcpy(ptr, &readSurf, 4); ptr += 4;
665 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
666 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
670 stream->readback(&retval, 4);
671 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
673 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
674 stream->readback(checksumBuf.get(), checksumSize);
675 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
676 ALOGE("rcMakeCurrent: GL communication error, please report this issue to b.android.com.\n");
683 void rcFBPost_enc(void *self , uint32_t colorBuffer)
686 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
687 IOStream *stream = ctx->m_stream;
688 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
689 bool useChecksum = checksumCalculator->getVersion() > 0;
693 const size_t sizeWithoutChecksum = 8 + 4;
694 const size_t checksumSize = checksumCalculator->checksumByteSize();
695 const size_t totalSize = sizeWithoutChecksum + checksumSize;
696 buf = stream->alloc(totalSize);
698 int tmp = OP_rcFBPost;memcpy(ptr, &tmp, 4); ptr += 4;
699 memcpy(ptr, &totalSize, 4); ptr += 4;
701 memcpy(ptr, &colorBuffer, 4); ptr += 4;
703 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
704 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
708 void rcFBSetSwapInterval_enc(void *self , EGLint interval)
711 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
712 IOStream *stream = ctx->m_stream;
713 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
714 bool useChecksum = checksumCalculator->getVersion() > 0;
718 const size_t sizeWithoutChecksum = 8 + 4;
719 const size_t checksumSize = checksumCalculator->checksumByteSize();
720 const size_t totalSize = sizeWithoutChecksum + checksumSize;
721 buf = stream->alloc(totalSize);
723 int tmp = OP_rcFBSetSwapInterval;memcpy(ptr, &tmp, 4); ptr += 4;
724 memcpy(ptr, &totalSize, 4); ptr += 4;
726 memcpy(ptr, &interval, 4); ptr += 4;
728 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
729 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
733 void rcBindTexture_enc(void *self , uint32_t colorBuffer)
736 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
737 IOStream *stream = ctx->m_stream;
738 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
739 bool useChecksum = checksumCalculator->getVersion() > 0;
743 const size_t sizeWithoutChecksum = 8 + 4;
744 const size_t checksumSize = checksumCalculator->checksumByteSize();
745 const size_t totalSize = sizeWithoutChecksum + checksumSize;
746 buf = stream->alloc(totalSize);
748 int tmp = OP_rcBindTexture;memcpy(ptr, &tmp, 4); ptr += 4;
749 memcpy(ptr, &totalSize, 4); ptr += 4;
751 memcpy(ptr, &colorBuffer, 4); ptr += 4;
753 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
754 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
758 void rcBindRenderbuffer_enc(void *self , uint32_t colorBuffer)
761 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
762 IOStream *stream = ctx->m_stream;
763 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
764 bool useChecksum = checksumCalculator->getVersion() > 0;
768 const size_t sizeWithoutChecksum = 8 + 4;
769 const size_t checksumSize = checksumCalculator->checksumByteSize();
770 const size_t totalSize = sizeWithoutChecksum + checksumSize;
771 buf = stream->alloc(totalSize);
773 int tmp = OP_rcBindRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4;
774 memcpy(ptr, &totalSize, 4); ptr += 4;
776 memcpy(ptr, &colorBuffer, 4); ptr += 4;
778 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
779 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
783 EGLint rcColorBufferCacheFlush_enc(void *self , uint32_t colorbuffer, EGLint postCount, int forRead)
786 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
787 IOStream *stream = ctx->m_stream;
788 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
789 bool useChecksum = checksumCalculator->getVersion() > 0;
793 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
794 const size_t checksumSize = checksumCalculator->checksumByteSize();
795 const size_t totalSize = sizeWithoutChecksum + checksumSize;
796 buf = stream->alloc(totalSize);
798 int tmp = OP_rcColorBufferCacheFlush;memcpy(ptr, &tmp, 4); ptr += 4;
799 memcpy(ptr, &totalSize, 4); ptr += 4;
801 memcpy(ptr, &colorbuffer, 4); ptr += 4;
802 memcpy(ptr, &postCount, 4); ptr += 4;
803 memcpy(ptr, &forRead, 4); ptr += 4;
805 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
806 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
810 stream->readback(&retval, 4);
811 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
813 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
814 stream->readback(checksumBuf.get(), checksumSize);
815 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
816 ALOGE("rcColorBufferCacheFlush: GL communication error, please report this issue to b.android.com.\n");
823 void rcReadColorBuffer_enc(void *self , uint32_t colorbuffer, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void* pixels)
826 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
827 IOStream *stream = ctx->m_stream;
828 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
829 bool useChecksum = checksumCalculator->getVersion() > 0;
831 const unsigned int __size_pixels = (((glUtilsPixelBitSize(format, type) * width) >> 3) * height);
834 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
835 const size_t checksumSize = checksumCalculator->checksumByteSize();
836 const size_t totalSize = sizeWithoutChecksum + checksumSize;
837 buf = stream->alloc(totalSize);
839 int tmp = OP_rcReadColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
840 memcpy(ptr, &totalSize, 4); ptr += 4;
842 memcpy(ptr, &colorbuffer, 4); ptr += 4;
843 memcpy(ptr, &x, 4); ptr += 4;
844 memcpy(ptr, &y, 4); ptr += 4;
845 memcpy(ptr, &width, 4); ptr += 4;
846 memcpy(ptr, &height, 4); ptr += 4;
847 memcpy(ptr, &format, 4); ptr += 4;
848 memcpy(ptr, &type, 4); ptr += 4;
849 *(unsigned int *)(ptr) = __size_pixels; ptr += 4;
851 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
852 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
854 stream->readback(pixels, __size_pixels);
855 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
857 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
858 stream->readback(checksumBuf.get(), checksumSize);
859 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
860 ALOGE("rcReadColorBuffer: GL communication error, please report this issue to b.android.com.\n");
866 int rcUpdateColorBuffer_enc(void *self , uint32_t colorbuffer, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void* pixels)
869 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
870 IOStream *stream = ctx->m_stream;
871 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
872 bool useChecksum = checksumCalculator->getVersion() > 0;
874 const unsigned int __size_pixels = (((glUtilsPixelBitSize(format, type) * width) >> 3) * height);
877 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
878 const size_t checksumSize = checksumCalculator->checksumByteSize();
879 const size_t totalSize = sizeWithoutChecksum + checksumSize;
880 buf = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
882 int tmp = OP_rcUpdateColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
883 memcpy(ptr, &totalSize, 4); ptr += 4;
885 memcpy(ptr, &colorbuffer, 4); ptr += 4;
886 memcpy(ptr, &x, 4); ptr += 4;
887 memcpy(ptr, &y, 4); ptr += 4;
888 memcpy(ptr, &width, 4); ptr += 4;
889 memcpy(ptr, &height, 4); ptr += 4;
890 memcpy(ptr, &format, 4); ptr += 4;
891 memcpy(ptr, &type, 4); ptr += 4;
893 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
895 stream->writeFully(&__size_pixels,4);
896 if (useChecksum) checksumCalculator->addBuffer(&__size_pixels,4);
897 stream->writeFully(pixels, __size_pixels);
898 if (useChecksum) checksumCalculator->addBuffer(pixels, __size_pixels);
899 buf = stream->alloc(checksumSize);
900 if (useChecksum) checksumCalculator->writeChecksum(buf, checksumSize);
904 stream->readback(&retval, 4);
905 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
907 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
908 stream->readback(checksumBuf.get(), checksumSize);
909 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
910 ALOGE("rcUpdateColorBuffer: GL communication error, please report this issue to b.android.com.\n");
917 int rcOpenColorBuffer2_enc(void *self , uint32_t colorbuffer)
920 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
921 IOStream *stream = ctx->m_stream;
922 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
923 bool useChecksum = checksumCalculator->getVersion() > 0;
927 const size_t sizeWithoutChecksum = 8 + 4;
928 const size_t checksumSize = checksumCalculator->checksumByteSize();
929 const size_t totalSize = sizeWithoutChecksum + checksumSize;
930 buf = stream->alloc(totalSize);
932 int tmp = OP_rcOpenColorBuffer2;memcpy(ptr, &tmp, 4); ptr += 4;
933 memcpy(ptr, &totalSize, 4); ptr += 4;
935 memcpy(ptr, &colorbuffer, 4); ptr += 4;
937 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
938 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
942 stream->readback(&retval, 4);
943 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
945 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
946 stream->readback(checksumBuf.get(), checksumSize);
947 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
948 ALOGE("rcOpenColorBuffer2: GL communication error, please report this issue to b.android.com.\n");
955 uint32_t rcCreateClientImage_enc(void *self , uint32_t context, EGLenum target, GLuint buffer)
958 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
959 IOStream *stream = ctx->m_stream;
960 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
961 bool useChecksum = checksumCalculator->getVersion() > 0;
965 const size_t sizeWithoutChecksum = 8 + 4 + 4 + 4;
966 const size_t checksumSize = checksumCalculator->checksumByteSize();
967 const size_t totalSize = sizeWithoutChecksum + checksumSize;
968 buf = stream->alloc(totalSize);
970 int tmp = OP_rcCreateClientImage;memcpy(ptr, &tmp, 4); ptr += 4;
971 memcpy(ptr, &totalSize, 4); ptr += 4;
973 memcpy(ptr, &context, 4); ptr += 4;
974 memcpy(ptr, &target, 4); ptr += 4;
975 memcpy(ptr, &buffer, 4); ptr += 4;
977 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
978 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
982 stream->readback(&retval, 4);
983 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
985 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
986 stream->readback(checksumBuf.get(), checksumSize);
987 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
988 ALOGE("rcCreateClientImage: GL communication error, please report this issue to b.android.com.\n");
995 int rcDestroyClientImage_enc(void *self , uint32_t image)
998 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
999 IOStream *stream = ctx->m_stream;
1000 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1001 bool useChecksum = checksumCalculator->getVersion() > 0;
1005 const size_t sizeWithoutChecksum = 8 + 4;
1006 const size_t checksumSize = checksumCalculator->checksumByteSize();
1007 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1008 buf = stream->alloc(totalSize);
1010 int tmp = OP_rcDestroyClientImage;memcpy(ptr, &tmp, 4); ptr += 4;
1011 memcpy(ptr, &totalSize, 4); ptr += 4;
1013 memcpy(ptr, &image, 4); ptr += 4;
1015 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1016 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1020 stream->readback(&retval, 4);
1021 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
1023 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
1024 stream->readback(checksumBuf.get(), checksumSize);
1025 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
1026 ALOGE("rcDestroyClientImage: GL communication error, please report this issue to b.android.com.\n");
1033 void rcSelectChecksumCalculator_enc(void *self , uint32_t newProtocol, uint32_t reserved)
1036 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
1037 IOStream *stream = ctx->m_stream;
1038 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1039 bool useChecksum = checksumCalculator->getVersion() > 0;
1043 const size_t sizeWithoutChecksum = 8 + 4 + 4;
1044 const size_t checksumSize = checksumCalculator->checksumByteSize();
1045 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1046 buf = stream->alloc(totalSize);
1048 int tmp = OP_rcSelectChecksumCalculator;memcpy(ptr, &tmp, 4); ptr += 4;
1049 memcpy(ptr, &totalSize, 4); ptr += 4;
1051 memcpy(ptr, &newProtocol, 4); ptr += 4;
1052 memcpy(ptr, &reserved, 4); ptr += 4;
1054 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1055 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1059 int rcGetNumDisplays_enc(void *self )
1062 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
1063 IOStream *stream = ctx->m_stream;
1064 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1065 bool useChecksum = checksumCalculator->getVersion() > 0;
1069 const size_t sizeWithoutChecksum = 8;
1070 const size_t checksumSize = checksumCalculator->checksumByteSize();
1071 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1072 buf = stream->alloc(totalSize);
1074 int tmp = OP_rcGetNumDisplays;memcpy(ptr, &tmp, 4); ptr += 4;
1075 memcpy(ptr, &totalSize, 4); ptr += 4;
1078 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1079 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1083 stream->readback(&retval, 4);
1084 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
1086 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
1087 stream->readback(checksumBuf.get(), checksumSize);
1088 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
1089 ALOGE("rcGetNumDisplays: GL communication error, please report this issue to b.android.com.\n");
1096 int rcGetDisplayWidth_enc(void *self , uint32_t displayId)
1099 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
1100 IOStream *stream = ctx->m_stream;
1101 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1102 bool useChecksum = checksumCalculator->getVersion() > 0;
1106 const size_t sizeWithoutChecksum = 8 + 4;
1107 const size_t checksumSize = checksumCalculator->checksumByteSize();
1108 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1109 buf = stream->alloc(totalSize);
1111 int tmp = OP_rcGetDisplayWidth;memcpy(ptr, &tmp, 4); ptr += 4;
1112 memcpy(ptr, &totalSize, 4); ptr += 4;
1114 memcpy(ptr, &displayId, 4); ptr += 4;
1116 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1117 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1121 stream->readback(&retval, 4);
1122 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
1124 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
1125 stream->readback(checksumBuf.get(), checksumSize);
1126 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
1127 ALOGE("rcGetDisplayWidth: GL communication error, please report this issue to b.android.com.\n");
1134 int rcGetDisplayHeight_enc(void *self , uint32_t displayId)
1137 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
1138 IOStream *stream = ctx->m_stream;
1139 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1140 bool useChecksum = checksumCalculator->getVersion() > 0;
1144 const size_t sizeWithoutChecksum = 8 + 4;
1145 const size_t checksumSize = checksumCalculator->checksumByteSize();
1146 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1147 buf = stream->alloc(totalSize);
1149 int tmp = OP_rcGetDisplayHeight;memcpy(ptr, &tmp, 4); ptr += 4;
1150 memcpy(ptr, &totalSize, 4); ptr += 4;
1152 memcpy(ptr, &displayId, 4); ptr += 4;
1154 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1155 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1159 stream->readback(&retval, 4);
1160 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
1162 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
1163 stream->readback(checksumBuf.get(), checksumSize);
1164 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
1165 ALOGE("rcGetDisplayHeight: GL communication error, please report this issue to b.android.com.\n");
1172 int rcGetDisplayDpiX_enc(void *self , uint32_t displayId)
1175 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
1176 IOStream *stream = ctx->m_stream;
1177 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1178 bool useChecksum = checksumCalculator->getVersion() > 0;
1182 const size_t sizeWithoutChecksum = 8 + 4;
1183 const size_t checksumSize = checksumCalculator->checksumByteSize();
1184 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1185 buf = stream->alloc(totalSize);
1187 int tmp = OP_rcGetDisplayDpiX;memcpy(ptr, &tmp, 4); ptr += 4;
1188 memcpy(ptr, &totalSize, 4); ptr += 4;
1190 memcpy(ptr, &displayId, 4); ptr += 4;
1192 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1193 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1197 stream->readback(&retval, 4);
1198 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
1200 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
1201 stream->readback(checksumBuf.get(), checksumSize);
1202 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
1203 ALOGE("rcGetDisplayDpiX: GL communication error, please report this issue to b.android.com.\n");
1210 int rcGetDisplayDpiY_enc(void *self , uint32_t displayId)
1213 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
1214 IOStream *stream = ctx->m_stream;
1215 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1216 bool useChecksum = checksumCalculator->getVersion() > 0;
1220 const size_t sizeWithoutChecksum = 8 + 4;
1221 const size_t checksumSize = checksumCalculator->checksumByteSize();
1222 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1223 buf = stream->alloc(totalSize);
1225 int tmp = OP_rcGetDisplayDpiY;memcpy(ptr, &tmp, 4); ptr += 4;
1226 memcpy(ptr, &totalSize, 4); ptr += 4;
1228 memcpy(ptr, &displayId, 4); ptr += 4;
1230 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1231 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1235 stream->readback(&retval, 4);
1236 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
1238 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
1239 stream->readback(checksumBuf.get(), checksumSize);
1240 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
1241 ALOGE("rcGetDisplayDpiY: GL communication error, please report this issue to b.android.com.\n");
1248 int rcGetDisplayVsyncPeriod_enc(void *self , uint32_t displayId)
1251 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
1252 IOStream *stream = ctx->m_stream;
1253 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1254 bool useChecksum = checksumCalculator->getVersion() > 0;
1258 const size_t sizeWithoutChecksum = 8 + 4;
1259 const size_t checksumSize = checksumCalculator->checksumByteSize();
1260 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1261 buf = stream->alloc(totalSize);
1263 int tmp = OP_rcGetDisplayVsyncPeriod;memcpy(ptr, &tmp, 4); ptr += 4;
1264 memcpy(ptr, &totalSize, 4); ptr += 4;
1266 memcpy(ptr, &displayId, 4); ptr += 4;
1268 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1269 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1273 stream->readback(&retval, 4);
1274 if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
1276 std::unique_ptr<unsigned char[]> checksumBuf(new unsigned char[checksumSize]);
1277 stream->readback(checksumBuf.get(), checksumSize);
1278 if (!checksumCalculator->validate(checksumBuf.get(), checksumSize)) {
1279 ALOGE("rcGetDisplayVsyncPeriod: GL communication error, please report this issue to b.android.com.\n");
1286 void rcPostLayer_enc(void *self , const char* name, uint32_t colorBuffer, float alpha, int32_t sourceCropLeft, int32_t sourceCropTop, int32_t sourceCropRight, int32_t sourceCropBottom, int32_t displayFrameLeft, int32_t displayFrameTop, int32_t displayFrameRight, int32_t displayFrameBottom)
1289 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
1290 IOStream *stream = ctx->m_stream;
1291 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1292 bool useChecksum = checksumCalculator->getVersion() > 0;
1294 const unsigned int __size_name = (strlen(name) + 1);
1297 const size_t sizeWithoutChecksum = 8 + __size_name + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 1*4;
1298 const size_t checksumSize = checksumCalculator->checksumByteSize();
1299 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1300 buf = stream->alloc(totalSize);
1302 int tmp = OP_rcPostLayer;memcpy(ptr, &tmp, 4); ptr += 4;
1303 memcpy(ptr, &totalSize, 4); ptr += 4;
1305 *(unsigned int *)(ptr) = __size_name; ptr += 4;
1306 memcpy(ptr, name, __size_name);ptr += __size_name;
1307 memcpy(ptr, &colorBuffer, 4); ptr += 4;
1308 memcpy(ptr, &alpha, 4); ptr += 4;
1309 memcpy(ptr, &sourceCropLeft, 4); ptr += 4;
1310 memcpy(ptr, &sourceCropTop, 4); ptr += 4;
1311 memcpy(ptr, &sourceCropRight, 4); ptr += 4;
1312 memcpy(ptr, &sourceCropBottom, 4); ptr += 4;
1313 memcpy(ptr, &displayFrameLeft, 4); ptr += 4;
1314 memcpy(ptr, &displayFrameTop, 4); ptr += 4;
1315 memcpy(ptr, &displayFrameRight, 4); ptr += 4;
1316 memcpy(ptr, &displayFrameBottom, 4); ptr += 4;
1318 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1319 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1323 void rcPostAllLayersDone_enc(void *self )
1326 renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
1327 IOStream *stream = ctx->m_stream;
1328 ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
1329 bool useChecksum = checksumCalculator->getVersion() > 0;
1333 const size_t sizeWithoutChecksum = 8;
1334 const size_t checksumSize = checksumCalculator->checksumByteSize();
1335 const size_t totalSize = sizeWithoutChecksum + checksumSize;
1336 buf = stream->alloc(totalSize);
1338 int tmp = OP_rcPostAllLayersDone;memcpy(ptr, &tmp, 4); ptr += 4;
1339 memcpy(ptr, &totalSize, 4); ptr += 4;
1342 if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
1343 if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
1349 renderControl_encoder_context_t::renderControl_encoder_context_t(IOStream *stream, ChecksumCalculator *checksumCalculator)
1352 m_checksumCalculator = checksumCalculator;
1354 this->rcGetRendererVersion = &rcGetRendererVersion_enc;
1355 this->rcGetEGLVersion = &rcGetEGLVersion_enc;
1356 this->rcQueryEGLString = &rcQueryEGLString_enc;
1357 this->rcGetGLString = &rcGetGLString_enc;
1358 this->rcGetNumConfigs = &rcGetNumConfigs_enc;
1359 this->rcGetConfigs = &rcGetConfigs_enc;
1360 this->rcChooseConfig = &rcChooseConfig_enc;
1361 this->rcGetFBParam = &rcGetFBParam_enc;
1362 this->rcCreateContext = &rcCreateContext_enc;
1363 this->rcDestroyContext = &rcDestroyContext_enc;
1364 this->rcCreateWindowSurface = &rcCreateWindowSurface_enc;
1365 this->rcDestroyWindowSurface = &rcDestroyWindowSurface_enc;
1366 this->rcCreateColorBuffer = &rcCreateColorBuffer_enc;
1367 this->rcOpenColorBuffer = &rcOpenColorBuffer_enc;
1368 this->rcCloseColorBuffer = &rcCloseColorBuffer_enc;
1369 this->rcSetWindowColorBuffer = &rcSetWindowColorBuffer_enc;
1370 this->rcFlushWindowColorBuffer = &rcFlushWindowColorBuffer_enc;
1371 this->rcMakeCurrent = &rcMakeCurrent_enc;
1372 this->rcFBPost = &rcFBPost_enc;
1373 this->rcFBSetSwapInterval = &rcFBSetSwapInterval_enc;
1374 this->rcBindTexture = &rcBindTexture_enc;
1375 this->rcBindRenderbuffer = &rcBindRenderbuffer_enc;
1376 this->rcColorBufferCacheFlush = &rcColorBufferCacheFlush_enc;
1377 this->rcReadColorBuffer = &rcReadColorBuffer_enc;
1378 this->rcUpdateColorBuffer = &rcUpdateColorBuffer_enc;
1379 this->rcOpenColorBuffer2 = &rcOpenColorBuffer2_enc;
1380 this->rcCreateClientImage = &rcCreateClientImage_enc;
1381 this->rcDestroyClientImage = &rcDestroyClientImage_enc;
1382 this->rcSelectChecksumCalculator = &rcSelectChecksumCalculator_enc;
1383 this->rcGetNumDisplays = &rcGetNumDisplays_enc;
1384 this->rcGetDisplayWidth = &rcGetDisplayWidth_enc;
1385 this->rcGetDisplayHeight = &rcGetDisplayHeight_enc;
1386 this->rcGetDisplayDpiX = &rcGetDisplayDpiX_enc;
1387 this->rcGetDisplayDpiY = &rcGetDisplayDpiY_enc;
1388 this->rcGetDisplayVsyncPeriod = &rcGetDisplayVsyncPeriod_enc;
1389 this->rcPostLayer = &rcPostLayer_enc;
1390 this->rcPostAllLayersDone = &rcPostAllLayersDone_enc;