11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2011 Google Inc. 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 */ 80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkOperand2_DEFINED 90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkOperand2_DEFINED 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkScalar.h" 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkOpArray; 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkString; 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectunion SkOperand2 { 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project enum OpType { 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project kNoType, 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project kS32 = 1, 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project kScalar = 2, 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project kString = 4, 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project kArray = 8, 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project kObject = 16 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project }; 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkOpArray* fArray; 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void* fObject; 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project size_t fReference; 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int32_t fS32; 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 SkScriptValue2 { 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project enum IsConstant { 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project kConstant, 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project kVariable 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project }; 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project enum IsWritten { 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project kUnwritten, 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project kWritten 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project }; 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkOperand2 fOperand; 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkOperand2::OpType fType : 8; 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project IsConstant fIsConstant : 8; 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project IsWritten fIsWritten : 8; 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkOpArray* getArray() { SkASSERT(fType == SkOperand2::kArray); return fOperand.fArray; } 470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void* getObject() { SkASSERT(fType == SkOperand2::kObject); return fOperand.fObject; } 480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int32_t getS32() { SkASSERT(fType == SkOperand2::kS32); return fOperand.fS32; } 490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkScalar getScalar() { SkASSERT(fType == SkOperand2::kScalar); return fOperand.fScalar; } 500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkString* getString() { SkASSERT(fType == SkOperand2::kString); return fOperand.fString; } 510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project bool isConstant() const { return fIsConstant == kConstant; } 520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif // SkOperand2_DEFINED 55