Add text rendering related overrides to Viewer.
This combines the AAA and DAA settings into one Antialias setting which
also exposes alias and normal settings. It also fixes restoring the AAA
and DAA global state when not overriding.
This adds hinting, subpixel positioning, and subpixel rendering
tri-state toggles as well.
Change-Id: I845fa5be1fed4142e82796e6ef417b276fa76111
Reviewed-on: https://skia-review.googlesource.com/106761
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
diff --git a/tools/viewer/Viewer.h b/tools/viewer/Viewer.h
index 5067952..e4679e4 100644
--- a/tools/viewer/Viewer.h
+++ b/tools/viewer/Viewer.h
@@ -37,6 +37,45 @@
bool onKey(sk_app::Window::Key key, sk_app::Window::InputState state, uint32_t modifiers) override;
bool onChar(SkUnichar c, uint32_t modifiers) override;
+ struct SkPaintFields {
+ bool fTypeface = false;
+ bool fPathEffect = false;
+ bool fShader = false;
+ bool fMaskFilter = false;
+ bool fColorFilter = false;
+ bool fDrawLooper = false;
+ bool fImageFilter = false;
+
+ bool fTextSize = false;
+ bool fTextScaleX = false;
+ bool fTextSkewX = false;
+ bool fColor = false;
+ bool fWidth = false;
+ bool fMiterLimit = false;
+ bool fBlendMode = false;
+
+ uint32_t fFlags = 0;
+ enum class AntiAliasState {
+ Alias,
+ Normal,
+ AnalyticAAEnabled,
+ AnalyticAAForced,
+ DeltaAAEnabled,
+ DeltaAAForced,
+ } fAntiAlias = AntiAliasState::Alias;
+ bool fOriginalSkUseAnalyticAA = false;
+ bool fOriginalSkForceAnalyticAA = false;
+ bool fOriginalSkUseDeltaAA = false;
+ bool fOriginalSkForceDeltaAA = false;
+
+ bool fTextAlign = false;
+ bool fCapType = false;
+ bool fJoinType = false;
+ bool fStyle = false;
+ bool fTextEncoding = false;
+ bool fHinting = false;
+ bool fFilterQuality = false;
+ };
private:
enum class ColorMode {
kLegacy, // N32, no color management
@@ -121,6 +160,9 @@
int fTileCnt;
int fThreadCnt;
std::unique_ptr<SkExecutor> fExecutor;
+
+ SkPaint fPaint;
+ SkPaintFields fPaintOverrides;
};