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