aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJim Van Verth <jvanverth@google.com>2018-01-30 14:30:35 -0500
committerSkia Commit-Bot <skia-commit-bot@chromium.org>2018-01-30 20:08:45 +0000
commit10105308dc86dccd3d4a0c8b9863d7c749440b21 (patch)
tree12865f3f80d2da18ab5613b016a5d10ac91cc050 /src
parent537d9c0229b296a1b19f678432011d748d73cf18 (diff)
downloadskqp-10105308dc86dccd3d4a0c8b9863d7c749440b21.tar.gz
Reduce the amount of padding needed for SDFs, take 2
SDF glyphs and paths were padded by 4 pixels, and had an inset of 2 pixels within that for rendering the shape. We should be able to use a pad of 2, and outset the original bounds by one texel. This allows us to increase the maximum size in the atlas. Change-Id: I06b229c7a3bc907d75d320461320d0b588f9a77c Reviewed-on: https://skia-review.googlesource.com/101843 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/SkDistanceFieldGen.h9
-rw-r--r--src/gpu/ops/GrSmallPathRenderer.cpp2
-rw-r--r--src/gpu/text/GrAtlasTextContext.cpp6
3 files changed, 8 insertions, 9 deletions
diff --git a/src/core/SkDistanceFieldGen.h b/src/core/SkDistanceFieldGen.h
index 5e7af52a54..16ed00ab5a 100644
--- a/src/core/SkDistanceFieldGen.h
+++ b/src/core/SkDistanceFieldGen.h
@@ -12,11 +12,10 @@
// the max magnitude for the distance field
// distance values are limited to the range (-SK_DistanceFieldMagnitude, SK_DistanceFieldMagnitude]
#define SK_DistanceFieldMagnitude 4
-// we need to pad around the original glyph to allow our maximum distance of
-// SK_DistanceFieldMagnitude texels away from any edge
-#define SK_DistanceFieldPad 4
-// the rect we render with is inset from the distance field glyph size to allow for bilerp
-#define SK_DistanceFieldInset 2
+// we need to pad around the original glyph to allow for bilerp sampling
+#define SK_DistanceFieldPad 2
+// the rect we render with is inset from the SDF size
+#define SK_DistanceFieldInset 1
// For the fragment shader:
// The distance field is constructed as unsigned char values,
diff --git a/src/gpu/ops/GrSmallPathRenderer.cpp b/src/gpu/ops/GrSmallPathRenderer.cpp
index 3e7da52230..0aca6f69d9 100644
--- a/src/gpu/ops/GrSmallPathRenderer.cpp
+++ b/src/gpu/ops/GrSmallPathRenderer.cpp
@@ -37,7 +37,7 @@ static int g_NumFreedShapes = 0;
// mip levels
static const SkScalar kIdealMinMIP = 12;
-static const SkScalar kMaxMIP = 162;
+static const SkScalar kMaxMIP = 166;
static const SkScalar kMaxDim = 73;
static const SkScalar kMinSize = SK_ScalarHalf;
diff --git a/src/gpu/text/GrAtlasTextContext.cpp b/src/gpu/text/GrAtlasTextContext.cpp
index 1dce4e0d44..70e032001f 100644
--- a/src/gpu/text/GrAtlasTextContext.cpp
+++ b/src/gpu/text/GrAtlasTextContext.cpp
@@ -23,9 +23,9 @@
// which we switch over to drawing as paths as controlled by Options.
static const int kSmallDFFontSize = 32;
static const int kSmallDFFontLimit = 32;
-static const int kMediumDFFontSize = 72;
-static const int kMediumDFFontLimit = 72;
-static const int kLargeDFFontSize = 162;
+static const int kMediumDFFontSize = 74;
+static const int kMediumDFFontLimit = 74;
+static const int kLargeDFFontSize = 166;
static const int kDefaultMinDistanceFieldFontSize = 18;
#ifdef SK_BUILD_FOR_ANDROID