diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/include/utils/SkUnitMappers.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/include/utils/SkUnitMappers.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,55 @@ + +/* + * Copyright 2008 The Android Open Source Project + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + + +#ifndef SkUnitMappers_DEFINED +#define SkUnitMappers_DEFINED + +#include "SkUnitMapper.h" + +/** This discretizes the range [0...1) into N discret values. +*/ +class SkDiscreteMapper : public SkUnitMapper { +public: + SkDiscreteMapper(int segments); + // override from SkUnitMapper + virtual uint16_t mapUnit16(uint16_t x); + + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscreteMapper) + +protected: + SkDiscreteMapper(SkReadBuffer& ); + virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE; + +private: + int fSegments; + int32_t fScale; // computed from fSegments + + typedef SkUnitMapper INHERITED; +}; + +/** This returns cos(x), to simulate lighting a sphere, where 0 maps to the + center of the sphere, and 1 maps to the edge. +*/ +class SkCosineMapper : public SkUnitMapper { +public: + SkCosineMapper() {} + // override from SkUnitMapper + virtual uint16_t mapUnit16(uint16_t x); + + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkCosineMapper) + +protected: + SkCosineMapper(SkReadBuffer&); + +private: + + typedef SkUnitMapper INHERITED; +}; + +#endif