rsComponent.cpp revision 2d1220c27ae91f0b307f283fe66cb767b63dfe38
1d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams/* 2d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * Copyright (C) 2009 The Android Open Source Project 3d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * 4d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * you may not use this file except in compliance with the License. 6d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * You may obtain a copy of the License at 7d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * 8d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 9d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * 10d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * Unless required by applicable law or agreed to in writing, software 11d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * See the License for the specific language governing permissions and 14d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams * limitations under the License. 15d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams */ 16d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 17d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams#include "rsComponent.h" 18d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 19d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Samsusing namespace android; 20d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Samsusing namespace android::renderscript; 21d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 22afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex SakhartchoukComponent::Component() { 23d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams set(RS_TYPE_NONE, RS_KIND_USER, false, 1); 24d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams} 25d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 26afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex SakhartchoukComponent::~Component() { 27d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams} 28d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 29afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex Sakhartchoukvoid Component::set(RsDataType dt, RsDataKind dk, bool norm, uint32_t vecSize) { 30d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mType = dt; 31d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mKind = dk; 32d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mNormalized = norm; 33d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mVectorSize = vecSize; 34d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(vecSize <= 4); 35d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 36d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mBits = 0; 37d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 0; 38d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsFloat = false; 39d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsSigned = false; 40d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsPixel = false; 41d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 42afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex Sakhartchouk switch (mKind) { 43d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_KIND_PIXEL_L: 44d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_KIND_PIXEL_A: 45d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsPixel = true; 46d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mVectorSize == 1); 47d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mNormalized == true); 48d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 49d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_KIND_PIXEL_LA: 50d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsPixel = true; 51d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mVectorSize == 2); 52d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mNormalized == true); 53d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 54d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_KIND_PIXEL_RGB: 55d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsPixel = true; 56d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mVectorSize == 3); 57d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mNormalized == true); 58d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 59d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_KIND_PIXEL_RGBA: 60d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsPixel = true; 61d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mVectorSize == 4); 62d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mNormalized == true); 63d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 64d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams default: 65d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 66d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams } 67d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 68afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex Sakhartchouk switch (mType) { 69d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_NONE: 70d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams return; 71d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_UNSIGNED_5_6_5: 72d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mVectorSize = 3; 73d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mBits = 16; 74d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mNormalized = true; 75d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mKind == RS_KIND_PIXEL_RGB); 76d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams return; 77d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_UNSIGNED_5_5_5_1: 78d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mVectorSize = 4; 79d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mBits = 16; 80d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mNormalized = true; 81d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mKind == RS_KIND_PIXEL_RGBA); 82d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams return; 83d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_UNSIGNED_4_4_4_4: 84d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mVectorSize = 4; 85d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mBits = 16; 86d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mNormalized = true; 87d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mKind == RS_KIND_PIXEL_RGBA); 88d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams return; 8939cd317d983410055d780d00666f724c5faeaba9Jason Sams 9039cd317d983410055d780d00666f724c5faeaba9Jason Sams case RS_TYPE_MATRIX_4X4: 9139cd317d983410055d780d00666f724c5faeaba9Jason Sams mTypeBits = 16 * 32; 9239cd317d983410055d780d00666f724c5faeaba9Jason Sams rsAssert(mVectorSize == 1); 9339cd317d983410055d780d00666f724c5faeaba9Jason Sams rsAssert(mNormalized == false); 9439cd317d983410055d780d00666f724c5faeaba9Jason Sams rsAssert(mKind == RS_KIND_USER); 9539cd317d983410055d780d00666f724c5faeaba9Jason Sams break; 9639cd317d983410055d780d00666f724c5faeaba9Jason Sams case RS_TYPE_MATRIX_3X3: 9739cd317d983410055d780d00666f724c5faeaba9Jason Sams mTypeBits = 9 * 32; 9839cd317d983410055d780d00666f724c5faeaba9Jason Sams rsAssert(mVectorSize == 1); 9939cd317d983410055d780d00666f724c5faeaba9Jason Sams rsAssert(mNormalized == false); 10039cd317d983410055d780d00666f724c5faeaba9Jason Sams rsAssert(mKind == RS_KIND_USER); 10139cd317d983410055d780d00666f724c5faeaba9Jason Sams break; 10239cd317d983410055d780d00666f724c5faeaba9Jason Sams case RS_TYPE_MATRIX_2X2: 10339cd317d983410055d780d00666f724c5faeaba9Jason Sams mTypeBits = 4 * 32; 10439cd317d983410055d780d00666f724c5faeaba9Jason Sams rsAssert(mVectorSize == 1); 10539cd317d983410055d780d00666f724c5faeaba9Jason Sams rsAssert(mNormalized == false); 10639cd317d983410055d780d00666f724c5faeaba9Jason Sams rsAssert(mKind == RS_KIND_USER); 10739cd317d983410055d780d00666f724c5faeaba9Jason Sams break; 10839cd317d983410055d780d00666f724c5faeaba9Jason Sams 109d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_ELEMENT: 110d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_TYPE: 111d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_ALLOCATION: 112d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_SAMPLER: 113d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_SCRIPT: 114d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_MESH: 115d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_PROGRAM_FRAGMENT: 116d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_PROGRAM_VERTEX: 117d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_PROGRAM_RASTER: 118d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_PROGRAM_STORE: 119d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mVectorSize == 1); 120d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mNormalized == false); 121d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams rsAssert(mKind == RS_KIND_USER); 122d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mBits = 32; 123d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 32; 124d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams return; 125d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 126d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_FLOAT_16: 127d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 16; 128d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsFloat = true; 129d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 130d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_FLOAT_32: 131d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 32; 132d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsFloat = true; 133d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 134d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_FLOAT_64: 135d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 64; 136d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsFloat = true; 137d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 138d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_SIGNED_8: 139d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 8; 140d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsSigned = true; 141d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 142d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_SIGNED_16: 143d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 16; 144d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsSigned = true; 145d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 146d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_SIGNED_32: 147d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 32; 148d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsSigned = true; 149d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 150d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_SIGNED_64: 151d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 64; 152d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mIsSigned = true; 153d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 154d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_UNSIGNED_8: 155d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 8; 156d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 157d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_UNSIGNED_16: 158d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 16; 159d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 160d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_UNSIGNED_32: 161d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 32; 162d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 163d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams case RS_TYPE_UNSIGNED_64: 164d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams mTypeBits = 64; 165d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams break; 1665e9811f075f5a96925785a95afeda22592a840acJason Sams 1675e9811f075f5a96925785a95afeda22592a840acJason Sams case RS_TYPE_BOOLEAN: 1685e9811f075f5a96925785a95afeda22592a840acJason Sams mTypeBits = 8; 1695e9811f075f5a96925785a95afeda22592a840acJason Sams break; 170d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams } 171d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 1722d1220c27ae91f0b307f283fe66cb767b63dfe38Alex Sakhartchouk mBitsUnpadded = mTypeBits * mVectorSize; 1732d1220c27ae91f0b307f283fe66cb767b63dfe38Alex Sakhartchouk mBits = mTypeBits * rsHigherPow2(mVectorSize); 174d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams} 175d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 176afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex Sakhartchoukbool Component::isReference() const { 177e3929c9bc6f3897e132304faf1b40c3cf1f47474Jason Sams return (mType >= RS_TYPE_ELEMENT); 178e3929c9bc6f3897e132304faf1b40c3cf1f47474Jason Sams} 179d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 18039cd317d983410055d780d00666f724c5faeaba9Jason Samsstatic const char * gTypeBasicStrings[] = { 181d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "NONE", 182d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "F16", 183d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "F32", 184d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "F64", 185d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "S8", 186d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "S16", 187d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "S32", 188d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "S64", 189d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "U8", 190d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "U16", 191d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "U32", 192d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "U64", 1935e9811f075f5a96925785a95afeda22592a840acJason Sams "BOOLEAN", 194d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "UP_565", 195d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "UP_5551", 196d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "UP_4444", 19739cd317d983410055d780d00666f724c5faeaba9Jason Sams "MATRIX_4X4", 19839cd317d983410055d780d00666f724c5faeaba9Jason Sams "MATRIX_3X3", 19939cd317d983410055d780d00666f724c5faeaba9Jason Sams "MATRIX_2X2", 20039cd317d983410055d780d00666f724c5faeaba9Jason Sams}; 20139cd317d983410055d780d00666f724c5faeaba9Jason Sams 20239cd317d983410055d780d00666f724c5faeaba9Jason Samsstatic const char * gTypeObjStrings[] = { 203d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "ELEMENT", 204d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "TYPE", 205d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "ALLOCATION", 206d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "SAMPLER", 207d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "SCRIPT", 208d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "MESH", 209d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "PROGRAM_FRAGMENT", 210d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "PROGRAM_VERTEX", 211d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "PROGRAM_RASTER", 212d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "PROGRAM_STORE", 213d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams}; 214d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 215d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Samsstatic const char * gKindStrings[] = { 216d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "USER", 217d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "COLOR", 218d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "POSITION", 219d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "TEXTURE", 220d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "NORMAL", 221d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "INDEX", 222d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "POINT_SIZE", 223d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "PIXEL_L", 224d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "PIXEL_A", 225d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "PIXEL_LA", 226d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "PIXEL_RGB", 227d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams "PIXEL_RGBA", 228d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams}; 229d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 230afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex Sakhartchoukvoid Component::dumpLOGV(const char *prefix) const { 23139cd317d983410055d780d00666f724c5faeaba9Jason Sams if (mType >= RS_TYPE_ELEMENT) { 2326598201f1c4f409defac9a5af789fb53a7cc00f8Steve Block ALOGV("%s Component: %s, %s, vectorSize=%i, bits=%i", 23339cd317d983410055d780d00666f724c5faeaba9Jason Sams prefix, gTypeObjStrings[mType - RS_TYPE_ELEMENT], gKindStrings[mKind], mVectorSize, mBits); 23439cd317d983410055d780d00666f724c5faeaba9Jason Sams } else { 2356598201f1c4f409defac9a5af789fb53a7cc00f8Steve Block ALOGV("%s Component: %s, %s, vectorSize=%i, bits=%i", 23639cd317d983410055d780d00666f724c5faeaba9Jason Sams prefix, gTypeBasicStrings[mType], gKindStrings[mKind], mVectorSize, mBits); 23739cd317d983410055d780d00666f724c5faeaba9Jason Sams } 238d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams} 239d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 240afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex Sakhartchoukvoid Component::serialize(OStream *stream) const { 241fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk stream->addU8((uint8_t)mType); 242fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk stream->addU8((uint8_t)mKind); 243fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk stream->addU8((uint8_t)(mNormalized ? 1 : 0)); 244fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk stream->addU32(mVectorSize); 245fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk} 246fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk 247afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex Sakhartchoukvoid Component::loadFromStream(IStream *stream) { 248fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk mType = (RsDataType)stream->loadU8(); 249fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk mKind = (RsDataKind)stream->loadU8(); 250fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk uint8_t temp = stream->loadU8(); 251fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk mNormalized = temp != 0; 252fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk mVectorSize = stream->loadU32(); 253fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk 254fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk set(mType, mKind, mNormalized, mVectorSize); 255fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk} 256fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk 257fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk 258fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk 259d01d970cf5973aa5186cc02c80fb2c143a69b0b1Jason Sams 260