diff options
Diffstat (limited to 'linden/indra/llrender/llvertexbuffer.h')
-rw-r--r-- | linden/indra/llrender/llvertexbuffer.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/linden/indra/llrender/llvertexbuffer.h b/linden/indra/llrender/llvertexbuffer.h index 3031b2d..453f3ac 100644 --- a/linden/indra/llrender/llvertexbuffer.h +++ b/linden/indra/llrender/llvertexbuffer.h | |||
@@ -84,6 +84,7 @@ public: | |||
84 | 84 | ||
85 | static void initClass(bool use_vbo); | 85 | static void initClass(bool use_vbo); |
86 | static void cleanupClass(); | 86 | static void cleanupClass(); |
87 | static void setupClientArrays(U32 data_mask); | ||
87 | static void startRender(); //between start and stop render, no client copies will occur | 88 | static void startRender(); //between start and stop render, no client copies will occur |
88 | static void stopRender(); //any buffer not copied to GL will be rendered from client memory | 89 | static void stopRender(); //any buffer not copied to GL will be rendered from client memory |
89 | static void clientCopy(F64 max_time = 0.005); //copy data from client to GL | 90 | static void clientCopy(F64 max_time = 0.005); //copy data from client to GL |
@@ -123,6 +124,15 @@ public: | |||
123 | MAP_UNMAPPED = 0x8000 // Indicates that buffer has been logically un-mapped | 124 | MAP_UNMAPPED = 0x8000 // Indicates that buffer has been logically un-mapped |
124 | }; | 125 | }; |
125 | 126 | ||
127 | enum { | ||
128 | TRIANGLES = 0, | ||
129 | TRIANGLE_STRIP, | ||
130 | TRIANGLE_FAN, | ||
131 | POINTS, | ||
132 | LINES, | ||
133 | LINE_STRIP, | ||
134 | NUM_MODES | ||
135 | }; | ||
126 | protected: | 136 | protected: |
127 | friend class LLGLImmediate; | 137 | friend class LLGLImmediate; |
128 | 138 | ||
@@ -194,6 +204,9 @@ public: | |||
194 | 204 | ||
195 | void markDirty(U32 vert_index, U32 vert_count, U32 indices_index, U32 indices_count); | 205 | void markDirty(U32 vert_index, U32 vert_count, U32 indices_index, U32 indices_count); |
196 | 206 | ||
207 | void draw(U32 mode, U32 count, U32 indices_offset) const; | ||
208 | void drawRange(U32 mode, U32 start, U32 end, U32 count, U32 indices_offset) const; | ||
209 | |||
197 | protected: | 210 | protected: |
198 | S32 mNumVerts; // Number of vertices allocated | 211 | S32 mNumVerts; // Number of vertices allocated |
199 | S32 mNumIndices; // Number of indices allocated | 212 | S32 mNumIndices; // Number of indices allocated |
@@ -241,6 +254,7 @@ public: | |||
241 | 254 | ||
242 | static BOOL sEnableVBOs; | 255 | static BOOL sEnableVBOs; |
243 | static S32 sTypeOffsets[TYPE_MAX]; | 256 | static S32 sTypeOffsets[TYPE_MAX]; |
257 | static U32 sGLMode[NUM_MODES]; | ||
244 | static U32 sGLRenderBuffer; | 258 | static U32 sGLRenderBuffer; |
245 | static U32 sGLRenderIndices; | 259 | static U32 sGLRenderIndices; |
246 | static BOOL sVBOActive; | 260 | static BOOL sVBOActive; |