OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h" | 5 #include "gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h" |
6 | 6 |
7 #ifndef GL_GLEXT_PROTOTYPES | 7 #include "gpu/command_buffer/client/gles2_interface.h" |
8 #define GL_GLEXT_PROTOTYPES | |
9 #endif | |
10 #include "base/logging.h" | |
11 #include "gpu/GLES2/gl2extchromium.h" | |
12 #include "third_party/khronos/GLES2/gl2.h" | |
13 #include "third_party/khronos/GLES2/gl2ext.h" | |
14 #include "third_party/skia/include/gpu/gl/GrGLInterface.h" | 8 #include "third_party/skia/include/gpu/gl/GrGLInterface.h" |
15 | 9 |
| 10 using gpu::gles2::GLES2Interface; |
| 11 |
| 12 namespace { |
| 13 template <typename R, typename... Args> |
| 14 std::function<R(Args...)> gles_bind(R (GLES2Interface::*func)(Args...), |
| 15 GLES2Interface* gles2Interface) { |
| 16 return [func, gles2Interface](Args... args) { |
| 17 return (gles2Interface->*func)(args...); |
| 18 }; |
| 19 } |
| 20 } // namespace |
| 21 |
16 namespace skia_bindings { | 22 namespace skia_bindings { |
17 | 23 |
18 void InitCommandBufferSkiaGLBinding(GrGLInterface* interface) { | 24 void InitGLES2InterfaceBindings(GrGLInterface* interface, |
| 25 GLES2Interface* impl) { |
19 interface->fStandard = kGLES_GrGLStandard; | 26 interface->fStandard = kGLES_GrGLStandard; |
20 interface->fExtensions.init(kGLES_GrGLStandard, | 27 interface->fExtensions.init( |
21 glGetString, | 28 kGLES_GrGLStandard, gles_bind(&GLES2Interface::GetString, impl), nullptr, |
22 nullptr, | 29 gles_bind(&GLES2Interface::GetIntegerv, impl)); |
23 glGetIntegerv); | |
24 | 30 |
25 GrGLInterface::Functions* functions = &interface->fFunctions; | 31 GrGLInterface::Functions* functions = &interface->fFunctions; |
26 functions->fActiveTexture = glActiveTexture; | 32 functions->fActiveTexture = gles_bind(&GLES2Interface::ActiveTexture, impl); |
27 functions->fAttachShader = glAttachShader; | 33 functions->fAttachShader = gles_bind(&GLES2Interface::AttachShader, impl); |
28 functions->fBindAttribLocation = glBindAttribLocation; | 34 functions->fBindAttribLocation = |
29 functions->fBindBuffer = glBindBuffer; | 35 gles_bind(&GLES2Interface::BindAttribLocation, impl); |
30 functions->fBindTexture = glBindTexture; | 36 functions->fBindBuffer = gles_bind(&GLES2Interface::BindBuffer, impl); |
31 functions->fBindVertexArray = glBindVertexArrayOES; | 37 functions->fBindTexture = gles_bind(&GLES2Interface::BindTexture, impl); |
32 functions->fBlendBarrier = glBlendBarrierKHR; | 38 functions->fBindVertexArray = |
33 functions->fBlendColor = glBlendColor; | 39 gles_bind(&GLES2Interface::BindVertexArrayOES, impl); |
34 functions->fBlendEquation = glBlendEquation; | 40 functions->fBlendBarrier = gles_bind(&GLES2Interface::BlendBarrierKHR, impl); |
35 functions->fBlendFunc = glBlendFunc; | 41 functions->fBlendColor = gles_bind(&GLES2Interface::BlendColor, impl); |
36 functions->fBufferData = glBufferData; | 42 functions->fBlendEquation = gles_bind(&GLES2Interface::BlendEquation, impl); |
37 functions->fBufferSubData = glBufferSubData; | 43 functions->fBlendFunc = gles_bind(&GLES2Interface::BlendFunc, impl); |
38 functions->fClear = glClear; | 44 functions->fBufferData = gles_bind(&GLES2Interface::BufferData, impl); |
39 functions->fClearColor = glClearColor; | 45 functions->fBufferSubData = gles_bind(&GLES2Interface::BufferSubData, impl); |
40 functions->fClearStencil = glClearStencil; | 46 functions->fClear = gles_bind(&GLES2Interface::Clear, impl); |
41 functions->fColorMask = glColorMask; | 47 functions->fClearColor = gles_bind(&GLES2Interface::ClearColor, impl); |
42 functions->fCompileShader = glCompileShader; | 48 functions->fClearStencil = gles_bind(&GLES2Interface::ClearStencil, impl); |
43 functions->fCompressedTexImage2D = glCompressedTexImage2D; | 49 functions->fColorMask = gles_bind(&GLES2Interface::ColorMask, impl); |
44 functions->fCopyTexSubImage2D = glCopyTexSubImage2D; | 50 functions->fCompileShader = gles_bind(&GLES2Interface::CompileShader, impl); |
45 functions->fCreateProgram = glCreateProgram; | 51 functions->fCompressedTexImage2D = |
46 functions->fCreateShader = glCreateShader; | 52 gles_bind(&GLES2Interface::CompressedTexImage2D, impl); |
47 functions->fCullFace = glCullFace; | 53 functions->fCopyTexSubImage2D = |
48 functions->fDeleteBuffers = glDeleteBuffers; | 54 gles_bind(&GLES2Interface::CopyTexSubImage2D, impl); |
49 functions->fDeleteProgram = glDeleteProgram; | 55 functions->fCreateProgram = gles_bind(&GLES2Interface::CreateProgram, impl); |
50 functions->fDeleteShader = glDeleteShader; | 56 functions->fCreateShader = gles_bind(&GLES2Interface::CreateShader, impl); |
51 functions->fDeleteTextures = glDeleteTextures; | 57 functions->fCullFace = gles_bind(&GLES2Interface::CullFace, impl); |
52 functions->fDeleteVertexArrays = glDeleteVertexArraysOES; | 58 functions->fDeleteBuffers = gles_bind(&GLES2Interface::DeleteBuffers, impl); |
53 functions->fDepthMask = glDepthMask; | 59 functions->fDeleteProgram = gles_bind(&GLES2Interface::DeleteProgram, impl); |
54 functions->fDisable = glDisable; | 60 functions->fDeleteShader = gles_bind(&GLES2Interface::DeleteShader, impl); |
55 functions->fDisableVertexAttribArray = glDisableVertexAttribArray; | 61 functions->fDeleteTextures = gles_bind(&GLES2Interface::DeleteTextures, impl); |
56 functions->fDiscardFramebuffer = glDiscardFramebufferEXT; | 62 functions->fDeleteVertexArrays = |
57 functions->fDrawArrays = glDrawArrays; | 63 gles_bind(&GLES2Interface::DeleteVertexArraysOES, impl); |
58 functions->fDrawElements = glDrawElements; | 64 functions->fDepthMask = gles_bind(&GLES2Interface::DepthMask, impl); |
59 functions->fEnable = glEnable; | 65 functions->fDisable = gles_bind(&GLES2Interface::Disable, impl); |
60 functions->fEnableVertexAttribArray = glEnableVertexAttribArray; | 66 functions->fDisableVertexAttribArray = |
61 functions->fFinish = glFinish; | 67 gles_bind(&GLES2Interface::DisableVertexAttribArray, impl); |
62 functions->fFlush = glFlush; | 68 functions->fDiscardFramebuffer = |
63 functions->fFrontFace = glFrontFace; | 69 gles_bind(&GLES2Interface::DiscardFramebufferEXT, impl); |
64 functions->fGenBuffers = glGenBuffers; | 70 functions->fDrawArrays = gles_bind(&GLES2Interface::DrawArrays, impl); |
65 functions->fGenTextures = glGenTextures; | 71 functions->fDrawElements = gles_bind(&GLES2Interface::DrawElements, impl); |
66 functions->fGenVertexArrays = glGenVertexArraysOES; | 72 functions->fEnable = gles_bind(&GLES2Interface::Enable, impl); |
67 functions->fGetBufferParameteriv = glGetBufferParameteriv; | 73 functions->fEnableVertexAttribArray = |
68 functions->fGetError = glGetError; | 74 gles_bind(&GLES2Interface::EnableVertexAttribArray, impl); |
69 functions->fGetIntegerv = glGetIntegerv; | 75 functions->fFinish = gles_bind(&GLES2Interface::Finish, impl); |
70 functions->fGetProgramInfoLog = glGetProgramInfoLog; | 76 functions->fFlush = gles_bind(&GLES2Interface::Flush, impl); |
71 functions->fGetProgramiv = glGetProgramiv; | 77 functions->fFrontFace = gles_bind(&GLES2Interface::FrontFace, impl); |
72 functions->fGetShaderInfoLog = glGetShaderInfoLog; | 78 functions->fGenBuffers = gles_bind(&GLES2Interface::GenBuffers, impl); |
73 functions->fGetShaderiv = glGetShaderiv; | 79 functions->fGenTextures = gles_bind(&GLES2Interface::GenTextures, impl); |
74 functions->fGetShaderPrecisionFormat = glGetShaderPrecisionFormat; | 80 functions->fGenVertexArrays = |
75 functions->fGetString = glGetString; | 81 gles_bind(&GLES2Interface::GenVertexArraysOES, impl); |
76 functions->fGetUniformLocation = glGetUniformLocation; | 82 functions->fGetBufferParameteriv = |
77 functions->fInsertEventMarker = glInsertEventMarkerEXT; | 83 gles_bind(&GLES2Interface::GetBufferParameteriv, impl); |
78 functions->fLineWidth = glLineWidth; | 84 functions->fGetError = gles_bind(&GLES2Interface::GetError, impl); |
79 functions->fLinkProgram = glLinkProgram; | 85 functions->fGetIntegerv = gles_bind(&GLES2Interface::GetIntegerv, impl); |
80 functions->fMapBufferSubData = glMapBufferSubDataCHROMIUM; | 86 functions->fGetProgramInfoLog = |
81 functions->fMapTexSubImage2D = glMapTexSubImage2DCHROMIUM; | 87 gles_bind(&GLES2Interface::GetProgramInfoLog, impl); |
82 functions->fPixelStorei = glPixelStorei; | 88 functions->fGetProgramiv = gles_bind(&GLES2Interface::GetProgramiv, impl); |
83 functions->fPopGroupMarker = glPopGroupMarkerEXT; | 89 functions->fGetShaderInfoLog = |
84 functions->fPushGroupMarker = glPushGroupMarkerEXT; | 90 gles_bind(&GLES2Interface::GetShaderInfoLog, impl); |
85 functions->fReadPixels = glReadPixels; | 91 functions->fGetShaderiv = gles_bind(&GLES2Interface::GetShaderiv, impl); |
86 functions->fScissor = glScissor; | 92 functions->fGetShaderPrecisionFormat = |
87 functions->fShaderSource = glShaderSource; | 93 gles_bind(&GLES2Interface::GetShaderPrecisionFormat, impl); |
88 functions->fStencilFunc = glStencilFunc; | 94 functions->fGetString = gles_bind(&GLES2Interface::GetString, impl); |
89 functions->fStencilFuncSeparate = glStencilFuncSeparate; | 95 functions->fGetUniformLocation = |
90 functions->fStencilMask = glStencilMask; | 96 gles_bind(&GLES2Interface::GetUniformLocation, impl); |
91 functions->fStencilMaskSeparate = glStencilMaskSeparate; | 97 functions->fInsertEventMarker = |
92 functions->fStencilOp = glStencilOp; | 98 gles_bind(&GLES2Interface::InsertEventMarkerEXT, impl); |
93 functions->fStencilOpSeparate = glStencilOpSeparate; | 99 functions->fLineWidth = gles_bind(&GLES2Interface::LineWidth, impl); |
94 functions->fTexImage2D = glTexImage2D; | 100 functions->fLinkProgram = gles_bind(&GLES2Interface::LinkProgram, impl); |
95 functions->fTexParameteri = glTexParameteri; | 101 functions->fMapBufferSubData = |
96 functions->fTexParameteriv = glTexParameteriv; | 102 gles_bind(&GLES2Interface::MapBufferSubDataCHROMIUM, impl); |
97 functions->fTexStorage2D = glTexStorage2DEXT; | 103 functions->fMapTexSubImage2D = |
98 functions->fTexSubImage2D = glTexSubImage2D; | 104 gles_bind(&GLES2Interface::MapTexSubImage2DCHROMIUM, impl); |
99 functions->fUniform1f = glUniform1f; | 105 functions->fPixelStorei = gles_bind(&GLES2Interface::PixelStorei, impl); |
100 functions->fUniform1i = glUniform1i; | 106 functions->fPopGroupMarker = |
101 functions->fUniform1fv = glUniform1fv; | 107 gles_bind(&GLES2Interface::PopGroupMarkerEXT, impl); |
102 functions->fUniform1iv = glUniform1iv; | 108 functions->fPushGroupMarker = |
103 functions->fUniform2f = glUniform2f; | 109 gles_bind(&GLES2Interface::PushGroupMarkerEXT, impl); |
104 functions->fUniform2i = glUniform2i; | 110 functions->fReadPixels = gles_bind(&GLES2Interface::ReadPixels, impl); |
105 functions->fUniform2fv = glUniform2fv; | 111 functions->fScissor = gles_bind(&GLES2Interface::Scissor, impl); |
106 functions->fUniform2iv = glUniform2iv; | 112 functions->fShaderSource = gles_bind(&GLES2Interface::ShaderSource, impl); |
107 functions->fUniform3f = glUniform3f; | 113 functions->fStencilFunc = gles_bind(&GLES2Interface::StencilFunc, impl); |
108 functions->fUniform3i = glUniform3i; | 114 functions->fStencilFuncSeparate = |
109 functions->fUniform3fv = glUniform3fv; | 115 gles_bind(&GLES2Interface::StencilFuncSeparate, impl); |
110 functions->fUniform3iv = glUniform3iv; | 116 functions->fStencilMask = gles_bind(&GLES2Interface::StencilMask, impl); |
111 functions->fUniform4f = glUniform4f; | 117 functions->fStencilMaskSeparate = |
112 functions->fUniform4i = glUniform4i; | 118 gles_bind(&GLES2Interface::StencilMaskSeparate, impl); |
113 functions->fUniform4fv = glUniform4fv; | 119 functions->fStencilOp = gles_bind(&GLES2Interface::StencilOp, impl); |
114 functions->fUniform4iv = glUniform4iv; | 120 functions->fStencilOpSeparate = |
115 functions->fUniformMatrix2fv = glUniformMatrix2fv; | 121 gles_bind(&GLES2Interface::StencilOpSeparate, impl); |
116 functions->fUniformMatrix3fv = glUniformMatrix3fv; | 122 functions->fTexImage2D = gles_bind(&GLES2Interface::TexImage2D, impl); |
117 functions->fUniformMatrix4fv = glUniformMatrix4fv; | 123 functions->fTexParameteri = gles_bind(&GLES2Interface::TexParameteri, impl); |
118 functions->fUnmapBufferSubData = glUnmapBufferSubDataCHROMIUM; | 124 functions->fTexParameteriv = gles_bind(&GLES2Interface::TexParameteriv, impl); |
119 functions->fUnmapTexSubImage2D = glUnmapTexSubImage2DCHROMIUM; | 125 functions->fTexStorage2D = gles_bind(&GLES2Interface::TexStorage2DEXT, impl); |
120 functions->fUseProgram = glUseProgram; | 126 functions->fTexSubImage2D = gles_bind(&GLES2Interface::TexSubImage2D, impl); |
121 functions->fVertexAttrib1f = glVertexAttrib1f; | 127 functions->fUniform1f = gles_bind(&GLES2Interface::Uniform1f, impl); |
122 functions->fVertexAttrib2fv = glVertexAttrib2fv; | 128 functions->fUniform1i = gles_bind(&GLES2Interface::Uniform1i, impl); |
123 functions->fVertexAttrib3fv = glVertexAttrib3fv; | 129 functions->fUniform1fv = gles_bind(&GLES2Interface::Uniform1fv, impl); |
124 functions->fVertexAttrib4fv = glVertexAttrib4fv; | 130 functions->fUniform1iv = gles_bind(&GLES2Interface::Uniform1iv, impl); |
125 functions->fVertexAttribPointer = glVertexAttribPointer; | 131 functions->fUniform2f = gles_bind(&GLES2Interface::Uniform2f, impl); |
126 functions->fViewport = glViewport; | 132 functions->fUniform2i = gles_bind(&GLES2Interface::Uniform2i, impl); |
127 functions->fBindFramebuffer = glBindFramebuffer; | 133 functions->fUniform2fv = gles_bind(&GLES2Interface::Uniform2fv, impl); |
128 functions->fBindRenderbuffer = glBindRenderbuffer; | 134 functions->fUniform2iv = gles_bind(&GLES2Interface::Uniform2iv, impl); |
129 functions->fCheckFramebufferStatus = glCheckFramebufferStatus; | 135 functions->fUniform3f = gles_bind(&GLES2Interface::Uniform3f, impl); |
130 functions->fDeleteFramebuffers = glDeleteFramebuffers; | 136 functions->fUniform3i = gles_bind(&GLES2Interface::Uniform3i, impl); |
131 functions->fDeleteRenderbuffers = glDeleteRenderbuffers; | 137 functions->fUniform3fv = gles_bind(&GLES2Interface::Uniform3fv, impl); |
132 functions->fFramebufferRenderbuffer = glFramebufferRenderbuffer; | 138 functions->fUniform3iv = gles_bind(&GLES2Interface::Uniform3iv, impl); |
133 functions->fFramebufferTexture2D = glFramebufferTexture2D; | 139 functions->fUniform4f = gles_bind(&GLES2Interface::Uniform4f, impl); |
| 140 functions->fUniform4i = gles_bind(&GLES2Interface::Uniform4i, impl); |
| 141 functions->fUniform4fv = gles_bind(&GLES2Interface::Uniform4fv, impl); |
| 142 functions->fUniform4iv = gles_bind(&GLES2Interface::Uniform4iv, impl); |
| 143 functions->fUniformMatrix2fv = |
| 144 gles_bind(&GLES2Interface::UniformMatrix2fv, impl); |
| 145 functions->fUniformMatrix3fv = |
| 146 gles_bind(&GLES2Interface::UniformMatrix3fv, impl); |
| 147 functions->fUniformMatrix4fv = |
| 148 gles_bind(&GLES2Interface::UniformMatrix4fv, impl); |
| 149 functions->fUnmapBufferSubData = |
| 150 gles_bind(&GLES2Interface::UnmapBufferSubDataCHROMIUM, impl); |
| 151 functions->fUnmapTexSubImage2D = |
| 152 gles_bind(&GLES2Interface::UnmapTexSubImage2DCHROMIUM, impl); |
| 153 functions->fUseProgram = gles_bind(&GLES2Interface::UseProgram, impl); |
| 154 functions->fVertexAttrib1f = gles_bind(&GLES2Interface::VertexAttrib1f, impl); |
| 155 functions->fVertexAttrib2fv = |
| 156 gles_bind(&GLES2Interface::VertexAttrib2fv, impl); |
| 157 functions->fVertexAttrib3fv = |
| 158 gles_bind(&GLES2Interface::VertexAttrib3fv, impl); |
| 159 functions->fVertexAttrib4fv = |
| 160 gles_bind(&GLES2Interface::VertexAttrib4fv, impl); |
| 161 functions->fVertexAttribPointer = |
| 162 gles_bind(&GLES2Interface::VertexAttribPointer, impl); |
| 163 functions->fViewport = gles_bind(&GLES2Interface::Viewport, impl); |
| 164 functions->fBindFramebuffer = |
| 165 gles_bind(&GLES2Interface::BindFramebuffer, impl); |
| 166 functions->fBindRenderbuffer = |
| 167 gles_bind(&GLES2Interface::BindRenderbuffer, impl); |
| 168 functions->fCheckFramebufferStatus = |
| 169 gles_bind(&GLES2Interface::CheckFramebufferStatus, impl); |
| 170 functions->fDeleteFramebuffers = |
| 171 gles_bind(&GLES2Interface::DeleteFramebuffers, impl); |
| 172 functions->fDeleteRenderbuffers = |
| 173 gles_bind(&GLES2Interface::DeleteRenderbuffers, impl); |
| 174 functions->fFramebufferRenderbuffer = |
| 175 gles_bind(&GLES2Interface::FramebufferRenderbuffer, impl); |
| 176 functions->fFramebufferTexture2D = |
| 177 gles_bind(&GLES2Interface::FramebufferTexture2D, impl); |
134 functions->fFramebufferTexture2DMultisample = | 178 functions->fFramebufferTexture2DMultisample = |
135 glFramebufferTexture2DMultisampleEXT; | 179 gles_bind(&GLES2Interface::FramebufferTexture2DMultisampleEXT, impl); |
136 functions->fGenFramebuffers = glGenFramebuffers; | 180 functions->fGenFramebuffers = |
137 functions->fGenRenderbuffers = glGenRenderbuffers; | 181 gles_bind(&GLES2Interface::GenFramebuffers, impl); |
| 182 functions->fGenRenderbuffers = |
| 183 gles_bind(&GLES2Interface::GenRenderbuffers, impl); |
138 functions->fGetFramebufferAttachmentParameteriv = | 184 functions->fGetFramebufferAttachmentParameteriv = |
139 glGetFramebufferAttachmentParameteriv; | 185 gles_bind(&GLES2Interface::GetFramebufferAttachmentParameteriv, impl); |
140 functions->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv; | 186 functions->fGetRenderbufferParameteriv = |
141 functions->fRenderbufferStorage = glRenderbufferStorage; | 187 gles_bind(&GLES2Interface::GetRenderbufferParameteriv, impl); |
| 188 functions->fRenderbufferStorage = |
| 189 gles_bind(&GLES2Interface::RenderbufferStorage, impl); |
142 functions->fRenderbufferStorageMultisample = | 190 functions->fRenderbufferStorageMultisample = |
143 glRenderbufferStorageMultisampleCHROMIUM; | 191 gles_bind(&GLES2Interface::RenderbufferStorageMultisampleCHROMIUM, impl); |
144 functions->fRenderbufferStorageMultisampleES2EXT = | 192 functions->fRenderbufferStorageMultisampleES2EXT = |
145 glRenderbufferStorageMultisampleEXT; | 193 gles_bind(&GLES2Interface::RenderbufferStorageMultisampleEXT, impl); |
146 functions->fBindFragDataLocation = glBindFragDataLocationEXT; | 194 functions->fBindFragDataLocation = |
147 functions->fBindFragDataLocationIndexed = glBindFragDataLocationIndexedEXT; | 195 gles_bind(&GLES2Interface::BindFragDataLocationEXT, impl); |
148 functions->fBindUniformLocation = glBindUniformLocationCHROMIUM; | 196 functions->fBindFragDataLocationIndexed = |
149 functions->fBlitFramebuffer = glBlitFramebufferCHROMIUM; | 197 gles_bind(&GLES2Interface::BindFragDataLocationIndexedEXT, impl); |
150 functions->fGenerateMipmap = glGenerateMipmap; | 198 functions->fBindUniformLocation = |
151 functions->fMatrixLoadf = glMatrixLoadfCHROMIUM; | 199 gles_bind(&GLES2Interface::BindUniformLocationCHROMIUM, impl); |
152 functions->fMatrixLoadIdentity = glMatrixLoadIdentityCHROMIUM; | 200 functions->fBlitFramebuffer = |
153 functions->fPathCommands = glPathCommandsCHROMIUM; | 201 gles_bind(&GLES2Interface::BlitFramebufferCHROMIUM, impl); |
154 functions->fPathParameteri = glPathParameteriCHROMIUM; | 202 functions->fGenerateMipmap = gles_bind(&GLES2Interface::GenerateMipmap, impl); |
155 functions->fPathParameterf = glPathParameterfCHROMIUM; | 203 functions->fMatrixLoadf = |
156 functions->fGenPaths = glGenPathsCHROMIUM; | 204 gles_bind(&GLES2Interface::MatrixLoadfCHROMIUM, impl); |
157 functions->fIsPath = glIsPathCHROMIUM; | 205 functions->fMatrixLoadIdentity = |
158 functions->fDeletePaths = glDeletePathsCHROMIUM; | 206 gles_bind(&GLES2Interface::MatrixLoadIdentityCHROMIUM, impl); |
159 functions->fPathStencilFunc = glPathStencilFuncCHROMIUM; | 207 functions->fPathCommands = |
160 functions->fStencilFillPath = glStencilFillPathCHROMIUM; | 208 gles_bind(&GLES2Interface::PathCommandsCHROMIUM, impl); |
161 functions->fStencilStrokePath = glStencilStrokePathCHROMIUM; | 209 functions->fPathParameteri = |
162 functions->fCoverFillPath = glCoverFillPathCHROMIUM; | 210 gles_bind(&GLES2Interface::PathParameteriCHROMIUM, impl); |
163 functions->fCoverStrokePath = glCoverStrokePathCHROMIUM; | 211 functions->fPathParameterf = |
164 functions->fStencilThenCoverFillPath = glStencilThenCoverFillPathCHROMIUM; | 212 gles_bind(&GLES2Interface::PathParameterfCHROMIUM, impl); |
| 213 functions->fGenPaths = gles_bind(&GLES2Interface::GenPathsCHROMIUM, impl); |
| 214 functions->fIsPath = gles_bind(&GLES2Interface::IsPathCHROMIUM, impl); |
| 215 functions->fDeletePaths = |
| 216 gles_bind(&GLES2Interface::DeletePathsCHROMIUM, impl); |
| 217 functions->fPathStencilFunc = |
| 218 gles_bind(&GLES2Interface::PathStencilFuncCHROMIUM, impl); |
| 219 functions->fStencilFillPath = |
| 220 gles_bind(&GLES2Interface::StencilFillPathCHROMIUM, impl); |
| 221 functions->fStencilStrokePath = |
| 222 gles_bind(&GLES2Interface::StencilStrokePathCHROMIUM, impl); |
| 223 functions->fCoverFillPath = |
| 224 gles_bind(&GLES2Interface::CoverFillPathCHROMIUM, impl); |
| 225 functions->fCoverStrokePath = |
| 226 gles_bind(&GLES2Interface::CoverStrokePathCHROMIUM, impl); |
| 227 functions->fStencilThenCoverFillPath = |
| 228 gles_bind(&GLES2Interface::StencilThenCoverFillPathCHROMIUM, impl); |
165 functions->fStencilThenCoverStrokePath = | 229 functions->fStencilThenCoverStrokePath = |
166 glStencilThenCoverStrokePathCHROMIUM; | 230 gles_bind(&GLES2Interface::StencilThenCoverStrokePathCHROMIUM, impl); |
167 functions->fStencilFillPathInstanced = glStencilFillPathInstancedCHROMIUM; | 231 functions->fStencilFillPathInstanced = |
| 232 gles_bind(&GLES2Interface::StencilFillPathInstancedCHROMIUM, impl); |
168 functions->fStencilStrokePathInstanced = | 233 functions->fStencilStrokePathInstanced = |
169 glStencilStrokePathInstancedCHROMIUM; | 234 gles_bind(&GLES2Interface::StencilStrokePathInstancedCHROMIUM, impl); |
170 functions->fCoverFillPathInstanced = glCoverFillPathInstancedCHROMIUM; | 235 functions->fCoverFillPathInstanced = |
171 functions->fCoverStrokePathInstanced = glCoverStrokePathInstancedCHROMIUM; | 236 gles_bind(&GLES2Interface::CoverFillPathInstancedCHROMIUM, impl); |
172 functions->fStencilThenCoverFillPathInstanced = | 237 functions->fCoverStrokePathInstanced = |
173 glStencilThenCoverFillPathInstancedCHROMIUM; | 238 gles_bind(&GLES2Interface::CoverStrokePathInstancedCHROMIUM, impl); |
174 functions->fStencilThenCoverStrokePathInstanced = | 239 functions->fStencilThenCoverFillPathInstanced = gles_bind( |
175 glStencilThenCoverStrokePathInstancedCHROMIUM; | 240 &GLES2Interface::StencilThenCoverFillPathInstancedCHROMIUM, impl); |
| 241 functions->fStencilThenCoverStrokePathInstanced = gles_bind( |
| 242 &GLES2Interface::StencilThenCoverStrokePathInstancedCHROMIUM, impl); |
176 functions->fProgramPathFragmentInputGen = | 243 functions->fProgramPathFragmentInputGen = |
177 glProgramPathFragmentInputGenCHROMIUM; | 244 gles_bind(&GLES2Interface::ProgramPathFragmentInputGenCHROMIUM, impl); |
178 functions->fBindFragmentInputLocation = glBindFragmentInputLocationCHROMIUM; | 245 functions->fBindFragmentInputLocation = |
179 functions->fCoverageModulation = glCoverageModulationCHROMIUM; | 246 gles_bind(&GLES2Interface::BindFragmentInputLocationCHROMIUM, impl); |
| 247 functions->fCoverageModulation = |
| 248 gles_bind(&GLES2Interface::CoverageModulationCHROMIUM, impl); |
180 } | 249 } |
181 | 250 |
182 } // namespace skia | 251 } // namespace skia_bindings |
OLD | NEW |