diff options
Diffstat (limited to 'linden/indra/newview')
-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 |
13 files changed, 100 insertions, 52 deletions
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: |