Home | History | Annotate | Download | only in tools
      1 /*
      2  * Copyright 2015 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #ifndef SkRandomScalerContext_DEFINED
      9 #define SkRandomScalerContext_DEFINED
     10 
     11 #include "SkScalerContext.h"
     12 #include "SkTypeface.h"
     13 
     14 /*
     15  * This scaler context is for debug only purposes.  It will 'randomly' but deterministically return
     16  * LCD / A8 / BW / RBGA masks based off of the Glyph ID
     17  */
     18 
     19 class SkRandomTypeface : public SkTypeface {
     20 public:
     21     SkRandomTypeface(sk_sp<SkTypeface> proxy, const SkPaint&, bool fakeit);
     22 
     23     SkTypeface* proxy() const { return fProxy.get(); }
     24     const SkPaint& paint() const { return fPaint; }
     25 
     26 protected:
     27     SkScalerContext* onCreateScalerContext(const SkScalerContextEffects&,
     28                                            const SkDescriptor*) const override;
     29     void onFilterRec(SkScalerContextRec*) const override;
     30     std::unique_ptr<SkAdvancedTypefaceMetrics> onGetAdvancedMetrics() const override;
     31     SkStreamAsset* onOpenStream(int* ttcIndex) const override;
     32     void onGetFontDescriptor(SkFontDescriptor*, bool* isLocal) const override;
     33 
     34     int onCharsToGlyphs(const void* chars, Encoding encoding,
     35                         uint16_t glyphs[], int glyphCount) const override;
     36     int onCountGlyphs() const override;
     37     int onGetUPEM() const override;
     38 
     39     void onGetFamilyName(SkString* familyName) const override;
     40     SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const override;
     41 
     42     int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[],
     43                                      int coordinateCount) const override;
     44     int onGetTableTags(SkFontTableTag tags[]) const override;
     45     size_t onGetTableData(SkFontTableTag, size_t offset,
     46                           size_t length, void* data) const override;
     47 
     48 private:
     49     sk_sp<SkTypeface>   fProxy;
     50     SkPaint             fPaint;
     51     bool                fFakeIt;
     52 };
     53 
     54 #endif
     55