diff options
author | 2015-05-18 09:29:10 -0700 | |
---|---|---|
committer | 2015-05-18 09:29:10 -0700 | |
commit | 404b3b264b833eb7cffdc833c7e2ebbd708e123a (patch) | |
tree | f6a2a9229d9db90b4ec97f29a9fb6f5876f99229 /src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp | |
parent | 9b777967b1e531d0ebdb3349c4bd149fdb86589f (diff) |
Revert of Move copy-surface-as-draw fallback to GrGLGpu. (patchset #12 id:220001 of https://codereview.chromium.org/1144433002/)
Reason for revert:
Many GMs changed, some totally busted.
Original issue's description:
> Move copy-surface-as-draw fallback to GrGLGpu.
>
> Committed: https://skia.googlesource.com/skia/+/5df6fee929823f50c55cc50f7c882a309c1b1de9
TBR=joshualitt@google.com,egdaniel@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1142003003
Diffstat (limited to 'src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp')
-rw-r--r-- | src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp b/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp index afb0718cbd..044752f7a5 100644 --- a/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp +++ b/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp @@ -15,6 +15,26 @@ const char* GrGLFragmentShaderBuilder::kDstCopyColorName = "_dstColor"; static const char* declared_color_output_name() { return "fsColorOut"; } static const char* dual_source_output_name() { return "dualSourceOut"; } +static void append_default_precision_qualifier(GrSLPrecision p, + GrGLStandard standard, + SkString* str) { + // Desktop GLSL has added precision qualifiers but they don't do anything. + if (kGLES_GrGLStandard == standard) { + switch (p) { + case kHigh_GrSLPrecision: + str->append("precision highp float;\n"); + break; + case kMedium_GrSLPrecision: + str->append("precision mediump float;\n"); + break; + case kLow_GrSLPrecision: + str->append("precision lowp float;\n"); + break; + default: + SkFAIL("Unknown precision value."); + } + } +} static const char* specific_layout_qualifier_name(GrBlendEquation equation) { SkASSERT(GrBlendEquationIsAdvanced(equation)); @@ -250,9 +270,9 @@ bool GrGLFragmentShaderBuilder::compileAndAttachShaders(GrGLuint programId, SkTDArray<GrGLuint>* shaderIds) { GrGLGpu* gpu = fProgramBuilder->gpu(); this->versionDecl() = GrGetGLSLVersionDecl(gpu->ctxInfo()); - GrGLSLAppendDefaultFloatPrecisionDeclaration(kDefault_GrSLPrecision, - gpu->glStandard(), - &this->precisionQualifier()); + append_default_precision_qualifier(kDefault_GrSLPrecision, + gpu->glStandard(), + &this->precisionQualifier()); this->compileAndAppendLayoutQualifiers(); fProgramBuilder->appendUniformDecls(GrGLProgramBuilder::kFragment_Visibility, &this->uniforms()); |