rsMesh.h revision e514b45de8561fbc6ef6770845102ca10b0a69d7
1a89371c6f144b9049efe7689105feee2c4a38384Jason Sams/* 2a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * Copyright (C) 2009 The Android Open Source Project 3a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * 4a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * you may not use this file except in compliance with the License. 6a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * You may obtain a copy of the License at 7a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * 8a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 9a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * 10a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * Unless required by applicable law or agreed to in writing, software 11a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * See the License for the specific language governing permissions and 14a89371c6f144b9049efe7689105feee2c4a38384Jason Sams * limitations under the License. 15a89371c6f144b9049efe7689105feee2c4a38384Jason Sams */ 16a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 17a89371c6f144b9049efe7689105feee2c4a38384Jason Sams#ifndef ANDROID_RS_MESH_H 18a89371c6f144b9049efe7689105feee2c4a38384Jason Sams#define ANDROID_RS_MESH_H 19a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 20a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 21a89371c6f144b9049efe7689105feee2c4a38384Jason Sams#include "RenderScript.h" 22a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 23a89371c6f144b9049efe7689105feee2c4a38384Jason Sams// --------------------------------------------------------------------------- 24a89371c6f144b9049efe7689105feee2c4a38384Jason Samsnamespace android { 25a89371c6f144b9049efe7689105feee2c4a38384Jason Samsnamespace renderscript { 26a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 27a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 28a89371c6f144b9049efe7689105feee2c4a38384Jason Sams// An element is a group of Components that occupies one cell in a structure. 29a89371c6f144b9049efe7689105feee2c4a38384Jason Samsclass Mesh : public ObjectBase 30a89371c6f144b9049efe7689105feee2c4a38384Jason Sams{ 31a89371c6f144b9049efe7689105feee2c4a38384Jason Samspublic: 32e514b45de8561fbc6ef6770845102ca10b0a69d7Jason Sams Mesh(Context *); 33a89371c6f144b9049efe7689105feee2c4a38384Jason Sams ~Mesh(); 34a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 35a5597fcd411badad50c1345b3eca26453da45bbbJason Sams struct Verticies_t 36a89371c6f144b9049efe7689105feee2c4a38384Jason Sams { 37a5597fcd411badad50c1345b3eca26453da45bbbJason Sams Allocation ** mAllocations; 38a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint32_t mAllocationCount; 39a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 40a89371c6f144b9049efe7689105feee2c4a38384Jason Sams size_t mVertexDataSize; 41a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 42a89371c6f144b9049efe7689105feee2c4a38384Jason Sams size_t mOffsetCoord; 43a89371c6f144b9049efe7689105feee2c4a38384Jason Sams size_t mOffsetTex; 44a89371c6f144b9049efe7689105feee2c4a38384Jason Sams size_t mOffsetNorm; 45e514b45de8561fbc6ef6770845102ca10b0a69d7Jason Sams 46a89371c6f144b9049efe7689105feee2c4a38384Jason Sams size_t mSizeCoord; 47a89371c6f144b9049efe7689105feee2c4a38384Jason Sams size_t mSizeTex; 48a89371c6f144b9049efe7689105feee2c4a38384Jason Sams size_t mSizeNorm; 49a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 50a89371c6f144b9049efe7689105feee2c4a38384Jason Sams uint32_t mBufferObject; 51a89371c6f144b9049efe7689105feee2c4a38384Jason Sams }; 52a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 53a89371c6f144b9049efe7689105feee2c4a38384Jason Sams struct Primitive_t 54a89371c6f144b9049efe7689105feee2c4a38384Jason Sams { 55a89371c6f144b9049efe7689105feee2c4a38384Jason Sams RsPrimitive mType; 56a5597fcd411badad50c1345b3eca26453da45bbbJason Sams Verticies_t *mVerticies; 57a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 58a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint32_t mIndexCount; 59a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint16_t *mIndicies; 60b80dfa72dfdd146a9ddee948ad76635dbea3c0cdJason Sams 61b80dfa72dfdd146a9ddee948ad76635dbea3c0cdJason Sams uint32_t mRestartCounts; 62b80dfa72dfdd146a9ddee948ad76635dbea3c0cdJason Sams uint16_t *mRestarts; 63a89371c6f144b9049efe7689105feee2c4a38384Jason Sams }; 64a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 65a5597fcd411badad50c1345b3eca26453da45bbbJason Sams Verticies_t * mVerticies; 66a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint32_t mVerticiesCount; 67a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 68a5597fcd411badad50c1345b3eca26453da45bbbJason Sams Primitive_t ** mPrimitives; 69a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint32_t mPrimitivesCount; 70a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 71a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 72a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 73a89371c6f144b9049efe7689105feee2c4a38384Jason Sams void analyzeElement(); 74a89371c6f144b9049efe7689105feee2c4a38384Jason Samsprotected: 75a89371c6f144b9049efe7689105feee2c4a38384Jason Sams}; 76a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 77a89371c6f144b9049efe7689105feee2c4a38384Jason Samsclass MeshContext 78a89371c6f144b9049efe7689105feee2c4a38384Jason Sams{ 79a89371c6f144b9049efe7689105feee2c4a38384Jason Samspublic: 80a89371c6f144b9049efe7689105feee2c4a38384Jason Sams MeshContext(); 81a89371c6f144b9049efe7689105feee2c4a38384Jason Sams ~MeshContext(); 82a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 83a89371c6f144b9049efe7689105feee2c4a38384Jason Sams}; 84a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 85a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 86a89371c6f144b9049efe7689105feee2c4a38384Jason Sams} 87a89371c6f144b9049efe7689105feee2c4a38384Jason Sams} 88a89371c6f144b9049efe7689105feee2c4a38384Jason Sams#endif //ANDROID_RS_TRIANGLE_MESH_H 89a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 90a89371c6f144b9049efe7689105feee2c4a38384Jason Sams 91