From 0ae8848efb2b8cb86dfb5f127d39fbf674335601 Mon Sep 17 00:00:00 2001 From: Yahan Zhou Date: Thu, 6 Jul 2017 15:40:44 -0700 Subject: [ANGLE Snapshot] GLES2 translator on top of ANGLE This patch modifies our GLES2 translator to allow it to mount on top of ANGLE. Because ANGLE is a GLES2 backend while previously our translator assumes desktop GL backend, some modifications are required. The main changes in this patch include: (1) Pass a flag to GLES translator to tell if it is running on top of another GLES backend (2) Desktop GL sometimes assume EXT postfix for some functions while GLES does not. Modify dispatcher so that it loads func as well funcEXT and funcOES as alias. (3) ANGLE does not like GL_RGB8 and GL_RGBA8 texture internal formats. Change them to GL_RGB and GL_RGBA. (4) Bypass some texture parameter validations when using ANGLE backend. (5) Ignore the parsed shader and use orignal shader source when using ANGLE backend. Change-Id: I6c5a770a0157c020920a432f3c949e2f8d67e0eb --- host/libs/virglrenderer/OpenGLESDispatch/gles2_core.entries | 2 ++ 1 file changed, 2 insertions(+) (limited to 'host') diff --git a/host/libs/virglrenderer/OpenGLESDispatch/gles2_core.entries b/host/libs/virglrenderer/OpenGLESDispatch/gles2_core.entries index 1e2285447..24e2214d2 100644 --- a/host/libs/virglrenderer/OpenGLESDispatch/gles2_core.entries +++ b/host/libs/virglrenderer/OpenGLESDispatch/gles2_core.entries @@ -4,6 +4,7 @@ void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); void glStencilMaskSeparate(GLenum face, GLuint mask); +void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); GLboolean glIsProgram(GLuint program); GLboolean glIsShader(GLuint shader); void glVertexAttrib1f(GLuint indx, GLfloat x); @@ -78,5 +79,6 @@ void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers); void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params); void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params); void glGenerateMipmap(GLenum target); -- cgit v1.2.3