1718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams/* 2718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * Copyright (C) 2009 The Android Open Source Project 3718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * 4718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * you may not use this file except in compliance with the License. 6718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * You may obtain a copy of the License at 7718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * 8718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 9718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * 10718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * Unless required by applicable law or agreed to in writing, software 11718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * See the License for the specific language governing permissions and 14718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams * limitations under the License. 15718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams */ 16718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 17718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams#ifndef ANDROID_COMPONENT_H 18718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams#define ANDROID_COMPONENT_H 19718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 20718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams#include "rsUtils.h" 21718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 22718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams// --------------------------------------------------------------------------- 23718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Samsnamespace android { 24718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Samsnamespace renderscript { 25718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 26718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 27718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams// An element is a group of Components that occupies one cell in a structure. 28ed9f210568082dd6d1d8a0c92c693d574d87d545Alex Sakhartchoukclass Component { 29718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Samspublic: 30718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams Component(); 31718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams ~Component(); 32718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 33718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams void set(RsDataType dt, RsDataKind dk, bool norm, uint32_t vecSize=1); 34718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 35718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams void dumpLOGV(const char *prefix) const; 36718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 37718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams RsDataType getType() const {return mType;} 38718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams RsDataKind getKind() const {return mKind;} 39718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams bool getIsNormalized() const {return mNormalized;} 40718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams uint32_t getVectorSize() const {return mVectorSize;} 41718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams bool getIsFloat() const {return mIsFloat;} 42718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams bool getIsSigned() const {return mIsSigned;} 43718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams uint32_t getBits() const {return mBits;} 44718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 45aa7d2884cb563f87294003981e03e37a1abeb961Alex Sakhartchouk // Helpers for reading / writing this class out 46aa7d2884cb563f87294003981e03e37a1abeb961Alex Sakhartchouk void serialize(OStream *stream) const; 47aa7d2884cb563f87294003981e03e37a1abeb961Alex Sakhartchouk void loadFromStream(IStream *stream); 48aa7d2884cb563f87294003981e03e37a1abeb961Alex Sakhartchouk 49b28ca96fd69be0d3d12106f81c415439d185b017Jason Sams bool isReference() const; 50b28ca96fd69be0d3d12106f81c415439d185b017Jason Sams 51718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Samsprotected: 52718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams RsDataType mType; 53718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams RsDataKind mKind; 54718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams bool mNormalized; 55718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams uint32_t mVectorSize; 56718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 57718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams // derived 58718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams uint32_t mBits; 59718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams uint32_t mTypeBits; 60718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams bool mIsFloat; 61718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams bool mIsSigned; 62718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams bool mIsPixel; 63718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams}; 64718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 65718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams} 66718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams} 67718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 68718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams#endif 69718cd1f322ee5b62b6a49cb36195bcb18a5ab711Jason Sams 70