Merge branch 'master' into protocol_changes

This commit is contained in:
HifiExperiments 2024-10-02 12:11:39 -07:00 committed by GitHub
commit e7f7314b37
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
23 changed files with 459 additions and 146 deletions

View file

@ -13,13 +13,13 @@ on:
env:
APP_NAME: interface
BUILD_TYPE: Release
BUILD_NUMBER: ${{ github.run_number }}
BUILD_NUMBER: ${{ github.event.number }}_${{ github.sha }}
CI_BUILD: Github
GIT_COMMIT: ${{ github.sha }}
# VCPKG did not build well on OSX disabling HIFI_VCPKG_BOOTSTRAP, which invokes a download to a working version of vcpkg
# HIFI_VCPKG_BOOTSTRAP: true
RELEASE_TYPE: PRODUCTION
RELEASE_NUMBER: ${{ github.run_number }}
RELEASE_NUMBER: ${{ github.event.number }}_${{ github.sha }}
STABLE_BUILD: 0
UPLOAD_BUCKET: overte-public
UPLOAD_REGION: fra1
@ -108,7 +108,7 @@ jobs:
# Build type variables
if [ "${{ matrix.build_type }}" = "full" ]; then
echo "CLIENT_ONLY=FALSE" >> $GITHUB_ENV
echo "INSTALLER=Overte-master$BUILD_NUMBER-${{ steps.buildenv1.outputs.github_sha_short }}.$INSTALLER_EXT" >> $GITHUB_ENV
echo "INSTALLER=Overte-${{ github.event.number }}_${{ github.sha }}.$INSTALLER_EXT" >> $GITHUB_ENV
else
echo "CLIENT_ONLY=TRUE" >> $GITHUB_ENV
echo "INSTALLER=Overte-Interface-master$BUILD_NUMBER-${{ steps.buildenv1.outputs.github_sha_short }}.$INSTALLER_EXT" >> $GITHUB_ENV
@ -247,8 +247,8 @@ jobs:
- name: Upload artifact to GitHub
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_PATTERN }}
path: ./build/${{ env.ARTIFACT_PATTERN }}
name: ${{ env.INSTALLER }}
path: ${{runner.workspace}}/build/${{ env.INSTALLER }}
if-no-files-found: error
#- name: Archive symbols

1
.gitignore vendored
View file

@ -17,6 +17,7 @@ cmake-build-release-visual-studio/
cmake-build-relwithdebinfo-visual-studio/
cmake-build-debug-visual-studio/
cmake-build-debug/
/cmake-build-*/
/release*/
/debug*/
/gprof*/

View file

@ -1,14 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.0.1, 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 96 96" style="enable-background:new 0 0 96 96;" xml:space="preserve">
<g>
<path d="M78.3,31.3l-0.4-0.4c-0.8-0.8-2-1.2-3.1-1c-0.2,0-18.6,2.7-26.2,2.8c-0.2,0-0.3,0-0.4,0c-7.8,0-26.6-3-26.8-3.1
c-1.5-0.2-3,0.4-3.7,1.7l-0.5,0.8c-0.6,0.9-0.7,2-0.4,3c0.3,1,1.1,1.8,2,2.3c3.4,1.5,14.9,6.3,18.2,6.7c0.6,0.1,1.7,0.2,1.8,2.2
c0.2,2.4-0.8,14.1-2.2,19.7c-1.4,5.4-3.8,12.5-3.9,12.6c-0.7,1.9,0.3,4,2.2,4.7l2.3,0.8c0.9,0.3,2,0.3,2.8-0.2
c0.9-0.4,1.6-1.2,1.9-2.2l6.4-19.7l6,20.3c0.3,1,1,1.8,1.9,2.3c0.5,0.2,1.1,0.4,1.6,0.4c0.5,0,0.9-0.1,1.3-0.2l2.1-0.8
c1.7-0.7,2.7-2.5,2.2-4.3c0-0.1-1.8-7.4-3.3-13.5c-0.9-3.7-1.3-9.2-1.6-13.6c-0.2-2.7-0.3-5-0.6-6.8c-0.1-0.3-0.2-1.1,1.3-1.4
c0.3,0,0.4-0.1,0.6-0.2l16.9-6.7c1.2-0.5,2-1.5,2.3-2.7C79.5,33.5,79.2,32.2,78.3,31.3z"/>
<ellipse cx="48.7" cy="20" rx="9" ry="9"/>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.0"
width="50pt"
height="50pt"
viewBox="0 0 50 50"
preserveAspectRatio="xMidYMid"
id="svg10"
sodipodi:docname="avatar-a.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="pt"
inkscape:zoom="13.869048"
inkscape:cx="37.709871"
inkscape:cy="31.400858"
inkscape:window-width="2560"
inkscape:window-height="1363"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg10" />
<g
transform="matrix(0.01,0,0,-0.01,-0.12203826,50.393861)"
fill="#000000"
stroke="none"
id="g10">
<path
d="m 1057,4769 c -92,-22 -207,-102 -272,-190 -142,-193 -118,-468 57,-635 78,-75 135,-108 218,-130 86,-22 223,-15 302,15 124,48 242,166 288,289 30,79 37,209 17,289 -45,174 -181,316 -342,358 -64,16 -206,19 -268,4 z"
id="path1" />
<path
d="m 2911,4442 c -121,-61 -136,-232 -27,-314 26,-19 43,-23 106,-23 63,0 80,4 108,23 45,32 72,90 72,152 0,57 -15,93 -57,132 -53,50 -138,63 -202,30 z"
id="path2" />
<path
d="m 2201,4397 c -90,-46 -86,-175 7,-214 70,-29 149,18 159,95 12,91 -85,161 -166,119 z"
id="path3" />
<path
d="m 3716,4094 c -65,-20 -146,-101 -169,-168 -47,-139 14,-290 141,-352 53,-26 158,-30 221,-9 101,33 181,147 181,257 0,199 -181,331 -374,272 z"
id="path4" />
<path
d="m 796,3734 c -153,-37 -299,-182 -346,-344 -15,-54 -19,-110 -23,-340 -2,-151 -2,-387 2,-525 l 6,-250 35,-17 c 32,-17 88,-18 715,-18 627,0 683,1 715,18 l 35,17 6,245 c 4,135 5,371 2,525 -5,311 -14,364 -74,460 -74,118 -183,202 -300,230 -89,21 -685,20 -773,-1 z"
id="path5" />
<path
d="m 4103,3030 c -17,-4 -83,-44 -147,-89 l -116,-82 -121,85 c -109,77 -127,86 -166,86 -65,0 -124,-37 -145,-90 -12,-32 -58,-502 -58,-595 1,-130 38,-228 123,-322 112,-123 226,-169 399,-161 91,4 111,8 173,38 123,58 228,177 266,301 26,82 24,195 -5,496 -21,210 -27,246 -46,272 -35,50 -96,73 -157,61 z"
id="path6" />
<path
d="m 855,1850 c -52,-20 -127,-85 -150,-130 -39,-75 -35,-200 9,-275 53,-89 134,-134 241,-135 238,0 366,261 221,452 -71,93 -212,132 -321,88 z"
id="path7" />
<path
d="m 3463,1795 c -173,-38 -325,-194 -368,-376 -12,-51 -15,-138 -15,-417 V 649 l -49,26 c -76,42 -117,80 -145,137 -35,70 -33,105 14,210 51,112 64,174 56,258 -14,151 -126,364 -214,406 -82,38 -176,-41 -151,-128 4,-14 26,-51 48,-81 55,-72 91,-163 91,-228 0,-39 -10,-74 -41,-141 -52,-117 -64,-181 -49,-267 15,-93 60,-179 130,-250 61,-62 179,-138 261,-168 39,-13 49,-22 49,-39 0,-36 11,-54 41,-69 24,-13 131,-15 712,-15 458,0 694,4 715,11 18,6 35,22 42,38 8,20 10,170 8,542 -4,497 -4,516 -25,571 -59,157 -165,266 -312,321 -52,20 -79,21 -396,24 -262,2 -354,-1 -402,-12 z"
id="path8" />
<path
d="m 1509,1120 c -42,-12 -84,-48 -109,-92 -32,-56 -25,-141 14,-193 48,-63 142,-91 213,-64 35,13 80,55 99,92 16,30 21,100 9,138 -28,91 -134,147 -226,119 z"
id="path9" />
<path
d="m 2260,763 c -59,-53 -48,-153 20,-188 47,-24 94,-19 133,15 56,48 58,118 5,170 -25,25 -38,30 -79,30 -39,0 -55,-5 -79,-27 z"
id="path10" />
</g>
</svg>

Before

(image error) Size: 1.1 KiB

After

(image error) Size: 3.7 KiB

View file

@ -1,17 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.0.1, 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 96 96" style="enable-background:new 0 0 96 96;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<g>
<path class="st0" d="M78.3,31.3l-0.4-0.4c-0.8-0.8-2-1.2-3.1-1c-0.2,0-18.6,2.7-26.2,2.8c-0.2,0-0.3,0-0.4,0
c-7.8,0-26.6-3-26.8-3.1c-1.5-0.2-3,0.4-3.7,1.7l-0.5,0.8c-0.6,0.9-0.7,2-0.4,3c0.3,1,1.1,1.8,2,2.3c3.4,1.5,14.9,6.3,18.2,6.7
c0.6,0.1,1.7,0.2,1.8,2.2c0.2,2.4-0.8,14.1-2.2,19.7c-1.4,5.4-3.8,12.5-3.9,12.6c-0.7,1.9,0.3,4,2.2,4.7l2.3,0.8
c0.9,0.3,2,0.3,2.8-0.2c0.9-0.4,1.6-1.2,1.9-2.2l6.4-19.7l6,20.3c0.3,1,1,1.8,1.9,2.3c0.5,0.2,1.1,0.4,1.6,0.4
c0.5,0,0.9-0.1,1.3-0.2l2.1-0.8c1.7-0.7,2.7-2.5,2.2-4.3c0-0.1-1.8-7.4-3.3-13.5c-0.9-3.7-1.3-9.2-1.6-13.6c-0.2-2.7-0.3-5-0.6-6.8
c-0.1-0.3-0.2-1.1,1.3-1.4c0.3,0,0.4-0.1,0.6-0.2l16.9-6.7c1.2-0.5,2-1.5,2.3-2.7C79.5,33.5,79.2,32.2,78.3,31.3z"/>
<ellipse class="st0" cx="48.7" cy="20" rx="9" ry="9"/>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.0"
width="50pt"
height="50pt"
viewBox="0 0 50 50"
preserveAspectRatio="xMidYMid"
id="svg24"
sodipodi:docname="avatar-i.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs28" />
<sodipodi:namedview
id="namedview26"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="pt"
showgrid="false"
inkscape:zoom="9.4523808"
inkscape:cx="55.75315"
inkscape:cy="34.012595"
inkscape:window-width="2560"
inkscape:window-height="1363"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg24"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1" />
<g
transform="matrix(0.01,0,0,-0.01,-0.12203826,50.393861)"
fill="#000000"
stroke="none"
id="g22"
style="fill:#ffffff">
<path
d="m 1057,4769 c -92,-22 -207,-102 -272,-190 -142,-193 -118,-468 57,-635 78,-75 135,-108 218,-130 86,-22 223,-15 302,15 124,48 242,166 288,289 30,79 37,209 17,289 -45,174 -181,316 -342,358 -64,16 -206,19 -268,4 z"
id="path2"
style="fill:#ffffff" />
<path
d="m 2911,4442 c -121,-61 -136,-232 -27,-314 26,-19 43,-23 106,-23 63,0 80,4 108,23 45,32 72,90 72,152 0,57 -15,93 -57,132 -53,50 -138,63 -202,30 z"
id="path4"
style="fill:#ffffff" />
<path
d="m 2201,4397 c -90,-46 -86,-175 7,-214 70,-29 149,18 159,95 12,91 -85,161 -166,119 z"
id="path6"
style="fill:#ffffff" />
<path
d="m 3716,4094 c -65,-20 -146,-101 -169,-168 -47,-139 14,-290 141,-352 53,-26 158,-30 221,-9 101,33 181,147 181,257 0,199 -181,331 -374,272 z"
id="path8"
style="fill:#ffffff" />
<path
d="m 796,3734 c -153,-37 -299,-182 -346,-344 -15,-54 -19,-110 -23,-340 -2,-151 -2,-387 2,-525 l 6,-250 35,-17 c 32,-17 88,-18 715,-18 627,0 683,1 715,18 l 35,17 6,245 c 4,135 5,371 2,525 -5,311 -14,364 -74,460 -74,118 -183,202 -300,230 -89,21 -685,20 -773,-1 z"
id="path10"
style="fill:#ffffff" />
<path
d="m 4103,3030 c -17,-4 -83,-44 -147,-89 l -116,-82 -121,85 c -109,77 -127,86 -166,86 -65,0 -124,-37 -145,-90 -12,-32 -58,-502 -58,-595 1,-130 38,-228 123,-322 112,-123 226,-169 399,-161 91,4 111,8 173,38 123,58 228,177 266,301 26,82 24,195 -5,496 -21,210 -27,246 -46,272 -35,50 -96,73 -157,61 z"
id="path12"
style="fill:#ffffff" />
<path
d="m 855,1850 c -52,-20 -127,-85 -150,-130 -39,-75 -35,-200 9,-275 53,-89 134,-134 241,-135 238,0 366,261 221,452 -71,93 -212,132 -321,88 z"
id="path14"
style="fill:#ffffff" />
<path
d="m 3463,1795 c -173,-38 -325,-194 -368,-376 -12,-51 -15,-138 -15,-417 V 649 l -49,26 c -76,42 -117,80 -145,137 -35,70 -33,105 14,210 51,112 64,174 56,258 -14,151 -126,364 -214,406 -82,38 -176,-41 -151,-128 4,-14 26,-51 48,-81 55,-72 91,-163 91,-228 0,-39 -10,-74 -41,-141 -52,-117 -64,-181 -49,-267 15,-93 60,-179 130,-250 61,-62 179,-138 261,-168 39,-13 49,-22 49,-39 0,-36 11,-54 41,-69 24,-13 131,-15 712,-15 458,0 694,4 715,11 18,6 35,22 42,38 8,20 10,170 8,542 -4,497 -4,516 -25,571 -59,157 -165,266 -312,321 -52,20 -79,21 -396,24 -262,2 -354,-1 -402,-12 z"
id="path16"
style="fill:#ffffff" />
<path
d="m 1509,1120 c -42,-12 -84,-48 -109,-92 -32,-56 -25,-141 14,-193 48,-63 142,-91 213,-64 35,13 80,55 99,92 16,30 21,100 9,138 -28,91 -134,147 -226,119 z"
id="path18"
style="fill:#ffffff" />
<path
d="m 2260,763 c -59,-53 -48,-153 20,-188 47,-24 94,-19 133,15 56,48 58,118 5,170 -25,25 -38,30 -79,30 -39,0 -55,-5 -79,-27 z"
id="path20"
style="fill:#ffffff" />
</g>
</svg>

Before

(image error) Size: 1.2 KiB

After

(image error) Size: 4 KiB

View file

@ -1,20 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.0.1, 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 134 134" style="enable-background:new 0 0 134 134;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1FC6A6;}
</style>
<path class="st0" d="M5,0h124c2.8,0,5,2.2,5,5v124c0,2.8-2.2,5-5,5H5c-2.8,0-5-2.2-5-5V5C0,2.2,2.2,0,5,0z"/>
<path d="M100.5,99c-9.2,9.2-20.3,13.8-33.5,13.8S42.6,108.2,33.3,99c-9.2-9.2-13.8-20.3-13.8-33.5s4.6-24.3,13.8-33.5
C42.6,22.7,53.9,18,67,18s24.3,4.7,33.5,14.1c9.4,9.2,14.1,20.3,14.1,33.5S109.8,89.9,100.5,99z M96.3,36.3
C88.2,28.1,78.4,23.9,67,23.9s-21.3,4.1-29.5,12.4c-8.1,8.1-12.1,17.8-12.1,29.3s4,21.2,12.1,29.3c8.3,8.1,18.1,12.1,29.5,12.1
s21.2-4,29.3-12.1c8.3-8.1,12.4-17.8,12.4-29.3S104.5,44.4,96.3,36.3z M94.3,49.3L94,49c-0.8-0.8-1.7-1.1-2.8-1.1l-1.7,0.3
c-1.3,0.2-3,0.5-5.1,0.8c-1.9,0.2-3.8,0.4-5.9,0.6c-2.1,0.2-4.2,0.4-6.5,0.6c-2.1,0.2-3.8,0.3-5.1,0.3h-0.6L42,47.6
c-1.7,0-2.9,0.6-3.7,1.7L38,49.8c-0.6,0.8-0.7,1.7-0.3,2.8c0.2,0.9,0.8,1.7,1.7,2.3c8.8,3.8,14.4,5.8,16.9,6.2c0.9,0,1.5,0.7,1.7,2
c0.4,3.8-0.3,9.8-2,18.3c-0.4,1.3-0.9,3-1.7,5.1c-0.6,1.9-1,3.4-1.4,4.5l-0.6,2c-0.8,2.1-0.1,3.5,2,4.2l2.3,0.8
c0.9,0.4,1.8,0.3,2.5-0.3c0.8-0.2,1.3-0.8,1.7-2l5.9-18.3l5.6,18.8c0.4,1.1,0.9,1.8,1.7,2c0.4,0.2,0.8,0.3,1.4,0.3h1.4l2-0.8
c1.7-0.8,2.3-2.1,2-3.9l-3.1-12.4c-0.6-2.1-1-6.3-1.4-12.7c0-1.9-0.2-3.9-0.6-6.2c0-0.8,0.5-1.2,1.4-1.4h0.6l15.5-6.2
c0.9-0.6,1.6-1.4,2-2.5S95.2,50.2,94.3,49.3z M72.6,33.2c1.7,1.5,2.5,3.4,2.5,5.6s-0.8,4.2-2.5,5.9C71.1,46.3,69.3,47,67,47
s-4.2-0.8-5.9-2.3c-1.5-1.7-2.3-3.7-2.3-5.9s0.8-4.1,2.3-5.6c1.7-1.7,3.7-2.5,5.9-2.5S71.1,31.5,72.6,33.2z"/>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 134 134"
style="enable-background:new 0 0 134 134;"
xml:space="preserve"
sodipodi:docname="guy-in-circle.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs2" /><sodipodi:namedview
id="namedview2"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.5949479"
inkscape:cx="52.666296"
inkscape:cy="9.7181855"
inkscape:window-width="2560"
inkscape:window-height="1407"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<style
type="text/css"
id="style1">
.st0{fill:#1FC6A6;}
</style>
<path
class="st0"
d="M5,0h124c2.8,0,5,2.2,5,5v124c0,2.8-2.2,5-5,5H5c-2.8,0-5-2.2-5-5V5C0,2.2,2.2,0,5,0z"
id="path1" />
<g
transform="matrix(0.02033471,0,0,-0.02033471,15.915064,118.63768)"
fill="#000000"
stroke="none"
id="g10"><path
d="m 1057,4769 c -92,-22 -207,-102 -272,-190 -142,-193 -118,-468 57,-635 78,-75 135,-108 218,-130 86,-22 223,-15 302,15 124,48 242,166 288,289 30,79 37,209 17,289 -45,174 -181,316 -342,358 -64,16 -206,19 -268,4 z"
id="path1-3" /><path
d="m 2911,4442 c -121,-61 -136,-232 -27,-314 26,-19 43,-23 106,-23 63,0 80,4 108,23 45,32 72,90 72,152 0,57 -15,93 -57,132 -53,50 -138,63 -202,30 z"
id="path2-6" /><path
d="m 2201,4397 c -90,-46 -86,-175 7,-214 70,-29 149,18 159,95 12,91 -85,161 -166,119 z"
id="path3" /><path
d="m 3716,4094 c -65,-20 -146,-101 -169,-168 -47,-139 14,-290 141,-352 53,-26 158,-30 221,-9 101,33 181,147 181,257 0,199 -181,331 -374,272 z"
id="path4" /><path
d="m 796,3734 c -153,-37 -299,-182 -346,-344 -15,-54 -19,-110 -23,-340 -2,-151 -2,-387 2,-525 l 6,-250 35,-17 c 32,-17 88,-18 715,-18 627,0 683,1 715,18 l 35,17 6,245 c 4,135 5,371 2,525 -5,311 -14,364 -74,460 -74,118 -183,202 -300,230 -89,21 -685,20 -773,-1 z"
id="path5" /><path
d="m 4103,3030 c -17,-4 -83,-44 -147,-89 l -116,-82 -121,85 c -109,77 -127,86 -166,86 -65,0 -124,-37 -145,-90 -12,-32 -58,-502 -58,-595 1,-130 38,-228 123,-322 112,-123 226,-169 399,-161 91,4 111,8 173,38 123,58 228,177 266,301 26,82 24,195 -5,496 -21,210 -27,246 -46,272 -35,50 -96,73 -157,61 z"
id="path6" /><path
d="m 855,1850 c -52,-20 -127,-85 -150,-130 -39,-75 -35,-200 9,-275 53,-89 134,-134 241,-135 238,0 366,261 221,452 -71,93 -212,132 -321,88 z"
id="path7" /><path
d="m 3463,1795 c -173,-38 -325,-194 -368,-376 -12,-51 -15,-138 -15,-417 V 649 l -49,26 c -76,42 -117,80 -145,137 -35,70 -33,105 14,210 51,112 64,174 56,258 -14,151 -126,364 -214,406 -82,38 -176,-41 -151,-128 4,-14 26,-51 48,-81 55,-72 91,-163 91,-228 0,-39 -10,-74 -41,-141 -52,-117 -64,-181 -49,-267 15,-93 60,-179 130,-250 61,-62 179,-138 261,-168 39,-13 49,-22 49,-39 0,-36 11,-54 41,-69 24,-13 131,-15 712,-15 458,0 694,4 715,11 18,6 35,22 42,38 8,20 10,170 8,542 -4,497 -4,516 -25,571 -59,157 -165,266 -312,321 -52,20 -79,21 -396,24 -262,2 -354,-1 -402,-12 z"
id="path8" /><path
d="m 1509,1120 c -42,-12 -84,-48 -109,-92 -32,-56 -25,-141 14,-193 48,-63 142,-91 213,-64 35,13 80,55 99,92 16,30 21,100 9,138 -28,91 -134,147 -226,119 z"
id="path9" /><path
d="m 2260,763 c -59,-53 -48,-153 20,-188 47,-24 94,-19 133,15 56,48 58,118 5,170 -25,25 -38,30 -79,30 -39,0 -55,-5 -79,-27 z"
id="path10" /></g></svg>

Before

(image error) Size: 1.8 KiB

After

(image error) Size: 3.8 KiB

View file

@ -20,16 +20,6 @@ ShadowRectangle {
color: style.colors.lightGrayBackground
HiFiGlyphs {
id: avatarIcon
anchors.left: parent.left
anchors.leftMargin: 23
anchors.verticalCenter: header.verticalCenter
size: 38
text: "<"
}
// TextStyle6
RalewaySemiBold {
id: title

View file

@ -46,6 +46,7 @@
#include "avatar/AvatarManager.h"
#include "avatar/AvatarPackager.h"
#include "AvatarBookmarks.h"
#include <display-plugins/OpenGLDisplayPlugin.h>
#include "DomainAccountManager.h"
#include "MainWindow.h"
#include "render/DrawStatus.h"
@ -546,6 +547,13 @@ Menu::Menu() {
drawStatusConfig, SLOT(setShowFade(bool)));
}
{
action = addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::ExtraLinearTosRGBConversion, 0, OpenGLDisplayPlugin::getExtraLinearToSRGBConversion());
connect(action, &QAction::triggered, [action] {
OpenGLDisplayPlugin::setExtraLinearToSRGBConversion(action->isChecked());
});
}
// Developer > Assets >>>
// Menu item is not currently needed but code should be kept in case it proves useful again at some stage.
//#define WANT_ASSET_MIGRATION

View file

@ -237,7 +237,8 @@ namespace MenuOption {
const QString ComputeBlendshapes = "Compute Blendshapes";
const QString HighlightTransitions = "Highlight Transitions";
const QString MaterialProceduralShaders = "Enable Procedural Materials";
}
const QString ExtraLinearTosRGBConversion = "Extra Linear to sRGB Conversion";
}
#endif // hifi_Menu_h

View file

@ -112,14 +112,6 @@ bool Basic2DWindowOpenGLDisplayPlugin::internalActivate() {
return Parent::internalActivate();
}
gpu::PipelinePointer Basic2DWindowOpenGLDisplayPlugin::getRenderTexturePipeline() {
#if defined(Q_OS_ANDROID)
return _linearToSRGBPipeline;
#else
return _drawTexturePipeline;
#endif
}
void Basic2DWindowOpenGLDisplayPlugin::compositeExtra() {
#if defined(Q_OS_ANDROID)
auto& virtualPadManager = VirtualPad::Manager::instance();

View file

@ -37,8 +37,6 @@ public:
virtual void pluginUpdate() override {};
virtual gpu::PipelinePointer getRenderTexturePipeline() override;
protected:
mutable bool _isThrottled = false;

View file

@ -32,6 +32,7 @@
#include <gl/GLEscrow.h>
#include <gl/Context.h>
#include <gl/OffscreenGLCanvas.h>
#include <gl/GLHelpers.h>
#include <gpu/Texture.h>
#include <gpu/FrameIO.h>
@ -57,6 +58,8 @@ using namespace shader::gpu::program;
extern QThread* RENDER_THREAD;
Setting::Handle<bool> OpenGLDisplayPlugin::_extraLinearToSRGBConversionSetting("extraLinearToSRGBConversion", false);
class PresentThread : public QThread, public Dependency {
using Mutex = std::mutex;
using Condition = std::condition_variable;
@ -956,5 +959,16 @@ void OpenGLDisplayPlugin::copyTextureToQuickFramebuffer(NetworkTexturePointer ne
}
gpu::PipelinePointer OpenGLDisplayPlugin::getRenderTexturePipeline() {
return _drawTexturePipeline;
#ifdef USE_GLES
if (!_extraLinearToSRGBConversionSetting.isSet()) {
const gl::ContextInfo &contextInfo = gl::ContextInfo::get();
_extraLinearToSRGBConversionSetting.set(std::find(contextInfo.extensions.cbegin(), contextInfo.extensions.cend(), "GL_EXT_framebuffer_sRGB") == contextInfo.extensions.cend());
}
#endif
if (getExtraLinearToSRGBConversion()) {
return _linearToSRGBPipeline;
} else {
return _drawTexturePipeline;
}
}

View file

@ -18,6 +18,7 @@
#include <QtGui/QImage>
#include <GLMHelpers.h>
#include <SettingHandle.h>
#include <SimpleMovingAverage.h>
#include <shared/RateCounter.h>
@ -86,6 +87,9 @@ public:
QOpenGLFramebufferObject* target,
GLsync* fenceSync) override;
static void setExtraLinearToSRGBConversion(bool value) { _extraLinearToSRGBConversionSetting.set(value); }
static bool getExtraLinearToSRGBConversion() { return _extraLinearToSRGBConversionSetting.get(); };
protected:
friend class PresentThread;
@ -201,4 +205,7 @@ protected:
QImage getScreenshot(float aspectRatio);
QImage getSecondaryCameraScreenshot();
private:
static Setting::Handle<bool> _extraLinearToSRGBConversionSetting;
};

View file

@ -487,13 +487,17 @@ Rectangle {
var last_item_index = channel.count - 1;
var last_item = channel.get(last_item_index);
if (last_message_user === username && elapsed_minutes < 1 && last_item){
message = "<br>" + message
last_item.text = last_item.text += "\n" + message;
scrollToBottom()
last_message_time = new Date();
return;
}
// FIXME: When adding a new message this would check to see if we could append the incoming message
// to the bottom of the last message. This current implimentation causes issues with scrollToBottom()
// Specifically, scrolling to the bottom does not like image embeds.
// This needs to be reworked entirely before it can be reimplimented
// if (last_message_user === username && elapsed_minutes < 1 && last_item){
// message = "<br>" + message
// last_item.text = last_item.text += "\n" + message;
// scrollToBottom()
// last_message_time = new Date();
// return;
// }
last_message_user = username;
last_message_time = new Date();
@ -510,7 +514,7 @@ Rectangle {
mess = mess.replace(arrow, "&lt;");
var link = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g;
mess = mess.replace(link, (match) => {return `<a style="color:#4EBAFD" onclick='Window.openUrl("+match+")' href='` + match + `'>` + match + `</a> <a onclick='Window.openUrl(`+match+`)'></a>`});
mess = mess.replace(link, (match) => {return `<a style="color:#4EBAFD" onclick='Window.openUrl("+match+")' href='` + match + `'>` + match + `</a> <a onclick='Window.openUrl(`+match+`)'>🗗</a>`});
var newline = /\n/gi;
mess = mess.replace(newline, "<br>");

View file

@ -21,6 +21,8 @@ var DEFAULT_SIZE = 30;
var DEFAULT_OFFSET = 10;
var FLOOF_NOTIFICATION_CHANNEL = "Floof-Notif";
var MAIN_CHAT_APP_CHANNEL = "Chat";
var ARROW_REGEX = /\</gi;
var offset = DEFAULT_OFFSET;
@ -62,9 +64,11 @@ var notificationCore = {
},
add: function (text, sender, colour) {
sender = sender ? sender : "NoName";
sender = sender.replace(ARROW_REGEX, "&lt;");
colour = colour ? colour : {};
colour.text = colour.text ? colour.text : {red: 255, green: 255, blue: 255};
colour.bg = colour.bg ? colour.bg : {red: 10, green: 10, blue: 10};
text = text.replace(ARROW_REGEX, "&lt;");
var lines = text.split("\n");
for (var i = lines.length - 1; i >= 0; i--) {
if (i === 0) {

View file

@ -37,7 +37,6 @@ var DEFAULT_SCRIPTS_COMBINED = [
"system/inspect.js",
"system/keyboardShortcuts/keyboardShortcuts.js",
"system/onEscape.js",
"system/onFirstRun.js",
"system/places/places.js"
//"developer/debugging/scriptMemoryReport.js"
];

View file

@ -210,8 +210,8 @@ var EntityListTool = function(shouldUseEditTabletApp, selectionManager) {
var cameraPosition = Camera.position;
PROFILE("getMultipleProperties", function () {
var multipleProperties = Entities.getMultipleEntityProperties(ids, ['position', 'name', 'type', 'locked',
'visible', 'renderInfo', 'modelURL', 'materialURL', 'imageURL', 'script', 'serverScripts',
'skybox.url', 'ambientLight.url', 'soundURL', 'created', 'lastEdited']);
'visible', 'renderInfo', 'modelURL', 'materialURL', 'imageURL', 'script', 'serverScripts',
'skybox.url', 'ambientLight.url', 'soundURL', 'created', 'lastEdited', 'entityHostType']);
for (var i = 0; i < multipleProperties.length; i++) {
var properties = multipleProperties[i];
@ -258,7 +258,8 @@ var EntityListTool = function(shouldUseEditTabletApp, selectionManager) {
hasScript: (properties.script !== "" || properties.serverScripts !== ""),
parentState: parentState,
created: formatToStringDateTime(properties.created),
lastEdited: formatToStringDateTime(properties.lastEdited)
lastEdited: formatToStringDateTime(properties.lastEdited),
entityHostType: properties.entityHostType
});
}
}

View file

@ -989,6 +989,7 @@ function loaded() {
parentState: entity.parentState,
created: entity.created,
lastEdited: entity.lastEdited,
entityHostType: entity.entityHostType,
elRow: null, // if this entity has a visible row element assigned to it
selected: false // if this entity is selected for edit regardless of having a visible row
};
@ -1185,7 +1186,11 @@ function loaded() {
if (entity !== undefined) {
entity.selected = false;
if (entity.elRow) {
entity.elRow.className = "";
if (entity.entityHostType === "avatar") {
entity.elRow.className = "avatarEntity";
} else {
entity.elRow.className = "";
}
}
}
});
@ -1199,9 +1204,17 @@ function loaded() {
entity.selected = true;
if (entity.elRow) {
if (id === lastSelectedEntity) {
entity.elRow.className = "last-selected";
if (entity.entityHostType === "avatar") {
entity.elRow.className = "lastSelAvatarEntity";
} else {
entity.elRow.className = "last-selected";
}
} else {
entity.elRow.className = "selected";
if (entity.entityHostType === "avatar") {
entity.elRow.className = "selAvatarEntity";
} else {
entity.elRow.className = "selected";
}
}
}
} else {
@ -1272,12 +1285,24 @@ function loaded() {
// if this entity was previously selected flag it's row as selected
if (itemData.selected) {
if (itemData.id === lastSelectedEntity) {
elRow.className = "last-selected";
if (itemData.entityHostType === "avatar") {
elRow.className = "lastSelAvatarEntity";
} else {
elRow.className = "last-selected";
}
} else {
elRow.className = "selected";
if (itemData.entityHostType === "avatar") {
elRow.className = "selAvatarEntity";
} else {
elRow.className = "selected";
}
}
} else {
elRow.className = "";
if (itemData.entityHostType === "avatar") {
elRow.className = "avatarEntity";
} else {
elRow.className = "";
}
}
// if this row previously had an associated entity ID that wasn't the new entity ID then clear

View file

@ -15,6 +15,10 @@ var currentTab = "base";
const DEGREES_TO_RADIANS = Math.PI / 180.0;
const ENTITY_HOST_TYPE_COLOR_DOMAIN = "#afafaf";
const ENTITY_HOST_TYPE_COLOR_AVATAR = "#7fdb98";
const ENTITY_HOST_TYPE_COLOR_LOCAL = "#f0d769";
const NO_SELECTION = ",";
const PROPERTY_SPACE_MODE = Object.freeze({
@ -2675,6 +2679,11 @@ function updateMultiDiffProperties(propertiesMapToUpdate, onlyUpdateEntity) {
function createEmitTextPropertyUpdateFunction(property) {
return function() {
// If we don't have canViewAssetURLs permissions, ignore clearing URLs
if (!canViewAssetURLs && property.data.placeholder === "URL" && this.value === "") {
return;
}
property.elInput.classList.remove('multi-diff');
updateProperty(property.name, this.value, property.isParticleProperty);
};
@ -4875,6 +4884,8 @@ function handleEntitySelectionUpdate(selections, isPropertiesToolUpdate) {
disableProperties();
} else {
let entityHostType = selections[0].properties.entityHostType;
if (!isPropertiesToolUpdate && !hasSelectedEntityChanged && document.hasFocus()) {
// in case the selection has not changed and we still have focus on the properties page,
// we will ignore the event.
@ -4961,9 +4972,31 @@ function handleEntitySelectionUpdate(selections, isPropertiesToolUpdate) {
property.elInput.classList.add('multi-diff');
property.elInput.value = "";
}
if (propertyName === "id") {
property.elInput.style.color = ENTITY_HOST_TYPE_COLOR_DOMAIN;
}
} else {
property.elInput.classList.remove('multi-diff');
property.elInput.value = propertyValue;
if (propertyName === "name" || propertyName === "id") {
if (selections.length === 1) {
switch (entityHostType) {
case "domain":
property.elInput.style.color = ENTITY_HOST_TYPE_COLOR_DOMAIN;
break;
case "avatar":
property.elInput.style.color = ENTITY_HOST_TYPE_COLOR_AVATAR;
break;
case "local":
property.elInput.style.color = ENTITY_HOST_TYPE_COLOR_LOCAL;
break;
default:
property.elInput.style.color = ENTITY_HOST_TYPE_COLOR_DOMAIN;
}
} else {
property.elInput.style.color = ENTITY_HOST_TYPE_COLOR_DOMAIN;
}
}
}
break;
}

View file

@ -2,9 +2,10 @@
// NewMaterialDialog.qml
// qml/hifi
//
// Created by Sam Gondelman on 1/17/18
// Created by Sam Gondelman on January 17th, 2018
// Copyright 2018 High Fidelity, Inc.
// Copyright 2020 Vircadia contributors
// Copyright 2024 Overte e.V.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@ -54,17 +55,32 @@ Rectangle {
Text {
id: text1
text: qsTr("Material URL <i>(Optional)</i>")
text: qsTr("Material URL <i>(Optional)</i>&nbsp;&nbsp;&nbsp;")
color: "#ffffff"
font.pixelSize: 12
}
Button {
id: pasteBtn
text: "Paste"
font.pixelSize: 11
height: 16
width: 40
radius: 4
anchors.top: text1.top
anchors.left: text1.right
anchors.bottom: text1.bottom
onClicked: {
materialURL.paste()
}
}
TextInput {
id: materialURL
height: 20
text: qsTr("")
color: "white"
anchors.top: text1.bottom
anchors.top: pasteBtn.bottom
anchors.topMargin: 5
anchors.left: parent.left
anchors.leftMargin: 0

View file

@ -2,9 +2,10 @@
// NewModelDialog.qml
// qml/hifi
//
// Created by Seth Alves on 2017-2-10
// Created by Seth Alves on February 10th, 2017
// Copyright 2017 High Fidelity, Inc.
// Copyright 2020 Vircadia contributors
// Copyright 2024 Overte e.V.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@ -54,17 +55,30 @@ Rectangle {
Text {
id: text1
text: qsTr("Model URL <i>(.fbx, .fst, .glb, .gltf, .obj, .gz)</i>")
text: qsTr("Model URL <i>(.fbx, .fst, .glb, .gltf, .obj, .gz)</i>&nbsp;&nbsp;&nbsp;")
color: "#ffffff"
font.pixelSize: 12
}
Button {
id: pasteBtn
text: "Paste"
font.pixelSize: 11
height: 16
width: 40
radius: 4
anchors.top: text1.top + 10
anchors.left: text1.right
anchors.bottom: text1.bottom
onClicked: {
modelURL.paste()
}
}
TextInput {
id: modelURL
height: 20
text: qsTr("")
color: "white"
anchors.top: text1.bottom
anchors.top: pasteBtn.bottom
anchors.topMargin: 5
anchors.left: parent.left
anchors.leftMargin: 0

View file

@ -1,12 +1,12 @@
//
// NewPolyVoxDialog.qml
// Created by dr Karol Suprynowicz on 2022.05.17.
// Created by dr Karol Suprynowicz on May 17th, 2022
// based on NewModelDialog.qml
// qml/hifi
//
// Copyright 2017 High Fidelity, Inc.
// Copyright 2020 Vircadia contributors
// Copyright 2022 Overte e.V.
// Copyright 2022-2024 Overte e.V.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@ -116,17 +116,32 @@ Rectangle {
id: text1
anchors.top: texturePreset.bottom
anchors.topMargin: 5
text: qsTr("X Texture URL")
text: qsTr("X Texture URL <i>&nbsp;&nbsp;&nbsp;</i>")
color: "#ffffff"
font.pixelSize: 12
}
Button {
id: pasteBtn1
text: "Paste"
font.pixelSize: 11
height: 16
width: 40
radius: 4
anchors.top: text1.top
anchors.left: text1.right
anchors.bottom: text1.bottom
onClicked: {
xTextureURL.paste()
}
}
TextInput {
id: xTextureURL
height: 20
text: qsTr("")
color: "white"
anchors.top: text1.bottom
anchors.top: pasteBtn1.bottom
anchors.topMargin: 5
anchors.left: parent.left
anchors.leftMargin: 0
@ -166,19 +181,33 @@ Rectangle {
Text {
id: text2
text: qsTr("Y Texture URL")
text: qsTr("Y Texture URL <i>&nbsp;&nbsp;&nbsp;</i>")
color: "#ffffff"
font.pixelSize: 12
anchors.top: textInputBox1.bottom
anchors.topMargin: 5
}
Button {
id: pasteBtn2
text: "Paste"
font.pixelSize: 11
height: 16
width: 40
radius: 4
anchors.top: text2.top
anchors.left: text2.right
anchors.bottom: text2.bottom
onClicked: {
yTextureURL.paste()
}
}
TextInput {
id: yTextureURL
height: 20
text: qsTr("")
color: "white"
anchors.top: text2.bottom
anchors.top: pasteBtn2.bottom
anchors.topMargin: 5
anchors.left: parent.left
anchors.leftMargin: 0
@ -218,19 +247,33 @@ Rectangle {
Text {
id: text3
text: qsTr("Z Texture URL")
text: qsTr("Z Texture URL <i>&nbsp;&nbsp;&nbsp;</i>")
color: "#ffffff"
font.pixelSize: 12
anchors.top: textInputBox2.bottom
anchors.topMargin: 5
}
Button {
id: pasteBtn3
text: "Paste"
font.pixelSize: 11
height: 16
width: 40
radius: 4
anchors.top: text3.top
anchors.left: text3.right
anchors.bottom: text3.bottom
onClicked: {
zTextureURL.paste()
}
}
TextInput {
id: zTextureURL
height: 20
text: qsTr("")
color: "white"
anchors.top: text3.bottom
anchors.top: pasteBtn3.bottom
anchors.topMargin: 5
anchors.left: parent.left
anchors.leftMargin: 0

View file

@ -175,6 +175,28 @@ tr:focus {
outline: none;
}
tr.avatarEntity {
color: #7fdb98;
}
tr.selAvatarEntity {
color: #000000;
background-color: #7fdb98;
}
tr.selAvatarEntity + tr.selAvatarEntity {
border-top: 1px solid #2e2e2e;
}
tr.lastSelAvatarEntity {
color: #000000;
background-color: #06c73a;
}
tr.lastSelAvatarEntity + tr.lastSelAvatarEntity {
border-top: 1px solid #2e2e2e;
}
tr.selected {
color: #000000;
background-color: #00b4ef;

View file

@ -1,35 +0,0 @@
'use strict';
//
// onFirstRun.js
//
// Created by Kalila L. on Oct 5 2020.
// Copyright 2020 Vircadia contributors.
//
// This script triggers on first run to perform bootstrapping actions.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
(function() { // BEGIN LOCAL_SCOPE
// Check to see if we should run this script or bail...
var SETTING_TO_CHECK = 'firstRun';
var DEFAULT_DISPLAY_NAME = '';
if (!Settings.getValue(SETTING_TO_CHECK, false)) {
return;
}
// If this is our first run, then proceed...
if (MyAvatar.displayName === '') {
var selectedDisplayName = Window.prompt('Enter a display name.', MyAvatar.displayName);
if (selectedDisplayName === '') {
MyAvatar.displayName = DEFAULT_DISPLAY_NAME;
} else {
MyAvatar.displayName = selectedDisplayName;
}
}
}());