aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar kkinnunen <kkinnunen@nvidia.com>2015-12-09 22:58:34 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-12-09 22:58:34 -0800
commit2ca29c0b919765f01ee07625250c0b58f30b05b5 (patch)
tree998014d5f98c165dc23ad67b982f5ad75dfa2be0
parente87256c46291f7ce10f1d9a1d691d01ecf4eb3cc (diff)
Populate NVPR functions when run with command buffer
Populate the NV_path_rendering functions provided by CHROMIUM_path_rendering when the tools are being run with command buffer API. BUG=skia:2992 Review URL: https://codereview.chromium.org/1510163003
-rw-r--r--src/gpu/gl/GrGLAssembleInterface.cpp27
-rw-r--r--src/gpu/gl/GrGLInterface.cpp3
2 files changed, 30 insertions, 0 deletions
diff --git a/src/gpu/gl/GrGLAssembleInterface.cpp b/src/gpu/gl/GrGLAssembleInterface.cpp
index dbc54adbe4..93d49556b1 100644
--- a/src/gpu/gl/GrGLAssembleInterface.cpp
+++ b/src/gpu/gl/GrGLAssembleInterface.cpp
@@ -745,6 +745,33 @@ const GrGLInterface* GrGLAssembleGLESInterface(void* ctx, GrGLGetProc get) {
GET_PROC_SUFFIX(ProgramPathFragmentInputGen, NV);
}
+ if (extensions.has("GL_CHROMIUM_path_rendering")) {
+ GET_PROC_SUFFIX(MatrixLoadf, CHROMIUM);
+ GET_PROC_SUFFIX(MatrixLoadIdentity, CHROMIUM);
+ GET_PROC_SUFFIX(PathCommands, CHROMIUM);
+ GET_PROC_SUFFIX(PathParameteri, CHROMIUM);
+ GET_PROC_SUFFIX(PathParameterf, CHROMIUM);
+ GET_PROC_SUFFIX(GenPaths, CHROMIUM);
+ GET_PROC_SUFFIX(DeletePaths, CHROMIUM);
+ GET_PROC_SUFFIX(IsPath, CHROMIUM);
+ GET_PROC_SUFFIX(PathStencilFunc, CHROMIUM);
+ GET_PROC_SUFFIX(StencilFillPath, CHROMIUM);
+ GET_PROC_SUFFIX(StencilStrokePath, CHROMIUM);
+ GET_PROC_SUFFIX(StencilFillPathInstanced, CHROMIUM);
+ GET_PROC_SUFFIX(StencilStrokePathInstanced, CHROMIUM);
+ GET_PROC_SUFFIX(CoverFillPath, CHROMIUM);
+ GET_PROC_SUFFIX(CoverStrokePath, CHROMIUM);
+ GET_PROC_SUFFIX(CoverFillPathInstanced, CHROMIUM);
+ GET_PROC_SUFFIX(CoverStrokePathInstanced, CHROMIUM);
+ GET_PROC_SUFFIX(StencilThenCoverFillPath, CHROMIUM);
+ GET_PROC_SUFFIX(StencilThenCoverStrokePath, CHROMIUM);
+ GET_PROC_SUFFIX(StencilThenCoverFillPathInstanced, CHROMIUM);
+ GET_PROC_SUFFIX(StencilThenCoverStrokePathInstanced, CHROMIUM);
+ GET_PROC_SUFFIX(ProgramPathFragmentInputGen, CHROMIUM);
+ // GL_CHROMIUM_path_rendering additions:
+ GET_PROC_SUFFIX(BindFragmentInputLocation, CHROMIUM);
+ }
+
if (extensions.has("GL_NV_framebuffer_mixed_samples")) {
GET_PROC_SUFFIX(CoverageModulation, NV);
}
diff --git a/src/gpu/gl/GrGLInterface.cpp b/src/gpu/gl/GrGLInterface.cpp
index da3c656c18..9cdc9f4386 100644
--- a/src/gpu/gl/GrGLInterface.cpp
+++ b/src/gpu/gl/GrGLInterface.cpp
@@ -39,6 +39,9 @@ const GrGLInterface* GrGLInterfaceRemoveNVPR(const GrGLInterface* interface) {
GrGLInterface* newInterface = GrGLInterface::NewClone(interface);
newInterface->fExtensions.remove("GL_NV_path_rendering");
+ newInterface->fExtensions.remove("GL_CHROMIUM_path_rendering");
+ newInterface->fFunctions.fMatrixLoadf = nullptr;
+ newInterface->fFunctions.fMatrixLoadIdentity = nullptr;
newInterface->fFunctions.fPathCommands = nullptr;
newInterface->fFunctions.fPathParameteri = nullptr;
newInterface->fFunctions.fPathParameterf = nullptr;