aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/fonts/SkRandomScalerContext.h
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2015-07-29 10:14:58 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-07-29 10:14:58 -0700
commitaa2f65818dd626f87bb011c993a03015eb29db50 (patch)
treece5cf2d9e535da2bdd470a3521e62b30f05bfd5f /src/fonts/SkRandomScalerContext.h
parent1e8a58b5680508c241f25f03af5b57502221f215 (diff)
Adding debug SkScalerContext which returns random mask formats
TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1260473004
Diffstat (limited to 'src/fonts/SkRandomScalerContext.h')
-rw-r--r--src/fonts/SkRandomScalerContext.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/fonts/SkRandomScalerContext.h b/src/fonts/SkRandomScalerContext.h
new file mode 100644
index 0000000000..8ad22beff0
--- /dev/null
+++ b/src/fonts/SkRandomScalerContext.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SkRandomScalerContext_DEFINED
+#define SkRandomScalerContext_DEFINED
+
+#include "SkScalerContext.h"
+#include "SkTypeface.h"
+
+/*
+ * This scaler context is for debug only purposes. It will 'randomly' but deterministically return
+ * LCD / A8 / BW / RBGA masks based off of the Glyph ID
+ */
+
+class SkRandomTypeface : public SkTypeface {
+public:
+ SkRandomTypeface(SkTypeface* proxy, const SkPaint&);
+ virtual ~SkRandomTypeface();
+
+ SkTypeface* proxy() const { return fProxy; }
+ const SkPaint& paint() const { return fPaint; }
+
+protected:
+ SkScalerContext* onCreateScalerContext(const SkDescriptor*) const override;
+ void onFilterRec(SkScalerContextRec*) const override;
+ SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics(
+ PerGlyphInfo,
+ const uint32_t* glyphIDs,
+ uint32_t glyphIDsCount) const override;
+ SkStreamAsset* onOpenStream(int* ttcIndex) const override;
+ void onGetFontDescriptor(SkFontDescriptor*, bool* isLocal) const override;
+
+ int onCharsToGlyphs(const void* chars, Encoding encoding,
+ uint16_t glyphs[], int glyphCount) const override;
+ int onCountGlyphs() const override;
+ int onGetUPEM() const override;
+
+ void onGetFamilyName(SkString* familyName) const override;
+ SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const override;
+
+ int onGetTableTags(SkFontTableTag tags[]) const override;
+ size_t onGetTableData(SkFontTableTag, size_t offset,
+ size_t length, void* data) const override;
+
+private:
+ SkTypeface* fProxy;
+ SkPaint fPaint;
+};
+
+#endif