diff options
author | kkinnunen <kkinnunen@nvidia.com> | 2015-12-04 01:36:31 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-04 09:37:12 +0000 |
commit | 8cefb231216c2777281f37a30e3fb8e67513ee2b (patch) | |
tree | 2d0163eed0729e5f7a8fb55fb03b034eddcb5305 /gpu/GLES2 | |
parent | 91db68e8cb2080d1e9e07858efea3f7e198112a9 (diff) | |
download | chromium_src-8cefb231216c2777281f37a30e3fb8e67513ee2b.zip chromium_src-8cefb231216c2777281f37a30e3fb8e67513ee2b.tar.gz chromium_src-8cefb231216c2777281f37a30e3fb8e67513ee2b.tar.bz2 |
command_buffer: Implement EXT_blend_func_extended
Implement EXT_blend_func_extended for command buffer ES 2.0 and ES 3.0
contexts.
For the ES 2.0 context, the extension supports dual-source blending with
pre-defined gl_SecondaryFragColorEXT and gl_SecondaryFragDataEXT
variables.
Currently EXT_blend_func_extended is only exposed if the service context
supports program interface query. This means OpenGL context or OpenGL
ES 3.1 context. This is to simplify the unit test expectation conditions.
Theoretically also ES 2.0 and ES 3.0 service contexts could support
EXT_blend_func_extended, but probably there will never be such a driver.
BUG=506765
Review URL: https://codereview.chromium.org/1309743005
Cr-Commit-Position: refs/heads/master@{#363175}
Diffstat (limited to 'gpu/GLES2')
-rw-r--r-- | gpu/GLES2/gl2chromium_autogen.h | 4 | ||||
-rw-r--r-- | gpu/GLES2/gl2extchromium.h | 35 |
2 files changed, 39 insertions, 0 deletions
diff --git a/gpu/GLES2/gl2chromium_autogen.h b/gpu/GLES2/gl2chromium_autogen.h index 0cea2ef..f01a448 100644 --- a/gpu/GLES2/gl2chromium_autogen.h +++ b/gpu/GLES2/gl2chromium_autogen.h @@ -376,5 +376,9 @@ #define glBlendBarrierKHR GLES2_GET_FUN(BlendBarrierKHR) #define glApplyScreenSpaceAntialiasingCHROMIUM \ GLES2_GET_FUN(ApplyScreenSpaceAntialiasingCHROMIUM) +#define glBindFragDataLocationIndexedEXT \ + GLES2_GET_FUN(BindFragDataLocationIndexedEXT) +#define glBindFragDataLocationEXT GLES2_GET_FUN(BindFragDataLocationEXT) +#define glGetFragDataIndexEXT GLES2_GET_FUN(GetFragDataIndexEXT) #endif // GPU_GLES2_GL2CHROMIUM_AUTOGEN_H_ diff --git a/gpu/GLES2/gl2extchromium.h b/gpu/GLES2/gl2extchromium.h index 7253500..8118de0 100644 --- a/gpu/GLES2/gl2extchromium.h +++ b/gpu/GLES2/gl2extchromium.h @@ -1169,12 +1169,47 @@ typedef void(GL_APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENCHROMIUMPROC)( #endif /* GL_CHROMIUM_path_rendering */ + #ifndef GL_EXT_multisample_compatibility #define GL_EXT_multisample_compatibility 1 #define GL_MULTISAMPLE_EXT 0x809D #define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F #endif /* GL_EXT_multisample_compatiblity */ +#ifndef GL_EXT_blend_func_extended +#define GL_EXT_blend_func_extended 1 + +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBindFragDataLocationIndexedEXT(GLuint program, + GLuint colorNumber, + GLuint index, + const char* name); +GL_APICALL void GL_APIENTRY glBindFragDataLocationEXT(GLuint program, + GLuint colorNumber, + const char* name); +GL_APICALL GLint GL_APIENTRY glGetFragDataIndexEXT(GLuint program, + const char* name); +#endif + +typedef void(GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDEXT)( + GLuint program, + GLuint colorNumber, + GLuint index, + const char* name); +typedef void(GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONEXT)(GLuint program, + GLuint colorNumber, + const char* name); +typedef GLint(GL_APIENTRYP PFNGLGETFRAGDATAINDEXEXT)(GLuint program, + const GLchar* name); + +#define GL_SRC_ALPHA_SATURATE_EXT 0x0308 +#define GL_SRC1_ALPHA_EXT 0x8589 // OpenGL 1.5 token value +#define GL_SRC1_COLOR_EXT 0x88F9 +#define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC +#endif /* GL_EXT_blend_func_extended */ + #ifdef __cplusplus } #endif |