Add support for GLES 3.2
[platform/core/uifw/coregl.git] / src / modules / fastpath / coregl_fastpath_gl.c
index 8b91d3e..d2517e4 100644 (file)
@@ -8429,3 +8429,247 @@ fastpath_glClearDepthxOES(GLclampx depth)
 finish:
        _COREGL_FASTPATH_FUNC_END();
 }
+
+/* GLES3.2 API */
+void
+fastpath_glBlendEquationi(GLuint buf, GLenum mode)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_BUFFER, buf, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+        _orig_fastpath_glBlendEquationi(real_obj, mode);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_BUFFER, buf, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       _orig_fastpath_glBlendEquationSeparatei(real_obj, modeRGB, modeAlpha);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_BUFFER, buffer, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       _orig_fastpath_glTexBuffer(target, internalformat, real_obj);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glTexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_BUFFER, buffer, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       _orig_fastpath_glTexBufferRange(target, internalformat, real_obj, offset, size);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat *params)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_PROGRAM, program, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       _orig_fastpath_glGetnUniformfv(real_obj, location, bufSize, params);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetnUniformiv(GLuint program, GLint location, GLsizei bufSize, GLint *params)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_PROGRAM, program, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       _orig_fastpath_glGetnUniformiv(real_obj, location, bufSize, params);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetnUniformuiv(GLuint program, GLint location, GLsizei bufSize, GLuint *params)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_PROGRAM, program, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       _orig_fastpath_glGetnUniformuiv(real_obj, location, bufSize, params);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *param)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_SAMPLER, sampler, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+
+       _orig_fastpath_glSamplerParameterIiv(real_obj, pname, param);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *param)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_SAMPLER, sampler, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       _orig_fastpath_glSamplerParameterIuiv(real_obj, pname, param);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_SAMPLER, sampler, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       _orig_fastpath_glGetSamplerParameterIiv(real_obj, pname, params);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_SAMPLER, sampler, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       _orig_fastpath_glGetSamplerParameterIuiv(real_obj, pname, params);
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_TEXTURE, texture, &real_obj) != 1) {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+
+       _orig_fastpath_glFramebufferTexture(target, attachment, real_obj, level);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}