The EGL->GL translator implementation of glEGLImageTargetTexture2DOES was
properly replacing uses of the target texture object with the texture object
associated with the EGLImage in the host GL library, but wasn't updating its
own info about the texture (dimensions, etc.). This broke places where the
translator relied on knowing this, e.g. when implementing the GLES glDrawTexi
call on top of GL glDrawArrays.
Change-Id: Ia4aefd89852a2609221c56da76bfac927464c0b2
This patches fixes a minor invalid usage of delete (instead of delete[])
and reformats the source code a little to make it more obvious.
Change-Id: If853d12e74549abcc6682430c837b0f14da81fdc
This patch adds a rather extensive document explaining the design
of our OpenGLES emulation, both on the guest and the host.
Change-Id: I13cf1eac21e5a8a0be170b5f90100b04f9ae6d75
Implement CAMERA_MSG_PREVIEW_FRAME callback
Also does better work detecting pixel format for video frames, depending on the
mode that camera is intended to be operated with.
Change-Id: Idb2dfc7c0a79e81eff58f83a14af769afc713096
Also does better work detecting pixel format for video frames, depending on the
mode that camera is intended to be operated with.
Change-Id: I352204b8d6d1a9e7857d77b6363de2bb5d5db0dd
Don't cofuse preview window with preview frames. Preview frames are relevant only
in panoramic mode that receives frames via CAMERA_MSG_PREVIEW_FRAME callback.
Change-Id: Ibecb345e43ba452856b8ca75449264d8d354a9d5
Sometimes framework chooses to override the default JPEG quality value (90), so we need to
respect that when compressing frame during picture taking.
Change-Id: Ic7ad8938d33d94d34ecd0b979e5c8c3e8246fd53
Apparently, video pixel format expected by the camera framework is YU12, and not YV12
as it was implemented.
Change-Id: Id33d8aa7f62f6e68276774ca2a7d25c04acd71cc
This patch allows an auto-generated GLES encoder function to write
'isLarge' buffers with a custom writer, instead of calling stream->readFully()
directly.
This is intended to allow writing pixel or vertex data that is stored
with a specific stride.
Another patch will introduce the corresponding changes to the .attrib files
Change-Id: I6ca86b968cd3f4db91676bc485ee1e84419e50e0
This patch modifies the guest encoding libraries to avoid
un-necessary copies when sending large buffers (e.g. pixels)
to the host. Instead, the data is sent directly through a
new IOStream method (writeFully()).
On my machine, this improves the NenaMark2 benchmark
(from 50.8 to 57.1 fps). More importantly, this speeds up
the display of non-GL surfaces too, which are sent through
the special rcUpdateColorBuffer() function in gralloc_goldfish.
This is noticeable in many parts of the UI (e.g. when scrolling
through lists).
To tag a given parameter, use the new 'isLarge' variable flag
in the protocol .attrib file.
Implemented for the following encoding functions:
rcUpdateColorBuffer
glTexSubImage2D
glTexImage2Di
glBufferData
glBufferSubData
glCompressedTexImage2D
glCompressedTexSubImage2D
glTexImage3DOES
glTexSubImage3DOES
glCompressedTexImage3DOES
glCompressedTexSubImage3DOES
+ Optimize the auto-generated encoder functions to avoid
repeated function calls (for size computations).
Change-Id: I13a02607b606c40cd05984cd2051b1f3424bc2d0
The modules here are only built when BUILD_EMULATOR_OPENGL is defined to true
in your environment or your BoardConfig.mk (see tools/emulator/opengl/Android.mk)
Change-Id: I5f32c35b4452fb5a7b4d5f9fc5870ec1da6032e6