diff options
author | Jacek Antonelli | 2008-08-15 23:45:34 -0500 |
---|---|---|
committer | Jacek Antonelli | 2008-08-15 23:45:34 -0500 |
commit | cd17687f01420952712a500107e0f93e7ab8d5f8 (patch) | |
tree | ce48c2b706f2c1176290e39fb555fbdf6648ce01 /linden/indra/newview/lldynamictexture.cpp | |
parent | Second Life viewer sources 1.19.0.5 (diff) | |
download | meta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.zip meta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.tar.gz meta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.tar.bz2 meta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.tar.xz |
Second Life viewer sources 1.19.1.0
Diffstat (limited to 'linden/indra/newview/lldynamictexture.cpp')
-rw-r--r-- | linden/indra/newview/lldynamictexture.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/linden/indra/newview/lldynamictexture.cpp b/linden/indra/newview/lldynamictexture.cpp index aba87e2..4a47855 100644 --- a/linden/indra/newview/lldynamictexture.cpp +++ b/linden/indra/newview/lldynamictexture.cpp | |||
@@ -32,7 +32,6 @@ | |||
32 | #include "llviewerprecompiledheaders.h" | 32 | #include "llviewerprecompiledheaders.h" |
33 | 33 | ||
34 | #include "lldynamictexture.h" | 34 | #include "lldynamictexture.h" |
35 | #include "linked_lists.h" | ||
36 | #include "llimagegl.h" | 35 | #include "llimagegl.h" |
37 | #include "llglheaders.h" | 36 | #include "llglheaders.h" |
38 | #include "llviewerwindow.h" | 37 | #include "llviewerwindow.h" |
@@ -40,10 +39,13 @@ | |||
40 | #include "llviewercontrol.h" | 39 | #include "llviewercontrol.h" |
41 | #include "llviewerimage.h" | 40 | #include "llviewerimage.h" |
42 | #include "llvertexbuffer.h" | 41 | #include "llvertexbuffer.h" |
42 | #include "llviewerdisplay.h" | ||
43 | #include "llglimmediate.h" | ||
43 | 44 | ||
45 | void render_ui_and_swap_if_needed(); | ||
44 | 46 | ||
45 | // static | 47 | // static |
46 | LLLinkedList<LLDynamicTexture> LLDynamicTexture::sInstances[ LLDynamicTexture::ORDER_COUNT ]; | 48 | LLDynamicTexture::instance_list_t LLDynamicTexture::sInstances[ LLDynamicTexture::ORDER_COUNT ]; |
47 | S32 LLDynamicTexture::sNumRenders = 0; | 49 | S32 LLDynamicTexture::sNumRenders = 0; |
48 | 50 | ||
49 | //----------------------------------------------------------------------------- | 51 | //----------------------------------------------------------------------------- |
@@ -62,7 +64,7 @@ LLDynamicTexture::LLDynamicTexture(S32 width, S32 height, S32 components, EOrder | |||
62 | generateGLTexture(); | 64 | generateGLTexture(); |
63 | 65 | ||
64 | llassert( 0 <= order && order < ORDER_COUNT ); | 66 | llassert( 0 <= order && order < ORDER_COUNT ); |
65 | LLDynamicTexture::sInstances[ order ].addData(this); | 67 | LLDynamicTexture::sInstances[ order ].insert(this); |
66 | } | 68 | } |
67 | 69 | ||
68 | //----------------------------------------------------------------------------- | 70 | //----------------------------------------------------------------------------- |
@@ -73,7 +75,7 @@ LLDynamicTexture::~LLDynamicTexture() | |||
73 | releaseGLTexture(); | 75 | releaseGLTexture(); |
74 | for( S32 order = 0; order < ORDER_COUNT; order++ ) | 76 | for( S32 order = 0; order < ORDER_COUNT; order++ ) |
75 | { | 77 | { |
76 | LLDynamicTexture::sInstances[order].removeData(this); // will fail in all but one case. | 78 | LLDynamicTexture::sInstances[order].erase(this); // will fail in all but one case. |
77 | } | 79 | } |
78 | } | 80 | } |
79 | 81 | ||
@@ -211,20 +213,27 @@ BOOL LLDynamicTexture::updateAllInstances() | |||
211 | BOOL result = FALSE; | 213 | BOOL result = FALSE; |
212 | for( S32 order = 0; order < ORDER_COUNT; order++ ) | 214 | for( S32 order = 0; order < ORDER_COUNT; order++ ) |
213 | { | 215 | { |
214 | for (LLDynamicTexture *dynamicTexture = LLDynamicTexture::sInstances[order].getFirstData(); | 216 | for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin(); |
215 | dynamicTexture; | 217 | iter != LLDynamicTexture::sInstances[order].end(); ++iter) |
216 | dynamicTexture = LLDynamicTexture::sInstances[order].getNextData()) | ||
217 | { | 218 | { |
219 | LLDynamicTexture *dynamicTexture = *iter; | ||
218 | if (dynamicTexture->needsRender()) | 220 | if (dynamicTexture->needsRender()) |
219 | { | 221 | { |
222 | render_ui_and_swap_if_needed(); | ||
223 | glClear(GL_DEPTH_BUFFER_BIT); | ||
224 | gDisplaySwapBuffers = FALSE; | ||
225 | |||
226 | LLVertexBuffer::startRender(); | ||
227 | gGL.start(); | ||
228 | |||
220 | dynamicTexture->preRender(); // Must be called outside of startRender() | 229 | dynamicTexture->preRender(); // Must be called outside of startRender() |
221 | 230 | ||
222 | LLVertexBuffer::startRender(); | ||
223 | if (dynamicTexture->render()) | 231 | if (dynamicTexture->render()) |
224 | { | 232 | { |
225 | result = TRUE; | 233 | result = TRUE; |
226 | sNumRenders++; | 234 | sNumRenders++; |
227 | } | 235 | } |
236 | gGL.stop(); | ||
228 | LLVertexBuffer::stopRender(); | 237 | LLVertexBuffer::stopRender(); |
229 | 238 | ||
230 | dynamicTexture->postRender(result); | 239 | dynamicTexture->postRender(result); |