1f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 2f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger/* 3f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * Copyright 2006 The Android Open Source Project 4f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * 5f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 6f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * found in the LICENSE file. 7f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger */ 8f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 9f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 10f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#ifndef SkOperand_DEFINED 11f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#define SkOperand_DEFINED 12f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 13f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#include "SkDisplayType.h" 14f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 15f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerclass SkTypedArray; 16f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerclass SkDisplayable; 17f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerclass SkDrawable; 18f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerclass SkString; 19f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 20f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerunion SkOperand { 21f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger// SkOperand() {} 22f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger// SkOperand(SkScalar scalar) : fScalar(scalar) {} 23f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkTypedArray* fArray; 24f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkDisplayable* fDisplayable; 25f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkDrawable* fDrawable; 26f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger void* fObject; 27f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger int32_t fS32; 28f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkMSec fMSec; 29f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkScalar fScalar; 30f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkString* fString; 31f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger}; 32f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 33f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerstruct SkScriptValue { 34f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkOperand fOperand; 35f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkDisplayTypes fType; 36f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkTypedArray* getArray() { SkASSERT(fType == SkType_Array); return fOperand.fArray; } 37f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkDisplayable* getDisplayable() { SkASSERT(fType == SkType_Displayable); return fOperand.fDisplayable; } 38f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkDrawable* getDrawable() { SkASSERT(fType == SkType_Drawable); return fOperand.fDrawable; } 39f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger int32_t getS32(SkAnimateMaker* maker) { SkASSERT(fType == SkType_Int || fType == SkType_Boolean || 40f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkDisplayType::IsEnum(maker, fType)); return fOperand.fS32; } 41f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkMSec getMSec() { SkASSERT(fType == SkType_MSec); return fOperand.fMSec; } 42f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkScalar getScalar() { SkASSERT(fType == SkType_Float); return fOperand.fScalar; } 43f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkString* getString() { SkASSERT(fType == SkType_String); return fOperand.fString; } 44f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger}; 45f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 46f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#endif // SkOperand_DEFINED 47