diff options
Diffstat (limited to 'linden/indra/newview/lldrawpool.cpp')
-rw-r--r-- | linden/indra/newview/lldrawpool.cpp | 91 |
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 | ||
143 | S32 LLDrawPool::getNumPasses() | ||
144 | { | ||
145 | return 1; | ||
146 | } | ||
147 | |||
148 | //virtual | ||
149 | void LLDrawPool::beginDeferredPass(S32 pass) | ||
150 | { | ||
151 | |||
152 | } | ||
153 | |||
154 | //virtual | ||
155 | void LLDrawPool::endDeferredPass(S32 pass) | ||
156 | { | ||
157 | |||
158 | } | ||
159 | |||
160 | //virtual | ||
161 | S32 LLDrawPool::getNumDeferredPasses() | ||
162 | { | ||
163 | return 0; | ||
164 | } | ||
165 | |||
166 | //virtual | ||
167 | void LLDrawPool::renderDeferred(S32 pass) | ||
168 | { | ||
169 | |||
170 | } | ||
171 | |||
172 | //virtual | ||
173 | void LLDrawPool::beginPostDeferredPass(S32 pass) | ||
174 | { | ||
175 | |||
176 | } | ||
177 | |||
178 | //virtual | ||
179 | void LLDrawPool::endPostDeferredPass(S32 pass) | ||
180 | { | ||
181 | |||
182 | } | ||
183 | |||
184 | //virtual | ||
185 | S32 LLDrawPool::getNumPostDeferredPasses() | ||
186 | { | ||
187 | return 0; | ||
188 | } | ||
189 | |||
190 | //virtual | ||
191 | void LLDrawPool::renderPostDeferred(S32 pass) | ||
192 | { | ||
193 | |||
194 | } | ||
195 | |||
135 | //virtual | 196 | //virtual |
136 | void LLDrawPool::endRenderPass( S32 pass ) | 197 | void LLDrawPool::endRenderPass( S32 pass ) |
137 | { | 198 | { |
138 | } | 199 | } |
139 | 200 | ||
201 | //virtual | ||
202 | void LLDrawPool::beginShadowPass(S32 pass) | ||
203 | { | ||
204 | |||
205 | } | ||
206 | |||
207 | //virtual | ||
208 | void LLDrawPool::endShadowPass(S32 pass) | ||
209 | { | ||
210 | |||
211 | } | ||
212 | |||
213 | //virtual | ||
214 | S32 LLDrawPool::getNumShadowPasses() | ||
215 | { | ||
216 | return 0; | ||
217 | } | ||
218 | |||
219 | //virtual | ||
220 | void 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); |