• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2009 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef ANDROID_STRUCTURED_ELEMENT_H
18 #define ANDROID_STRUCTURED_ELEMENT_H
19 
20 #include "rsComponent.h"
21 
22 // ---------------------------------------------------------------------------
23 namespace android {
24 namespace renderscript {
25 
26 
27 // An element is a group of Components that occupies one cell in a structure.
28 class Element : public ObjectBase
29 {
30 public:
31     Element(Context *, uint32_t count);
32     ~Element();
33 
34 
35     void setComponent(uint32_t idx, Component *c);
36 
37     uint32_t getGLType() const;
38     uint32_t getGLFormat() const;
39 
40 
41     size_t getSizeBits() const;
getSizeBytes()42     size_t getSizeBytes() const {
43         return (getSizeBits() + 7) >> 3;
44     }
45 
46     size_t getComponentOffsetBits(uint32_t componentNumber) const;
getComponentOffsetBytes(uint32_t componentNumber)47     size_t getComponentOffsetBytes(uint32_t componentNumber) const {
48         return (getComponentOffsetBits(componentNumber) + 7) >> 3;
49     }
50 
getComponentCount()51     uint32_t getComponentCount() const {return mComponentCount;}
getComponent(uint32_t idx)52     Component * getComponent(uint32_t idx) const {return mComponents[idx].get();}
53 
54 
55     void dumpLOGV(const char *prefix) const;
56 
57 protected:
58     // deallocate any components that are part of this element.
59     void clear();
60 
61     size_t mComponentCount;
62     ObjectBaseRef<Component> * mComponents;
63     //uint32_t *mOffsetTable;
64 
65     Element(Context *);
66 };
67 
68 
69 class ElementState {
70 public:
71     ElementState();
72     ~ElementState();
73 
74     Vector<Component *> mComponentBuildList;
75 };
76 
77 
78 }
79 }
80 #endif //ANDROID_STRUCTURED_ELEMENT_H
81