gfx/skia/trunk/include/utils/SkUnitMappers.h

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:c92677b9e75b
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

mercurial