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

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

Issue 292773003: fix off-by-one error in texture coordinate calculations for rrect gpu (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: remove debug statement Created 6 years, 7 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 | « expectations/gm/ignored-tests.txt ('k') | 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 1022 matching lines...) Expand 10 before | Expand all | Expand 10 after
1033 // warp the fragment position to the appropriate part of the 9patch blur tex ture 1033 // warp the fragment position to the appropriate part of the 9patch blur tex ture
1034 1034
1035 builder->fsCodeAppendf("\t\tvec2 rectCenter = (%s.xy + %s.zw)/2.0;\n", rectN ame, rectName); 1035 builder->fsCodeAppendf("\t\tvec2 rectCenter = (%s.xy + %s.zw)/2.0;\n", rectN ame, rectName);
1036 builder->fsCodeAppendf("\t\tvec2 translatedFragPos = %s.xy - %s.xy;\n", frag mentPos, rectName); 1036 builder->fsCodeAppendf("\t\tvec2 translatedFragPos = %s.xy - %s.xy;\n", frag mentPos, rectName);
1037 builder->fsCodeAppendf("\t\tfloat threshold = %s + 2.0*%s;\n", cornerRadiusN ame, blurRadiusName ); 1037 builder->fsCodeAppendf("\t\tfloat threshold = %s + 2.0*%s;\n", cornerRadiusN ame, blurRadiusName );
1038 builder->fsCodeAppendf("\t\tvec2 middle = %s.zw - %s.xy - 2.0*threshold;\n", rectName, rectName ); 1038 builder->fsCodeAppendf("\t\tvec2 middle = %s.zw - %s.xy - 2.0*threshold;\n", rectName, rectName );
1039 1039
1040 builder->fsCodeAppendf("\t\tif (translatedFragPos.x >= threshold && translat edFragPos.x < (middle.x+threshold)) {\n" ); 1040 builder->fsCodeAppendf("\t\tif (translatedFragPos.x >= threshold && translat edFragPos.x < (middle.x+threshold)) {\n" );
1041 builder->fsCodeAppendf("\t\t\ttranslatedFragPos.x = threshold;\n"); 1041 builder->fsCodeAppendf("\t\t\ttranslatedFragPos.x = threshold;\n");
1042 builder->fsCodeAppendf("\t\t} else if (translatedFragPos.x >= (middle.x + th reshold)) {\n"); 1042 builder->fsCodeAppendf("\t\t} else if (translatedFragPos.x >= (middle.x + th reshold)) {\n");
1043 builder->fsCodeAppendf("\t\t\ttranslatedFragPos.x -= middle.x;\n"); 1043 builder->fsCodeAppendf("\t\t\ttranslatedFragPos.x -= middle.x - 1.0;\n");
1044 builder->fsCodeAppendf("\t\t}\n"); 1044 builder->fsCodeAppendf("\t\t}\n");
1045 1045
1046 builder->fsCodeAppendf("\t\tif (translatedFragPos.y > threshold && translate dFragPos.y < (middle.y+threshold)) {\n" ); 1046 builder->fsCodeAppendf("\t\tif (translatedFragPos.y > threshold && translate dFragPos.y < (middle.y+threshold)) {\n" );
1047 builder->fsCodeAppendf("\t\t\ttranslatedFragPos.y = threshold;\n"); 1047 builder->fsCodeAppendf("\t\t\ttranslatedFragPos.y = threshold;\n");
1048 builder->fsCodeAppendf("\t\t} else if (translatedFragPos.y >= (middle.y + th reshold)) {\n"); 1048 builder->fsCodeAppendf("\t\t} else if (translatedFragPos.y >= (middle.y + th reshold)) {\n");
1049 builder->fsCodeAppendf("\t\t\ttranslatedFragPos.y -= middle.y;\n"); 1049 builder->fsCodeAppendf("\t\t\ttranslatedFragPos.y -= middle.y - 1.0;\n");
1050 builder->fsCodeAppendf("\t\t}\n"); 1050 builder->fsCodeAppendf("\t\t}\n");
1051 1051
1052 builder->fsCodeAppendf("\t\tvec2 proxyDims = vec2(2.0*threshold+1.0);\n"); 1052 builder->fsCodeAppendf("\t\tvec2 proxyDims = vec2(2.0*threshold+1.0);\n");
1053 builder->fsCodeAppendf("\t\tvec2 texCoord = translatedFragPos / proxyDims;\n "); 1053 builder->fsCodeAppendf("\t\tvec2 texCoord = translatedFragPos / proxyDims;\n ");
1054 1054
1055 builder->fsCodeAppendf("\t%s = ", outputColor); 1055 builder->fsCodeAppendf("\t%s = ", outputColor);
1056 builder->fsAppendTextureLookupAndModulate(inputColor, samplers[0], "texCoord "); 1056 builder->fsAppendTextureLookupAndModulate(inputColor, samplers[0], "texCoord ");
1057 builder->fsCodeAppend(";\n"); 1057 builder->fsCodeAppend(";\n");
1058 } 1058 }
1059 1059
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
1225 } else { 1225 } else {
1226 str->append("None"); 1226 str->append("None");
1227 } 1227 }
1228 str->append("))"); 1228 str->append("))");
1229 } 1229 }
1230 #endif 1230 #endif
1231 1231
1232 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkBlurMaskFilter) 1232 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkBlurMaskFilter)
1233 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurMaskFilterImpl) 1233 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurMaskFilterImpl)
1234 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 1234 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW
« no previous file with comments | « expectations/gm/ignored-tests.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698