OLD | NEW |
| (Empty) |
1 | |
2 /* | |
3 * Copyright 2008 The Android Open Source Project | |
4 * | |
5 * Use of this source code is governed by a BSD-style license that can be | |
6 * found in the LICENSE file. | |
7 */ | |
8 | |
9 | |
10 #ifndef SkUnitMappers_DEFINED | |
11 #define SkUnitMappers_DEFINED | |
12 | |
13 #include "SkUnitMapper.h" | |
14 | |
15 /** This discretizes the range [0...1) into N discret values. | |
16 */ | |
17 class SkDiscreteMapper : public SkUnitMapper { | |
18 public: | |
19 SkDiscreteMapper(int segments); | |
20 // override from SkUnitMapper | |
21 virtual uint16_t mapUnit16(uint16_t x); | |
22 | |
23 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscreteMapper) | |
24 | |
25 protected: | |
26 SkDiscreteMapper(SkReadBuffer& ); | |
27 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE; | |
28 | |
29 private: | |
30 int fSegments; | |
31 int32_t fScale; // computed from fSegments | |
32 | |
33 typedef SkUnitMapper INHERITED; | |
34 }; | |
35 | |
36 /** This returns cos(x), to simulate lighting a sphere, where 0 maps to the | |
37 center of the sphere, and 1 maps to the edge. | |
38 */ | |
39 class SkCosineMapper : public SkUnitMapper { | |
40 public: | |
41 SkCosineMapper() {} | |
42 // override from SkUnitMapper | |
43 virtual uint16_t mapUnit16(uint16_t x); | |
44 | |
45 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkCosineMapper) | |
46 | |
47 protected: | |
48 SkCosineMapper(SkReadBuffer&); | |
49 | |
50 private: | |
51 | |
52 typedef SkUnitMapper INHERITED; | |
53 }; | |
54 | |
55 #endif | |
OLD | NEW |