LCOV - code coverage report
Current view: top level - gfx/skia/skia/src/gpu/text - GrAtlasTextContext.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 2 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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 GrAtlasTextContext_DEFINED
       9             : #define GrAtlasTextContext_DEFINED
      10             : 
      11             : #include "GrAtlasTextBlob.h"
      12             : #include "GrDistanceFieldAdjustTable.h"
      13             : #include "GrGeometryProcessor.h"
      14             : #include "GrTextUtils.h"
      15             : #include "SkTextBlobRunIterator.h"
      16             : 
      17             : #if GR_TEST_UTILS
      18             : #include "GrDrawOpTest.h"
      19             : #endif
      20             : 
      21             : class GrDrawOp;
      22             : class GrRenderTargetContext;
      23             : class GrPipelineBuilder;
      24             : class GrTextBlobCache;
      25             : class SkGlyph;
      26             : 
      27             : /*
      28             :  * Renders text using some kind of an atlas, ie BitmapText or DistanceField text
      29             :  */
      30           0 : class GrAtlasTextContext {
      31             : public:
      32             :     static GrAtlasTextContext* Create();
      33             : 
      34             :     bool canDraw(const SkPaint&, const SkMatrix& viewMatrix, const SkSurfaceProps&,
      35             :                  const GrShaderCaps&);
      36             : 
      37             :     void drawText(GrContext*, GrRenderTargetContext*, const GrClip&, const SkPaint&,
      38             :                   const SkMatrix& viewMatrix, const SkSurfaceProps&, const char text[],
      39             :                   size_t byteLength, SkScalar x, SkScalar y, const SkIRect& regionClipBounds);
      40             :     void drawPosText(GrContext*, GrRenderTargetContext*, const GrClip&, const SkPaint&,
      41             :                      const SkMatrix& viewMatrix, const SkSurfaceProps&, const char text[],
      42             :                      size_t byteLength, const SkScalar pos[], int scalarsPerPosition,
      43             :                      const SkPoint& offset, const SkIRect& regionClipBounds);
      44             :     void drawTextBlob(GrContext*, GrRenderTargetContext*, const GrClip&, const SkPaint&,
      45             :                       const SkMatrix& viewMatrix, const SkSurfaceProps&, const SkTextBlob*,
      46             :                       SkScalar x, SkScalar y,
      47             :                       SkDrawFilter*, const SkIRect& clipBounds);
      48             : 
      49             : private:
      50             :     GrAtlasTextContext();
      51             : 
      52             :     // sets up the descriptor on the blob and returns a detached cache.  Client must attach
      53             :     inline static SkColor ComputeCanonicalColor(const SkPaint&, bool lcd);
      54             :     // Determines if we need to use fake gamma (and contrast boost):
      55             :     inline static uint32_t ComputeScalerContextFlags(GrRenderTargetContext*);
      56             :     static void RegenerateTextBlob(GrAtlasTextBlob* bmp,
      57             :                                    GrAtlasGlyphCache*,
      58             :                                    const GrShaderCaps&,
      59             :                                    const GrTextUtils::Paint&,
      60             :                                    uint32_t scalerContextFlags,
      61             :                                    const SkMatrix& viewMatrix,
      62             :                                    const SkSurfaceProps&,
      63             :                                    const SkTextBlob* blob, SkScalar x, SkScalar y,
      64             :                                    SkDrawFilter* drawFilter);
      65             :     inline static bool HasLCD(const SkTextBlob*);
      66             : 
      67             :     static inline sk_sp<GrAtlasTextBlob> MakeDrawTextBlob(GrTextBlobCache*, GrAtlasGlyphCache*,
      68             :                                                           const GrShaderCaps&,
      69             :                                                           const GrTextUtils::Paint&,
      70             :                                                           uint32_t scalerContextFlags,
      71             :                                                           const SkMatrix& viewMatrix,
      72             :                                                           const SkSurfaceProps&,
      73             :                                                           const char text[], size_t byteLength,
      74             :                                                           SkScalar x, SkScalar y);
      75             :     static inline sk_sp<GrAtlasTextBlob> MakeDrawPosTextBlob(GrTextBlobCache*, GrAtlasGlyphCache*,
      76             :                                                              const GrShaderCaps&,
      77             :                                                              const GrTextUtils::Paint&,
      78             :                                                              uint32_t scalerContextFlags,
      79             :                                                              const SkMatrix& viewMatrix,
      80             :                                                              const SkSurfaceProps&,
      81             :                                                              const char text[], size_t byteLength,
      82             :                                                              const SkScalar pos[],
      83             :                                                              int scalarsPerPosition,
      84             :                                                              const SkPoint& offset);
      85           0 :     const GrDistanceFieldAdjustTable* dfAdjustTable() const { return fDistanceAdjustTable.get(); }
      86             : 
      87             :     sk_sp<const GrDistanceFieldAdjustTable> fDistanceAdjustTable;
      88             : 
      89             : #if GR_TEST_UTILS
      90             :     static const uint32_t kTextBlobOpScalerContextFlags =
      91             :             SkPaint::kFakeGammaAndBoostContrast_ScalerContextFlags;
      92             :     DRAW_OP_TEST_FRIEND(TextBlobOp);
      93             : #endif
      94             : };
      95             : 
      96             : #endif

Generated by: LCOV version 1.13