Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Alchemy Viewer
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package registry
Operate
Terraform modules
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Silent mode is enabled
All outbound communications are blocked.
Learn more
.
Show more breadcrumbs
Alchemy Viewer
Alchemy Viewer
Commits
864d579e
Commit
864d579e
authored
9 years ago
by
andreykproductengine
Browse files
Options
Downloads
Patches
Plain Diff
MAINT-5557 'complexity' change should hide 'over limit' part
parent
b74a7267
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
indra/newview/llavatarrendernotifier.cpp
+41
-65
41 additions, 65 deletions
indra/newview/llavatarrendernotifier.cpp
indra/newview/llavatarrendernotifier.h
+0
-1
0 additions, 1 deletion
indra/newview/llavatarrendernotifier.h
with
41 additions
and
66 deletions
indra/newview/llavatarrendernotifier.cpp
+
41
−
65
View file @
864d579e
...
...
@@ -99,6 +99,7 @@ std::string LLAvatarRenderNotifier::overLimitMessage()
void
LLAvatarRenderNotifier
::
displayNotification
()
{
mAgentComplexity
=
mLatestAgentComplexity
;
static
LLCachedControl
<
U32
>
expire_delay
(
gSavedSettings
,
"ShowMyComplexityChanges"
,
20
);
LLDate
expire_date
(
LLDate
::
now
().
secondsSinceEpoch
()
+
expire_delay
);
...
...
@@ -107,6 +108,10 @@ void LLAvatarRenderNotifier::displayNotification()
std
::
string
notification_name
;
if
(
mShowOverLimitAgents
)
{
mAgentsCount
=
mLatestAgentsCount
;
mOverLimitAgents
=
mLatestOverLimitAgents
;
mOverLimitPct
=
mLatestOverLimitPct
;
std
::
string
notification_message
=
overLimitMessage
();
notification_name
=
"RegionAndAgentComplexity"
;
args
[
"OVERLIMIT_MSG"
]
=
notification_message
;
...
...
@@ -134,69 +139,6 @@ bool LLAvatarRenderNotifier::isNotificationVisible()
return
mNotificationPtr
!=
NULL
&&
mNotificationPtr
->
isActive
();
}
void
LLAvatarRenderNotifier
::
updateNotification
()
{
if
(
mAgentsCount
==
mLatestAgentsCount
&&
mOverLimitAgents
==
mLatestOverLimitAgents
&&
mAgentComplexity
==
mLatestAgentComplexity
)
{
//no changes since last notification
return
;
}
if
(
mLatestAgentComplexity
==
0
||
!
gAgentWearables
.
areWearablesLoaded
())
{
// data not ready, nothing to show.
return
;
}
bool
display_notification
=
false
;
bool
is_visible
=
isNotificationVisible
();
if
(
mLatestOverLimitPct
>
0
||
mOverLimitPct
>
0
)
{
//include 'over limit' information into notification
mShowOverLimitAgents
=
true
;
}
else
{
// make sure that 'over limit' won't be displayed only to be hidden in a second
mShowOverLimitAgents
&=
is_visible
;
}
if
(
mAgentComplexity
!=
mLatestAgentComplexity
)
{
// if we have an agent complexity update, we always display it
display_notification
=
true
;
// next 'over limit' update should be displayed after delay to make sure information got updated at server side
mPopUpDelayTimer
.
resetWithExpiry
(
OVER_LIMIT_UPDATE_DELAY
);
}
else
if
(
(
mPopUpDelayTimer
.
hasExpired
()
||
is_visible
)
&&
(
mOverLimitPct
>
0
||
mLatestOverLimitPct
>
0
)
&&
std
::
abs
(
mOverLimitPct
-
mLatestOverLimitPct
)
>
mLatestOverLimitPct
*
RENDER_ALLOWED_CHANGE_PCT
)
{
// display in case of drop to/from zero and in case of significant (RENDER_ALLOWED_CHANGE_PCT) changes
display_notification
=
true
;
// default timeout before next notification
static
LLCachedControl
<
U32
>
pop_up_delay
(
gSavedSettings
,
"ComplexityChangesPopUpDelay"
,
300
);
mPopUpDelayTimer
.
resetWithExpiry
(
pop_up_delay
);
}
if
(
display_notification
)
{
mAgentComplexity
=
mLatestAgentComplexity
;
mAgentsCount
=
mLatestAgentsCount
;
mOverLimitAgents
=
mLatestOverLimitAgents
;
mOverLimitPct
=
mLatestOverLimitPct
;
displayNotification
();
}
}
void
LLAvatarRenderNotifier
::
updateNotificationRegion
(
U32
agentcount
,
U32
overLimit
)
{
if
(
agentcount
==
0
)
...
...
@@ -210,7 +152,27 @@ void LLAvatarRenderNotifier::updateNotificationRegion(U32 agentcount, U32 overLi
mLatestOverLimitAgents
=
overLimit
;
mLatestOverLimitPct
=
mLatestAgentsCount
!=
0
?
((
F32
)
overLimit
/
(
F32
)
mLatestAgentsCount
)
*
100.0
:
0
;
updateNotification
();
if
(
mAgentsCount
==
mLatestAgentsCount
&&
mOverLimitAgents
==
mLatestOverLimitAgents
)
{
//no changes since last notification
return
;
}
if
((
mPopUpDelayTimer
.
hasExpired
()
||
(
isNotificationVisible
()
&&
mShowOverLimitAgents
))
&&
(
mOverLimitPct
>
0
||
mLatestOverLimitPct
>
0
)
&&
std
::
abs
(
mOverLimitPct
-
mLatestOverLimitPct
)
>
mLatestOverLimitPct
*
RENDER_ALLOWED_CHANGE_PCT
)
{
// display in case of drop to/from zero and in case of significant (RENDER_ALLOWED_CHANGE_PCT) changes
mShowOverLimitAgents
=
true
;
displayNotification
();
// default timeout before next notification
static
LLCachedControl
<
U32
>
pop_up_delay
(
gSavedSettings
,
"ComplexityChangesPopUpDelay"
,
300
);
mPopUpDelayTimer
.
resetWithExpiry
(
pop_up_delay
);
}
}
void
LLAvatarRenderNotifier
::
updateNotificationAgent
(
U32
agentComplexity
)
...
...
@@ -218,6 +180,12 @@ void LLAvatarRenderNotifier::updateNotificationAgent(U32 agentComplexity)
// save the value for use in following messages
mLatestAgentComplexity
=
agentComplexity
;
if
(
!
gAgentWearables
.
areWearablesLoaded
())
{
// data not ready, nothing to show.
return
;
}
if
(
!
mNotifyOutfitLoading
)
{
// We should not notify about initial outfit and it's load process without reason
...
...
@@ -244,6 +212,14 @@ void LLAvatarRenderNotifier::updateNotificationAgent(U32 agentComplexity)
}
}
updateNotification
();
if
(
mAgentComplexity
!=
mLatestAgentComplexity
)
{
// if we have an agent complexity change, we always display it and hide 'over limit'
mShowOverLimitAgents
=
false
;
displayNotification
();
// next 'over limit' update should be displayed after delay to make sure information got updated at server side
mPopUpDelayTimer
.
resetWithExpiry
(
OVER_LIMIT_UPDATE_DELAY
);
}
}
This diff is collapsed.
Click to expand it.
indra/newview/llavatarrendernotifier.h
+
0
−
1
View file @
864d579e
...
...
@@ -43,7 +43,6 @@ class LLAvatarRenderNotifier : public LLSingleton<LLAvatarRenderNotifier>
void
displayNotification
();
bool
isNotificationVisible
();
void
updateNotification
();
void
updateNotificationRegion
(
U32
agentcount
,
U32
overLimit
);
void
updateNotificationAgent
(
U32
agentComplexity
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment