Home | History | Annotate | Download | only in text
      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 GrDistanceFieldAdjustTable_DEFINED
      9 #define GrDistanceFieldAdjustTable_DEFINED
     10 
     11 #include "SkRefCnt.h"
     12 #include "SkScalar.h"
     13 
     14 // Distance field text needs this table to compute a value for use in the fragment shader.
     15 // Because the GrAtlasTextContext can go out of scope before the final flush, this needs to be
     16 // refcnted and malloced
     17 struct GrDistanceFieldAdjustTable : public SkNVRefCnt<GrDistanceFieldAdjustTable> {
     18     GrDistanceFieldAdjustTable() { this->buildDistanceAdjustTable(); }
     19     ~GrDistanceFieldAdjustTable() { delete[] fTable; }
     20 
     21     const SkScalar& operator[] (int i) const {
     22         return fTable[i];
     23     }
     24 
     25 private:
     26     void buildDistanceAdjustTable();
     27 
     28     SkScalar* fTable;
     29 };
     30 
     31 #endif
     32