diff options
author | 2015-07-29 10:14:58 -0700 | |
---|---|---|
committer | 2015-07-29 10:14:58 -0700 | |
commit | aa2f65818dd626f87bb011c993a03015eb29db50 (patch) | |
tree | ce5cf2d9e535da2bdd470a3521e62b30f05bfd5f /src/fonts/SkRandomScalerContext.h | |
parent | 1e8a58b5680508c241f25f03af5b57502221f215 (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.h | 54 |
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 |