diff options
author | 2016-11-11 15:16:46 -0500 | |
---|---|---|
committer | 2016-11-11 21:15:29 +0000 | |
commit | 7ef4b74e57a143e4e586e577e9b7c11c3aab472d (patch) | |
tree | 5ca0e9f4e9fc44806f0ef45eb70c0ff350cf13a0 /src/gpu | |
parent | dca4f6530013cf43a2557ccb07f5cb4fd916b8e8 (diff) |
re-re-land of skslc now uses standard Skia caps
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4732
Change-Id: I144110bf66f67a28da7ad333173db43bddf9e8d0
Reviewed-on: https://skia-review.googlesource.com/4732
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/gpu')
-rw-r--r-- | src/gpu/gl/builders/GrGLShaderStringBuilder.cpp | 76 | ||||
-rw-r--r-- | src/gpu/gl/builders/GrGLShaderStringBuilder.h | 2 | ||||
-rw-r--r-- | src/gpu/glsl/GrGLSLCaps.h | 5 |
3 files changed, 6 insertions, 77 deletions
diff --git a/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp b/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp index 8a5b700a90..1e42259128 100644 --- a/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp +++ b/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp @@ -21,79 +21,6 @@ static const bool c_PrintShaders{false}; static void print_shader_source(const char** strings, int* lengths, int count); -SkSL::GLCaps GrGLSkSLCapsForContext(const GrGLContext& context) { - GrGLStandard standard = context.standard(); - const GrGLCaps* caps = context.caps(); - const GrGLSLCaps* glslCaps = caps->glslCaps(); - SkSL::GLCaps result; - switch (standard) { - case kGL_GrGLStandard: - result.fStandard = SkSL::GLCaps::kGL_Standard; - break; - case kGLES_GrGLStandard: - result.fStandard = SkSL::GLCaps::kGLES_Standard; - break; - default: - SkASSERT(false); - result.fStandard = SkSL::GLCaps::kGL_Standard; - } - - switch (glslCaps->generation()) { - case k110_GrGLSLGeneration: - if (kGLES_GrGLStandard == standard) { - // ES2's shader language is based on GLSL 1.20 but is version 1.00 of the ES - // language - result.fVersion = 100; - } else { - SkASSERT(kGL_GrGLStandard == standard); - result.fVersion = 110; - } - break; - case k130_GrGLSLGeneration: - SkASSERT(kGL_GrGLStandard == standard); - result.fVersion = 130; - break; - case k140_GrGLSLGeneration: - SkASSERT(kGL_GrGLStandard == standard); - result.fVersion = 140; - break; - case k150_GrGLSLGeneration: - SkASSERT(kGL_GrGLStandard == standard); - result.fVersion = 150; - break; - case k330_GrGLSLGeneration: - if (kGLES_GrGLStandard == standard) { - result.fVersion = 300; - } else { - SkASSERT(kGL_GrGLStandard == standard); - result.fVersion = 330; - } - break; - case k400_GrGLSLGeneration: - SkASSERT(kGL_GrGLStandard == standard); - result.fVersion = 400; - break; - case k310es_GrGLSLGeneration: - SkASSERT(kGLES_GrGLStandard == standard); - result.fVersion = 310; - break; - case k320es_GrGLSLGeneration: - SkASSERT(kGLES_GrGLStandard == standard); - result.fVersion = 320; - break; - } - result.fIsCoreProfile = caps->isCoreProfile(); - result.fUsesPrecisionModifiers = glslCaps->usesPrecisionModifiers(); - result.fMustDeclareFragmentShaderOutput = glslCaps->mustDeclareFragmentShaderOutput(); - result.fShaderDerivativeSupport = glslCaps->shaderDerivativeSupport(); - if (result.fShaderDerivativeSupport && glslCaps->shaderDerivativeExtensionString()) { - result.fShaderDerivativeExtensionString = glslCaps->shaderDerivativeExtensionString(); - } - result.fCanUseMinAndAbsTogether = glslCaps->canUseMinAndAbsTogether(); - result.fMustForceNegatedAtanParamToFloat = glslCaps->mustForceNegatedAtanParamToFloat(); - return result; -} - static void dump_string(std::string s) { // on Android, SkDebugf only displays the first 1K characters of output, which results in // incomplete shader source code. Print each line individually to avoid this problem. @@ -137,13 +64,12 @@ GrGLuint GrGLCompileAndAttachShader(const GrGLContext& glCtx, std::string glsl; SkSL::Compiler& compiler = *glCtx.compiler(); - SkSL::GLCaps caps = GrGLSkSLCapsForContext(glCtx); SkASSERT(type == GR_GL_VERTEX_SHADER || type == GR_GL_FRAGMENT_SHADER); SkDEBUGCODE(bool result = )compiler.toGLSL(type == GR_GL_VERTEX_SHADER ? SkSL::Program::kVertex_Kind : SkSL::Program::kFragment_Kind, std::string(sksl.c_str()), - caps, + *glCtx.caps()->glslCaps(), &glsl); #ifdef SK_DEBUG if (!result) { diff --git a/src/gpu/gl/builders/GrGLShaderStringBuilder.h b/src/gpu/gl/builders/GrGLShaderStringBuilder.h index 4365751c3a..71fce6a95a 100644 --- a/src/gpu/gl/builders/GrGLShaderStringBuilder.h +++ b/src/gpu/gl/builders/GrGLShaderStringBuilder.h @@ -14,8 +14,6 @@ #include "SkSLGLSLCodeGenerator.h" #include "SkTypes.h" -SkSL::GLCaps GrGLSkSLCapsForContext(const GrGLContext& context); - GrGLuint GrGLCompileAndAttachShader(const GrGLContext& glCtx, GrGLuint programId, GrGLenum type, diff --git a/src/gpu/glsl/GrGLSLCaps.h b/src/gpu/glsl/GrGLSLCaps.h index ac409a36ba..1a89d1690b 100644 --- a/src/gpu/glsl/GrGLSLCaps.h +++ b/src/gpu/glsl/GrGLSLCaps.h @@ -13,6 +13,10 @@ #include "GrGLSL.h" #include "GrSwizzle.h" +namespace SkSL { + class GLSLCapsFactory; +} + class GrGLSLCaps : public GrShaderCaps { public: @@ -231,6 +235,7 @@ private: friend class GrGLCaps; // For initialization. friend class GrVkCaps; + friend class SkSL::GLSLCapsFactory; typedef GrShaderCaps INHERITED; }; |