History log of /development/tools/emulator/opengl/shared/OpenglCodecCommon/GLClientState.h
Revision Date Author Comments
56513f5ff4f3e851c5f0cb38dc8851d18616b3c0 30-May-2012 Jesse Hall <jessehall@google.com> Move emugl system code to development.git

Because of the way the SDK and Android system images are branched,
host code that goes into the SDK tools can't live in the same
repository as code that goes into the system image. This change keeps
the emugl host code in sdk.git/emulator/opengl while moving the emugl
system code to development.git/tools/emulator/opengl.

A few changes were made beyond simply cloning the directories:

(a) Makefiles were modified to only build the relevant components. Not
doing so would break the build due to having multiple rule
definitions.

(b) Protocol spec files were moved from the guest encoder directories
to the host decoder directories. The decoder must support older
versions of the protocol, but not newer versions, so it makes
sense to keep the latest version of the protocol spec with the
decoder.

(c) Along with that, the encoder is now built from checked in
generated encoder source rather than directly from the protocol
spec. The generated code must be updated manually. This makes it
possible to freeze the system encoder version without freezing the
host decoder version, and also makes it very obvious when a
protocol changes is happening that will require special
backwards-compatibility support in the decoder/renderer.

(d) Host-only and system-only code were removed from the repository
where they aren't used.

(e) README and DESIGN documents were updated to reflect this split.

No actual source code was changed due to the above.

Change-Id: I2c936101ea0405b372750d36ba0f01e84d719c43
80d4ba77162126cfb60f9ca75f8a1d3a458ed31f 18-Apr-2012 Jesse Hall <jessehall@google.com> Move emulator GLES from development.git to sdk.git

The emulator GLES support has two interfaces: a host shared library
interface used by QEMU, and a protocol between the platform and the
host. The host library interface is not versioned; QEMU and the GLES
renderer must match. The protocol on the other hand must be backwards
compatible: a new GLES renderer must support an older platform image.

Thus for branching purposes it makes more sense to put the GLES
renderer in sdk.git, which is branched along with qemu.git for SDK
releases. Platform images will be built against the protocol version
in the platform branch of sdk.git.

Change-Id: Ie73fce12815c9740e27d0f56caa53c6ceb3d30cc
b62e28ddde79314f9d556f8755b1c08dff9cdabd 16-Apr-2012 Jesse Hall <jessehall@google.com> Move emulator GLES from development.git to sdk.git

The emulator GLES support has two interfaces: a host shared library
interface used by QEMU, and a protocol between the platform and the
host. The host library interface is not versioned; QEMU and the GLES
renderer must match. The protocol on the other hand must be backwards
compatible: a new GLES renderer must support an older platform image.

Thus for branching purposes it makes more sense to put the GLES
renderer in sdk.git, which is branched along with qemu.git for SDK
releases. Platform images will be built against the protocol version
in the platform branch of sdk.git.

Change-Id: Ibe2cf8de13520aa3fcbaf72328a15ece261d7b86
d6bd1843ce6ffd18b8dd7105052572b2c3af876a 23-Nov-2011 Jesse Hall <jessehall@google.com> EmuGL: GLESv2 support for OES_EGL_image_external

Change-Id: I8911328d5dcccdf4731bd2d8fd953c12fdec5f1b
af4f66be50b17c8b8fce1dda53389bb0a10968ba 16-Nov-2011 Jesse Hall <jessehall@google.com> EmuGL: implement OES_EGL_image_external for GLESv1

GLESv2 support will come in a followup change but will take advantage
of the GLClientState changes.

Change-Id: Ib6cbb4dafbd071e3b59b1e5d808b3e23656ada92
4e6af749d5996edd6558821a7e400427f0457306 16-Sep-2011 David 'Digit' Turner <digit@google.com> emulator: opengl: Back-port GLES emulation from the master tree.

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
52829d82ab415afd15053f2953fad81b0fdbe4d0 05-Aug-2011 Guy Zadickario <guy@graphtech.co.il> opengles emulator: Workaround Cordy (Unity) bug with intel driver.

Uniform locations are 32-bit values which the application queries
from the driver after a shader program is linked. It seems that Cordy
game (possibly all Unity based apps) store the returned location as
16-bit value. Intel driver returns location values in the upper 16-bit
range :(
This is a workaround for this issue, when a program is linked we check
the locations of all uniforms, if all locations are within the upper
16-bit range (as with Intel driver) we shift the location value before
returning to the application. Also override all functions which take
a location parameter and do the reverse shift before sending a location
value to the host.

Change-Id: I234aaafe3313774b5da79eb1dac713b89b10ad60
8ee217f9cc21e26f3dd5b52be038475a3818298f 01-Aug-2011 Liran <liran@graphtech.co.il> opengles emulator: fix glGetUnifrom

added state tracking for uniforms in program objects
for each active uniform in index i we will save its starting location
,size and type, so when calling glGetUniform on its location,
we can tell how many bytes we should read from the stream according to
the uniform's type

add some type and size definitions to functions
that calculate size from enum

some other fixes to the codec

Change-Id: I4ecdf41e752454a908d131e76bab113a616f2bc8
d32c2d9633c1b73089fe3eaeddbe2abf4b29881a 05-May-2011 Stas Gurtovoy <stas@graphtech.co.il> emulator opengl: system GLESv1 first commit.

This is the first commit for the GLESv1 implementation.
It also includes needed fixes in emugen to support const types.
Also, changed glFinish definition in gl.in to match the
definition as in gl.h.

Change-Id: I90262a1db6035a90af8db17984acecef6499847a
68367ae969fc78d948d6ee02c54b9afd78ffad29 13-Apr-2011 Jacky Romano <jr@graphtech.co.il> emulator Opengl - number of supported vertex attributes

make the number of suppoted vertex attributes (by the codec)
common across the encoder and the decoder.

Change-Id: I699ef62821566cec0764982872adb92ebb8861e9
254492ffd6b6ce4b5a2ca89294b9b63add0bb504 11-Apr-2011 Jacky Romano <jr@graphtech.co.il> Add GLESv2 functionality to GLESv1/GLESv2 shared code

Extends GLClientState to support additional state data
that is required by GLESv2. this includes:
* normalized flag in vertex attribute arrays
* getter for vertex attribute arrays state
* glParamSize now knows about the result size of GL2 parameters
* utility functions required for a GLESv2 encoder

Change-Id: I7e57d978bed5b8b929b918aee66c7f71dc5df3b1
fb06a28c30ddea2481cb258171b95c043775c57f 07-Apr-2011 Liran <liran@graphtech.co.il> GLESv1 extensions

This fix adds support for OpenGLES 1.1 extensions in the codec
layer. This fix also includes bug fixes in GLEncoder (client-state)
and gles android wrapper modules.

Change-Id: I512649724d43e4af9d3ce5d49ae66d9f4da0b823
81c015740c01013f84c10941a8dc3cfd4adb8012 03-Apr-2011 Jacky Romano <jr@graphtech.co.il> emulator opengl - directory rearrangment

Move system/OpenglCodecCommon into shared/OpenglCodecCommon so it's code
can be shared among more components of the project.

Move tests/ut_renderer/TimeUtils.* into a the common area

Annotate ErrLog.h and GLDecoderContextData.h with the project license statement

Change-Id: Ieea42e95edd5ad89fda4cfa40356a012304ee976