Home | History | Annotate | Download | only in animator
      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 #if defined _WIN32
     35 #pragma warning ( push )
     36 // we are intentionally causing an overflow here
     37 //      (warning C4756: overflow in constant arithmetic)
     38 #pragma warning ( disable : 4756 )
     39 #endif
     40 
     41 bool SkDisplayNumber::getProperty(int index, SkScriptValue* value) const {
     42     SkScalar constant;
     43     switch (index) {
     44         case SK_PROPERTY(MAX_VALUE):
     45             constant = SK_ScalarMax;
     46         break;
     47         case SK_PROPERTY(MIN_VALUE):
     48             constant = SK_ScalarMin;
     49         break;
     50         case SK_PROPERTY(NEGATIVE_INFINITY):
     51             constant = -SK_ScalarInfinity;
     52         break;
     53         case SK_PROPERTY(NaN):
     54             constant = SK_ScalarNaN;
     55         break;
     56         case SK_PROPERTY(POSITIVE_INFINITY):
     57             constant = SK_ScalarInfinity;
     58         break;
     59         default:
     60             SkASSERT(0);
     61             return false;
     62     }
     63     value->fOperand.fScalar = constant;
     64     value->fType = SkType_Float;
     65     return true;
     66 }
     67 
     68 #if defined _WIN32
     69 #pragma warning ( pop )
     70 #endif
     71