rsMesh.h revision a5597fcd411badad50c1345b3eca26453da45bbb
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:
32a89371c6f144b9049efe7689105feee2c4a38384Jason Sams    Mesh();
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;
45a89371c6f144b9049efe7689105feee2c4a38384Jason 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;
60a89371c6f144b9049efe7689105feee2c4a38384Jason Sams    };
61a89371c6f144b9049efe7689105feee2c4a38384Jason Sams
62a5597fcd411badad50c1345b3eca26453da45bbbJason Sams    Verticies_t * mVerticies;
63a5597fcd411badad50c1345b3eca26453da45bbbJason Sams    uint32_t mVerticiesCount;
64a5597fcd411badad50c1345b3eca26453da45bbbJason Sams
65a5597fcd411badad50c1345b3eca26453da45bbbJason Sams    Primitive_t ** mPrimitives;
66a5597fcd411badad50c1345b3eca26453da45bbbJason Sams    uint32_t mPrimitivesCount;
67a5597fcd411badad50c1345b3eca26453da45bbbJason Sams
68a5597fcd411badad50c1345b3eca26453da45bbbJason Sams
69a89371c6f144b9049efe7689105feee2c4a38384Jason Sams
70a89371c6f144b9049efe7689105feee2c4a38384Jason Sams    void analyzeElement();
71a89371c6f144b9049efe7689105feee2c4a38384Jason Samsprotected:
72a89371c6f144b9049efe7689105feee2c4a38384Jason Sams};
73a89371c6f144b9049efe7689105feee2c4a38384Jason Sams
74a89371c6f144b9049efe7689105feee2c4a38384Jason Samsclass MeshContext
75a89371c6f144b9049efe7689105feee2c4a38384Jason Sams{
76a89371c6f144b9049efe7689105feee2c4a38384Jason Samspublic:
77a89371c6f144b9049efe7689105feee2c4a38384Jason Sams    MeshContext();
78a89371c6f144b9049efe7689105feee2c4a38384Jason Sams    ~MeshContext();
79a89371c6f144b9049efe7689105feee2c4a38384Jason Sams
80a89371c6f144b9049efe7689105feee2c4a38384Jason Sams};
81a89371c6f144b9049efe7689105feee2c4a38384Jason Sams
82a89371c6f144b9049efe7689105feee2c4a38384Jason Sams
83a89371c6f144b9049efe7689105feee2c4a38384Jason Sams}
84a89371c6f144b9049efe7689105feee2c4a38384Jason Sams}
85a89371c6f144b9049efe7689105feee2c4a38384Jason Sams#endif //ANDROID_RS_TRIANGLE_MESH_H
86a89371c6f144b9049efe7689105feee2c4a38384Jason Sams
87a89371c6f144b9049efe7689105feee2c4a38384Jason Sams
88