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 #include "SkDisplayNumber.h" 11 12 enum SkDisplayNumber_Properties { 13 SK_PROPERTY(MAX_VALUE), 14 SK_PROPERTY(MIN_VALUE), 15 SK_PROPERTY(NEGATIVE_INFINITY), 16 SK_PROPERTY(NaN), 17 SK_PROPERTY(POSITIVE_INFINITY) 18 }; 19 20 #if SK_USE_CONDENSED_INFO == 0 21 22 const SkMemberInfo SkDisplayNumber::fInfo[] = { 23 SK_MEMBER_PROPERTY(MAX_VALUE, Float), 24 SK_MEMBER_PROPERTY(MIN_VALUE, Float), 25 SK_MEMBER_PROPERTY(NEGATIVE_INFINITY, Float), 26 SK_MEMBER_PROPERTY(NaN, Float), 27 SK_MEMBER_PROPERTY(POSITIVE_INFINITY, Float) 28 }; 29 30 #endif 31 32 DEFINE_GET_MEMBER(SkDisplayNumber); 33 34 bool SkDisplayNumber::getProperty(int index, SkScriptValue* value) const { 35 SkScalar constant; 36 switch (index) { 37 case SK_PROPERTY(MAX_VALUE): 38 constant = SK_ScalarMax; 39 break; 40 case SK_PROPERTY(MIN_VALUE): 41 constant = SK_ScalarMin; 42 break; 43 case SK_PROPERTY(NEGATIVE_INFINITY): 44 constant = -SK_ScalarInfinity; 45 break; 46 case SK_PROPERTY(NaN): 47 constant = SK_ScalarNaN; 48 break; 49 case SK_PROPERTY(POSITIVE_INFINITY): 50 constant = SK_ScalarInfinity; 51 break; 52 default: 53 SkASSERT(0); 54 return false; 55 } 56 value->fOperand.fScalar = constant; 57 value->fType = SkType_Float; 58 return true; 59 } 60