11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project
41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */
81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayNumber.h"
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectenum SkDisplayNumber_Properties {
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SK_PROPERTY(MAX_VALUE),
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SK_PROPERTY(MIN_VALUE),
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SK_PROPERTY(NEGATIVE_INFINITY),
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SK_PROPERTY(NaN),
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SK_PROPERTY(POSITIVE_INFINITY)
180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkDisplayNumber::fInfo[] = {
230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SK_MEMBER_PROPERTY(MAX_VALUE, Float),
240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SK_MEMBER_PROPERTY(MIN_VALUE, Float),
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SK_MEMBER_PROPERTY(NEGATIVE_INFINITY, Float),
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SK_MEMBER_PROPERTY(NaN, Float),
270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SK_MEMBER_PROPERTY(POSITIVE_INFINITY, Float)
280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkDisplayNumber);
330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkDisplayNumber::getProperty(int index, SkScriptValue* value) const {
350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkScalar constant;
360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    switch (index) {
370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        case SK_PROPERTY(MAX_VALUE):
380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project            constant = SK_ScalarMax;
390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        break;
400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        case SK_PROPERTY(MIN_VALUE):
410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project            constant = SK_ScalarMin;
420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        break;
430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        case SK_PROPERTY(NEGATIVE_INFINITY):
440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project            constant = -SK_ScalarInfinity;
450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        break;
460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        case SK_PROPERTY(NaN):
470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project            constant = SK_ScalarNaN;
480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        break;
490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        case SK_PROPERTY(POSITIVE_INFINITY):
500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project            constant = SK_ScalarInfinity;
510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        break;
520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        default:
530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project            SkASSERT(0);
540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project            return false;
550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    }
560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    value->fOperand.fScalar = constant;
570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    value->fType = SkType_Float;
580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    return true;
590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}
60