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

Side by Side Diff: src/effects/SkBlurMaskFilter.cpp

Issue 324543002: fix 10.6 shader tests (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkBlurMaskFilter.h" 9 #include "SkBlurMaskFilter.h"
10 #include "SkBlurMask.h" 10 #include "SkBlurMask.h"
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 GrGLRectBlurEffect::GrGLRectBlurEffect(const GrBackendEffectFactory& factory, co nst GrDrawEffect&) 623 GrGLRectBlurEffect::GrGLRectBlurEffect(const GrBackendEffectFactory& factory, co nst GrDrawEffect&)
624 : INHERITED(factory) { 624 : INHERITED(factory) {
625 } 625 }
626 626
627 void OutputRectBlurProfileLookup(GrGLShaderBuilder* builder, 627 void OutputRectBlurProfileLookup(GrGLShaderBuilder* builder,
628 const GrGLShaderBuilder::TextureSampler& sample r, 628 const GrGLShaderBuilder::TextureSampler& sample r,
629 const char *output, 629 const char *output,
630 const char *profileSize, const char *loc, 630 const char *profileSize, const char *loc,
631 const char *blurred_width, 631 const char *blurred_width,
632 const char *sharp_width) { 632 const char *sharp_width) {
633 builder->fsCodeAppendf("\t\tfloat coord = (0.5 * (abs(2*%s - %s) - %s))/%s;\ n", 633 builder->fsCodeAppendf("\t\tfloat coord = (0.5 * (abs(2.0*%s - %s) - %s))/%s ;\n",
634 loc, blurred_width, sharp_width, profileSize); 634 loc, blurred_width, sharp_width, profileSize);
635 builder->fsCodeAppendf("\t\t%s = ", output); 635 builder->fsCodeAppendf("\t\t%s = ", output);
636 builder->fsAppendTextureLookup(sampler, "vec2(coord,0.5)"); 636 builder->fsAppendTextureLookup(sampler, "vec2(coord,0.5)");
637 builder->fsCodeAppend(".a;\n"); 637 builder->fsCodeAppend(".a;\n");
638 } 638 }
639 639
640 void GrGLRectBlurEffect::emitCode(GrGLShaderBuilder* builder, 640 void GrGLRectBlurEffect::emitCode(GrGLShaderBuilder* builder,
641 const GrDrawEffect&, 641 const GrDrawEffect&,
642 EffectKey key, 642 EffectKey key,
643 const char* outputColor, 643 const char* outputColor,
(...skipping 19 matching lines...) Expand all
663 builder->fsCodeAppendf("\tvec4 src=%s;\n", inputColor); 663 builder->fsCodeAppendf("\tvec4 src=%s;\n", inputColor);
664 } else { 664 } else {
665 builder->fsCodeAppendf("\tvec4 src=vec4(1)\n;"); 665 builder->fsCodeAppendf("\tvec4 src=vec4(1)\n;");
666 } 666 }
667 667
668 builder->fsCodeAppendf("\tvec2 translatedPos = %s.xy - %s.xy;\n", fragmentPo s, rectName ); 668 builder->fsCodeAppendf("\tvec2 translatedPos = %s.xy - %s.xy;\n", fragmentPo s, rectName );
669 builder->fsCodeAppendf("\tfloat width = %s.z - %s.x;\n", rectName, rectName) ; 669 builder->fsCodeAppendf("\tfloat width = %s.z - %s.x;\n", rectName, rectName) ;
670 builder->fsCodeAppendf("\tfloat height = %s.w - %s.y;\n", rectName, rectName ); 670 builder->fsCodeAppendf("\tfloat height = %s.w - %s.y;\n", rectName, rectName );
671 671
672 builder->fsCodeAppendf("\tvec2 smallDims = vec2(width - %s, height-%s);\n", profileSizeName, profileSizeName); 672 builder->fsCodeAppendf("\tvec2 smallDims = vec2(width - %s, height-%s);\n", profileSizeName, profileSizeName);
673 builder->fsCodeAppendf("\tfloat center = 2.0 * floor(%s/2 + .25) - 1;\n", pr ofileSizeName); 673 builder->fsCodeAppendf("\tfloat center = 2.0 * floor(%s/2.0 + .25) - 1.0;\n" , profileSizeName);
674 builder->fsCodeAppendf("\tvec2 wh = smallDims - vec2(center,center);\n"); 674 builder->fsCodeAppendf("\tvec2 wh = smallDims - vec2(center,center);\n");
675 675
676 builder->fsCodeAppendf("\tfloat horiz_lookup;\n"); 676 builder->fsCodeAppendf("\tfloat horiz_lookup;\n");
677 builder->fsCodeAppendf("\tif (%s <= smallDims.x) {\n", profileSizeName); 677 builder->fsCodeAppendf("\tif (%s <= smallDims.x) {\n", profileSizeName);
678 OutputRectBlurProfileLookup(builder, samplers[0], "horiz_lookup", profileSiz eName, "translatedPos.x", "width", "wh.x"); 678 OutputRectBlurProfileLookup(builder, samplers[0], "horiz_lookup", profileSiz eName, "translatedPos.x", "width", "wh.x");
679 builder->fsCodeAppendf("\t}\n"); 679 builder->fsCodeAppendf("\t}\n");
680 680
681 builder->fsCodeAppendf("\tfloat vert_lookup;\n"); 681 builder->fsCodeAppendf("\tfloat vert_lookup;\n");
682 builder->fsCodeAppendf("\tif (%s <= smallDims.y) {\n", profileSizeName); 682 builder->fsCodeAppendf("\tif (%s <= smallDims.y) {\n", profileSizeName);
683 OutputRectBlurProfileLookup(builder, samplers[0], "vert_lookup", profileSize Name, "translatedPos.y", "height", "wh.y"); 683 OutputRectBlurProfileLookup(builder, samplers[0], "vert_lookup", profileSize Name, "translatedPos.y", "height", "wh.y");
684 builder->fsCodeAppendf("\t}\n"); 684 builder->fsCodeAppendf("\t}\n");
685 685
686 builder->fsCodeAppendf("\tfloat final = 1.0 - horiz_lookup * vert_lookup;\n" ); 686 builder->fsCodeAppendf("\tfloat final = 1.0 - horiz_lookup * vert_lookup;\n" );
687 687
688 builder->fsCodeAppendf("\t%s = vec4(final, final, final, 1);\n", outputColor ); 688 builder->fsCodeAppendf("\t%s = vec4(final, final, final, 1.0);\n", outputCol or );
689 } 689 }
690 690
691 void GrGLRectBlurEffect::setData(const GrGLUniformManager& uman, 691 void GrGLRectBlurEffect::setData(const GrGLUniformManager& uman,
692 const GrDrawEffect& drawEffect) { 692 const GrDrawEffect& drawEffect) {
693 const GrRectBlurEffect& rbe = drawEffect.castEffect<GrRectBlurEffect>(); 693 const GrRectBlurEffect& rbe = drawEffect.castEffect<GrRectBlurEffect>();
694 SkRect rect = rbe.getRect(); 694 SkRect rect = rbe.getRect();
695 695
696 uman.set4f(fProxyRectUniform, rect.fLeft, rect.fTop, rect.fRight, rect.fBott om); 696 uman.set4f(fProxyRectUniform, rect.fLeft, rect.fTop, rect.fRight, rect.fBott om);
697 uman.set1f(fProfileSizeUniform, SkScalarCeilToScalar(6*rbe.getSigma())); 697 uman.set1f(fProfileSizeUniform, SkScalarCeilToScalar(6*rbe.getSigma()));
698 } 698 }
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
1212 } else { 1212 } else {
1213 str->append("None"); 1213 str->append("None");
1214 } 1214 }
1215 str->append("))"); 1215 str->append("))");
1216 } 1216 }
1217 #endif 1217 #endif
1218 1218
1219 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkBlurMaskFilter) 1219 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkBlurMaskFilter)
1220 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurMaskFilterImpl) 1220 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurMaskFilterImpl)
1221 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 1221 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698