• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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> {
GrDistanceFieldAdjustTableGrDistanceFieldAdjustTable18     GrDistanceFieldAdjustTable() { this->buildDistanceAdjustTable(); }
~GrDistanceFieldAdjustTableGrDistanceFieldAdjustTable19     ~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