Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(339)

Unified Diff: src/gpu/gl/GrGLInterface.cpp

Issue 345723002: Add functions to support NV_path_rendering in OpenGL ES (Closed) Base URL: https://skia.googlesource.com/skia.git@desktop-es
Patch Set: add the comment Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/gl/GrGLDefines.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/gl/GrGLInterface.cpp
diff --git a/src/gpu/gl/GrGLInterface.cpp b/src/gpu/gl/GrGLInterface.cpp
index b81d9ceeb84b378366a3e119a04e6812496327e9..89e23f79f156946826ec97c3b6a8794c2f72c442 100644
--- a/src/gpu/gl/GrGLInterface.cpp
+++ b/src/gpu/gl/GrGLInterface.cpp
@@ -39,57 +39,23 @@ const GrGLInterface* GrGLInterfaceRemoveNVPR(const GrGLInterface* interface) {
GrGLInterface* newInterface = GrGLInterface::NewClone(interface);
newInterface->fExtensions.remove("GL_NV_path_rendering");
-
newInterface->fFunctions.fPathCommands = NULL;
newInterface->fFunctions.fPathCoords = NULL;
- newInterface->fFunctions.fPathSubCommands = NULL;
- newInterface->fFunctions.fPathSubCoords = NULL;
- newInterface->fFunctions.fPathString = NULL;
- newInterface->fFunctions.fPathGlyphs = NULL;
- newInterface->fFunctions.fPathGlyphRange = NULL;
- newInterface->fFunctions.fWeightPaths = NULL;
- newInterface->fFunctions.fCopyPath = NULL;
- newInterface->fFunctions.fInterpolatePaths = NULL;
- newInterface->fFunctions.fTransformPath = NULL;
- newInterface->fFunctions.fPathParameteriv = NULL;
newInterface->fFunctions.fPathParameteri = NULL;
- newInterface->fFunctions.fPathParameterfv = NULL;
newInterface->fFunctions.fPathParameterf = NULL;
- newInterface->fFunctions.fPathDashArray = NULL;
newInterface->fFunctions.fGenPaths = NULL;
newInterface->fFunctions.fDeletePaths = NULL;
- newInterface->fFunctions.fIsPath = NULL;
newInterface->fFunctions.fPathStencilFunc = NULL;
- newInterface->fFunctions.fPathStencilDepthOffset = NULL;
newInterface->fFunctions.fStencilFillPath = NULL;
newInterface->fFunctions.fStencilStrokePath = NULL;
newInterface->fFunctions.fStencilFillPathInstanced = NULL;
newInterface->fFunctions.fStencilStrokePathInstanced = NULL;
- newInterface->fFunctions.fPathCoverDepthFunc = NULL;
- newInterface->fFunctions.fPathColorGen = NULL;
newInterface->fFunctions.fPathTexGen = NULL;
- newInterface->fFunctions.fPathFogGen = NULL;
newInterface->fFunctions.fCoverFillPath = NULL;
newInterface->fFunctions.fCoverStrokePath = NULL;
newInterface->fFunctions.fCoverFillPathInstanced = NULL;
newInterface->fFunctions.fCoverStrokePathInstanced = NULL;
- newInterface->fFunctions.fGetPathParameteriv = NULL;
- newInterface->fFunctions.fGetPathParameterfv = NULL;
- newInterface->fFunctions.fGetPathCommands = NULL;
- newInterface->fFunctions.fGetPathCoords = NULL;
- newInterface->fFunctions.fGetPathDashArray = NULL;
- newInterface->fFunctions.fGetPathMetrics = NULL;
- newInterface->fFunctions.fGetPathMetricRange = NULL;
- newInterface->fFunctions.fGetPathSpacing = NULL;
- newInterface->fFunctions.fGetPathColorGeniv = NULL;
- newInterface->fFunctions.fGetPathColorGenfv = NULL;
- newInterface->fFunctions.fGetPathTexGeniv = NULL;
- newInterface->fFunctions.fGetPathTexGenfv = NULL;
- newInterface->fFunctions.fIsPointInFillPath = NULL;
- newInterface->fFunctions.fIsPointInStrokePath = NULL;
- newInterface->fFunctions.fGetPathLength = NULL;
- newInterface->fFunctions.fPointAlongPath = NULL;
-
+ newInterface->fFunctions.fProgramPathFragmentInputGen = NULL;
return newInterface;
}
@@ -292,65 +258,6 @@ bool GrGLInterface::validate() const {
RETURN_FALSE_INTERFACE
}
}
- if (fExtensions.has("GL_EXT_direct_state_access")) {
- if (NULL == fFunctions.fMatrixLoadf ||
- NULL == fFunctions.fMatrixLoadIdentity) {
- RETURN_FALSE_INTERFACE
- }
- }
- if (fExtensions.has("GL_NV_path_rendering")) {
- if (NULL == fFunctions.fPathCommands ||
- NULL == fFunctions.fPathCoords ||
- NULL == fFunctions.fPathSubCommands ||
- NULL == fFunctions.fPathSubCoords ||
- NULL == fFunctions.fPathString ||
- NULL == fFunctions.fPathGlyphs ||
- NULL == fFunctions.fPathGlyphRange ||
- NULL == fFunctions.fWeightPaths ||
- NULL == fFunctions.fCopyPath ||
- NULL == fFunctions.fInterpolatePaths ||
- NULL == fFunctions.fTransformPath ||
- NULL == fFunctions.fPathParameteriv ||
- NULL == fFunctions.fPathParameteri ||
- NULL == fFunctions.fPathParameterfv ||
- NULL == fFunctions.fPathParameterf ||
- NULL == fFunctions.fPathDashArray ||
- NULL == fFunctions.fGenPaths ||
- NULL == fFunctions.fDeletePaths ||
- NULL == fFunctions.fIsPath ||
- NULL == fFunctions.fPathStencilFunc ||
- NULL == fFunctions.fPathStencilDepthOffset ||
- NULL == fFunctions.fStencilFillPath ||
- NULL == fFunctions.fStencilStrokePath ||
- NULL == fFunctions.fStencilFillPathInstanced ||
- NULL == fFunctions.fStencilStrokePathInstanced ||
- NULL == fFunctions.fPathCoverDepthFunc ||
- NULL == fFunctions.fPathColorGen ||
- NULL == fFunctions.fPathTexGen ||
- NULL == fFunctions.fPathFogGen ||
- NULL == fFunctions.fCoverFillPath ||
- NULL == fFunctions.fCoverStrokePath ||
- NULL == fFunctions.fCoverFillPathInstanced ||
- NULL == fFunctions.fCoverStrokePathInstanced ||
- NULL == fFunctions.fGetPathParameteriv ||
- NULL == fFunctions.fGetPathParameterfv ||
- NULL == fFunctions.fGetPathCommands ||
- NULL == fFunctions.fGetPathCoords ||
- NULL == fFunctions.fGetPathDashArray ||
- NULL == fFunctions.fGetPathMetrics ||
- NULL == fFunctions.fGetPathMetricRange ||
- NULL == fFunctions.fGetPathSpacing ||
- NULL == fFunctions.fGetPathColorGeniv ||
- NULL == fFunctions.fGetPathColorGenfv ||
- NULL == fFunctions.fGetPathTexGeniv ||
- NULL == fFunctions.fGetPathTexGenfv ||
- NULL == fFunctions.fIsPointInFillPath ||
- NULL == fFunctions.fIsPointInStrokePath ||
- NULL == fFunctions.fGetPathLength ||
- NULL == fFunctions.fPointAlongPath) {
- RETURN_FALSE_INTERFACE
- }
- }
}
// optional function on desktop before 1.3
@@ -526,5 +433,48 @@ bool GrGLInterface::validate() const {
RETURN_FALSE_INTERFACE;
}
}
+
+ if ((kGL_GrGLStandard == fStandard && fExtensions.has("GL_EXT_direct_state_access")) ||
+ (kGLES_GrGLStandard == fStandard && fExtensions.has("GL_NV_path_rendering"))) {
+ if (NULL == fFunctions.fMatrixLoadf ||
+ NULL == fFunctions.fMatrixLoadIdentity) {
+ RETURN_FALSE_INTERFACE
+ }
+ }
+
+ if ((kGL_GrGLStandard == fStandard &&
+ (glVer >= GR_GL_VER(4,3) || fExtensions.has("GL_ARB_program_interface_query"))) ||
+ (kGLES_GrGLStandard == fStandard && glVer >= GR_GL_VER(3,1))) {
+ if (NULL == fFunctions.fGetProgramResourceLocation) {
+ RETURN_FALSE_INTERFACE
+ }
+ }
+
+ if (fExtensions.has("GL_NV_path_rendering")) {
+ if (NULL == fFunctions.fPathCommands ||
+ NULL == fFunctions.fPathCoords ||
+ NULL == fFunctions.fPathParameteri ||
+ NULL == fFunctions.fPathParameterf ||
+ NULL == fFunctions.fGenPaths ||
+ NULL == fFunctions.fDeletePaths ||
+ NULL == fFunctions.fPathStencilFunc ||
+ NULL == fFunctions.fStencilFillPath ||
+ NULL == fFunctions.fStencilStrokePath ||
+ NULL == fFunctions.fStencilFillPathInstanced ||
+ NULL == fFunctions.fStencilStrokePathInstanced ||
+ NULL == fFunctions.fCoverFillPath ||
+ NULL == fFunctions.fCoverStrokePath ||
+ NULL == fFunctions.fCoverFillPathInstanced ||
+ NULL == fFunctions.fCoverStrokePathInstanced) {
+ RETURN_FALSE_INTERFACE
+ }
+ // Currently ProgramPathFragmentInputGen is not used on
+ // OpenGL, rather PathTexGen is.
+ if ((kGL_GrGLStandard == fStandard && NULL == fFunctions.fPathTexGen) ||
+ (kGLES_GrGLStandard == fStandard && NULL == fFunctions.fProgramPathFragmentInputGen)) {
+ RETURN_FALSE_INTERFACE
+ }
+ }
+
return true;
}
« no previous file with comments | « src/gpu/gl/GrGLDefines.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698