blob: f7d8bee0897a4fc37d602e9f7cefbacd125f0b23 [file] [log] [blame]
joshualitt1acabf32015-12-10 09:10:10 -08001/*
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
17struct 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
25private:
26 void buildDistanceAdjustTable();
27
28 SkScalar* fTable;
29};
30
31#endif