11bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams/* 21bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * Copyright (C) 2009 The Android Open Source Project 31bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * 41bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 51bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * you may not use this file except in compliance with the License. 61bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * You may obtain a copy of the License at 71bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * 81bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * http://www.apache.org/licenses/LICENSE-2.0 91bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * 101bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * Unless required by applicable law or agreed to in writing, software 111bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 121bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * See the License for the specific language governing permissions and 141bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams * limitations under the License. 151bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams */ 161bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 171bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams#ifndef ANDROID_RS_SIMPLE_MESH_H 181bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams#define ANDROID_RS_SIMPLE_MESH_H 191bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 201bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 211bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams#include "RenderScript.h" 221bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 231bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams// --------------------------------------------------------------------------- 241bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samsnamespace android { 251bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samsnamespace renderscript { 261bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 271bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 281bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams// An element is a group of Components that occupies one cell in a structure. 291bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samsclass SimpleMesh : public ObjectBase 301bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams{ 311bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samspublic: 32a9e7a05b84470257637c97d65f6562aa832c66efJason Sams SimpleMesh(Context *); 331bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams ~SimpleMesh(); 341bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 351bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams ObjectBaseRef<const Type> mIndexType; 361bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams ObjectBaseRef<const Type> mPrimitiveType; 371bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams ObjectBaseRef<const Type> *mVertexTypes; 381bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams uint32_t mVertexTypeCount; 391bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 401bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams ObjectBaseRef<Allocation> mIndexBuffer; 411bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams ObjectBaseRef<Allocation> mPrimitiveBuffer; 421bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams ObjectBaseRef<Allocation> *mVertexBuffers; 431bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 441bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams RsPrimitive mPrimitive; 451bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams uint32_t mGLPrimitive; 461bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 471bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 48bb51c40d89c7dbdee7d7507fdfe0a64e8f4f87a9Jason Sams void render(Context *) const; 49bb51c40d89c7dbdee7d7507fdfe0a64e8f4f87a9Jason Sams void renderRange(Context *, uint32_t start, uint32_t len) const; 50bb51c40d89c7dbdee7d7507fdfe0a64e8f4f87a9Jason Sams void uploadAll(Context *); 511bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 521bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 531bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samsprotected: 541bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams}; 551bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 561bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samsclass SimpleMeshContext 571bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams{ 581bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samspublic: 591bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams SimpleMeshContext(); 601bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams ~SimpleMeshContext(); 611bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 621bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 631bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams}; 641bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 651bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 661bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams} 671bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams} 681bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams#endif //ANDROID_RS_SIMPLE_MESH_H 691bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 70