1*e1eccf28SAndroid Build Coastguard Worker /* 2*e1eccf28SAndroid Build Coastguard Worker * Copyright (C) 2009 The Android Open Source Project 3*e1eccf28SAndroid Build Coastguard Worker * 4*e1eccf28SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*e1eccf28SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*e1eccf28SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*e1eccf28SAndroid Build Coastguard Worker * 8*e1eccf28SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*e1eccf28SAndroid Build Coastguard Worker * 10*e1eccf28SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*e1eccf28SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*e1eccf28SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*e1eccf28SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*e1eccf28SAndroid Build Coastguard Worker * limitations under the License. 15*e1eccf28SAndroid Build Coastguard Worker */ 16*e1eccf28SAndroid Build Coastguard Worker 17*e1eccf28SAndroid Build Coastguard Worker #ifndef ANDROID_COMPONENT_H 18*e1eccf28SAndroid Build Coastguard Worker #define ANDROID_COMPONENT_H 19*e1eccf28SAndroid Build Coastguard Worker 20*e1eccf28SAndroid Build Coastguard Worker #include "rsUtils.h" 21*e1eccf28SAndroid Build Coastguard Worker #include "rsDefines.h" 22*e1eccf28SAndroid Build Coastguard Worker #include "rsStream.h" 23*e1eccf28SAndroid Build Coastguard Worker // --------------------------------------------------------------------------- 24*e1eccf28SAndroid Build Coastguard Worker namespace android { 25*e1eccf28SAndroid Build Coastguard Worker namespace renderscript { 26*e1eccf28SAndroid Build Coastguard Worker 27*e1eccf28SAndroid Build Coastguard Worker 28*e1eccf28SAndroid Build Coastguard Worker // An element is a group of Components that occupies one cell in a structure. 29*e1eccf28SAndroid Build Coastguard Worker class Component { 30*e1eccf28SAndroid Build Coastguard Worker public: 31*e1eccf28SAndroid Build Coastguard Worker Component(); 32*e1eccf28SAndroid Build Coastguard Worker ~Component(); 33*e1eccf28SAndroid Build Coastguard Worker 34*e1eccf28SAndroid Build Coastguard Worker void set(RsDataType dt, RsDataKind dk, bool norm, uint32_t vecSize=1); 35*e1eccf28SAndroid Build Coastguard Worker 36*e1eccf28SAndroid Build Coastguard Worker void dumpLOGV(const char *prefix) const; 37*e1eccf28SAndroid Build Coastguard Worker getType()38*e1eccf28SAndroid Build Coastguard Worker RsDataType getType() const {return mType;} getKind()39*e1eccf28SAndroid Build Coastguard Worker RsDataKind getKind() const {return mKind;} getIsNormalized()40*e1eccf28SAndroid Build Coastguard Worker bool getIsNormalized() const {return mNormalized;} getVectorSize()41*e1eccf28SAndroid Build Coastguard Worker uint32_t getVectorSize() const {return mVectorSize;} getIsFloat()42*e1eccf28SAndroid Build Coastguard Worker bool getIsFloat() const {return mIsFloat;} getIsSigned()43*e1eccf28SAndroid Build Coastguard Worker bool getIsSigned() const {return mIsSigned;} getBits()44*e1eccf28SAndroid Build Coastguard Worker uint32_t getBits() const {return mBits;} getBitsUnpadded()45*e1eccf28SAndroid Build Coastguard Worker uint32_t getBitsUnpadded() const {return mBitsUnpadded;} 46*e1eccf28SAndroid Build Coastguard Worker 47*e1eccf28SAndroid Build Coastguard Worker // Helpers for reading / writing this class out 48*e1eccf28SAndroid Build Coastguard Worker void serialize(OStream *stream) const; 49*e1eccf28SAndroid Build Coastguard Worker void loadFromStream(IStream *stream); 50*e1eccf28SAndroid Build Coastguard Worker 51*e1eccf28SAndroid Build Coastguard Worker bool isReference() const; 52*e1eccf28SAndroid Build Coastguard Worker 53*e1eccf28SAndroid Build Coastguard Worker protected: 54*e1eccf28SAndroid Build Coastguard Worker RsDataType mType; 55*e1eccf28SAndroid Build Coastguard Worker RsDataKind mKind; 56*e1eccf28SAndroid Build Coastguard Worker bool mNormalized; 57*e1eccf28SAndroid Build Coastguard Worker uint32_t mVectorSize; 58*e1eccf28SAndroid Build Coastguard Worker 59*e1eccf28SAndroid Build Coastguard Worker // derived 60*e1eccf28SAndroid Build Coastguard Worker uint32_t mBits; 61*e1eccf28SAndroid Build Coastguard Worker uint32_t mBitsUnpadded; 62*e1eccf28SAndroid Build Coastguard Worker uint32_t mTypeBits; 63*e1eccf28SAndroid Build Coastguard Worker bool mIsFloat; 64*e1eccf28SAndroid Build Coastguard Worker bool mIsSigned; 65*e1eccf28SAndroid Build Coastguard Worker bool mIsPixel; 66*e1eccf28SAndroid Build Coastguard Worker }; 67*e1eccf28SAndroid Build Coastguard Worker 68*e1eccf28SAndroid Build Coastguard Worker } // namespace renderscript 69*e1eccf28SAndroid Build Coastguard Worker } // namespace android 70*e1eccf28SAndroid Build Coastguard Worker 71*e1eccf28SAndroid Build Coastguard Worker #endif 72*e1eccf28SAndroid Build Coastguard Worker 73