1 2 /* 3 * Copyright 2006 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 SkUnitMapper_DEFINED 11 #define SkUnitMapper_DEFINED 12 13 #include "SkRefCnt.h" 14 #include "SkScalar.h" 15 16 #include "SkFlattenable.h" 17 18 class SkUnitMapper : public SkFlattenable { 19 public: SK_DECLARE_INST_COUNT(SkUnitMapper)20 SK_DECLARE_INST_COUNT(SkUnitMapper) 21 22 SkUnitMapper() {} 23 24 /** Given a value in [0..0xFFFF], return a value in the same range. 25 */ 26 virtual uint16_t mapUnit16(uint16_t x) = 0; 27 SK_DEFINE_FLATTENABLE_TYPE(SkUnitMapper)28 SK_DEFINE_FLATTENABLE_TYPE(SkUnitMapper) 29 30 protected: 31 SkUnitMapper(SkFlattenableReadBuffer& rb) : SkFlattenable(rb) {} 32 33 private: 34 typedef SkFlattenable INHERITED; 35 }; 36 37 #endif 38