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#ifndef SkOperand_DEFINED 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkOperand_DEFINED 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayType.h" 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkTypedArray; 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDisplayable; 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDrawable; 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkString; 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectunion SkOperand { 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// SkOperand() {} 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// SkOperand(SkScalar scalar) : fScalar(scalar) {} 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkTypedArray* fArray; 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayable* fDisplayable; 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDrawable* fDrawable; 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void* fObject; 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int32_t fS32; 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkMSec fMSec; 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkScalar fScalar; 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkString* fString; 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectstruct SkScriptValue { 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkOperand fOperand; 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayTypes fType; 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkTypedArray* getArray() { SkASSERT(fType == SkType_Array); return fOperand.fArray; } 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayable* getDisplayable() { SkASSERT(fType == SkType_Displayable); return fOperand.fDisplayable; } 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDrawable* getDrawable() { SkASSERT(fType == SkType_Drawable); return fOperand.fDrawable; } 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int32_t getS32(SkAnimateMaker* maker) { SkASSERT(fType == SkType_Int || fType == SkType_Boolean || 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayType::IsEnum(maker, fType)); return fOperand.fS32; } 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkMSec getMSec() { SkASSERT(fType == SkType_MSec); return fOperand.fMSec; } 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkScalar getScalar() { SkASSERT(fType == SkType_Float); return fOperand.fScalar; } 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkString* getString() { SkASSERT(fType == SkType_String); return fOperand.fString; } 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif // SkOperand_DEFINED 47