aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/lldrawpool.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/lldrawpool.cpp')
-rw-r--r--linden/indra/newview/lldrawpool.cpp91
1 files changed, 90 insertions, 1 deletions
diff --git a/linden/indra/newview/lldrawpool.cpp b/linden/indra/newview/lldrawpool.cpp
index fe4a405..9f05ce3 100644
--- a/linden/indra/newview/lldrawpool.cpp
+++ b/linden/indra/newview/lldrawpool.cpp
@@ -17,7 +17,8 @@
17 * There are special exceptions to the terms and conditions of the GPL as 17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception 18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or 19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception 20 * online at
21 * http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 * 22 *
22 * By copying, modifying or distributing this software, you acknowledge 23 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above, 24 * that you have read and understood your obligations described above,
@@ -67,6 +68,12 @@ LLDrawPool *LLDrawPool::createPool(const U32 type, LLViewerImage *tex0)
67 case POOL_SIMPLE: 68 case POOL_SIMPLE:
68 poolp = new LLDrawPoolSimple(); 69 poolp = new LLDrawPoolSimple();
69 break; 70 break;
71 case POOL_GRASS:
72 poolp = new LLDrawPoolGrass();
73 break;
74 case POOL_FULLBRIGHT:
75 poolp = new LLDrawPoolFullbright();
76 break;
70 case POOL_INVISIBLE: 77 case POOL_INVISIBLE:
71 poolp = new LLDrawPoolInvisible(); 78 poolp = new LLDrawPoolInvisible();
72 break; 79 break;
@@ -132,11 +139,89 @@ void LLDrawPool::beginRenderPass( S32 pass )
132{ 139{
133} 140}
134 141
142//virtual
143S32 LLDrawPool::getNumPasses()
144{
145 return 1;
146}
147
148//virtual
149void LLDrawPool::beginDeferredPass(S32 pass)
150{
151
152}
153
154//virtual
155void LLDrawPool::endDeferredPass(S32 pass)
156{
157
158}
159
160//virtual
161S32 LLDrawPool::getNumDeferredPasses()
162{
163 return 0;
164}
165
166//virtual
167void LLDrawPool::renderDeferred(S32 pass)
168{
169
170}
171
172//virtual
173void LLDrawPool::beginPostDeferredPass(S32 pass)
174{
175
176}
177
178//virtual
179void LLDrawPool::endPostDeferredPass(S32 pass)
180{
181
182}
183
184//virtual
185S32 LLDrawPool::getNumPostDeferredPasses()
186{
187 return 0;
188}
189
190//virtual
191void LLDrawPool::renderPostDeferred(S32 pass)
192{
193
194}
195
135//virtual 196//virtual
136void LLDrawPool::endRenderPass( S32 pass ) 197void LLDrawPool::endRenderPass( S32 pass )
137{ 198{
138} 199}
139 200
201//virtual
202void LLDrawPool::beginShadowPass(S32 pass)
203{
204
205}
206
207//virtual
208void LLDrawPool::endShadowPass(S32 pass)
209{
210
211}
212
213//virtual
214S32 LLDrawPool::getNumShadowPasses()
215{
216 return 0;
217}
218
219//virtual
220void LLDrawPool::renderShadow(S32 pass)
221{
222
223}
224
140//============================= 225//=============================
141// Face Pool Implementation 226// Face Pool Implementation
142//============================= 227//=============================
@@ -413,6 +498,10 @@ void LLRenderPass::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture)
413 498
414 if (params.mVertexBuffer.notNull()) 499 if (params.mVertexBuffer.notNull())
415 { 500 {
501 if (params.mGroup)
502 {
503 params.mGroup->rebuildMesh();
504 }
416 params.mVertexBuffer->setBuffer(mask); 505 params.mVertexBuffer->setBuffer(mask);
417 params.mVertexBuffer->drawRange(LLRender::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset); 506 params.mVertexBuffer->drawRange(LLRender::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset);
418 gPipeline.addTrianglesDrawn(params.mCount/3); 507 gPipeline.addTrianglesDrawn(params.mCount/3);