mirror of
https://github.com/overte-org/overte.git
synced 2025-04-08 09:33:49 +02:00
Merge pull request #15693 from sabrina-shanman/bug_avatar_res-state
(BUGZ-559) Improve transition debugging and transition clean-up
This commit is contained in:
commit
4c18ce7ae6
11 changed files with 276 additions and 115 deletions
|
@ -1,52 +1,171 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 1600 100" style="enable-background:new 0 0 1600 100;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 1600 100"
|
||||
style="enable-background:new 0 0 1600 100;"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="statusIconAtlas.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
|
||||
id="metadata35"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs33" />
|
||||
<style
|
||||
type="text/css"
|
||||
id="style2">
|
||||
.st0{fill:#050505;}
|
||||
</style>
|
||||
<path class="st0" d="M92.8,69.3c-0.8-1.5-1.9-2.7-3.1-3.8c4.4-11.4,3.7-24.6-2.6-35.8c-9.2-16.3-28.3-24.4-46.3-20l-3.1,0.7l4.9,8.7
|
||||
l1.7-0.3c13.7-2.7,27.6,3.6,34.5,15.7c4.9,8.7,5.5,18.9,1.9,27.9c-2.1,0.1-4.3,0.6-6.2,1.8c-6.5,3.7-8.8,12-5.1,18.5
|
||||
c3.7,6.5,12,8.8,18.5,5.1C94.2,84.1,96.5,75.8,92.8,69.3z"/>
|
||||
<path class="st0" d="M54.2,82.6l-1.5,0.1c-12.3,0.8-24.2-5.6-30.2-16.3c-3.8-6.6-4.9-14.2-3.7-21.3c2.8,0.4,5.9-0.1,8.6-1.6
|
||||
c6.5-3.7,8.8-12,5.1-18.5s-12-8.8-18.5-5.1C7.7,23.7,5.4,32,9,38.5c0.3,0.6,0.7,1.2,1.2,1.7c-2.6,10.3-1.4,21.5,4.1,31.1
|
||||
c7.5,13.2,21.5,21.2,36.5,21.2c1.8,0,3.5-0.1,5.2-0.3l3.6-0.4L54.2,82.6z"/>
|
||||
<path class="st0" d="M67.2,63.4H33.8c-1,0-2.1-0.5-2.6-1.5c-0.5-0.9-0.5-2.1,0-3L47.8,30c0.5-0.9,1.6-1.5,2.6-1.5S52.5,29,53,30
|
||||
l16.7,28.9c0.5,0.9,0.5,2.1,0,3C69.3,62.9,68.3,63.4,67.2,63.4z M39,57.4h23L50.4,37.5L39,57.4z"/>
|
||||
<polygon class="st0" points="175.4,30.6 149.9,8 123.9,30.7 139,30.7 139.2,59.6 161,59.3 160.8,30.7 "/>
|
||||
<polygon class="st0" points="225.6,39.8 251.1,62.5 277.1,39.8 261.9,39.8 261.7,8.9 240,9.2 240.2,39.8 "/>
|
||||
<path class="st0" d="M174.3,42.8c1.8,3.7,2.8,7.8,2.8,12.1c0,15.2-12.3,27.5-27.5,27.5s-27.5-12.3-27.5-27.5c0-4.4,1-8.5,2.9-12.1
|
||||
h-7.9c-1.4,3.8-2.2,7.8-2.2,12.1c0,19.2,15.6,34.7,34.7,34.7c19.2,0,34.7-15.6,34.7-34.7c0-4.3-0.8-8.3-2.2-12.1
|
||||
C182.1,42.8,174.3,42.8,174.3,42.8z"/>
|
||||
<path class="st0" d="M278.8,53c0.1,0.7,0.1,1.5,0.1,2.2c0,15.2-12.4,27.6-27.6,27.6c-15.2,0-27.6-12.4-27.6-27.6
|
||||
c0-1.1,0.1-2.1,0.2-3.1c-2.1-2.1-4.1-4.1-6.2-6.2c-0.8,3-1.3,6.1-1.3,9.3c0,19.2,15.6,34.9,34.9,34.9s34.9-15.6,34.9-34.9
|
||||
c0-2.9-0.4-5.8-1.1-8.5L278.8,53z"/>
|
||||
<path class="st0" d="M353.3,91.2c-0.3,0-0.7,0-1,0c-1.8-0.2-3.5-0.4-5.3-0.7c-21.3-3.6-35.2-22.8-32-44.2
|
||||
c2.7-18.2,17.7-31.4,36.8-32.5c17.2-0.9,33.8,11.4,38.2,28.5c0.8,3.1,1.1,6.3,1.6,9.5c0,0.3,0,0.7,0,1c-0.2,0.9-0.4,1.8-0.5,2.7
|
||||
c-1.3,16.3-12.9,30.1-28.8,34C359.3,90.4,356.3,90.7,353.3,91.2z M353.7,83.9c8.3,0,16.1-3.4,22.6-9.9c2.2-2.2,2-3.1-0.7-4.5
|
||||
c-3.9-1.9-7.8-3.7-11.7-5.6c-4-2-4.6-8.1-1.1-10.8c2-1.5,2.4-3.7,2.1-5.9c-0.2-1.8-1-3.5-1.2-5.3c-0.6-6-5.2-10.2-11.1-10.1
|
||||
s-10.4,4.8-10.6,10.9c-0.1,1.4-0.4,2.8-0.9,4.1c-0.6,1.9,0.1,4.9,1.7,6.3c3.8,3.1,3.1,9-1.4,11.2c-3.6,1.7-7.2,3.4-10.8,5.2
|
||||
c-3.4,1.6-3.6,2.5-0.8,5.1C336.2,80.6,343.8,83.9,353.7,83.9z"/>
|
||||
<polygon class="st0" points="445.3,14.1 484.6,14.1 461.5,38.2 485.6,41.4 422.2,86.9 441.2,53.4 425.6,49.3 "/>
|
||||
<path class="st0" d="M564.7,53.2l0.1-8.7l-22.9-0.2c0.1-0.5,0.2-1.1,0.2-1.6c0.2-6.1,4.7-10.8,10.6-10.9c5.9-0.1,10.5,4.1,11.1,10.1
|
||||
c0.1,0.9,0.3,1.7,0.6,2.6l26.7,0.2c-3.3-17.9-19-31.4-37.9-31.4c-18.6,0-34.2,13.2-37.8,30.8l26.4,0.2l0,0l-0.9,0l-0.1,8.7
|
||||
l-26.2-0.2c0.5,20.8,17.5,37.6,38.5,37.6c20.7,0,37.6-16.4,38.5-36.9L564.7,53.2z M576.3,74c-6.5,6.5-14.3,9.9-22.6,9.9
|
||||
c-9.9,0-17.5-3.3-23.9-9.3c-2.8-2.6-2.6-3.5,0.8-5.1c3.6-1.8,7.2-3.5,10.8-5.2c4.5-2.2,5.2-8.1,1.4-11.2c0,0-0.1-0.1-0.1-0.1l20,0.2
|
||||
c-3.4,2.7-2.8,8.7,1.2,10.7c3.9,1.9,7.8,3.7,11.7,5.6C578.3,70.9,578.5,71.8,576.3,74z"/>
|
||||
<g>
|
||||
<path class="st0" d="M638.5,48.2c-1.2-1-2.3-2.2-3.2-3.5h-16.7v9.2h29.1c-1.4-0.6-2.6-1.3-4-2.2C641.6,50.4,640.3,49.7,638.5,48.2z
|
||||
"/>
|
||||
<path class="st0" d="M684.9,44.7h-31.3c1,0.5,2.1,1,3.2,1.5c2.2,1,3.5,1.8,5.6,3.1c2.1,1.3,4.2,2.3,6,3.8c0.4,0.3,0.7,0.6,1,0.9
|
||||
h15.5V44.7z"/>
|
||||
<path class="st0" d="M651.5,44.2c-1.4-0.7-2.6-1.4-3.6-2.2c-1.1-0.8-1.9-1.7-2.5-2.8c-0.6-1-0.9-2.2-0.9-3.7c0-2.1,0.7-3.8,2-5.1
|
||||
c1.3-1.3,3.2-2,5.7-2c1.1,0,2.2,0.1,3.2,0.4c1,0.3,1.9,0.8,2.7,1.4c0.8,0.7,1.5,1.6,2,2.7c0.5,1.1,0.9,2.5,1.1,4.2h7.4
|
||||
c0.2,0,0.5,0,0.9,0c0.4,0,0.9,0,1.3,0c0.5,0,0.9,0,1.3,0c0.4,0,0.7,0,0.9,0c-0.1-3.3-0.7-6.1-1.8-8.5s-2.5-4.4-4.4-5.9
|
||||
c-1.9-1.5-4-2.7-6.5-3.4c-2.5-0.7-5.1-1.1-8-1.1c-2.6,0-5,0.4-7.4,1.1c-2.4,0.7-4.4,1.8-6.3,3.2c-1.8,1.4-3.3,3.2-4.3,5.3
|
||||
c-1.1,2.1-1.6,4.6-1.6,7.6c0,3,0.6,5.5,1.7,7.5c0.3,0.6,0.7,1.2,1.1,1.8h17.3C652.2,44.5,651.9,44.3,651.5,44.2z"/>
|
||||
<path class="st0" d="M651.1,55c1.5,0.7,2.9,1.3,4.2,1.9s2.6,1.3,3.6,2.1c1,0.8,1.9,1.7,2.5,2.8s0.9,2.4,0.9,4c0,1.7-0.3,3.2-1,4.3
|
||||
c-0.7,1.1-1.5,2-2.5,2.7c-1,0.7-2.1,1.1-3.3,1.4c-1.2,0.3-2.4,0.4-3.5,0.4c-1.3,0-2.5-0.2-3.7-0.7c-1.1-0.4-2.1-1.2-2.9-2.1
|
||||
c-0.8-1-1.5-2.3-2-3.8c-0.5-1.6-0.8-3.5-0.8-5.7h-12.1c0.1,3.7,0.8,7,1.9,9.8c1.2,2.8,2.7,5.2,4.7,7c1.9,1.9,4.2,3.3,6.7,4.2
|
||||
s5.3,1.4,8.1,1.4c2.9,0,5.8-0.4,8.4-1.1c2.7-0.7,5-1.9,7.1-3.5c2-1.6,3.7-3.6,4.9-6.1s1.8-5.5,1.8-9.1c0-2.6-0.5-4.9-1.6-6.8
|
||||
c-0.9-1.5-2-2.9-3.3-4.1h-20.7C649.5,54.3,650.3,54.6,651.1,55z"/>
|
||||
<sodipodi:namedview
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
id="namedview82"
|
||||
inkscape:current-layer="Layer_1"
|
||||
inkscape:cx="618.02971"
|
||||
inkscape:cy="163.62366"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:zoom="1.003678"
|
||||
objecttolerance="10"
|
||||
pagecolor="#000000"
|
||||
showgrid="true">
|
||||
|
||||
<inkscape:grid
|
||||
color="#3fffff"
|
||||
empcolor="#3fffff"
|
||||
empopacity="0.51764706"
|
||||
empspacing="100"
|
||||
id="grid3791"
|
||||
opacity="0.62745098"
|
||||
type="xygrid"
|
||||
visible="true">
|
||||
</inkscape:grid>
|
||||
<inkscape:grid
|
||||
enabled="false"
|
||||
id="grid3793"
|
||||
type="xygrid" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
id="path51"
|
||||
class="st0"
|
||||
d="M92.8,69.3c-0.8-1.5-1.9-2.7-3.1-3.8c4.4-11.4,3.7-24.6-2.6-35.8c-9.2-16.3-28.3-24.4-46.3-20 l-3.1,0.7l4.9,8.7l1.7-0.3c13.7-2.7,27.6,3.6,34.5,15.7c4.9,8.7,5.5,18.9,1.9,27.9c-2.1,0.1-4.3,0.6-6.2,1.8 c-6.5,3.7-8.8,12-5.1,18.5c3.7,6.5,12,8.8,18.5,5.1C94.2,84.1,96.5,75.8,92.8,69.3z"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path53"
|
||||
class="st0"
|
||||
d="M54.2,82.6l-1.5,0.1c-12.3,0.8-24.2-5.6-30.2-16.3c-3.8-6.6-4.9-14.2-3.7-21.3 c2.8,0.4,5.9-0.1,8.6-1.6c6.5-3.7,8.8-12,5.1-18.5s-12-8.8-18.5-5.1C7.7,23.7,5.4,32,9,38.5c0.3,0.6,0.7,1.2,1.2,1.7 c-2.6,10.3-1.4,21.5,4.1,31.1c7.5,13.2,21.5,21.2,36.5,21.2c1.8,0,3.5-0.1,5.2-0.3l3.6-0.4L54.2,82.6z"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path55"
|
||||
class="st0"
|
||||
d="M67.2,63.4H33.8c-1,0-2.1-0.5-2.6-1.5c-0.5-0.9-0.5-2.1,0-3L47.8,30c0.5-0.9,1.6-1.5,2.6-1.5 S52.5,29,53,30l16.7,28.9c0.5,0.9,0.5,2.1,0,3C69.3,62.9,68.3,63.4,67.2,63.4z M39,57.4h23L50.4,37.5L39,57.4z"
|
||||
style="fill:#ffffff" />
|
||||
<polygon
|
||||
id="polygon57"
|
||||
class="st0"
|
||||
points="175.4,30.6 149.9,8 123.9,30.7 139,30.7 139.2,59.6 161,59.3 160.8,30.7 "
|
||||
style="fill:#ffffff" />
|
||||
<polygon
|
||||
id="polygon59"
|
||||
class="st0"
|
||||
points="225.6,39.8 251.1,62.5 277.1,39.8 261.9,39.8 261.7,8.9 240,9.2 240.2,39.8 "
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path61"
|
||||
class="st0"
|
||||
d="M174.3,42.8c1.8,3.7,2.8,7.8,2.8,12.1c0,15.2-12.3,27.5-27.5,27.5s-27.5-12.3-27.5-27.5 c0-4.4,1-8.5,2.9-12.1h-7.9c-1.4,3.8-2.2,7.8-2.2,12.1c0,19.2,15.6,34.7,34.7,34.7c19.2,0,34.7-15.6,34.7-34.7 c0-4.3-0.8-8.3-2.2-12.1C182.1,42.8,174.3,42.8,174.3,42.8z"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path63"
|
||||
class="st0"
|
||||
d="M278.8,53c0.1,0.7,0.1,1.5,0.1,2.2c0,15.2-12.4,27.6-27.6,27.6c-15.2,0-27.6-12.4-27.6-27.6 c0-1.1,0.1-2.1,0.2-3.1c-2.1-2.1-4.1-4.1-6.2-6.2c-0.8,3-1.3,6.1-1.3,9.3c0,19.2,15.6,34.9,34.9,34.9s34.9-15.6,34.9-34.9 c0-2.9-0.4-5.8-1.1-8.5L278.8,53z"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path65"
|
||||
class="st0"
|
||||
d="M353.3,91.2c-0.3,0-0.7,0-1,0c-1.8-0.2-3.5-0.4-5.3-0.7c-21.3-3.6-35.2-22.8-32-44.2 c2.7-18.2,17.7-31.4,36.8-32.5c17.2-0.9,33.8,11.4,38.2,28.5c0.8,3.1,1.1,6.3,1.6,9.5c0,0.3,0,0.7,0,1c-0.2,0.9-0.4,1.8-0.5,2.7 c-1.3,16.3-12.9,30.1-28.8,34C359.3,90.4,356.3,90.7,353.3,91.2z M353.7,83.9c8.3,0,16.1-3.4,22.6-9.9c2.2-2.2,2-3.1-0.7-4.5 c-3.9-1.9-7.8-3.7-11.7-5.6c-4-2-4.6-8.1-1.1-10.8c2-1.5,2.4-3.7,2.1-5.9c-0.2-1.8-1-3.5-1.2-5.3c-0.6-6-5.2-10.2-11.1-10.1 s-10.4,4.8-10.6,10.9c-0.1,1.4-0.4,2.8-0.9,4.1c-0.6,1.9,0.1,4.9,1.7,6.3c3.8,3.1,3.1,9-1.4,11.2c-3.6,1.7-7.2,3.4-10.8,5.2 c-3.4,1.6-3.6,2.5-0.8,5.1C336.2,80.6,343.8,83.9,353.7,83.9z"
|
||||
style="fill:#ffffff" />
|
||||
<polygon
|
||||
id="polygon67"
|
||||
class="st0"
|
||||
points="445.3,14.1 484.6,14.1 461.5,38.2 485.6,41.4 422.2,86.9 441.2,53.4 425.6,49.3 "
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path69"
|
||||
class="st0"
|
||||
d="M564.7,53.2l0.1-8.7l-22.9-0.2c0.1-0.5,0.2-1.1,0.2-1.6c0.2-6.1,4.7-10.8,10.6-10.9 c5.9-0.1,10.5,4.1,11.1,10.1c0.1,0.9,0.3,1.7,0.6,2.6l26.7,0.2c-3.3-17.9-19-31.4-37.9-31.4c-18.6,0-34.2,13.2-37.8,30.8l26.4,0.2 l0,0h-0.9l-0.1,8.7l-26.2-0.2c0.5,20.8,17.5,37.6,38.5,37.6c20.7,0,37.6-16.4,38.5-36.9L564.7,53.2z M576.3,74 c-6.5,6.5-14.3,9.9-22.6,9.9c-9.9,0-17.5-3.3-23.9-9.3c-2.8-2.6-2.6-3.5,0.8-5.1c3.6-1.8,7.2-3.5,10.8-5.2c4.5-2.2,5.2-8.1,1.4-11.2 l-0.1-0.1l20,0.2c-3.4,2.7-2.8,8.7,1.2,10.7c3.9,1.9,7.8,3.7,11.7,5.6C578.3,70.9,578.5,71.8,576.3,74z"
|
||||
style="fill:#ffffff" />
|
||||
<g
|
||||
id="g79"
|
||||
style="fill:#ffffff">
|
||||
<path
|
||||
id="path71"
|
||||
class="st0"
|
||||
d="M638.5,48.2c-1.2-1-2.3-2.2-3.2-3.5h-16.7v9.2h29.1c-1.4-0.6-2.6-1.3-4-2.2 C641.6,50.4,640.3,49.7,638.5,48.2z"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path73"
|
||||
class="st0"
|
||||
d="M684.9,44.7h-31.3c1,0.5,2.1,1,3.2,1.5c2.2,1,3.5,1.8,5.6,3.1s4.2,2.3,6,3.8 c0.4,0.3,0.7,0.6,1,0.9h15.5V44.7z"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path75"
|
||||
class="st0"
|
||||
d="M651.5,44.2c-1.4-0.7-2.6-1.4-3.6-2.2c-1.1-0.8-1.9-1.7-2.5-2.8c-0.6-1-0.9-2.2-0.9-3.7 c0-2.1,0.7-3.8,2-5.1c1.3-1.3,3.2-2,5.7-2c1.1,0,2.2,0.1,3.2,0.4s1.9,0.8,2.7,1.4c0.8,0.7,1.5,1.6,2,2.7s0.9,2.5,1.1,4.2h7.4 c0.2,0,0.5,0,0.9,0s0.9,0,1.3,0c0.5,0,0.9,0,1.3,0c0.4,0,0.7,0,0.9,0c-0.1-3.3-0.7-6.1-1.8-8.5s-2.5-4.4-4.4-5.9s-4-2.7-6.5-3.4 c-2.5-0.7-5.1-1.1-8-1.1c-2.6,0-5,0.4-7.4,1.1s-4.4,1.8-6.3,3.2c-1.8,1.4-3.3,3.2-4.3,5.3c-1.1,2.1-1.6,4.6-1.6,7.6 s0.6,5.5,1.7,7.5c0.3,0.6,0.7,1.2,1.1,1.8h17.3C652.2,44.5,651.9,44.3,651.5,44.2z"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path77"
|
||||
class="st0"
|
||||
d="M651.1,55c1.5,0.7,2.9,1.3,4.2,1.9s2.6,1.3,3.6,2.1s1.9,1.7,2.5,2.8s0.9,2.4,0.9,4 c0,1.7-0.3,3.2-1,4.3c-0.7,1.1-1.5,2-2.5,2.7s-2.1,1.1-3.3,1.4s-2.4,0.4-3.5,0.4c-1.3,0-2.5-0.2-3.7-0.7c-1.1-0.4-2.1-1.2-2.9-2.1 c-0.8-1-1.5-2.3-2-3.8c-0.5-1.6-0.8-3.5-0.8-5.7h-12.1c0.1,3.7,0.8,7,1.9,9.8c1.2,2.8,2.7,5.2,4.7,7c1.9,1.9,4.2,3.3,6.7,4.2 s5.3,1.4,8.1,1.4c2.9,0,5.8-0.4,8.4-1.1c2.7-0.7,5-1.9,7.1-3.5c2-1.6,3.7-3.6,4.9-6.1s1.8-5.5,1.8-9.1c0-2.6-0.5-4.9-1.6-6.8 c-0.9-1.5-2-2.9-3.3-4.1h-20.7C649.5,54.3,650.3,54.6,651.1,55z"
|
||||
style="fill:#ffffff" />
|
||||
</g>
|
||||
</svg>
|
||||
<path
|
||||
class="st0"
|
||||
d="m 728.1,80.1 c -1.9,0 -3.6,0.9 -4.7,2.4 -5.3,-2 -9.1,-7.1 -9.1,-13.1 0,-7.8 6.3,-14.1 14.1,-14.1 1.3,0 2.4,-1.1 2.4,-2.4 0,-1.3 -1.1,-2.4 -2.4,-2.4 -10.4,0 -18.9,8.5 -18.9,18.9 0,8.4 5.5,15.5 13,17.9 0.6,2.5 2.9,4.3 5.6,4.3 3.2,0 5.8,-2.6 5.8,-5.8 0,-3.1 -2.6,-5.7 -5.8,-5.7 z m 50.1,-66.4 c -0.6,-2.5 -2.9,-4.3 -5.6,-4.3 -3.2,0 -5.8,2.6 -5.8,5.8 0,3.2 2.6,5.8 5.8,5.8 1.9,0 3.6,-0.9 4.7,-2.4 5.3,2 9.1,7.1 9.1,13.1 0,7.8 -6.3,14.1 -14.1,14.1 -1.3,0 -2.4,1.1 -2.4,2.4 0,1.3 1.1,2.4 2.4,2.4 10.4,0 18.9,-8.5 18.9,-18.9 0,-8.5 -5.5,-15.5 -13,-18 z M 750.4,34 c -9.1,0 -16.5,7.4 -16.5,16.5 0,9.1 7.4,16.5 16.5,16.5 9.1,0 16.5,-7.4 16.5,-16.5 0,-9.1 -7.4,-16.5 -16.5,-16.5 z"
|
||||
id="path22"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
class="st0"
|
||||
d="m 820.6,37.6 c 0,3.2 2.7,5.9 5.9,5.9 3.2,0 5.9,-2.7 5.9,-5.9 V 25.4 h 10.1 l -16,-16 -16,16 h 10.1 z m 8.4,42.5 c -1.9,0 -3.6,0.9 -4.7,2.4 -5.3,-2 -9.1,-7.1 -9.1,-13.1 0,-7.8 6.3,-14.1 14.1,-14.1 1.3,0 2.4,-1.1 2.4,-2.4 0,-1.3 -1.1,-2.4 -2.4,-2.4 -10.4,0 -18.9,8.5 -18.9,18.9 0,8.4 5.5,15.5 13,17.9 0.6,2.5 2.9,4.3 5.6,4.3 3.2,0 5.8,-2.6 5.8,-5.8 0,-3.2 -2.6,-5.7 -5.8,-5.7 z M 851.2,34 c -9.1,0 -16.5,7.4 -16.5,16.5 0,9.1 7.4,16.5 16.5,16.5 9.1,0 16.5,-7.4 16.5,-16.5 0,-9.1 -7.4,-16.5 -16.5,-16.5 z M 879,13.7 c -0.6,-2.5 -2.9,-4.3 -5.6,-4.3 -3.2,0 -5.8,2.6 -5.8,5.8 0,3.2 2.6,5.8 5.8,5.8 1.9,0 3.6,-0.9 4.7,-2.4 5.3,2 9.1,7.1 9.1,13.1 0,7.8 -6.3,14.1 -14.1,14.1 -1.3,0 -2.4,1.1 -2.4,2.4 0,1.3 1.1,2.4 2.4,2.4 10.4,0 18.9,-8.5 18.9,-18.9 0,-8.5 -5.4,-15.5 -13,-18 z"
|
||||
id="path24"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
class="st0"
|
||||
d="m 970.5,20.9 c 1.9,0 3.6,-0.9 4.7,-2.4 5.3,2 9.1,7.1 9.1,13.1 0,7.8 -6.3,14.1 -14.1,14.1 -1.3,0 -2.4,1.1 -2.4,2.4 0,1.3 1.1,2.4 2.4,2.4 10.4,0 18.9,-8.5 18.9,-18.9 0,-8.4 -5.5,-15.5 -13,-17.9 -0.6,-2.5 -2.9,-4.3 -5.6,-4.3 -3.2,0 -5.8,2.6 -5.8,5.8 0,3.2 2.6,5.7 5.8,5.7 z m -44.4,59.2 c -1.9,0 -3.6,0.9 -4.7,2.4 -5.3,-2 -9.1,-7.1 -9.1,-13.1 0,-7.8 6.3,-14.1 14.1,-14.1 1.3,0 2.4,-1.1 2.4,-2.4 0,-1.3 -1.1,-2.4 -2.4,-2.4 -10.4,0 -18.9,8.5 -18.9,18.9 0,8.4 5.5,15.5 13,17.9 0.6,2.5 2.9,4.3 5.6,4.3 3.2,0 5.8,-2.6 5.8,-5.8 -0.1,-3.1 -2.7,-5.7 -5.8,-5.7 z m 38.7,-29.6 c 0,-9.1 -7.4,-16.5 -16.5,-16.5 -9.1,0 -16.5,7.4 -16.5,16.5 0,9.1 7.4,16.5 16.5,16.5 9.1,0 16.5,-7.4 16.5,-16.5 z m 14.1,12.9 c 0,-3.2 -2.7,-5.9 -5.9,-5.9 -3.2,0 -5.9,2.7 -5.9,5.9 V 75.6 H 957 l 16,16 16,-16 h -10.1 z"
|
||||
id="path26"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
class="st0"
|
||||
d="m 1020.2,37.6 c 0,3.2 2.7,5.9 5.9,5.9 3.2,0 5.9,-2.7 5.9,-5.9 V 25.4 h 10.1 l -16,-16 -16,16 h 10.1 z m 47.1,12.9 c 0,-9.1 -7.4,-16.5 -16.5,-16.5 -9.1,0 -16.5,7.4 -16.5,16.5 0,6.3 3.5,11.8 8.7,14.5 -4,3.7 -6.6,10 -6.6,17.3 0,0 0.6,-6 14.3,-6 13.7,0 14.3,6 14.3,6 0,-7.3 -2.6,-13.6 -6.6,-17.3 5.4,-2.7 8.9,-8.2 8.9,-14.5 z m 11.3,-36.8 c -0.6,-2.5 -2.9,-4.3 -5.6,-4.3 -3.2,0 -5.8,2.6 -5.8,5.8 0,3.2 2.6,5.8 5.8,5.8 1.9,0 3.6,-0.9 4.7,-2.4 5.3,2 9.1,7.1 9.1,13.1 0,7.8 -6.3,14.1 -14.1,14.1 -1.3,0 -2.4,1.1 -2.4,2.4 0,1.3 1.1,2.4 2.4,2.4 10.4,0 18.9,-8.5 18.9,-18.9 0,-8.5 -5.4,-15.5 -13,-18 z m -50,66.4 c -1.9,0 -3.6,0.9 -4.7,2.4 -5.3,-2 -9.1,-7.1 -9.1,-13.1 0,-7.8 6.3,-14.1 14.1,-14.1 1.3,0 2.4,-1.1 2.4,-2.4 0,-1.3 -1.1,-2.4 -2.4,-2.4 -10.4,0 -18.9,8.5 -18.9,18.9 0,8.4 5.5,15.5 13,17.9 0.6,2.5 2.9,4.3 5.6,4.3 3.2,0 5.8,-2.6 5.8,-5.8 0,-3.2 -2.6,-5.7 -5.8,-5.7 z"
|
||||
id="path28"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
class="st0"
|
||||
d="m 1180.3,63.4 c 0,-3.2 -2.7,-5.9 -5.9,-5.9 -3.2,0 -5.9,2.7 -5.9,5.9 v 12.2 h -5.3 c -1.1,-4.4 -3.1,-8.1 -5.8,-10.5 5.2,-2.8 8.7,-8.2 8.7,-14.5 0,-9.1 -7.4,-16.5 -16.5,-16.5 -9.1,0 -16.5,7.4 -16.5,16.5 0,6.3 3.5,11.8 8.7,14.5 -4,3.7 -6.6,10 -6.6,17.3 0,0 0.6,-6 14.3,-6 13.7,0 14.3,6 14.3,6 0,-0.4 0,-0.8 0,-1.2 l 10.5,10.5 16,-16 h -10.1 V 63.4 Z m -8.4,-42.5 c 1.9,0 3.6,-0.9 4.7,-2.4 5.3,2 9.1,7.1 9.1,13.1 0,7.8 -6.3,14.1 -14.1,14.1 -1.3,0 -2.4,1.1 -2.4,2.4 0,1.3 1.1,2.4 2.4,2.4 10.4,0 18.9,-8.5 18.9,-18.9 0,-8.4 -5.5,-15.5 -13,-17.9 -0.6,-2.5 -2.9,-4.3 -5.6,-4.3 -3.2,0 -5.8,2.6 -5.8,5.8 0,3.2 2.7,5.7 5.8,5.7 z m -44.4,59.2 c -1.9,0 -3.6,0.9 -4.7,2.4 -5.3,-2 -9.1,-7.1 -9.1,-13.1 0,-7.8 6.3,-14.1 14.1,-14.1 1.3,0 2.4,-1.1 2.4,-2.4 0,-1.3 -1.1,-2.4 -2.4,-2.4 -10.4,0 -18.9,8.5 -18.9,18.9 0,8.4 5.5,15.5 13,17.9 0.6,2.5 2.9,4.3 5.6,4.3 3.2,0 5.8,-2.6 5.8,-5.8 -0.1,-3.1 -2.7,-5.7 -5.8,-5.7 z"
|
||||
id="path30"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
</svg>
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 11 KiB |
|
@ -597,7 +597,7 @@ void AvatarManager::handleRemovedAvatar(const AvatarSharedPointer& removedAvatar
|
|||
avatar->fadeOut(transaction, removalReason);
|
||||
|
||||
workload::SpacePointer space = _space;
|
||||
transaction.transitionFinishedOperator(avatar->getRenderItemID(), [space, avatar]() {
|
||||
transaction.setTransitionFinishedOperator(avatar->getRenderItemID(), [space, avatar]() {
|
||||
if (avatar->getLastFadeRequested() != render::Transition::Type::USER_LEAVE_DOMAIN) {
|
||||
// The avatar is using another transition besides the fade-out transition, which means it is still in use.
|
||||
// Deleting the avatar now could cause state issues, so abort deletion and show message.
|
||||
|
|
|
@ -684,10 +684,10 @@ void Avatar::fadeOut(render::Transaction& transaction, KillAvatarReason reason)
|
|||
}
|
||||
|
||||
void Avatar::fade(render::Transaction& transaction, render::Transition::Type type) {
|
||||
transaction.addTransitionToItem(_renderItemID, type);
|
||||
transaction.resetTransitionOnItem(_renderItemID, type);
|
||||
for (auto& attachmentModel : _attachmentModels) {
|
||||
for (auto itemId : attachmentModel->fetchRenderItemIDs()) {
|
||||
transaction.addTransitionToItem(itemId, type, _renderItemID);
|
||||
transaction.resetTransitionOnItem(itemId, type, _renderItemID);
|
||||
}
|
||||
}
|
||||
_lastFadeRequested = type;
|
||||
|
|
|
@ -1056,7 +1056,7 @@ void EntityTreeRenderer::fadeOutRenderable(const EntityRendererPointer& renderab
|
|||
render::Transaction transaction;
|
||||
auto scene = _viewState->getMain3DScene();
|
||||
|
||||
transaction.transitionFinishedOperator(renderable->getRenderItemID(), [scene, renderable]() {
|
||||
transaction.setTransitionFinishedOperator(renderable->getRenderItemID(), [scene, renderable]() {
|
||||
render::Transaction transaction;
|
||||
renderable->removeFromScene(scene, transaction);
|
||||
scene->enqueueTransaction(transaction);
|
||||
|
|
|
@ -1653,7 +1653,7 @@ void PolyVoxEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& s
|
|||
|
||||
#ifdef POLYVOX_ENTITY_USE_FADE_EFFECT
|
||||
if (!_hasTransitioned) {
|
||||
transaction.addTransitionToItem(_renderItemID, render::Transition::ELEMENT_ENTER_DOMAIN);
|
||||
transaction.resetTransitionOnItem(_renderItemID, render::Transition::ELEMENT_ENTER_DOMAIN);
|
||||
_hasTransitioned = true;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -69,7 +69,7 @@ void FadeEditJob::run(const render::RenderContextPointer& renderContext, const F
|
|||
if (transition == nullptr || transition->isFinished || transition->eventType != transitionType) {
|
||||
// Relaunch transition
|
||||
render::Transaction transaction;
|
||||
transaction.addTransitionToItem(id, transitionType);
|
||||
transaction.resetTransitionOnItem(id, transitionType);
|
||||
scene->enqueueTransaction(transaction);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
#include <PerfStat.h>
|
||||
#include <ViewFrustum.h>
|
||||
|
||||
#include "TransitionStage.h"
|
||||
|
||||
#include <gpu/Context.h>
|
||||
|
||||
#include <shaders/Shaders.h>
|
||||
|
@ -142,11 +144,43 @@ void DrawStatus::run(const RenderContextPointer& renderContext, const Input& inp
|
|||
auto& value = (vec4Num == 0 ? itemStatus[nbItems].first : itemStatus[nbItems].second);
|
||||
|
||||
Item::Status::Value status;
|
||||
status.setColor(Item::Status::Value::CYAN);
|
||||
status.setIcon((unsigned char)Item::Status::Icon::SIMULATION_OWNER);
|
||||
if (itemScene.getTransitionId() != INVALID_INDEX) {
|
||||
auto transitionID = itemScene.getTransitionId();
|
||||
if (transitionID != INVALID_INDEX) {
|
||||
// We have a transition. Show this icon.
|
||||
status.setScale(1.0f);
|
||||
// Is this a valid transition ID according to FadeJob?
|
||||
auto transitionStage = scene->getStage<TransitionStage>(TransitionStage::getName());
|
||||
if (transitionStage) {
|
||||
if (transitionStage->isTransitionUsed(transitionID)) {
|
||||
// Valid, active transition
|
||||
status.setColor(Item::Status::Value::CYAN);
|
||||
} else {
|
||||
// Render item has a defined transition ID, but it's unallocated and isn't being processed
|
||||
status.setColor(Item::Status::Value::RED);
|
||||
}
|
||||
// Set icon based on transition type
|
||||
auto& transition = transitionStage->getTransition(transitionID);
|
||||
switch (transition.eventType) {
|
||||
case Transition::Type::USER_ENTER_DOMAIN:
|
||||
status.setIcon((unsigned char)Item::Status::Icon::USER_TRANSITION_IN);
|
||||
break;
|
||||
case Transition::Type::USER_LEAVE_DOMAIN:
|
||||
status.setIcon((unsigned char)Item::Status::Icon::USER_TRANSITION_OUT);
|
||||
break;
|
||||
case Transition::ELEMENT_ENTER_DOMAIN:
|
||||
status.setIcon((unsigned char)Item::Status::Icon::GENERIC_TRANSITION_IN);
|
||||
break;
|
||||
case Transition::ELEMENT_LEAVE_DOMAIN:
|
||||
status.setIcon((unsigned char)Item::Status::Icon::GENERIC_TRANSITION_OUT);
|
||||
break;
|
||||
default:
|
||||
status.setIcon((unsigned char)Item::Status::Icon::GENERIC_TRANSITION);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
// No way to determine transition
|
||||
status.setScale(0.0f);
|
||||
}
|
||||
} else {
|
||||
status.setScale(0.0f);
|
||||
}
|
||||
|
|
|
@ -363,6 +363,11 @@ public:
|
|||
HAS_ACTIONS = 4,
|
||||
OTHER_SIMULATION_OWNER = 5,
|
||||
ENTITY_HOST_TYPE = 6,
|
||||
GENERIC_TRANSITION = 7,
|
||||
GENERIC_TRANSITION_OUT = 8,
|
||||
GENERIC_TRANSITION_IN = 9,
|
||||
USER_TRANSITION_OUT = 10,
|
||||
USER_TRANSITION_IN = 11,
|
||||
NONE = 255
|
||||
};
|
||||
|
||||
|
|
|
@ -31,23 +31,19 @@ void Transaction::removeItem(ItemID id) {
|
|||
_removedItems.emplace_back(id);
|
||||
}
|
||||
|
||||
void Transaction::addTransitionToItem(ItemID id, Transition::Type transition, ItemID boundId) {
|
||||
_addedTransitions.emplace_back(id, transition, boundId);
|
||||
void Transaction::resetTransitionOnItem(ItemID id, Transition::Type transition, ItemID boundId) {
|
||||
_resetTransitions.emplace_back(id, transition, boundId);
|
||||
}
|
||||
|
||||
void Transaction::removeTransitionFromItem(ItemID id) {
|
||||
_addedTransitions.emplace_back(id, Transition::NONE, render::Item::INVALID_ITEM_ID);
|
||||
}
|
||||
|
||||
void Transaction::reApplyTransitionToItem(ItemID id) {
|
||||
_reAppliedTransitions.emplace_back(id);
|
||||
_removeTransitions.emplace_back(id);
|
||||
}
|
||||
|
||||
void Transaction::queryTransitionOnItem(ItemID id, TransitionQueryFunc func) {
|
||||
_queriedTransitions.emplace_back(id, func);
|
||||
}
|
||||
|
||||
void Transaction::transitionFinishedOperator(ItemID id, TransitionFinishedFunc func) {
|
||||
void Transaction::setTransitionFinishedOperator(ItemID id, TransitionFinishedFunc func) {
|
||||
_transitionFinishedOperators.emplace_back(id, func);
|
||||
}
|
||||
|
||||
|
@ -76,9 +72,9 @@ void Transaction::reserve(const std::vector<Transaction>& transactionContainer)
|
|||
size_t removedItemsCount = 0;
|
||||
size_t updatedItemsCount = 0;
|
||||
size_t resetSelectionsCount = 0;
|
||||
size_t addedTransitionsCount = 0;
|
||||
size_t resetTransitionsCount = 0;
|
||||
size_t removeTransitionsCount = 0;
|
||||
size_t queriedTransitionsCount = 0;
|
||||
size_t reAppliedTransitionsCount = 0;
|
||||
size_t transitionFinishedOperatorsCount = 0;
|
||||
size_t highlightResetsCount = 0;
|
||||
size_t highlightRemovesCount = 0;
|
||||
|
@ -89,10 +85,10 @@ void Transaction::reserve(const std::vector<Transaction>& transactionContainer)
|
|||
removedItemsCount += transaction._removedItems.size();
|
||||
updatedItemsCount += transaction._updatedItems.size();
|
||||
resetSelectionsCount += transaction._resetSelections.size();
|
||||
addedTransitionsCount += transaction._addedTransitions.size();
|
||||
transitionFinishedOperatorsCount += transaction._transitionFinishedOperators.size();
|
||||
resetTransitionsCount += transaction._resetTransitions.size();
|
||||
removeTransitionsCount += transaction._removeTransitions.size();
|
||||
queriedTransitionsCount += transaction._queriedTransitions.size();
|
||||
reAppliedTransitionsCount += transaction._reAppliedTransitions.size();
|
||||
transitionFinishedOperatorsCount += transaction._transitionFinishedOperators.size();
|
||||
highlightResetsCount += transaction._highlightResets.size();
|
||||
highlightRemovesCount += transaction._highlightRemoves.size();
|
||||
highlightQueriesCount += transaction._highlightQueries.size();
|
||||
|
@ -102,9 +98,9 @@ void Transaction::reserve(const std::vector<Transaction>& transactionContainer)
|
|||
_removedItems.reserve(removedItemsCount);
|
||||
_updatedItems.reserve(updatedItemsCount);
|
||||
_resetSelections.reserve(resetSelectionsCount);
|
||||
_addedTransitions.reserve(addedTransitionsCount);
|
||||
_resetTransitions.reserve(resetTransitionsCount);
|
||||
_removeTransitions.reserve(removeTransitionsCount);
|
||||
_queriedTransitions.reserve(queriedTransitionsCount);
|
||||
_reAppliedTransitions.reserve(reAppliedTransitionsCount);
|
||||
_transitionFinishedOperators.reserve(transitionFinishedOperatorsCount);
|
||||
_highlightResets.reserve(highlightResetsCount);
|
||||
_highlightRemoves.reserve(highlightRemovesCount);
|
||||
|
@ -147,10 +143,10 @@ void Transaction::merge(Transaction&& transaction) {
|
|||
moveElements(_removedItems, transaction._removedItems);
|
||||
moveElements(_updatedItems, transaction._updatedItems);
|
||||
moveElements(_resetSelections, transaction._resetSelections);
|
||||
moveElements(_addedTransitions, transaction._addedTransitions);
|
||||
moveElements(_resetTransitions, transaction._resetTransitions);
|
||||
moveElements(_removeTransitions, transaction._removeTransitions);
|
||||
moveElements(_queriedTransitions, transaction._queriedTransitions);
|
||||
moveElements(_transitionFinishedOperators, transaction._transitionFinishedOperators);
|
||||
moveElements(_reAppliedTransitions, transaction._reAppliedTransitions);
|
||||
moveElements(_highlightResets, transaction._highlightResets);
|
||||
moveElements(_highlightRemoves, transaction._highlightRemoves);
|
||||
moveElements(_highlightQueries, transaction._highlightQueries);
|
||||
|
@ -161,9 +157,9 @@ void Transaction::merge(const Transaction& transaction) {
|
|||
copyElements(_removedItems, transaction._removedItems);
|
||||
copyElements(_updatedItems, transaction._updatedItems);
|
||||
copyElements(_resetSelections, transaction._resetSelections);
|
||||
copyElements(_addedTransitions, transaction._addedTransitions);
|
||||
copyElements(_resetTransitions, transaction._resetTransitions);
|
||||
copyElements(_removeTransitions, transaction._removeTransitions);
|
||||
copyElements(_queriedTransitions, transaction._queriedTransitions);
|
||||
copyElements(_reAppliedTransitions, transaction._reAppliedTransitions);
|
||||
copyElements(_transitionFinishedOperators, transaction._transitionFinishedOperators);
|
||||
copyElements(_highlightResets, transaction._highlightResets);
|
||||
copyElements(_highlightRemoves, transaction._highlightRemoves);
|
||||
|
@ -175,10 +171,10 @@ void Transaction::clear() {
|
|||
_removedItems.clear();
|
||||
_updatedItems.clear();
|
||||
_resetSelections.clear();
|
||||
_addedTransitions.clear();
|
||||
_resetTransitions.clear();
|
||||
_removeTransitions.clear();
|
||||
_queriedTransitions.clear();
|
||||
_transitionFinishedOperators.clear();
|
||||
_reAppliedTransitions.clear();
|
||||
_highlightResets.clear();
|
||||
_highlightRemoves.clear();
|
||||
_highlightQueries.clear();
|
||||
|
@ -278,8 +274,8 @@ void Scene::processTransactionFrame(const Transaction& transaction) {
|
|||
removeItems(transaction._removedItems);
|
||||
|
||||
// add transitions
|
||||
transitionItems(transaction._addedTransitions);
|
||||
reApplyTransitions(transaction._reAppliedTransitions);
|
||||
resetTransitionItems(transaction._resetTransitions);
|
||||
removeTransitionItems(transaction._removeTransitions);
|
||||
queryTransitionItems(transaction._queriedTransitions);
|
||||
resetTransitionFinishedOperator(transaction._transitionFinishedOperators);
|
||||
|
||||
|
@ -332,7 +328,7 @@ void Scene::removeItems(const Transaction::Removes& transactions) {
|
|||
}
|
||||
|
||||
// Remove the transition to prevent updating it for nothing
|
||||
resetItemTransition(removedID);
|
||||
removeItemTransition(removedID);
|
||||
|
||||
// Kill it
|
||||
item.kill();
|
||||
|
@ -384,7 +380,7 @@ void Scene::updateItems(const Transaction::Updates& transactions) {
|
|||
}
|
||||
}
|
||||
|
||||
void Scene::transitionItems(const Transaction::TransitionAdds& transactions) {
|
||||
void Scene::resetTransitionItems(const Transaction::TransitionResets& transactions) {
|
||||
auto transitionStage = getStage<TransitionStage>(TransitionStage::getName());
|
||||
|
||||
if (!transitionStage) {
|
||||
|
@ -401,12 +397,7 @@ void Scene::transitionItems(const Transaction::TransitionAdds& transactions) {
|
|||
|
||||
// Remove pre-existing transition, if need be
|
||||
if (!TransitionStage::isIndexInvalid(transitionId)) {
|
||||
// Only remove if:
|
||||
// transitioning to something other than none or we're transitioning to none from ELEMENT_LEAVE_DOMAIN or USER_LEAVE_DOMAIN
|
||||
const auto& oldTransitionType = transitionStage->getTransition(transitionId).eventType;
|
||||
if (transitionType != oldTransitionType) {
|
||||
resetItemTransition(itemId);
|
||||
}
|
||||
removeItemTransition(itemId);
|
||||
}
|
||||
|
||||
// Add a new one.
|
||||
|
@ -420,12 +411,15 @@ void Scene::transitionItems(const Transaction::TransitionAdds& transactions) {
|
|||
}
|
||||
}
|
||||
|
||||
void Scene::reApplyTransitions(const Transaction::TransitionReApplies& transactions) {
|
||||
for (auto itemId : transactions) {
|
||||
void Scene::removeTransitionItems(const Transaction::TransitionRemoves& transactions) {
|
||||
for (auto& itemId : transactions) {
|
||||
// Access the true item
|
||||
const auto& item = _items[itemId];
|
||||
auto transitionId = item.getTransitionId();
|
||||
setItemTransition(itemId, transitionId);
|
||||
|
||||
if (!TransitionStage::isIndexInvalid(transitionId)) {
|
||||
removeItemTransition(itemId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -555,7 +549,7 @@ void Scene::setItemTransition(ItemID itemId, Index transitionId) {
|
|||
}
|
||||
}
|
||||
|
||||
void Scene::resetItemTransition(ItemID itemId) {
|
||||
void Scene::removeItemTransition(ItemID itemId) {
|
||||
auto transitionStage = getStage<TransitionStage>(TransitionStage::getName());
|
||||
if (!transitionStage) {
|
||||
return;
|
||||
|
|
|
@ -50,20 +50,18 @@ public:
|
|||
void resetItem(ItemID id, const PayloadPointer& payload);
|
||||
void removeItem(ItemID id);
|
||||
bool hasRemovedItems() const { return !_removedItems.empty(); }
|
||||
|
||||
void addTransitionToItem(ItemID id, Transition::Type transition, ItemID boundId = render::Item::INVALID_ITEM_ID);
|
||||
void removeTransitionFromItem(ItemID id);
|
||||
void reApplyTransitionToItem(ItemID id);
|
||||
void queryTransitionOnItem(ItemID id, TransitionQueryFunc func);
|
||||
void transitionFinishedOperator(ItemID id, TransitionFinishedFunc func);
|
||||
|
||||
template <class T> void updateItem(ItemID id, std::function<void(T&)> func) {
|
||||
updateItem(id, std::make_shared<UpdateFunctor<T>>(func));
|
||||
}
|
||||
|
||||
void updateItem(ItemID id, const UpdateFunctorPointer& functor);
|
||||
void updateItem(ItemID id) { updateItem(id, nullptr); }
|
||||
|
||||
// Transition (applied to an item) transactions
|
||||
void resetTransitionOnItem(ItemID id, Transition::Type transition, ItemID boundId = render::Item::INVALID_ITEM_ID);
|
||||
void removeTransitionFromItem(ItemID id);
|
||||
void setTransitionFinishedOperator(ItemID id, TransitionFinishedFunc func);
|
||||
void queryTransitionOnItem(ItemID id, TransitionQueryFunc func);
|
||||
|
||||
// Selection transactions
|
||||
void resetSelection(const Selection& selection);
|
||||
|
||||
|
@ -83,11 +81,14 @@ protected:
|
|||
using Reset = std::tuple<ItemID, PayloadPointer>;
|
||||
using Remove = ItemID;
|
||||
using Update = std::tuple<ItemID, UpdateFunctorPointer>;
|
||||
using TransitionAdd = std::tuple<ItemID, Transition::Type, ItemID>;
|
||||
using TransitionQuery = std::tuple<ItemID, TransitionQueryFunc>;
|
||||
|
||||
using TransitionReset = std::tuple<ItemID, Transition::Type, ItemID>;
|
||||
using TransitionRemove = ItemID;
|
||||
using TransitionFinishedOperator = std::tuple<ItemID, TransitionFinishedFunc>;
|
||||
using TransitionReApply = ItemID;
|
||||
using TransitionQuery = std::tuple<ItemID, TransitionQueryFunc>;
|
||||
|
||||
using SelectionReset = Selection;
|
||||
|
||||
using HighlightReset = std::tuple<std::string, HighlightStyle>;
|
||||
using HighlightRemove = std::string;
|
||||
using HighlightQuery = std::tuple<std::string, SelectionHighlightQueryFunc>;
|
||||
|
@ -95,11 +96,14 @@ protected:
|
|||
using Resets = std::vector<Reset>;
|
||||
using Removes = std::vector<Remove>;
|
||||
using Updates = std::vector<Update>;
|
||||
using TransitionAdds = std::vector<TransitionAdd>;
|
||||
using TransitionQueries = std::vector<TransitionQuery>;
|
||||
|
||||
using TransitionResets = std::vector<TransitionReset>;
|
||||
using TransitionRemoves = std::vector<TransitionRemove>;
|
||||
using TransitionFinishedOperators = std::vector<TransitionFinishedOperator>;
|
||||
using TransitionReApplies = std::vector<TransitionReApply>;
|
||||
using TransitionQueries = std::vector<TransitionQuery>;
|
||||
|
||||
using SelectionResets = std::vector<SelectionReset>;
|
||||
|
||||
using HighlightResets = std::vector<HighlightReset>;
|
||||
using HighlightRemoves = std::vector<HighlightRemove>;
|
||||
using HighlightQueries = std::vector<HighlightQuery>;
|
||||
|
@ -107,11 +111,14 @@ protected:
|
|||
Resets _resetItems;
|
||||
Removes _removedItems;
|
||||
Updates _updatedItems;
|
||||
TransitionAdds _addedTransitions;
|
||||
TransitionQueries _queriedTransitions;
|
||||
TransitionReApplies _reAppliedTransitions;
|
||||
|
||||
TransitionResets _resetTransitions;
|
||||
TransitionRemoves _removeTransitions;
|
||||
TransitionFinishedOperators _transitionFinishedOperators;
|
||||
TransitionQueries _queriedTransitions;
|
||||
|
||||
SelectionResets _resetSelections;
|
||||
|
||||
HighlightResets _highlightResets;
|
||||
HighlightRemoves _highlightRemoves;
|
||||
HighlightQueries _highlightQueries;
|
||||
|
@ -185,7 +192,7 @@ public:
|
|||
void resetStage(const Stage::Name& name, const StagePointer& stage);
|
||||
|
||||
void setItemTransition(ItemID id, Index transitionId);
|
||||
void resetItemTransition(ItemID id);
|
||||
void removeItemTransition(ItemID id);
|
||||
|
||||
protected:
|
||||
|
||||
|
@ -215,9 +222,11 @@ protected:
|
|||
void resetTransitionFinishedOperator(const Transaction::TransitionFinishedOperators& transactions);
|
||||
void removeItems(const Transaction::Removes& transactions);
|
||||
void updateItems(const Transaction::Updates& transactions);
|
||||
void transitionItems(const Transaction::TransitionAdds& transactions);
|
||||
void reApplyTransitions(const Transaction::TransitionReApplies& transactions);
|
||||
|
||||
void resetTransitionItems(const Transaction::TransitionResets& transactions);
|
||||
void removeTransitionItems(const Transaction::TransitionRemoves& transactions);
|
||||
void queryTransitionItems(const Transaction::TransitionQueries& transactions);
|
||||
|
||||
void resetHighlights(const Transaction::HighlightResets& transactions);
|
||||
void removeHighlights(const Transaction::HighlightRemoves& transactions);
|
||||
void queryHighlights(const Transaction::HighlightQueries& transactions);
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace render {
|
|||
|
||||
static bool isIndexInvalid(Index index) { return index == INVALID_INDEX; }
|
||||
|
||||
bool checkTransitionId(Index index) const { return _transitions.checkIndex(index); }
|
||||
bool isTransitionUsed(Index index) const { return _transitions.checkIndex(index) && !_transitions.isElementFreed(index); }
|
||||
|
||||
const Transition& getTransition(Index TransitionId) const { return _transitions.get(TransitionId); }
|
||||
|
||||
|
|
Loading…
Reference in a new issue