Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Black Dragon Viewer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
NiranV
Black Dragon Viewer
Commits
47622f0a
Commit
47622f0a
authored
Feb 05, 2020
by
Andrey Kleshchev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert SL-4354
parent
a43b997c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
67 deletions
+16
-67
indra/newview/llvoavatar.cpp
indra/newview/llvoavatar.cpp
+15
-64
indra/newview/llvoavatar.h
indra/newview/llvoavatar.h
+1
-3
No files found.
indra/newview/llvoavatar.cpp
View file @
47622f0a
...
...
@@ -197,8 +197,6 @@ const F32 NAMETAG_VERT_OFFSET_WEIGHT = 0.17f;
const
U32
LLVOAvatar
::
VISUAL_COMPLEXITY_UNKNOWN
=
0
;
const
F64
HUD_OVERSIZED_TEXTURE_DATA_SIZE
=
1024
*
1024
;
const
F32
MAX_TEXTURE_WAIT_TIME_SEC
=
60
;
enum
ERenderName
{
RENDER_NAME_NEVER
,
...
...
@@ -665,7 +663,6 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mFullyLoadedInitialized
(
FALSE
),
mVisualComplexity
(
VISUAL_COMPLEXITY_UNKNOWN
),
mLoadedCallbacksPaused
(
FALSE
),
mLoadedCallbackTextures
(
0
),
mRenderUnloadedAvatar
(
LLCachedControl
<
bool
>
(
gSavedSettings
,
"RenderUnloadedAvatar"
,
false
)),
mLastRezzedStatus
(
-
1
),
mIsEditingAppearance
(
FALSE
),
...
...
@@ -886,9 +883,8 @@ BOOL LLVOAvatar::hasGray() const
S32
LLVOAvatar
::
getRezzedStatus
()
const
{
if
(
getIsCloud
())
return
0
;
bool
textured
=
isFullyTextured
();
if
(
textured
&&
allBakedTexturesCompletelyDownloaded
())
return
3
;
if
(
textured
)
return
2
;
if
(
isFullyTextured
()
&&
allBakedTexturesCompletelyDownloaded
())
return
3
;
if
(
isFullyTextured
())
return
2
;
llassert
(
hasGray
());
return
1
;
// gray
}
...
...
@@ -5330,7 +5326,6 @@ void LLVOAvatar::checkTextureLoading()
if
(
mCallbackTextureList
.
empty
())
//when is self or no callbacks. Note: this list for self is always empty.
{
mLoadedCallbacksPaused
=
pause
;
mLoadedCallbackTextures
=
0
;
return
;
//nothing to check.
}
...
...
@@ -5338,9 +5333,7 @@ void LLVOAvatar::checkTextureLoading()
{
return
;
//have not been invisible for enough time.
}
mLoadedCallbackTextures
=
pause
?
mCallbackTextureList
.
size
()
:
0
;
for
(
LLLoadedCallbackEntry
::
source_callback_list_t
::
iterator
iter
=
mCallbackTextureList
.
begin
();
iter
!=
mCallbackTextureList
.
end
();
++
iter
)
{
...
...
@@ -5361,15 +5354,9 @@ void LLVOAvatar::checkTextureLoading()
tex
->
unpauseLoadedCallbacks
(
&
mCallbackTextureList
)
;
tex
->
addTextureStats
(
START_AREA
);
//jump start the fetching again
// technically shouldn't need to account for missing, but callback might not have happened yet
if
(
tex
->
getDiscardLevel
()
>=
0
||
tex
->
isMissingAsset
())
{
mLoadedCallbackTextures
++
;
// consider it loaded (we have at least some data)
}
}
}
}
}
}
if
(
!
pause
)
{
...
...
@@ -7633,13 +7620,14 @@ bool LLVOAvatar::getIsCloud() const
);
}
void
LLVOAvatar
::
updateRezzedStatusTimers
(
S32
rez_status
)
void
LLVOAvatar
::
updateRezzedStatusTimers
()
{
// State machine for rezzed status. Statuses are -1 on startup, 0
// = cloud, 1 = gray, 2 = downloading, 3 = full.
// Purpose is to collect time data for each it takes avatar to reach
// various loading landmarks: gray, textured (partial), textured fully.
S32
rez_status
=
getRezzedStatus
();
if
(
rez_status
!=
mLastRezzedStatus
)
{
LL_DEBUGS
(
"Avatar"
)
<<
avString
()
<<
"rez state change: "
<<
mLastRezzedStatus
<<
" -> "
<<
rez_status
<<
LL_ENDL
;
...
...
@@ -7809,21 +7797,8 @@ void LLVOAvatar::logMetricsTimerRecord(const std::string& phase_name, F32 elapse
// returns true if the value has changed.
BOOL
LLVOAvatar
::
updateIsFullyLoaded
()
{
S32
rez_status
=
getRezzedStatus
();
bool
loading
=
getIsCloud
();
if
(
mFirstFullyVisible
&&
!
mIsControlAvatar
)
{
loading
=
((
rez_status
<
2
)
// Wait at least 60s for unfinished textures to finish on first load,
// don't wait forever, it might fail. Even if it will eventually load by
// itself and update mLoadedCallbackTextures (or fail and clean the list),
// avatars are more time-sensitive than textures and can't wait that long.
||
(
mLoadedCallbackTextures
<
mCallbackTextureList
.
size
()
&&
mLastTexCallbackAddedTime
.
getElapsedTimeF32
()
<
MAX_TEXTURE_WAIT_TIME_SEC
)
||
!
mPendingAttachment
.
empty
()
||
(
rez_status
<
3
&&
!
isFullyBaked
())
);
}
updateRezzedStatusTimers
(
rez_status
);
const
bool
loading
=
getIsCloud
();
updateRezzedStatusTimers
();
updateRuthTimer
(
loading
);
return
processFullyLoadedChange
(
loading
);
}
...
...
@@ -7859,22 +7834,13 @@ void LLVOAvatar::updateRuthTimer(bool loading)
BOOL
LLVOAvatar
::
processFullyLoadedChange
(
bool
loading
)
{
// We wait a little bit before giving the 'all clear', to let things to
// settle down (models to snap into place, textures to get first packets)
const
F32
LOADED_DELAY
=
1.
f
;
const
F32
FIRST_USE_DELAY
=
3.
f
;
// we wait a little bit before giving the all clear,
// to let textures settle down
const
F32
PAUSE
=
1.
f
;
if
(
loading
)
mFullyLoadedTimer
.
reset
();
if
(
mFirstFullyVisible
)
{
mFullyLoaded
=
(
mFullyLoadedTimer
.
getElapsedTimeF32
()
>
FIRST_USE_DELAY
);
}
else
{
mFullyLoaded
=
(
mFullyLoadedTimer
.
getElapsedTimeF32
()
>
LOADED_DELAY
);
}
mFullyLoaded
=
(
mFullyLoadedTimer
.
getElapsedTimeF32
()
>
PAUSE
);
if
(
!
mPreviousFullyLoaded
&&
!
loading
&&
mFullyLoaded
)
{
...
...
@@ -8205,14 +8171,6 @@ void LLVOAvatar::updateMeshTextures()
}
baked_img
->
setLoadedCallback
(
onBakedTextureLoaded
,
SWITCH_TO_BAKED_DISCARD
,
FALSE
,
FALSE
,
new
LLUUID
(
mID
),
src_callback_list
,
paused
);
if
(
baked_img
->
getDiscardLevel
()
<
0
&&
!
paused
)
{
mLastTexCallbackAddedTime
.
reset
();
}
else
{
mLoadedCallbackTextures
++
;
// consider it loaded
}
// this could add paused texture callbacks
mLoadedCallbacksPaused
|=
paused
;
...
...
@@ -8606,14 +8564,7 @@ void LLVOAvatar::onFirstTEMessageReceived()
LL_DEBUGS
(
"Avatar"
)
<<
avString
()
<<
"layer_baked, setting onInitialBakedTextureLoaded as callback"
<<
LL_ENDL
;
image
->
setLoadedCallback
(
onInitialBakedTextureLoaded
,
MAX_DISCARD_LEVEL
,
FALSE
,
FALSE
,
new
LLUUID
(
mID
),
src_callback_list
,
paused
);
if
(
image
->
getDiscardLevel
()
<
0
&&
!
paused
)
{
mLastTexCallbackAddedTime
.
reset
();
}
else
{
mLoadedCallbackTextures
++
;
// consider it loaded
}
// this could add paused texture callbacks
mLoadedCallbacksPaused
|=
paused
;
}
...
...
indra/newview/llvoavatar.h
View file @
47622f0a
...
...
@@ -348,7 +348,7 @@ class LLVOAvatar :
BOOL
isFullyTextured
()
const
;
BOOL
hasGray
()
const
;
S32
getRezzedStatus
()
const
;
// 0 = cloud, 1 = gray, 2 = textured, 3 = textured and fully downloaded.
void
updateRezzedStatusTimers
(
S32
status
);
void
updateRezzedStatusTimers
();
S32
mLastRezzedStatus
;
...
...
@@ -629,8 +629,6 @@ class LLVOAvatar :
LLLoadedCallbackEntry
::
source_callback_list_t
mCallbackTextureList
;
BOOL
mLoadedCallbacksPaused
;
S32
mLoadedCallbackTextures
;
// count of 'loaded' textures filled from mCallbackTextureList
LLFrameTimer
mLastTexCallbackAddedTime
;
std
::
set
<
LLUUID
>
mTextureIDs
;
//--------------------------------------------------------------------
// Local Textures
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment