ST_ERICSSON: Adding suport for native pixel formats

- Add support for ST-Ericsson native pixel formats and conversion to
    and from these formats.

adapted from http://review.cyanogenmod.org/#/c/29600/

Change-Id: I8eb6dec59fc0c862590641e7fed7742a3491a155
egl: Reintroduce eglGetRenderBufferANDROID

eglGetRenderBufferANDROID was removed as it had no users. This commit
reintroduces this extensions as it's used by Qualcomm graphics HAL.

Change-Id: I493306830a0d4f8722a42bcc84fb49236afdabeb

Conflicts:
	opengl/libs/EGL/eglApi.cpp
BufferQueue: Increase MIN_UNDEQUEUED from 2 to 3.

If 2 queueBuffers happen fairly closely, the former buffer is not picked by
display. But SurfaceTexture won't return this to clients, since its not the
oldest. It will return the locked buffer causing deadlock.

Increasing the min_dequeued buffer count to 3 (from 2) will increase the
distance between video and display by 1 more.

CRs-fixed: 382393

Change-Id: I275c01473c7057714da35693dfda7a358e9d9285
frameworks/native: Increase EGL blob cache size limits (adapted from mr0 branch)

Increase the size of the EGL Blob Cache to 2MB and the key size to 4K.
This helps improve the performance of OpenGL apps, especially Open GLESv1.1
apps whose shaders are generated on the fly.

CRs-fixed: 393074

Change-Id: Ic3772a9722b63351c940d40794cf54073a8b5eed
update legacy FB
Revert "libgui: Use fences for all QCOM targets"

This reverts commit be1b7537097779385da94ae98e0cca76732d74ba.
frameworks/native: Fix build in ISO C++ 11 mode

Fix constructs that are considered new string literals in C++ 11 mode

Change-Id: Iadcad5f83c79e6726ca66ced5fc1e038b7587069
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
frameworks/native: Fix build in ISO C++11 mode

Change-Id: Icc19cde1bf9c72397ed8bda545e9056483d83e8d
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
binder: Fix ABI incompatibility between older and newer compilers

Parcel::writeString16's first parameter was a char16_t - defined to
uint16_t somewhere else.

With ISO C++11 compatible compilers, however, char16_t is a
compiler-defined-type that is not necessarily unsigned.

This causes the symbol to be different, breaking support for talking
to binary blobs built with pre-ISO C++11-compilers, such as the
Galaxy Nexus RIL.

Change-Id: Ibaa57fbd7d9fc4a95649d3b45d28d29963a9548b
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
frameworks/native: Fix build with ISO C++11 compilers

Fix macro definitions so they can't be confused with C++11 string
literals

Change-Id: I2856933291d08eed789188ea9be036324384e67f
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
surfaceflinger: Work around aliasing violations

Change-Id: I22e758390c1312e60bb4adac2365be201ba6f161
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>