This fixes three issues:
1. glGet(GL_2d_TEXTURE_BINDING) should be handled by the translator rather
than by OpenGL.
2. glIsTexture shoud return GL_TRUE only if the texture was bound at some
point - add a wasBound member to the TextureData and maintain it.
3. glTexParameter(GL_GENERATE_MIPMAP) did not work. The first problem was
that it was not allowed by our validator - fixed. The next issue is that
this enum is not necessarily supported by the OpenGL implementation - it
is in OpenGL 2.x, but was replaced by an extension in 3.x. So in case the
extension does not exist, and GL_GENERATE_MIPMAP is required, save this info
in a new requiresAutoMipmap member of TextureData and call glGenerateMipmapExt
whenever glTex(Sub)Image2D is called.
There is a theoretical case where neither GL_GENERATE_MIPMAP nor glGenerateMipmap
is supported by the OpenGL implementation - this is not likely to happen, but
if we find such an implementation it might require implementing a mipmap
generation software algorithm (which is bad).
There is a set of glGets which query the client state of the
binded arrays. The data exists in the translator context and is not
passed to GL, so the glGets should be handled internaly.
This is done by implementing four glGet*v methods in GLEScontext, which
return a boolean value indicating whether we have set the return value
or not, and are called by the glGet*v functions in GLEScmImp.
Two of the glGets are handled by GLEScontext, and the other 15 by
GLEScmContext since they are specific to GLES 1.1. The same should be
done for 2.0 specific glGets in a later patch.
Also. bufferName is now saved in GLESPointer in to allow the
GL_*_ARRAY_BUFFER_BINDING get.
Our implementation of eglGetProcAddress() resolves the function addresses
in run time. Typically this is not an issue, but when a gl function is
also implemented by the calling app the address was resolved to the calling
app's version of the function rather than ours. This is the case with the
glDrawTex{isfx}OES functions in the 1.1 conformance test.
The solution is to add the -Bsymbolic switch when linking our libraries,
so all symbol resolution is done internaly.
The same fix should probably be done for Mac.
inserting some of the logic which was scattered over some parts
of the GLESContext class to be encpsulated inside the ConversionArrays
so that the code will be more clea and organized.
fix shader and program names in glDeleteShader/Program
fix object name manager to accept objects with name 0
fix unbinding of buffers,framebuffers and renderbuffers
separate getPointer to have specific implementation for gles 1 and 2
fix number of supported texture images to match GL
fix incorrect optimization that skips draw on false conditions
set its glFormat to GL_RGB since GL_RGB565_OES is not supported on the host.
This also fixes the wallpaper issue, making it visible.
Change-Id: Icf616e70d8f41ca0d01e7cdeb9585107dc8ebc31