diff options
Diffstat (limited to 'linden/indra')
-rw-r--r-- | linden/indra/SConstruct | 20 | ||||
-rw-r--r-- | linden/indra/llmessage/llcircuit.cpp | 2 | ||||
-rw-r--r-- | linden/indra/llmessage/llpumpio.cpp | 15 | ||||
-rw-r--r-- | linden/indra/llrender/llfontgl.cpp | 90 | ||||
-rw-r--r-- | linden/indra/newview/featuretable.txt | 2 | ||||
-rw-r--r-- | linden/indra/newview/lleventpoll.cpp | 6 | ||||
-rw-r--r-- | linden/indra/newview/llfolderview.cpp | 21 | ||||
-rw-r--r-- | linden/indra/newview/llfolderview.h | 3 | ||||
-rw-r--r-- | linden/indra/newview/llinventoryview.cpp | 4 | ||||
-rw-r--r-- | linden/indra/newview/llpolymesh.cpp | 2 | ||||
-rw-r--r-- | linden/indra/newview/llstartup.cpp | 8 | ||||
-rw-r--r-- | linden/indra/newview/lltexturectrl.cpp | 2 | ||||
-rw-r--r-- | linden/indra/newview/lltoolpie.cpp | 22 | ||||
-rw-r--r-- | linden/indra/newview/lltoolpie.h | 1 | ||||
-rw-r--r-- | linden/indra/newview/llviewerstats.cpp | 52 | ||||
-rw-r--r-- | linden/indra/newview/llvlcomposition.cpp | 17 | ||||
-rw-r--r-- | linden/indra/newview/releasenotes.txt | 12 |
17 files changed, 176 insertions, 103 deletions
diff --git a/linden/indra/SConstruct b/linden/indra/SConstruct index 2aeee01..66a0231 100644 --- a/linden/indra/SConstruct +++ b/linden/indra/SConstruct | |||
@@ -49,7 +49,7 @@ opts = Options() | |||
49 | opts.Add(EnumOption('BUILD', 'Set build type', 'releasefordownload', | 49 | opts.Add(EnumOption('BUILD', 'Set build type', 'releasefordownload', |
50 | allowed_values=('debug', 'release', 'releasenoopt', 'releasefordownload'))) | 50 | allowed_values=('debug', 'release', 'releasenoopt', 'releasefordownload'))) |
51 | opts.Add(EnumOption('ARCH', 'Set architecture', 'i686', | 51 | opts.Add(EnumOption('ARCH', 'Set architecture', 'i686', |
52 | allowed_values=('i686', 'powerpc', 'x86_64'))) | 52 | allowed_values=('i686', 'powerpc', 'x86_64', 'x86_64cross'))) |
53 | opts.Add(EnumOption('BTARGET', 'Set build target', 'server', | 53 | opts.Add(EnumOption('BTARGET', 'Set build target', 'server', |
54 | allowed_values=('client', 'server', 'all'))) | 54 | allowed_values=('client', 'server', 'all'))) |
55 | opts.Add(EnumOption('DISTCC', 'Enabled distcc', 'yes', | 55 | opts.Add(EnumOption('DISTCC', 'Enabled distcc', 'yes', |
@@ -183,8 +183,10 @@ for build_target in targets: | |||
183 | # Linux-only flags | 183 | # Linux-only flags |
184 | flags += '-DLL_LINUX=1 ' | 184 | flags += '-DLL_LINUX=1 ' |
185 | if build_target == 'client': | 185 | if build_target == 'client': |
186 | flags += '-DAPPID=secondlife -DLL_SDL=1 -DLL_X11=1 ' | 186 | flags += '-DAPPID=secondlife -DLL_SDL=1 ' |
187 | flags += '-DLL_GTK=1 ' | 187 | if arch == 'x86_64' or arch == 'x86_64cross': |
188 | flags += '-DLL_FMOD=0 ' | ||
189 | flags += '-DLL_X11=1 -DLL_GTK=1 ' | ||
188 | client_external_libs += [ 'gtk-x11-2.0', 'elfio' ] | 190 | client_external_libs += [ 'gtk-x11-2.0', 'elfio' ] |
189 | include_dirs += [ '../libraries/' + system_str + '/include/gtk-2.0' ] | 191 | include_dirs += [ '../libraries/' + system_str + '/include/gtk-2.0' ] |
190 | include_dirs += [ '../libraries/' + system_str + '/include/glib-2.0'] | 192 | include_dirs += [ '../libraries/' + system_str + '/include/glib-2.0'] |
@@ -202,7 +204,7 @@ for build_target in targets: | |||
202 | flags += '-DLL_LIBXUL_ENABLED=0 ' | 204 | flags += '-DLL_LIBXUL_ENABLED=0 ' |
203 | else: | 205 | else: |
204 | # Mac-only flags | 206 | # Mac-only flags |
205 | flags += '-x c++ -arch ppc -pipe -Wno-trigraphs -fpascal-strings -faltivec -fasm-blocks -g -O2 -fmessage-length=0 -mtune=G4 -Wno-deprecated-declarations -Wno-invalid-offsetof -mmacosx-version-min=10.3 -DLL_DARWIN=1 -Wmost -Wno-sign-compare -Wno-switch -fpch-preprocess -F./newview/build/Deployment -fconstant-cfstrings -ffor-scope -Wno-reorder -isysroot /Developer/SDKs/MacOSX10.3.9.sdk ' | 207 | flags += '-x c++ -arch ppc -pipe -Wno-trigraphs -fpascal-strings -faltivec -fasm-blocks -g -fmessage-length=0 -mtune=G4 -Wno-deprecated-declarations -Wno-invalid-offsetof -mmacosx-version-min=10.3 -DLL_DARWIN=1 -Wmost -Wno-sign-compare -Wno-switch -fpch-preprocess -F./newview/build/Deployment -fconstant-cfstrings -ffor-scope -Wno-reorder -isysroot /Developer/SDKs/MacOSX10.3.9.sdk ' |
206 | 208 | ||
207 | ### Build type-specific flags ### | 209 | ### Build type-specific flags ### |
208 | 210 | ||
@@ -234,7 +236,7 @@ for build_target in targets: | |||
234 | if build_target != 'client': | 236 | if build_target != 'client': |
235 | gcc_bin = 'g++-3.3' | 237 | gcc_bin = 'g++-3.3' |
236 | 238 | ||
237 | if arch == 'x86_64': | 239 | if arch == 'x86_64cross': |
238 | gcc_bin = '/opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-gcc' | 240 | gcc_bin = '/opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-gcc' |
239 | strip_cmd = '/opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/bin/strip -S -o $TARGET $SOURCE' | 241 | strip_cmd = '/opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/bin/strip -S -o $TARGET $SOURCE' |
240 | 242 | ||
@@ -273,7 +275,7 @@ for build_target in targets: | |||
273 | 275 | ||
274 | if enable_distcc == 'yes': | 276 | if enable_distcc == 'yes': |
275 | hosts = 'localhost/2 station9.lindenlab.com,lzo station7.lindenlab.com,lzo station6.lindenlab.com,lzo station11.lindenlab.com,lzo station5.lindenlab.com,lzo station15.lindenlab.com,lzo station10.lindenlab.com,lzo station13.lindenlab.com,lzo station12.lindenlab.com,lzo' | 277 | hosts = 'localhost/2 station9.lindenlab.com,lzo station7.lindenlab.com,lzo station6.lindenlab.com,lzo station11.lindenlab.com,lzo station5.lindenlab.com,lzo station15.lindenlab.com,lzo station10.lindenlab.com,lzo station13.lindenlab.com,lzo station12.lindenlab.com,lzo' |
276 | if arch == 'x86_64': | 278 | if arch == 'x86_64' or arch == 'x86_64cross': |
277 | hosts = 'localhost' | 279 | hosts = 'localhost' |
278 | print "Distributing to hosts: " + hosts | 280 | print "Distributing to hosts: " + hosts |
279 | env['ENV']['DISTCC_HOSTS'] = hosts | 281 | env['ENV']['DISTCC_HOSTS'] = hosts |
@@ -415,7 +417,11 @@ for build_target in targets: | |||
415 | ################## | 417 | ################## |
416 | output_bin = 'newview/secondlife-' + arch + '-bin' | 418 | output_bin = 'newview/secondlife-' + arch + '-bin' |
417 | 419 | ||
418 | external_libs = client_external_libs + common_external_libs + [ 'freetype', 'jpeg', 'SDL', 'GL', 'GLU', 'ogg', 'vorbisenc', 'vorbisfile', 'vorbis', 'fmod-3.75', 'db-4.2', 'openjpeg' ] | 420 | external_libs = client_external_libs + common_external_libs + [ 'freetype', 'jpeg', 'SDL', 'GL', 'GLU', 'ogg', 'vorbisenc', 'vorbisfile', 'vorbis', 'db-4.2', 'openjpeg' ] |
421 | |||
422 | if arch != 'x86_64' and arch != 'x86_64cross': | ||
423 | external_libs += [ 'fmod-3.75' ] | ||
424 | |||
419 | external_libs.remove('cares') | 425 | external_libs.remove('cares') |
420 | 426 | ||
421 | internal_libs = [ 'lscript', 'llwindow', 'llrender', 'llprimitive', | 427 | internal_libs = [ 'lscript', 'llwindow', 'llrender', 'llprimitive', |
diff --git a/linden/indra/llmessage/llcircuit.cpp b/linden/indra/llmessage/llcircuit.cpp index 5187948..d73cc22 100644 --- a/linden/indra/llmessage/llcircuit.cpp +++ b/linden/indra/llmessage/llcircuit.cpp | |||
@@ -967,7 +967,7 @@ BOOL LLCircuitData::updateWatchDogTimers(LLMessageSystem *msgsys) | |||
967 | << (*it).first; | 967 | << (*it).first; |
968 | llinfos << str.str().c_str() << llendl; | 968 | llinfos << str.str().c_str() << llendl; |
969 | } | 969 | } |
970 | mPotentialLostPackets.erase((*(it++)).first); | 970 | mPotentialLostPackets.erase(it++); |
971 | } | 971 | } |
972 | else | 972 | else |
973 | { | 973 | { |
diff --git a/linden/indra/llmessage/llpumpio.cpp b/linden/indra/llmessage/llpumpio.cpp index c1f1821..4ce15b9 100644 --- a/linden/indra/llmessage/llpumpio.cpp +++ b/linden/indra/llmessage/llpumpio.cpp | |||
@@ -221,16 +221,15 @@ bool LLPumpIO::setConditional(LLIOPipe* pipe, const apr_pollfd_t* poll) | |||
221 | { | 221 | { |
222 | // remove any matching poll file descriptors for this pipe. | 222 | // remove any matching poll file descriptors for this pipe. |
223 | LLIOPipe::ptr_t pipe_ptr(pipe); | 223 | LLIOPipe::ptr_t pipe_ptr(pipe); |
224 | 224 | LLChainInfo::conditionals_t::iterator it; | |
225 | LLChainInfo::conditionals_t::iterator it = (*mCurrentChain).mDescriptors.begin(); | 225 | it = (*mCurrentChain).mDescriptors.begin(); |
226 | LLChainInfo::conditionals_t::iterator end = (*mCurrentChain).mDescriptors.end(); | 226 | while(it != (*mCurrentChain).mDescriptors.end()) |
227 | while (it != end) | ||
228 | { | 227 | { |
229 | LLChainInfo::pipe_conditional_t& value = (*it); | 228 | LLChainInfo::pipe_conditional_t& value = (*it); |
230 | if ( pipe_ptr == value.first ) | 229 | if(pipe_ptr == value.first) |
231 | { | 230 | { |
232 | ll_delete_apr_pollset_fd_client_data()(value); | 231 | ll_delete_apr_pollset_fd_client_data()(value); |
233 | (*mCurrentChain).mDescriptors.erase(it++); | 232 | it = (*mCurrentChain).mDescriptors.erase(it); |
234 | mRebuildPollset = true; | 233 | mRebuildPollset = true; |
235 | } | 234 | } |
236 | else | 235 | else |
@@ -472,7 +471,7 @@ void LLPumpIO::pump() | |||
472 | // << (*run_chain).mChainLinks[0].mPipe | 471 | // << (*run_chain).mChainLinks[0].mPipe |
473 | // << " because we reached the end." << llendl; | 472 | // << " because we reached the end." << llendl; |
474 | #endif | 473 | #endif |
475 | mRunningChains.erase(run_chain++); | 474 | run_chain = mRunningChains.erase(run_chain); |
476 | continue; | 475 | continue; |
477 | } | 476 | } |
478 | } | 477 | } |
@@ -551,7 +550,7 @@ void LLPumpIO::pump() | |||
551 | (*run_chain).mDescriptors.begin(), | 550 | (*run_chain).mDescriptors.begin(), |
552 | (*run_chain).mDescriptors.end(), | 551 | (*run_chain).mDescriptors.end(), |
553 | ll_delete_apr_pollset_fd_client_data()); | 552 | ll_delete_apr_pollset_fd_client_data()); |
554 | mRunningChains.erase(run_chain++); | 553 | run_chain = mRunningChains.erase(run_chain); |
555 | 554 | ||
556 | // *NOTE: may not always need to rebuild the pollset. | 555 | // *NOTE: may not always need to rebuild the pollset. |
557 | mRebuildPollset = true; | 556 | mRebuildPollset = true; |
diff --git a/linden/indra/llrender/llfontgl.cpp b/linden/indra/llrender/llfontgl.cpp index 2740c6c..f72a7de 100644 --- a/linden/indra/llrender/llfontgl.cpp +++ b/linden/indra/llrender/llfontgl.cpp | |||
@@ -304,14 +304,18 @@ BOOL LLFontGL::initDefaultFonts(F32 screen_dpi, F32 x_scale, F32 y_scale, | |||
304 | sSansSerifHuge->reset(); | 304 | sSansSerifHuge->reset(); |
305 | } | 305 | } |
306 | 306 | ||
307 | if (!sSSHugeFallback) | 307 | if (sSSHugeFallback) |
308 | { | 308 | { |
309 | sSSHugeFallback = new LLFontList(); | 309 | delete sSSHugeFallback; |
310 | if (!loadFaceFallback(sSSHugeFallback, sanserif_fallback_file, huge_size*ss_fallback_scale)) | 310 | } |
311 | { | 311 | sSSHugeFallback = new LLFontList(); |
312 | delete sSSHugeFallback; | 312 | if (!loadFaceFallback( |
313 | sSSHugeFallback = NULL; | 313 | sSSHugeFallback, |
314 | } | 314 | sanserif_fallback_file, |
315 | huge_size*ss_fallback_scale)) | ||
316 | { | ||
317 | delete sSSHugeFallback; | ||
318 | sSSHugeFallback = NULL; | ||
315 | } | 319 | } |
316 | 320 | ||
317 | failed |= !loadFace(sSansSerifHuge, sansserif_file, huge_size, sSSHugeFallback); | 321 | failed |= !loadFace(sSansSerifHuge, sansserif_file, huge_size, sSSHugeFallback); |
@@ -326,14 +330,18 @@ BOOL LLFontGL::initDefaultFonts(F32 screen_dpi, F32 x_scale, F32 y_scale, | |||
326 | sSansSerifBig->reset(); | 330 | sSansSerifBig->reset(); |
327 | } | 331 | } |
328 | 332 | ||
329 | if (!sSSBigFallback) | 333 | if (sSSBigFallback) |
330 | { | 334 | { |
331 | sSSBigFallback = new LLFontList(); | 335 | delete sSSBigFallback; |
332 | if (!loadFaceFallback(sSSBigFallback, sanserif_fallback_file, big_size*ss_fallback_scale)) | 336 | } |
333 | { | 337 | sSSBigFallback = new LLFontList(); |
334 | delete sSSBigFallback; | 338 | if (!loadFaceFallback( |
335 | sSSBigFallback = NULL; | 339 | sSSBigFallback, |
336 | } | 340 | sanserif_fallback_file, |
341 | big_size*ss_fallback_scale)) | ||
342 | { | ||
343 | delete sSSBigFallback; | ||
344 | sSSBigFallback = NULL; | ||
337 | } | 345 | } |
338 | 346 | ||
339 | failed |= !loadFace(sSansSerifBig, sansserif_file, big_size, sSSBigFallback); | 347 | failed |= !loadFace(sSansSerifBig, sansserif_file, big_size, sSSBigFallback); |
@@ -348,14 +356,18 @@ BOOL LLFontGL::initDefaultFonts(F32 screen_dpi, F32 x_scale, F32 y_scale, | |||
348 | sSansSerif->reset(); | 356 | sSansSerif->reset(); |
349 | } | 357 | } |
350 | 358 | ||
351 | if (!sSSFallback) | 359 | if (sSSFallback) |
352 | { | 360 | { |
353 | sSSFallback = new LLFontList(); | 361 | delete sSSFallback; |
354 | if (!loadFaceFallback(sSSFallback, sanserif_fallback_file, medium_size*ss_fallback_scale)) | 362 | } |
355 | { | 363 | sSSFallback = new LLFontList(); |
356 | delete sSSFallback; | 364 | if (!loadFaceFallback( |
357 | sSSFallback = NULL; | 365 | sSSFallback, |
358 | } | 366 | sanserif_fallback_file, |
367 | medium_size*ss_fallback_scale)) | ||
368 | { | ||
369 | delete sSSFallback; | ||
370 | sSSFallback = NULL; | ||
359 | } | 371 | } |
360 | failed |= !loadFace(sSansSerif, sansserif_file, medium_size, sSSFallback); | 372 | failed |= !loadFace(sSansSerif, sansserif_file, medium_size, sSSFallback); |
361 | 373 | ||
@@ -369,14 +381,18 @@ BOOL LLFontGL::initDefaultFonts(F32 screen_dpi, F32 x_scale, F32 y_scale, | |||
369 | sSansSerifSmall->reset(); | 381 | sSansSerifSmall->reset(); |
370 | } | 382 | } |
371 | 383 | ||
372 | if (!sSSSmallFallback) | 384 | if(sSSSmallFallback) |
373 | { | 385 | { |
374 | sSSSmallFallback = new LLFontList(); | 386 | delete sSSSmallFallback; |
375 | if (!loadFaceFallback(sSSSmallFallback, sanserif_fallback_file, small_size*ss_fallback_scale)) | 387 | } |
376 | { | 388 | sSSSmallFallback = new LLFontList(); |
377 | delete sSSSmallFallback; | 389 | if (!loadFaceFallback( |
378 | sSSSmallFallback = NULL; | 390 | sSSSmallFallback, |
379 | } | 391 | sanserif_fallback_file, |
392 | small_size*ss_fallback_scale)) | ||
393 | { | ||
394 | delete sSSSmallFallback; | ||
395 | sSSSmallFallback = NULL; | ||
380 | } | 396 | } |
381 | failed |= !loadFace(sSansSerifSmall, sansserif_file, small_size, sSSSmallFallback); | 397 | failed |= !loadFace(sSansSerifSmall, sansserif_file, small_size, sSSSmallFallback); |
382 | 398 | ||
@@ -393,14 +409,18 @@ BOOL LLFontGL::initDefaultFonts(F32 screen_dpi, F32 x_scale, F32 y_scale, | |||
393 | sSansSerifBold->reset(); | 409 | sSansSerifBold->reset(); |
394 | } | 410 | } |
395 | 411 | ||
396 | if (!sSSBoldFallback) | 412 | if (sSSBoldFallback) |
397 | { | 413 | { |
398 | sSSBoldFallback = new LLFontList(); | 414 | delete sSSBoldFallback; |
399 | if (!loadFaceFallback(sSSBoldFallback, sanserif_fallback_file, medium_size*ss_fallback_scale)) | 415 | } |
400 | { | 416 | sSSBoldFallback = new LLFontList(); |
401 | delete sSSBoldFallback; | 417 | if (!loadFaceFallback( |
402 | sSSBoldFallback = NULL; | 418 | sSSBoldFallback, |
403 | } | 419 | sanserif_fallback_file, |
420 | medium_size*ss_fallback_scale)) | ||
421 | { | ||
422 | delete sSSBoldFallback; | ||
423 | sSSBoldFallback = NULL; | ||
404 | } | 424 | } |
405 | failed |= !loadFace(sSansSerifBold, sansserif_bold_file, medium_size, sSSBoldFallback); | 425 | failed |= !loadFace(sSansSerifBold, sansserif_bold_file, medium_size, sSSBoldFallback); |
406 | 426 | ||
diff --git a/linden/indra/newview/featuretable.txt b/linden/indra/newview/featuretable.txt index 59e816d..17e2427 100644 --- a/linden/indra/newview/featuretable.txt +++ b/linden/indra/newview/featuretable.txt | |||
@@ -40,7 +40,7 @@ VertexShaderEnable 1 1 | |||
40 | // | 40 | // |
41 | list Class0 | 41 | list Class0 |
42 | VertexShaderEnable 1 0 | 42 | VertexShaderEnable 1 0 |
43 | RenderVBO 1 1 | 43 | RenderVBO 1 0 |
44 | RenderDistance 1 64 | 44 | RenderDistance 1 64 |
45 | RenderAvatarVP 1 0 | 45 | RenderAvatarVP 1 0 |
46 | RenderAvatarMode 1 0 | 46 | RenderAvatarMode 1 0 |
diff --git a/linden/indra/newview/lleventpoll.cpp b/linden/indra/newview/lleventpoll.cpp index ece0958..5407ee2 100644 --- a/linden/indra/newview/lleventpoll.cpp +++ b/linden/indra/newview/lleventpoll.cpp | |||
@@ -49,8 +49,8 @@ public: | |||
49 | 49 | ||
50 | void stop() | 50 | void stop() |
51 | { | 51 | { |
52 | llinfos << "LLEventPoll::Impl::stop <" << mCount << "> " | 52 | lldebugs << "LLEventPoll::Impl::stop <" << mCount << "> " |
53 | << mPollURL << llendl; | 53 | << mPollURL << llendl; |
54 | // there should be a way to stop a LLHTTPClient request in progress | 54 | // there should be a way to stop a LLHTTPClient request in progress |
55 | mDone = true; | 55 | mDone = true; |
56 | mPtr = NULL; | 56 | mPtr = NULL; |
@@ -69,7 +69,7 @@ private: | |||
69 | ~Impl() | 69 | ~Impl() |
70 | { | 70 | { |
71 | lldebugs << "LLEventPoll::Impl::~Impl <" << mCount << "> " | 71 | lldebugs << "LLEventPoll::Impl::~Impl <" << mCount << "> " |
72 | << mPollURL << llendl; | 72 | << mPollURL << llendl; |
73 | } | 73 | } |
74 | 74 | ||
75 | 75 | ||
diff --git a/linden/indra/newview/llfolderview.cpp b/linden/indra/newview/llfolderview.cpp index 377e620..1007bc4 100644 --- a/linden/indra/newview/llfolderview.cpp +++ b/linden/indra/newview/llfolderview.cpp | |||
@@ -1245,7 +1245,7 @@ void LLFolderViewFolder::filter( LLInventoryFilter& filter) | |||
1245 | } | 1245 | } |
1246 | 1246 | ||
1247 | // when applying a filter, matching folders get their contents downloaded first | 1247 | // when applying a filter, matching folders get their contents downloaded first |
1248 | if (getRoot()->isFilterActive() && getFiltered(filter.getMinRequiredGeneration()) && !gInventory.isCategoryComplete(mListener->getUUID())) | 1248 | if (filter.isNotDefault() && getFiltered(filter.getMinRequiredGeneration()) && !gInventory.isCategoryComplete(mListener->getUUID())) |
1249 | { | 1249 | { |
1250 | gInventory.startBackgroundFetch(mListener->getUUID()); | 1250 | gInventory.startBackgroundFetch(mListener->getUUID()); |
1251 | } | 1251 | } |
@@ -2543,6 +2543,7 @@ LLFolderView::LLFolderView( const LLString& name, LLViewerImage* root_folder_ico | |||
2543 | mShowSingleSelection(FALSE), | 2543 | mShowSingleSelection(FALSE), |
2544 | mArrangeGeneration(0), | 2544 | mArrangeGeneration(0), |
2545 | mSelectCallback(NULL), | 2545 | mSelectCallback(NULL), |
2546 | mSelectionChanged(FALSE), | ||
2546 | mMinWidth(0), | 2547 | mMinWidth(0), |
2547 | mDragAndDropThisFrame(FALSE) | 2548 | mDragAndDropThisFrame(FALSE) |
2548 | { | 2549 | { |
@@ -4237,7 +4238,7 @@ void LLFolderView::idle(void* user_data) | |||
4237 | 4238 | ||
4238 | self->mFilter.clearModified(); | 4239 | self->mFilter.clearModified(); |
4239 | BOOL filter_modified_and_active = self->mCompletedFilterGeneration < self->mFilter.getCurrentGeneration() && | 4240 | BOOL filter_modified_and_active = self->mCompletedFilterGeneration < self->mFilter.getCurrentGeneration() && |
4240 | self->mFilter.isActive(); | 4241 | self->mFilter.isNotDefault(); |
4241 | self->mNeedsAutoSelect = filter_modified_and_active && | 4242 | self->mNeedsAutoSelect = filter_modified_and_active && |
4242 | !(gFocusMgr.childHasKeyboardFocus(self) || gFocusMgr.getMouseCapture()); | 4243 | !(gFocusMgr.childHasKeyboardFocus(self) || gFocusMgr.getMouseCapture()); |
4243 | 4244 | ||
@@ -4427,9 +4428,11 @@ LLInventoryFilter::LLInventoryFilter(const LLString& name) : | |||
4427 | mFilterGeneration = 0; | 4428 | mFilterGeneration = 0; |
4428 | mMustPassGeneration = S32_MAX; | 4429 | mMustPassGeneration = S32_MAX; |
4429 | mMinRequiredGeneration = 0; | 4430 | mMinRequiredGeneration = 0; |
4431 | mFilterCount = 0; | ||
4430 | mNextFilterGeneration = mFilterGeneration + 1; | 4432 | mNextFilterGeneration = mFilterGeneration + 1; |
4431 | 4433 | ||
4432 | mLastLogoff = gSavedPerAccountSettings.getU32("LastLogoff"); | 4434 | mLastLogoff = gSavedPerAccountSettings.getU32("LastLogoff"); |
4435 | mFilterBehavior = FILTER_NONE; | ||
4433 | } | 4436 | } |
4434 | 4437 | ||
4435 | LLInventoryFilter::~LLInventoryFilter() | 4438 | LLInventoryFilter::~LLInventoryFilter() |
@@ -4469,7 +4472,7 @@ std::string::size_type LLInventoryFilter::getStringMatchOffset() const | |||
4469 | } | 4472 | } |
4470 | 4473 | ||
4471 | // has user modified default filter params? | 4474 | // has user modified default filter params? |
4472 | BOOL LLInventoryFilter::isActive() | 4475 | BOOL LLInventoryFilter::isNotDefault() |
4473 | { | 4476 | { |
4474 | return mFilterOps.mFilterTypes != mDefaultFilterOps.mFilterTypes | 4477 | return mFilterOps.mFilterTypes != mDefaultFilterOps.mFilterTypes |
4475 | || mFilterSubString.size() | 4478 | || mFilterSubString.size() |
@@ -4479,6 +4482,16 @@ BOOL LLInventoryFilter::isActive() | |||
4479 | || mFilterOps.mHoursAgo != mDefaultFilterOps.mHoursAgo; | 4482 | || mFilterOps.mHoursAgo != mDefaultFilterOps.mHoursAgo; |
4480 | } | 4483 | } |
4481 | 4484 | ||
4485 | BOOL LLInventoryFilter::isActive() | ||
4486 | { | ||
4487 | return mFilterOps.mFilterTypes != 0xffffffff | ||
4488 | || mFilterSubString.size() | ||
4489 | || mFilterOps.mPermissions != PERM_NONE | ||
4490 | || mFilterOps.mMinDate != 0 | ||
4491 | || mFilterOps.mMaxDate != U32_MAX | ||
4492 | || mFilterOps.mHoursAgo != 0; | ||
4493 | } | ||
4494 | |||
4482 | BOOL LLInventoryFilter::isModified() | 4495 | BOOL LLInventoryFilter::isModified() |
4483 | { | 4496 | { |
4484 | return mModified; | 4497 | return mModified; |
@@ -4688,7 +4701,7 @@ void LLInventoryFilter::setModified(EFilterBehavior behavior) | |||
4688 | mFilterBehavior = FILTER_RESTART; | 4701 | mFilterBehavior = FILTER_RESTART; |
4689 | } | 4702 | } |
4690 | 4703 | ||
4691 | if (isActive()) | 4704 | if (isNotDefault()) |
4692 | { | 4705 | { |
4693 | // if not keeping current filter results, update last valid as well | 4706 | // if not keeping current filter results, update last valid as well |
4694 | switch(mFilterBehavior) | 4707 | switch(mFilterBehavior) |
diff --git a/linden/indra/newview/llfolderview.h b/linden/indra/newview/llfolderview.h index ccadba9..eb67373 100644 --- a/linden/indra/newview/llfolderview.h +++ b/linden/indra/newview/llfolderview.h | |||
@@ -210,6 +210,7 @@ public: | |||
210 | BOOL check(LLFolderViewItem* item); | 210 | BOOL check(LLFolderViewItem* item); |
211 | std::string::size_type getStringMatchOffset() const; | 211 | std::string::size_type getStringMatchOffset() const; |
212 | BOOL isActive(); | 212 | BOOL isActive(); |
213 | BOOL isNotDefault(); | ||
213 | BOOL isModified(); | 214 | BOOL isModified(); |
214 | BOOL isModifiedAndClear(); | 215 | BOOL isModifiedAndClear(); |
215 | BOOL isSinceLogoff(); | 216 | BOOL isSinceLogoff(); |
@@ -697,7 +698,7 @@ public: | |||
697 | PermissionMask getFilterPermissions() const { return mFilter.getFilterPermissions(); } | 698 | PermissionMask getFilterPermissions() const { return mFilter.getFilterPermissions(); } |
698 | LLInventoryFilter::EFolderShow getShowFolderState() { return mFilter.getShowFolderState(); } | 699 | LLInventoryFilter::EFolderShow getShowFolderState() { return mFilter.getShowFolderState(); } |
699 | U32 getSortOrder() const; | 700 | U32 getSortOrder() const; |
700 | BOOL isFilterActive() { return mFilter.isActive(); } | 701 | BOOL isFilterModified() { return mFilter.isNotDefault(); } |
701 | BOOL getAllowMultiSelect() { return mAllowMultiSelect; } | 702 | BOOL getAllowMultiSelect() { return mAllowMultiSelect; } |
702 | 703 | ||
703 | // Close all folders in the view | 704 | // Close all folders in the view |
diff --git a/linden/indra/newview/llinventoryview.cpp b/linden/indra/newview/llinventoryview.cpp index afeb3be..162cf9f 100644 --- a/linden/indra/newview/llinventoryview.cpp +++ b/linden/indra/newview/llinventoryview.cpp | |||
@@ -622,7 +622,7 @@ void LLInventoryView::onClose(bool app_quitting) | |||
622 | gSavedSettings.setBOOL("ShowInventory", FALSE); | 622 | gSavedSettings.setBOOL("ShowInventory", FALSE); |
623 | } | 623 | } |
624 | // clear filters, but save user's folder state first | 624 | // clear filters, but save user's folder state first |
625 | if (!mActivePanel->getRootFolder()->isFilterActive()) | 625 | if (!mActivePanel->getRootFolder()->isFilterModified()) |
626 | { | 626 | { |
627 | mSavedFolderState->setApply(FALSE); | 627 | mSavedFolderState->setApply(FALSE); |
628 | mActivePanel->getRootFolder()->applyFunctorRecursively(*mSavedFolderState); | 628 | mActivePanel->getRootFolder()->applyFunctorRecursively(*mSavedFolderState); |
@@ -868,7 +868,7 @@ void LLInventoryView::onSearchEdit(const LLString& search_string, void* user_dat | |||
868 | } | 868 | } |
869 | 869 | ||
870 | // save current folder open state if no filter currently applied | 870 | // save current folder open state if no filter currently applied |
871 | if (!self->mActivePanel->getRootFolder()->isFilterActive()) | 871 | if (!self->mActivePanel->getRootFolder()->isFilterModified()) |
872 | { | 872 | { |
873 | self->mSavedFolderState->setApply(FALSE); | 873 | self->mSavedFolderState->setApply(FALSE); |
874 | self->mActivePanel->getRootFolder()->applyFunctorRecursively(*self->mSavedFolderState); | 874 | self->mActivePanel->getRootFolder()->applyFunctorRecursively(*self->mSavedFolderState); |
diff --git a/linden/indra/newview/llpolymesh.cpp b/linden/indra/newview/llpolymesh.cpp index 4f339ac..2f3dfce 100644 --- a/linden/indra/newview/llpolymesh.cpp +++ b/linden/indra/newview/llpolymesh.cpp | |||
@@ -340,7 +340,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const char *fileName ) | |||
340 | } | 340 | } |
341 | 341 | ||
342 | U8 rotationOrder; | 342 | U8 rotationOrder; |
343 | numRead = fread(&rotationOrder, 1, 1, fp); | 343 | numRead = fread(&rotationOrder, sizeof(U8), 1, fp); |
344 | 344 | ||
345 | if (numRead != 1) | 345 | if (numRead != 1) |
346 | { | 346 | { |
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index cfdf899..2fe1190 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -633,6 +633,8 @@ BOOL idle_startup() | |||
633 | 633 | ||
634 | if (STATE_LOGIN_SHOW == gStartupState) | 634 | if (STATE_LOGIN_SHOW == gStartupState) |
635 | { | 635 | { |
636 | llinfos << "Initializing Window" << llendl; | ||
637 | |||
636 | gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); | 638 | gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); |
637 | // Push our window frontmost | 639 | // Push our window frontmost |
638 | gViewerWindow->getWindow()->show(); | 640 | gViewerWindow->getWindow()->show(); |
@@ -2550,13 +2552,19 @@ BOOL idle_startup() | |||
2550 | 2552 | ||
2551 | void login_show() | 2553 | void login_show() |
2552 | { | 2554 | { |
2555 | llinfos << "Initializing Login Screen" << llendl; | ||
2556 | |||
2553 | LLPanelLogin::show( gViewerWindow->getVirtualWindowRect(), | 2557 | LLPanelLogin::show( gViewerWindow->getVirtualWindowRect(), |
2554 | gSavedSettings.getBOOL("UseDebugLogin"), | 2558 | gSavedSettings.getBOOL("UseDebugLogin"), |
2555 | login_callback, NULL ); | 2559 | login_callback, NULL ); |
2556 | 2560 | ||
2561 | llinfos << "Decoding Images" << llendl; | ||
2562 | |||
2557 | // Make sure all the UI textures are present and decoded. | 2563 | // Make sure all the UI textures are present and decoded. |
2558 | gImageList.decodeAllImages(2.f); | 2564 | gImageList.decodeAllImages(2.f); |
2559 | 2565 | ||
2566 | llinfos << "Setting Servers" << llendl; | ||
2567 | |||
2560 | if( USERSERVER_OTHER == gUserServerChoice ) | 2568 | if( USERSERVER_OTHER == gUserServerChoice ) |
2561 | { | 2569 | { |
2562 | LLPanelLogin::addServer( gUserServerName, USERSERVER_OTHER ); | 2570 | LLPanelLogin::addServer( gUserServerName, USERSERVER_OTHER ); |
diff --git a/linden/indra/newview/lltexturectrl.cpp b/linden/indra/newview/lltexturectrl.cpp index 666b5d2..8ae6862 100644 --- a/linden/indra/newview/lltexturectrl.cpp +++ b/linden/indra/newview/lltexturectrl.cpp | |||
@@ -821,7 +821,7 @@ void LLFloaterTexturePicker::onSearchEdit(const LLString& search_string, void* u | |||
821 | else if (picker->mInventoryPanel->getFilterSubString().empty()) | 821 | else if (picker->mInventoryPanel->getFilterSubString().empty()) |
822 | { | 822 | { |
823 | // first letter in search term, save existing folder open state | 823 | // first letter in search term, save existing folder open state |
824 | if (!picker->mInventoryPanel->getRootFolder()->isFilterActive()) | 824 | if (!picker->mInventoryPanel->getRootFolder()->isFilterModified()) |
825 | { | 825 | { |
826 | picker->mSavedFolderState.setApply(FALSE); | 826 | picker->mSavedFolderState.setApply(FALSE); |
827 | picker->mInventoryPanel->getRootFolder()->applyFunctorRecursively(picker->mSavedFolderState); | 827 | picker->mInventoryPanel->getRootFolder()->applyFunctorRecursively(picker->mSavedFolderState); |
diff --git a/linden/indra/newview/lltoolpie.cpp b/linden/indra/newview/lltoolpie.cpp index 3eaa275..4b29303 100644 --- a/linden/indra/newview/lltoolpie.cpp +++ b/linden/indra/newview/lltoolpie.cpp | |||
@@ -63,6 +63,7 @@ LLToolPie *gToolPie = NULL; | |||
63 | 63 | ||
64 | LLViewerObject* LLToolPie::sClickActionObject = NULL; | 64 | LLViewerObject* LLToolPie::sClickActionObject = NULL; |
65 | LLHandle<LLObjectSelection> LLToolPie::sLeftClickSelection = NULL; | 65 | LLHandle<LLObjectSelection> LLToolPie::sLeftClickSelection = NULL; |
66 | U8 LLToolPie::sClickAction = 0; | ||
66 | 67 | ||
67 | extern void handle_buy(void*); | 68 | extern void handle_buy(void*); |
68 | 69 | ||
@@ -164,17 +165,17 @@ BOOL LLToolPie::pickAndShowMenu(S32 x, S32 y, MASK mask, BOOL always_show) | |||
164 | // If it's a left-click, and we have a special action, do it. | 165 | // If it's a left-click, and we have a special action, do it. |
165 | if (useClickAction(always_show, mask, object, parent)) | 166 | if (useClickAction(always_show, mask, object, parent)) |
166 | { | 167 | { |
167 | U8 click_action = 0; | 168 | sClickAction = 0; |
168 | if (object && object->getClickAction()) | 169 | if (object && object->getClickAction()) |
169 | { | 170 | { |
170 | click_action = object->getClickAction(); | 171 | sClickAction = object->getClickAction(); |
171 | } | 172 | } |
172 | else if (parent && parent->getClickAction()) | 173 | else if (parent && parent->getClickAction()) |
173 | { | 174 | { |
174 | click_action = parent->getClickAction(); | 175 | sClickAction = parent->getClickAction(); |
175 | } | 176 | } |
176 | 177 | ||
177 | switch(click_action) | 178 | switch(sClickAction) |
178 | { | 179 | { |
179 | case CLICK_ACTION_TOUCH: | 180 | case CLICK_ACTION_TOUCH: |
180 | default: | 181 | default: |
@@ -187,8 +188,9 @@ BOOL LLToolPie::pickAndShowMenu(S32 x, S32 y, MASK mask, BOOL always_show) | |||
187 | if (object && object->flagTakesMoney() | 188 | if (object && object->flagTakesMoney() |
188 | || parent && parent->flagTakesMoney()) | 189 | || parent && parent->flagTakesMoney()) |
189 | { | 190 | { |
190 | sClickActionObject = parent; | 191 | // pay event goes to object actually clicked on |
191 | sLeftClickSelection = LLToolSelect::handleObjectSelection(parent, MASK_NONE, FALSE, TRUE); | 192 | sClickActionObject = object; |
193 | sLeftClickSelection = LLToolSelect::handleObjectSelection(object, MASK_NONE, FALSE, TRUE); | ||
192 | return TRUE; | 194 | return TRUE; |
193 | } | 195 | } |
194 | break; | 196 | break; |
@@ -417,13 +419,12 @@ void LLToolPie::selectionPropertiesReceived() | |||
417 | 419 | ||
418 | if (!sLeftClickSelection->isEmpty()) | 420 | if (!sLeftClickSelection->isEmpty()) |
419 | { | 421 | { |
420 | LLViewerObject* root = sLeftClickSelection->getFirstRootObject(); | 422 | LLViewerObject* selected_object = sLeftClickSelection->getPrimaryObject(); |
421 | // since we don't currently have a way to lock a selection, it could have changed | 423 | // since we don't currently have a way to lock a selection, it could have changed |
422 | // after we initially clicked on the object | 424 | // after we initially clicked on the object |
423 | if (root == sClickActionObject) | 425 | if (selected_object == sClickActionObject) |
424 | { | 426 | { |
425 | U8 action = root->getClickAction(); | 427 | switch (sClickAction) |
426 | switch (action) | ||
427 | { | 428 | { |
428 | case CLICK_ACTION_BUY: | 429 | case CLICK_ACTION_BUY: |
429 | handle_buy(NULL); | 430 | handle_buy(NULL); |
@@ -441,6 +442,7 @@ void LLToolPie::selectionPropertiesReceived() | |||
441 | } | 442 | } |
442 | sLeftClickSelection = NULL; | 443 | sLeftClickSelection = NULL; |
443 | sClickActionObject = NULL; | 444 | sClickActionObject = NULL; |
445 | sClickAction = 0; | ||
444 | } | 446 | } |
445 | 447 | ||
446 | BOOL LLToolPie::handleHover(S32 x, S32 y, MASK mask) | 448 | BOOL LLToolPie::handleHover(S32 x, S32 y, MASK mask) |
diff --git a/linden/indra/newview/lltoolpie.h b/linden/indra/newview/lltoolpie.h index dd54b5c..fbfd1a6 100644 --- a/linden/indra/newview/lltoolpie.h +++ b/linden/indra/newview/lltoolpie.h | |||
@@ -73,6 +73,7 @@ protected: | |||
73 | LLUUID mHitObjectID; | 73 | LLUUID mHitObjectID; |
74 | BOOL mMouseOutsideSlop; // for this drag, has mouse moved outside slop region | 74 | BOOL mMouseOutsideSlop; // for this drag, has mouse moved outside slop region |
75 | static LLViewerObject* sClickActionObject; | 75 | static LLViewerObject* sClickActionObject; |
76 | static U8 sClickAction; | ||
76 | static LLHandle<LLObjectSelection> sLeftClickSelection; | 77 | static LLHandle<LLObjectSelection> sLeftClickSelection; |
77 | }; | 78 | }; |
78 | 79 | ||
diff --git a/linden/indra/newview/llviewerstats.cpp b/linden/indra/newview/llviewerstats.cpp index f09b297..c7d2ee2 100644 --- a/linden/indra/newview/llviewerstats.cpp +++ b/linden/indra/newview/llviewerstats.cpp | |||
@@ -68,7 +68,7 @@ const StatAttributes STAT_INFO[LLViewerStats::ST_COUNT] = | |||
68 | // ST_IM_COUNT | 68 | // ST_IM_COUNT |
69 | StatAttributes("IMs sent", FALSE, FALSE), | 69 | StatAttributes("IMs sent", FALSE, FALSE), |
70 | // ST_FULLSCREEN_BOOL | 70 | // ST_FULLSCREEN_BOOL |
71 | StatAttributes("Fullscreen mode", TRUE, FALSE), | 71 | StatAttributes("Fullscreen mode", FALSE, FALSE), |
72 | // ST_RELEASE_COUNT | 72 | // ST_RELEASE_COUNT |
73 | StatAttributes("Object release count", FALSE, FALSE), | 73 | StatAttributes("Object release count", FALSE, FALSE), |
74 | // ST_CREATE_COUNT | 74 | // ST_CREATE_COUNT |
@@ -118,61 +118,61 @@ const StatAttributes STAT_INFO[LLViewerStats::ST_COUNT] = | |||
118 | // ST_UPLOAD_ANIM_COUNT | 118 | // ST_UPLOAD_ANIM_COUNT |
119 | StatAttributes("Animations uploaded", FALSE, FALSE), | 119 | StatAttributes("Animations uploaded", FALSE, FALSE), |
120 | // ST_FPS_8_SECONDS | 120 | // ST_FPS_8_SECONDS |
121 | StatAttributes("Seconds below 8 FPS", TRUE, TRUE), | 121 | StatAttributes("Seconds below 8 FPS", FALSE, TRUE), |
122 | // ST_SIM_FPS_20_SECONDS | 122 | // ST_SIM_FPS_20_SECONDS |
123 | StatAttributes("Seconds with sim FPS below 20", TRUE, TRUE), | 123 | StatAttributes("Seconds with sim FPS below 20", FALSE, TRUE), |
124 | // ST_PHYS_FPS_20_SECONDS | 124 | // ST_PHYS_FPS_20_SECONDS |
125 | StatAttributes("Seconds with physics FPS below 20", FALSE, TRUE), | 125 | StatAttributes("Seconds with physics FPS below 20", FALSE, TRUE), |
126 | // ST_LOSS_05_SECONDS | 126 | // ST_LOSS_05_SECONDS |
127 | StatAttributes("Seconds with packet loss > 5%", TRUE, TRUE), | 127 | StatAttributes("Seconds with packet loss > 5%", FALSE, TRUE), |
128 | // ST_FPS_DROP_50_RATIO | 128 | // ST_FPS_DROP_50_RATIO |
129 | StatAttributes("Ratio of frames 2x longer than previous", FALSE, FALSE), | 129 | StatAttributes("Ratio of frames 2x longer than previous", FALSE, FALSE), |
130 | // ST_ENABLE_VBO | 130 | // ST_ENABLE_VBO |
131 | StatAttributes("Vertex Buffers Enabled", TRUE, FALSE), | 131 | StatAttributes("Vertex Buffers Enabled", TRUE, FALSE), |
132 | // ST_DELTA_BANDWIDTH | 132 | // ST_DELTA_BANDWIDTH |
133 | StatAttributes("Increase/Decrease in bandwidth based on packet loss", TRUE, FALSE), | 133 | StatAttributes("Increase/Decrease in bandwidth based on packet loss", FALSE, FALSE), |
134 | // ST_MAX_BANDWIDTH | 134 | // ST_MAX_BANDWIDTH |
135 | StatAttributes("Max bandwidth setting", TRUE, FALSE), | 135 | StatAttributes("Max bandwidth setting", FALSE, FALSE), |
136 | // ST_LIGHTING_DETAIL | 136 | // ST_LIGHTING_DETAIL |
137 | StatAttributes("Lighting Detail", TRUE, FALSE), | 137 | StatAttributes("Lighting Detail", FALSE, FALSE), |
138 | // ST_VISIBLE_AVATARS | 138 | // ST_VISIBLE_AVATARS |
139 | StatAttributes("Visible Avatars", TRUE, FALSE), | 139 | StatAttributes("Visible Avatars", FALSE, FALSE), |
140 | // ST_SHADER_OJECTS | 140 | // ST_SHADER_OJECTS |
141 | StatAttributes("Object Shaders", TRUE, FALSE), | 141 | StatAttributes("Object Shaders", FALSE, FALSE), |
142 | // ST_SHADER_ENVIRONMENT | 142 | // ST_SHADER_ENVIRONMENT |
143 | StatAttributes("Environment Shaders", TRUE, FALSE), | 143 | StatAttributes("Environment Shaders", FALSE, FALSE), |
144 | // ST_VISIBLE_DRAW_DIST | 144 | // ST_VISIBLE_DRAW_DIST |
145 | StatAttributes("Draw Distance", TRUE, FALSE), | 145 | StatAttributes("Draw Distance", FALSE, FALSE), |
146 | // ST_VISIBLE_CHAT_BUBBLES | 146 | // ST_VISIBLE_CHAT_BUBBLES |
147 | StatAttributes("Chat Bubbles Enabled", TRUE, FALSE), | 147 | StatAttributes("Chat Bubbles Enabled", FALSE, FALSE), |
148 | // ST_SHADER_AVATAR | 148 | // ST_SHADER_AVATAR |
149 | StatAttributes("Avatar Shaders", TRUE, FALSE), | 149 | StatAttributes("Avatar Shaders", FALSE, FALSE), |
150 | // ST_FRAME_SECS | 150 | // ST_FRAME_SECS |
151 | StatAttributes("FRAME_SECS", TRUE, FALSE), | 151 | StatAttributes("FRAME_SECS", FALSE, FALSE), |
152 | // ST_UPDATE_SECS | 152 | // ST_UPDATE_SECS |
153 | StatAttributes("UPDATE_SECS", TRUE, FALSE), | 153 | StatAttributes("UPDATE_SECS", FALSE, FALSE), |
154 | // ST_NETWORK_SECS | 154 | // ST_NETWORK_SECS |
155 | StatAttributes("NETWORK_SECS", TRUE, FALSE), | 155 | StatAttributes("NETWORK_SECS", FALSE, FALSE), |
156 | // ST_IMAGE_SECS | 156 | // ST_IMAGE_SECS |
157 | StatAttributes("IMAGE_SECS", TRUE, FALSE), | 157 | StatAttributes("IMAGE_SECS", FALSE, FALSE), |
158 | // ST_REBUILD_SECS | 158 | // ST_REBUILD_SECS |
159 | StatAttributes("REBUILD_SECS", TRUE, FALSE), | 159 | StatAttributes("REBUILD_SECS", FALSE, FALSE), |
160 | // ST_RENDER_SECS | 160 | // ST_RENDER_SECS |
161 | StatAttributes("RENDER_SECS", TRUE, FALSE), | 161 | StatAttributes("RENDER_SECS", FALSE, FALSE), |
162 | // ST_CROSSING_AVG | 162 | // ST_CROSSING_AVG |
163 | StatAttributes("CROSSING_AVG", TRUE, FALSE), | 163 | StatAttributes("CROSSING_AVG", FALSE, FALSE), |
164 | // ST_CROSSING_MAX | 164 | // ST_CROSSING_MAX |
165 | StatAttributes("CROSSING_MAX", TRUE, FALSE), | 165 | StatAttributes("CROSSING_MAX", FALSE, FALSE), |
166 | // ST_LIBXUL_WIDGET_USED | 166 | // ST_LIBXUL_WIDGET_USED |
167 | StatAttributes("LibXUL Widget used", TRUE, FALSE), | 167 | StatAttributes("LibXUL Widget used", FALSE, FALSE), |
168 | // ST_WINDOW_WIDTH | 168 | // ST_WINDOW_WIDTH |
169 | StatAttributes("Window width", TRUE, FALSE), | 169 | StatAttributes("Window width", FALSE, FALSE), |
170 | // ST_WINDOW_HEIGHT | 170 | // ST_WINDOW_HEIGHT |
171 | StatAttributes("Window height", TRUE, FALSE), | 171 | StatAttributes("Window height", FALSE, FALSE), |
172 | // ST_TEX_BAKES | 172 | // ST_TEX_BAKES |
173 | StatAttributes("Texture Bakes", TRUE, FALSE), | 173 | StatAttributes("Texture Bakes", FALSE, FALSE), |
174 | // ST_TEX_REBAKES | 174 | // ST_TEX_REBAKES |
175 | StatAttributes("Texture Rebakes", TRUE, FALSE) | 175 | StatAttributes("Texture Rebakes", FALSE, FALSE) |
176 | }; | 176 | }; |
177 | 177 | ||
178 | LLViewerStats::LLViewerStats() | 178 | LLViewerStats::LLViewerStats() |
diff --git a/linden/indra/newview/llvlcomposition.cpp b/linden/indra/newview/llvlcomposition.cpp index f2fa1e6..e0cb40d 100644 --- a/linden/indra/newview/llvlcomposition.cpp +++ b/linden/indra/newview/llvlcomposition.cpp | |||
@@ -269,6 +269,7 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y, | |||
269 | 269 | ||
270 | // These have already been validated by generateComposition. | 270 | // These have already been validated by generateComposition. |
271 | U8* st_data[4]; | 271 | U8* st_data[4]; |
272 | S32 st_data_size[4]; // for debugging | ||
272 | 273 | ||
273 | for (S32 i = 0; i < 4; i++) | 274 | for (S32 i = 0; i < 4; i++) |
274 | { | 275 | { |
@@ -299,6 +300,7 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y, | |||
299 | } | 300 | } |
300 | } | 301 | } |
301 | st_data[i] = mRawImages[i]->getData(); | 302 | st_data[i] = mRawImages[i]->getData(); |
303 | st_data_size[i] = mRawImages[i]->getDataSize(); | ||
302 | } | 304 | } |
303 | 305 | ||
304 | /////////////////////////////////////// | 306 | /////////////////////////////////////// |
@@ -413,9 +415,18 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y, | |||
413 | for (U32 k = 0; k < tex_comps; k++) | 415 | for (U32 k = 0; k < tex_comps; k++) |
414 | { | 416 | { |
415 | // Linearly interpolate based on composition. | 417 | // Linearly interpolate based on composition. |
416 | F32 a = *(st_data[tex0] + st_offset); | 418 | if (st_offset >= st_data_size[tex0] || st_offset >= st_data_size[tex1]) |
417 | F32 b = *(st_data[tex1] + st_offset); | 419 | { |
418 | rawp[ offset ] = (U8)lltrunc( a + composition * (b - a) ); | 420 | // SJB: This shouldn't be happening, but does... Rounding error? |
421 | //llwarns << "offset 0 [" << tex0 << "] =" << st_offset << " >= size=" << st_data_size[tex0] << llendl; | ||
422 | //llwarns << "offset 1 [" << tex1 << "] =" << st_offset << " >= size=" << st_data_size[tex1] << llendl; | ||
423 | } | ||
424 | else | ||
425 | { | ||
426 | F32 a = *(st_data[tex0] + st_offset); | ||
427 | F32 b = *(st_data[tex1] + st_offset); | ||
428 | rawp[ offset ] = (U8)lltrunc( a + composition * (b - a) ); | ||
429 | } | ||
419 | offset++; | 430 | offset++; |
420 | st_offset++; | 431 | st_offset++; |
421 | } | 432 | } |
diff --git a/linden/indra/newview/releasenotes.txt b/linden/indra/newview/releasenotes.txt index b8822dc..5fd9230 100644 --- a/linden/indra/newview/releasenotes.txt +++ b/linden/indra/newview/releasenotes.txt | |||
@@ -1,3 +1,15 @@ | |||
1 | Release Notes for Second Life 1.14.0(1) March 30, 2007 | ||
2 | ===================================== | ||
3 | Fixes: | ||
4 | * Fixed: When going to recent items tab in inventory, inventory contents do not download | ||
5 | * Fixed: Crash in llvlcomposition | ||
6 | * Fixed: VWR-200: money(); events in a linked sets fail to trigger | ||
7 | * Fixed: VWR-109: Characters from fallback fonts don't scale properly | ||
8 | * Fixed: VWR-100: Messages form OpenJPEG only in debug mode | ||
9 | * Fixed: VWR-97: Several iterator bugs in llmessage | ||
10 | * Fixed: VWR-45: trivial patch, initialize variables | ||
11 | * Fixed: VWR-14: Inconsistancy with reading binary data in llpolymesh.cpp | ||
12 | |||
1 | Release Notes for Second Life 1.14.0(0) March 27, 2007 | 13 | Release Notes for Second Life 1.14.0(0) March 27, 2007 |
2 | ===================================== | 14 | ===================================== |
3 | New feature: | 15 | New feature: |