diff --git a/.github/workflows/pr_build.yml b/.github/workflows/pr_build.yml index 219daa0c4b..20619983c5 100644 --- a/.github/workflows/pr_build.yml +++ b/.github/workflows/pr_build.yml @@ -46,6 +46,10 @@ jobs: - os: ubuntu-18.04 build_type: android apt-dependencies: mesa-common-dev libegl1 libglvnd-dev libdouble-conversion1 libpulse0 + # Do not change the names of self-hosted runners without knowing what you are doing, as they correspond to labels that have to be set on the runner. + - os: self-hosted_debian-11_aarch64 + build_type: full + apt-dependencies: qtbase5-dev qtbase5-private-dev qtwebengine5-dev qtwebengine5-dev-tools qtmultimedia5-dev libqt5opengl5-dev qtscript5-dev libqt5scripttools5 libqt5webchannel5-dev libqt5websockets5-dev qtxmlpatterns5-dev-tools qttools5-dev libqt5xmlpatterns5-dev libqt5svg5-dev qml-module-qtwebchannel build-essential cmake curl freeglut3-dev git libasound2 libasound2-dev libdouble-conversion-dev libdrm-dev libfontconfig1 libgl1-mesa-dev libglvnd-dev libharfbuzz-dev libjack-dev libjack0 libnspr4 libnss3 libpcre2-16-0 libpulse0 libsdl2-dev libssl-dev libudev-dev libxcb-xinerama0-dev libxcb-xinput0 libxcomposite1 libxcursor1 libxi-dev libxmu-dev libxrandr-dev libxslt1.1 libxtst6 make mesa-common-dev mesa-utils nodejs npm patchelf python2 python3 python3-distro xdg-user-dirs zlib1g-dev ninja-build zip fail-fast: false runs-on: ${{matrix.os}} if: github.event.action != 'labeled' || github.event.label.name == 'rebuild' @@ -59,10 +63,17 @@ jobs: echo "APP_TARGET_NAME=$APP_NAME" >> $GITHUB_ENV # Linux build variables - if [[ "${{ matrix.os }}" = "ubuntu-"* ]]; then + if [[ "${{ matrix.os }}" = "ubuntu-"* || "${{ matrix.os }}" = *"debian"* ]]; then echo "PYTHON_EXEC=python3" >> $GITHUB_ENV echo "INSTALLER_EXT=*" >> $GITHUB_ENV - echo "CMAKE_BUILD_EXTRA=-- -j3" >> $GITHUB_ENV + echo "CMAKE_BUILD_EXTRA=-- -j$(nproc)" >> $GITHUB_ENV + if [ "${{ matrix.os }}" = "self-hosted_debian-11_aarch64" ]; then + echo "VIRCADIA_USE_SYSTEM_QT=true" >> $GITHUB_ENV + echo "CI_WORKSPACE=${{runner.workspace}}" >> $GITHUB_ENV + fi + if [[ "${{ matrix.os }}" = *"aarch64" ]]; then + echo "VCPKG_FORCE_SYSTEM_BINARIES=true" >> $GITHUB_ENV + fi if [ "${{ matrix.build_type }}" = "full" ]; then echo "CMAKE_EXTRA=-DBUILD_TOOLS:BOOLEAN=FALSE -DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV else @@ -97,6 +108,7 @@ jobs: mkdir $HIFI_ANDROID_PRECOMPILED echo "INSTALLER_EXT=apk" >> $GITHUB_ENV fi + # Configuration is broken into two steps because you can't set an env var and also reference it in the same step - name: Configure Build Environment 2 shell: bash @@ -114,8 +126,9 @@ jobs: else echo "ARTIFACT_PATTERN=*.$INSTALLER_EXT" >> $GITHUB_ENV fi + - name: Clear Working Directory - if: startsWith(matrix.os, 'windows') + if: startsWith(matrix.os, 'windows') || contains(matrix.os, 'self-hosted') shell: bash working-directory: ${{runner.workspace}} run: rm -rf ./* @@ -123,9 +136,10 @@ jobs: with: submodules: false fetch-depth: 1 + - name: Install dependencies shell: bash - if: startsWith(matrix.os, 'ubuntu') + if: startsWith(matrix.os, 'ubuntu') || contains(matrix.os, 'debian') run: | echo "Installing Python Modules:" pip3 install distro || exit 1 @@ -135,13 +149,16 @@ jobs: echo "Installing apt packages" sudo apt install -y ${{ matrix.apt-dependencies }} || exit 1 + - name: Create Build Environment shell: bash run: cmake -E make_directory "${{runner.workspace}}/build" + - name: Configure CMake working-directory: ${{runner.workspace}}/build shell: bash run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DVCPKG_BUILD_TYPE=release $CMAKE_EXTRA + - name: Compress cmake logs if: always() shell: bash @@ -152,7 +169,12 @@ jobs: TAR=tar fi - find "$HOME/vircadia-files/vcpkg" -name '*log' -type f -print0 | $TAR --null --force-local -T - -c --xz -v -f "${{ runner.workspace }}/cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz" + if [ ${{ env.CI_WORKSPACE }} ]; then + find "$CI_WORKSPACE/vircadia-files/vcpkg" -name '*log' -type f -print0 | $TAR --null --force-local -T - -c --xz -v -f "${{ runner.workspace }}/cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz" + else + find "$HOME/vircadia-files/vcpkg" -name '*log' -type f -print0 | $TAR --null --force-local -T - -c --xz -v -f "${{ runner.workspace }}/cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz" + fi + - name: Archive cmake logs if: always() uses: actions/upload-artifact@v2 @@ -160,26 +182,31 @@ jobs: name: cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz path: ${{ runner.workspace }}/cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz if-no-files-found: error + - name: Build Application if: matrix.build_type == 'full' || matrix.build_type == 'client' working-directory: ${{runner.workspace}}/build shell: bash run: cmake --build . --config $BUILD_TYPE --target $APP_TARGET_NAME $CMAKE_BUILD_EXTRA + - name: Build Domain Server if: matrix.build_type == 'full' working-directory: ${{runner.workspace}}/build shell: bash run: cmake --build . --config $BUILD_TYPE --target domain-server $CMAKE_BUILD_EXTRA + - name: Build Assignment Client if: matrix.build_type == 'full' working-directory: ${{runner.workspace}}/build shell: bash run: cmake --build . --config $BUILD_TYPE --target assignment-client $CMAKE_BUILD_EXTRA + - name: Build Console if: matrix.build_type == 'full' || matrix.os == 'windows-latest' working-directory: ${{runner.workspace}}/build shell: bash run: cmake --build . --config $BUILD_TYPE --target packaged-server-console $CMAKE_BUILD_EXTRA + - name: Build Installer if: matrix.build_type != 'android' working-directory: ${{runner.workspace}}/build @@ -218,6 +245,7 @@ jobs: working-directory: ${{runner.workspace}}/vircadia run: | /usr/local/lib/android/sdk/tools/bin/sdkmanager --uninstall 'cmake;3.18.1' + - name: Build for Android + Quest if: matrix.build_type == 'android' shell: bash @@ -230,6 +258,7 @@ jobs: ./gradlew -m tasks -PHIFI_ANDROID_PRECOMPILED=$HIFI_ANDROID_PRECOMPILED # Build! ./build_android.sh + - name: Output system stats if: ${{ always() }} working-directory: ${{runner.workspace}}/build @@ -237,11 +266,13 @@ jobs: run: | echo "Disk usage:" df -h + - name: Output Installer Logs if: failure() && matrix.os == 'windows-latest' shell: bash working-directory: ${{runner.workspace}}/build run: cat ./_CPack_Packages/win64/NSIS/NSISOutput.log + - name: Upload Artifact shell: bash working-directory: ${{runner.workspace}}/build diff --git a/.grenrc.js b/.grenrc.js index 0ac3acc842..689363bb14 100644 --- a/.grenrc.js +++ b/.grenrc.js @@ -19,6 +19,8 @@ module.exports = { "ignoreLabels": [ "enhancement", "bugfix", + "CMake", + "unmerged-dev", "CR Approved", "QA Approved", "allow-build-upload", @@ -33,11 +35,12 @@ module.exports = { "rebuild", "merge right before snip" ], - "onlyMilestones": true, + "onlyMilestones": false, "groupBy": { "Enhancements": ["enhancement"], "Bug Fixes": ["bugfix"], - "Docs": ["docs"] + "Docs": ["docs"], + "In Development": ["unmerged-dev"] }, "changelogFilename": "CHANGELOG.md" } diff --git a/assignment-client/src/Agent.h b/assignment-client/src/Agent.h index b8e7652cca..eb58e32897 100644 --- a/assignment-client/src/Agent.h +++ b/assignment-client/src/Agent.h @@ -17,6 +17,7 @@ #include #include +#include #include #include #include diff --git a/assignment-client/src/AssignmentClient.h b/assignment-client/src/AssignmentClient.h index d9ef694522..3c87783012 100644 --- a/assignment-client/src/AssignmentClient.h +++ b/assignment-client/src/AssignmentClient.h @@ -15,6 +15,7 @@ #include #include +#include #include diff --git a/assignment-client/src/AssignmentClientMonitor.h b/assignment-client/src/AssignmentClientMonitor.h index 20d4a6767b..ffd6505c6c 100644 --- a/assignment-client/src/AssignmentClientMonitor.h +++ b/assignment-client/src/AssignmentClientMonitor.h @@ -17,6 +17,7 @@ #include #include #include +#include #include #include diff --git a/assignment-client/src/assets/AssetServer.h b/assignment-client/src/assets/AssetServer.h index fe84df5141..a4531da7ba 100644 --- a/assignment-client/src/assets/AssetServer.h +++ b/assignment-client/src/assets/AssetServer.h @@ -13,6 +13,7 @@ #define hifi_AssetServer_h #include +#include #include #include diff --git a/assignment-client/src/audio/AudioMixer.h b/assignment-client/src/audio/AudioMixer.h index c7726d2fea..5b75ed54d2 100644 --- a/assignment-client/src/audio/AudioMixer.h +++ b/assignment-client/src/audio/AudioMixer.h @@ -12,6 +12,8 @@ #ifndef hifi_AudioMixer_h #define hifi_AudioMixer_h +#include + #include #include #include diff --git a/assignment-client/src/audio/AudioMixerClientData.h b/assignment-client/src/audio/AudioMixerClientData.h index 16c849c216..b6f26aebc0 100644 --- a/assignment-client/src/audio/AudioMixerClientData.h +++ b/assignment-client/src/audio/AudioMixerClientData.h @@ -20,6 +20,7 @@ #endif #include +#include #include #include diff --git a/assignment-client/src/audio/AvatarAudioStream.h b/assignment-client/src/audio/AvatarAudioStream.h index de9577099e..e445dafa5c 100644 --- a/assignment-client/src/audio/AvatarAudioStream.h +++ b/assignment-client/src/audio/AvatarAudioStream.h @@ -23,9 +23,7 @@ public: AvatarAudioStream(bool isStereo, int numStaticJitterFrames = -1); private: - // disallow copying of AvatarAudioStream objects - AvatarAudioStream(const AvatarAudioStream&); - AvatarAudioStream& operator= (const AvatarAudioStream&); + Q_DISABLE_COPY(AvatarAudioStream) int parseStreamProperties(PacketType type, const QByteArray& packetAfterSeqNum, int& numAudioSamples) override; }; diff --git a/assignment-client/src/avatars/AvatarMixer.h b/assignment-client/src/avatars/AvatarMixer.h index 1a19a61bd2..92821277de 100644 --- a/assignment-client/src/avatars/AvatarMixer.h +++ b/assignment-client/src/avatars/AvatarMixer.h @@ -16,6 +16,8 @@ #ifndef hifi_AvatarMixer_h #define hifi_AvatarMixer_h +#include + #include #include #include diff --git a/assignment-client/src/avatars/AvatarMixerClientData.h b/assignment-client/src/avatars/AvatarMixerClientData.h index 83a2ff384a..e77eb4d070 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.h +++ b/assignment-client/src/avatars/AvatarMixerClientData.h @@ -19,6 +19,7 @@ #include #include +#include #include #include "MixerAvatar.h" diff --git a/assignment-client/src/entities/EntityServer.h b/assignment-client/src/entities/EntityServer.h index 9bb3a237e0..3d79ee48bf 100644 --- a/assignment-client/src/entities/EntityServer.h +++ b/assignment-client/src/entities/EntityServer.h @@ -14,6 +14,8 @@ #include "../octree/OctreeServer.h" +#include + #include #include diff --git a/assignment-client/src/messages/MessagesMixer.h b/assignment-client/src/messages/MessagesMixer.h index 9a43aca347..0070cbad4d 100644 --- a/assignment-client/src/messages/MessagesMixer.h +++ b/assignment-client/src/messages/MessagesMixer.h @@ -15,6 +15,8 @@ #ifndef hifi_MessagesMixer_h #define hifi_MessagesMixer_h +#include + #include /// Handles assignments of type MessagesMixer - distribution of avatar data to various clients diff --git a/assignment-client/src/octree/OctreeHeadlessViewer.h b/assignment-client/src/octree/OctreeHeadlessViewer.h index 17173718e8..2c256c8516 100644 --- a/assignment-client/src/octree/OctreeHeadlessViewer.h +++ b/assignment-client/src/octree/OctreeHeadlessViewer.h @@ -12,6 +12,8 @@ #ifndef hifi_OctreeHeadlessViewer_h #define hifi_OctreeHeadlessViewer_h +#include + #include #include diff --git a/assignment-client/src/octree/OctreeInboundPacketProcessor.h b/assignment-client/src/octree/OctreeInboundPacketProcessor.h index a7fa297d24..101debe5f0 100644 --- a/assignment-client/src/octree/OctreeInboundPacketProcessor.h +++ b/assignment-client/src/octree/OctreeInboundPacketProcessor.h @@ -14,6 +14,8 @@ #ifndef hifi_OctreeInboundPacketProcessor_h #define hifi_OctreeInboundPacketProcessor_h +#include + #include #include "SequenceNumberStats.h" diff --git a/assignment-client/src/octree/OctreeServer.h b/assignment-client/src/octree/OctreeServer.h index 3ae4dddee9..43623768bf 100644 --- a/assignment-client/src/octree/OctreeServer.h +++ b/assignment-client/src/octree/OctreeServer.h @@ -17,6 +17,7 @@ #include #include #include +#include #include diff --git a/assignment-client/src/scripts/EntityScriptServer.h b/assignment-client/src/scripts/EntityScriptServer.h index b795339174..b7929eb5af 100644 --- a/assignment-client/src/scripts/EntityScriptServer.h +++ b/assignment-client/src/scripts/EntityScriptServer.h @@ -16,6 +16,7 @@ #include #include +#include #include #include diff --git a/cmake/macros/TargetWebRTC.cmake b/cmake/macros/TargetWebRTC.cmake index d215b0698e..58f8a43028 100644 --- a/cmake/macros/TargetWebRTC.cmake +++ b/cmake/macros/TargetWebRTC.cmake @@ -13,6 +13,9 @@ macro(TARGET_WEBRTC) # set(WEBRTC_LIBRARY_DEBUG ${INSTALL_DIR}/debug/lib/libwebrtc.a) # set(WEBRTC_LIBRARY_RELEASE ${INSTALL_DIR}/lib/libwebrtc.a) # select_library_configurations(WEBRTC) + elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + # WebRTC is basically impossible to build on aarch64 Linux. + # I am looking at https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing for an alternative. else() set(WEBRTC_INCLUDE_DIRS "${VCPKG_INSTALL_ROOT}/include/webrtc") target_include_directories(${TARGET_NAME} SYSTEM PUBLIC ${WEBRTC_INCLUDE_DIRS}) diff --git a/cmake/ports/hifi-deps/CONTROL b/cmake/ports/hifi-deps/CONTROL index ff689c7a2a..1fed0476c0 100644 --- a/cmake/ports/hifi-deps/CONTROL +++ b/cmake/ports/hifi-deps/CONTROL @@ -1,4 +1,4 @@ Source: hifi-deps Version: 0.1.5-github-actions Description: Collected dependencies for High Fidelity applications -Build-Depends: bullet3, draco, etc2comp, glad, glm, nvtt, openexr (!android), openssl (windows), opus, polyvox, tbb (!android), vhacd, webrtc (!android), zlib +Build-Depends: bullet3, draco, etc2comp, glad, glm, nvtt, openexr (!android), openssl (windows), opus, polyvox, tbb (!android), vhacd, webrtc (!android|!(linux&arm)), zlib diff --git a/cmake/ports/openvr/CONTROL b/cmake/ports/openvr/CONTROL index b0f337d0a9..b9e748537b 100644 --- a/cmake/ports/openvr/CONTROL +++ b/cmake/ports/openvr/CONTROL @@ -1,3 +1,3 @@ Source: openvr -Version: 1.0.16 +Version: 1.16.8 Description: an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting. diff --git a/cmake/ports/openvr/portfile.cmake b/cmake/ports/openvr/portfile.cmake index bcbac8613a..76859b523b 100644 --- a/cmake/ports/openvr/portfile.cmake +++ b/cmake/ports/openvr/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ValveSoftware/openvr - REF v1.11.11 - SHA512 25bddb0e82eea091fe5101d0d3de1de7bb81b4504adc0c8d8e687d2502c0167bc5a11e68bc343d7563fb4db7c917e9d0e2ea99bc1d8016d479874b0c6bd7f121 + REF v1.16.8 + SHA512 bc65fd2fc2aab870c7fee98f5211b7d88cd30511ce5b23fa2ac05454969b6ee56b42e422e44a16a833b317bb1328e0ed986c926e3d78abddf5fd5788ff74de91 HEAD_REF master ) diff --git a/domain-server/src/DomainGatekeeper.h b/domain-server/src/DomainGatekeeper.h index 94f760d42e..b24f550483 100644 --- a/domain-server/src/DomainGatekeeper.h +++ b/domain-server/src/DomainGatekeeper.h @@ -20,6 +20,7 @@ #include #include +#include #include diff --git a/domain-server/src/DomainServerSettingsManager.h b/domain-server/src/DomainServerSettingsManager.h index 3d4f6cd626..24c8eb0f05 100644 --- a/domain-server/src/DomainServerSettingsManager.h +++ b/domain-server/src/DomainServerSettingsManager.h @@ -17,6 +17,7 @@ #include #include #include +#include #include #include diff --git a/hifi_qt.py b/hifi_qt.py index f832d5f940..b736a1433b 100644 --- a/hifi_qt.py +++ b/hifi_qt.py @@ -169,11 +169,9 @@ endif() elif distro.id() == 'debian': u_major = int( distro.major_version() ) - u_minor = int( distro.minor_version() ) if u_major == 10: - #self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-ubuntu-16.04-with-symbols.tar.gz' - self.__no_qt_package_error() + self.qtUrl = 'https://data.moto9000.moe/vircadia_packages/qt5-install-5.15.2-debian-10-aarch64.tar.xz' elif u_major > 10: self.__no_qt_package_error() else: diff --git a/hifi_vcpkg.py b/hifi_vcpkg.py index 642ed1253e..48d5645119 100644 --- a/hifi_vcpkg.py +++ b/hifi_vcpkg.py @@ -61,7 +61,10 @@ endif() self.noClean = True else: defaultBasePath = os.path.expanduser('~/vircadia-files/vcpkg') - self.basePath = os.getenv('HIFI_VCPKG_BASE', defaultBasePath) + if 'CI_WORKSPACE' in os.environ: + self.basePath = os.path.join(os.getenv('CI_WORKSPACE'), 'vircadia-files/vcpkg') + else: + self.basePath = os.getenv('HIFI_VCPKG_BASE', defaultBasePath) if self.args.android: self.basePath = os.path.join(self.basePath, 'android') if (not os.path.isdir(self.basePath)): @@ -109,8 +112,8 @@ endif() elif 'Linux' == system and 'aarch64' == machine: self.exe = os.path.join(self.path, 'vcpkg') self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.sh'), '-disableMetrics' ] - self.vcpkgUrl = 'http://motofckr9k.ddns.net/vircadia_packages/vcpkg-2020.11-1_arm64.tar.xz' - self.vcpkgHash = 'f39fa1c34d2ba820954b8ce4acc05e3d0ce5fa5efe5440516ba910ff222c85c658ba4bbfc92b3fa6cbb594f99be115cda69ebe44ed38d4d3988058fb1faefbb3' + self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/vcpkg-linux_aarch64_2021.05.12.tar.xz' + self.vcpkgHash = '7abb7aa96200e3cb5a6d0ec1c6ee63aa7886df2d1fecf8f9ee41ebe4d2cea0d4143274222c4941cb7aca61e4048229fdfe9eb2cd36dd559dd26db871a3b3ed61' self.hostTriplet = 'arm64-linux' else: self.exe = os.path.join(self.path, 'vcpkg') diff --git a/ice-server/src/IceServer.cpp b/ice-server/src/IceServer.cpp index b4542e12a0..0e3997a0ea 100644 --- a/ice-server/src/IceServer.cpp +++ b/ice-server/src/IceServer.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include diff --git a/ice-server/src/IceServer.h b/ice-server/src/IceServer.h index e68115f7ef..b13a06f44b 100644 --- a/ice-server/src/IceServer.h +++ b/ice-server/src/IceServer.h @@ -14,7 +14,6 @@ #define hifi_IceServer_h #include -#include #include #include diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index 9d8fd93f20..0462ba2214 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -236,7 +236,7 @@ target_openssl() target_bullet() -set(OpenGL_GL_PREFERENCE "LEGACY") +set(OpenGL_GL_PREFERENCE "GLVND") target_opengl() add_crashpad() target_breakpad() diff --git a/interface/src/Application.h b/interface/src/Application.h index e771d7ea38..215473ddfb 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -647,7 +648,7 @@ private: EntityTreePointer _entityClipboard; - mutable QMutex _viewMutex { QMutex::Recursive }; + mutable QRecursiveMutex _viewMutex; ViewFrustum _viewFrustum; // current state of view frustum, perspective, orientation, etc. ViewFrustum _displayViewFrustum; @@ -773,7 +774,7 @@ private: bool _isMissingSequenceNumbers { false }; void checkChangeCursor(); - mutable QMutex _changeCursorLock { QMutex::Recursive }; + mutable QRecursiveMutex _changeCursorLock; Qt::CursorShape _desiredCursor{ Qt::BlankCursor }; bool _cursorNeedsChanging { false }; diff --git a/interface/src/InterfaceParentFinder.cpp b/interface/src/InterfaceParentFinder.cpp index 0f1c8876a9..411b156c14 100644 --- a/interface/src/InterfaceParentFinder.cpp +++ b/interface/src/InterfaceParentFinder.cpp @@ -11,6 +11,8 @@ #include "InterfaceParentFinder.h" +#include + #include #include #include diff --git a/interface/src/LoginStateManager.h b/interface/src/LoginStateManager.h index b898303ba6..0c1a0249a6 100644 --- a/interface/src/LoginStateManager.h +++ b/interface/src/LoginStateManager.h @@ -11,7 +11,6 @@ #ifndef hifi_LoginStateManager_h #define hifi_LoginStateManager_h #include -#include #include #include diff --git a/interface/src/avatar/AvatarManager.h b/interface/src/avatar/AvatarManager.h index 1fd9c63aab..f7e951d21d 100644 --- a/interface/src/avatar/AvatarManager.h +++ b/interface/src/avatar/AvatarManager.h @@ -16,7 +16,6 @@ #include #include -#include #include #include diff --git a/interface/src/avatar/GrabManager.cpp b/interface/src/avatar/GrabManager.cpp index 8273def490..254ce0b0d9 100644 --- a/interface/src/avatar/GrabManager.cpp +++ b/interface/src/avatar/GrabManager.cpp @@ -11,6 +11,7 @@ #include "GrabManager.h" +#include void GrabManager::simulateGrabs() { QSharedPointer avatarManager = DependencyManager::get(); diff --git a/interface/src/avatar/MyHead.h b/interface/src/avatar/MyHead.h index c999311b80..31543ccf5c 100644 --- a/interface/src/avatar/MyHead.h +++ b/interface/src/avatar/MyHead.h @@ -22,9 +22,7 @@ public: void simulate(float deltaTime) override; private: - // disallow copies of the Head, copy of owning Avatar is disallowed too - MyHead(const Head&); - MyHead& operator= (const MyHead&); + Q_DISABLE_COPY(MyHead) }; #endif // hifi_MyHead_h diff --git a/interface/src/commerce/Wallet.h b/interface/src/commerce/Wallet.h index 224e58d58c..d8b89ce1bb 100644 --- a/interface/src/commerce/Wallet.h +++ b/interface/src/commerce/Wallet.h @@ -14,6 +14,8 @@ #ifndef hifi_Wallet_h #define hifi_Wallet_h +#include + #include #include #include diff --git a/interface/src/graphics/GraphicsEngine.h b/interface/src/graphics/GraphicsEngine.h index dccb098d5e..a5e9286bc7 100644 --- a/interface/src/graphics/GraphicsEngine.h +++ b/interface/src/graphics/GraphicsEngine.h @@ -69,7 +69,7 @@ private: protected: - mutable QMutex _renderArgsMutex{ QMutex::Recursive }; + mutable QRecursiveMutex _renderArgsMutex; AppRenderArgs _appRenderArgs; RateCounter<500> _renderLoopCounter; diff --git a/interface/src/octree/OctreePacketProcessor.h b/interface/src/octree/OctreePacketProcessor.h index d56b7e0e35..d2210ba41f 100644 --- a/interface/src/octree/OctreePacketProcessor.h +++ b/interface/src/octree/OctreePacketProcessor.h @@ -12,6 +12,8 @@ #ifndef hifi_OctreePacketProcessor_h #define hifi_OctreePacketProcessor_h +#include + #include #include diff --git a/interface/src/raypick/CollisionPick.h b/interface/src/raypick/CollisionPick.h index 24317bf19a..8825ea65d1 100644 --- a/interface/src/raypick/CollisionPick.h +++ b/interface/src/raypick/CollisionPick.h @@ -8,6 +8,8 @@ #ifndef hifi_CollisionPick_h #define hifi_CollisionPick_h +#include + #include #include #include diff --git a/interface/src/scripting/ScreenshareScriptingInterface.h b/interface/src/scripting/ScreenshareScriptingInterface.h index ec8f3cd619..ceb7b1d9fc 100644 --- a/interface/src/scripting/ScreenshareScriptingInterface.h +++ b/interface/src/scripting/ScreenshareScriptingInterface.h @@ -16,6 +16,7 @@ #include #include #include +#include #include #include diff --git a/interface/src/scripting/SelectionScriptingInterface.h b/interface/src/scripting/SelectionScriptingInterface.h index f13d8d2427..07b131ac9a 100644 --- a/interface/src/scripting/SelectionScriptingInterface.h +++ b/interface/src/scripting/SelectionScriptingInterface.h @@ -14,6 +14,7 @@ #include #include +#include #include #include diff --git a/interface/src/scripting/WalletScriptingInterface.cpp b/interface/src/scripting/WalletScriptingInterface.cpp index 60f850adac..0194c62b82 100644 --- a/interface/src/scripting/WalletScriptingInterface.cpp +++ b/interface/src/scripting/WalletScriptingInterface.cpp @@ -10,6 +10,7 @@ // #include "WalletScriptingInterface.h" +#include #include CheckoutProxy::CheckoutProxy(QObject* qmlObject, QObject* parent) : QmlWrapper(qmlObject, parent) { diff --git a/interface/src/ui/JSConsole.h b/interface/src/ui/JSConsole.h index eeb3601886..202eb6ed6a 100644 --- a/interface/src/ui/JSConsole.h +++ b/interface/src/ui/JSConsole.h @@ -14,7 +14,6 @@ #include #include -#include #include #include diff --git a/interface/src/ui/SnapshotAnimated.h b/interface/src/ui/SnapshotAnimated.h index 15734f57c8..3d7e879b1d 100644 --- a/interface/src/ui/SnapshotAnimated.h +++ b/interface/src/ui/SnapshotAnimated.h @@ -12,6 +12,7 @@ #ifndef hifi_SnapshotAnimated_h #define hifi_SnapshotAnimated_h +#include #include #include #include diff --git a/interface/src/ui/overlays/ContextOverlayInterface.h b/interface/src/ui/overlays/ContextOverlayInterface.h index b3bf15d523..940fa80311 100644 --- a/interface/src/ui/overlays/ContextOverlayInterface.h +++ b/interface/src/ui/overlays/ContextOverlayInterface.h @@ -15,6 +15,7 @@ #include #include +#include #include #include diff --git a/interface/src/ui/overlays/Overlays.h b/interface/src/ui/overlays/Overlays.h index b7e471bb1a..e59880c6d9 100644 --- a/interface/src/ui/overlays/Overlays.h +++ b/interface/src/ui/overlays/Overlays.h @@ -746,7 +746,7 @@ signals: private: void cleanupOverlaysToDelete(); - mutable QMutex _mutex { QMutex::Recursive }; + mutable QRecursiveMutex _mutex; QMap _overlays; QList _overlaysToDelete; diff --git a/libraries/animation/src/AnimNodeLoader.h b/libraries/animation/src/AnimNodeLoader.h index 6db001c261..ac27402cf7 100644 --- a/libraries/animation/src/AnimNodeLoader.h +++ b/libraries/animation/src/AnimNodeLoader.h @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -44,10 +45,7 @@ protected: QSharedPointer _resource; private: - - // no copies - AnimNodeLoader(const AnimNodeLoader&) = delete; - AnimNodeLoader& operator=(const AnimNodeLoader&) = delete; + Q_DISABLE_COPY(AnimNodeLoader) }; #endif // hifi_AnimNodeLoader diff --git a/libraries/animation/src/AnimRandomSwitch.h b/libraries/animation/src/AnimRandomSwitch.h index 490e2f86e1..a047be732d 100644 --- a/libraries/animation/src/AnimRandomSwitch.h +++ b/libraries/animation/src/AnimRandomSwitch.h @@ -120,9 +120,7 @@ protected: std::vector _transitions; private: - // no copies - RandomSwitchState(const RandomSwitchState&) = delete; - RandomSwitchState& operator=(const RandomSwitchState&) = delete; + Q_DISABLE_COPY(RandomSwitchState) }; public: @@ -181,9 +179,7 @@ protected: QString _lastPlayedState; private: - // no copies - AnimRandomSwitch(const AnimRandomSwitch&) = delete; - AnimRandomSwitch& operator=(const AnimRandomSwitch&) = delete; + Q_DISABLE_COPY(AnimRandomSwitch) }; #endif // hifi_AnimRandomSwitch_h diff --git a/libraries/animation/src/AnimStateMachine.h b/libraries/animation/src/AnimStateMachine.h index 3998f7e9ef..0a34fc4ebc 100644 --- a/libraries/animation/src/AnimStateMachine.h +++ b/libraries/animation/src/AnimStateMachine.h @@ -107,9 +107,7 @@ protected: std::vector _transitions; private: - // no copies - State(const State&) = delete; - State& operator=(const State&) = delete; + Q_DISABLE_COPY(State) }; public: @@ -152,9 +150,7 @@ protected: QString _currentStateVar; private: - // no copies - AnimStateMachine(const AnimStateMachine&) = delete; - AnimStateMachine& operator=(const AnimStateMachine&) = delete; + Q_DISABLE_COPY(AnimStateMachine) }; #endif // hifi_AnimStateMachine_h diff --git a/libraries/animation/src/AnimationCache.h b/libraries/animation/src/AnimationCache.h index e8bfa75ecb..b1f0cc13a2 100644 --- a/libraries/animation/src/AnimationCache.h +++ b/libraries/animation/src/AnimationCache.h @@ -13,6 +13,7 @@ #define hifi_AnimationCache_h #include +#include #include #include diff --git a/libraries/audio-client/src/AudioClient.h b/libraries/audio-client/src/AudioClient.h index c414d74b6a..4a8b299a8b 100644 --- a/libraries/audio-client/src/AudioClient.h +++ b/libraries/audio-client/src/AudioClient.h @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/libraries/audio-client/src/AudioIOStats.h b/libraries/audio-client/src/AudioIOStats.h index 215a4e5414..3a99666354 100644 --- a/libraries/audio-client/src/AudioIOStats.h +++ b/libraries/audio-client/src/AudioIOStats.h @@ -15,6 +15,7 @@ #include "MovingMinMaxAvg.h" #include +#include #include #include diff --git a/libraries/audio/src/AbstractAudioInterface.cpp b/libraries/audio/src/AbstractAudioInterface.cpp index 3d813eafd7..99e6ef3870 100644 --- a/libraries/audio/src/AbstractAudioInterface.cpp +++ b/libraries/audio/src/AbstractAudioInterface.cpp @@ -8,8 +8,6 @@ #include "AbstractAudioInterface.h" -#include - #include #include #include diff --git a/libraries/audio/src/AudioInjectorManager.cpp b/libraries/audio/src/AudioInjectorManager.cpp index 9494a84fab..f9417d9ff1 100644 --- a/libraries/audio/src/AudioInjectorManager.cpp +++ b/libraries/audio/src/AudioInjectorManager.cpp @@ -12,6 +12,7 @@ #include "AudioInjectorManager.h" #include +#include #include #include diff --git a/libraries/audio/src/AudioInjectorManager.h b/libraries/audio/src/AudioInjectorManager.h index cb243f23de..8fac2b37f2 100644 --- a/libraries/audio/src/AudioInjectorManager.h +++ b/libraries/audio/src/AudioInjectorManager.h @@ -72,8 +72,7 @@ private: bool wouldExceedLimits(); AudioInjectorManager() { createThread(); } - AudioInjectorManager(const AudioInjectorManager&) = delete; - AudioInjectorManager& operator=(const AudioInjectorManager&) = delete; + Q_DISABLE_COPY(AudioInjectorManager) void createThread(); diff --git a/libraries/audio/src/InjectedAudioStream.h b/libraries/audio/src/InjectedAudioStream.h index 990ea81272..467c499fa6 100644 --- a/libraries/audio/src/InjectedAudioStream.h +++ b/libraries/audio/src/InjectedAudioStream.h @@ -28,9 +28,7 @@ public: virtual const QUuid& getStreamIdentifier() const override { return _streamIdentifier; } private: - // disallow copying of InjectedAudioStream objects - InjectedAudioStream(const InjectedAudioStream&); - InjectedAudioStream& operator= (const InjectedAudioStream&); + Q_DISABLE_COPY(InjectedAudioStream) AudioStreamStats getAudioStreamStats() const override; int parseStreamProperties(PacketType type, const QByteArray& packetAfterSeqNum, int& numAudioSamples) override; diff --git a/libraries/audio/src/Sound.h b/libraries/audio/src/Sound.h index bfa682845a..eb6bc67c66 100644 --- a/libraries/audio/src/Sound.h +++ b/libraries/audio/src/Sound.h @@ -14,6 +14,7 @@ #include #include +#include #include #include diff --git a/libraries/audio/src/SoundCache.h b/libraries/audio/src/SoundCache.h index 48c3354877..973edc4048 100644 --- a/libraries/audio/src/SoundCache.h +++ b/libraries/audio/src/SoundCache.h @@ -12,6 +12,8 @@ #ifndef hifi_SoundCache_h #define hifi_SoundCache_h +#include + #include #include "Sound.h" diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index e17ba8f09d..70f20caa26 100755 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -1887,11 +1887,10 @@ protected: virtual void clearAvatarGrabData(const QUuid& grabID); private: + Q_DISABLE_COPY(AvatarData) + friend void avatarStateFromFrame(const QByteArray& frameData, AvatarData* _avatar); static QUrl _defaultFullAvatarModelUrl; - // privatize the copy constructor and assignment operator so they cannot be called - AvatarData(const AvatarData&); - AvatarData& operator= (const AvatarData&); }; Q_DECLARE_METATYPE(AvatarData*) diff --git a/libraries/avatars/src/ClientTraitsHandler.h b/libraries/avatars/src/ClientTraitsHandler.h index 35499fd2cf..bcabc98fb9 100644 --- a/libraries/avatars/src/ClientTraitsHandler.h +++ b/libraries/avatars/src/ClientTraitsHandler.h @@ -12,6 +12,8 @@ #ifndef hifi_ClientTraitsHandler_h #define hifi_ClientTraitsHandler_h +#include + #include #include "AssociatedTraitValues.h" diff --git a/libraries/avatars/src/HeadData.h b/libraries/avatars/src/HeadData.h index af71fd883d..3ab756ce42 100644 --- a/libraries/avatars/src/HeadData.h +++ b/libraries/avatars/src/HeadData.h @@ -128,9 +128,7 @@ protected: AvatarData* _owningAvatar; private: - // privatize copy ctor and assignment operator so copies of this object cannot be made - HeadData(const HeadData&); - HeadData& operator= (const HeadData&); + Q_DISABLE_COPY(HeadData) void setHeadOrientation(const glm::quat& orientation); }; diff --git a/libraries/baking/src/MaterialBaker.h b/libraries/baking/src/MaterialBaker.h index 33123cfc73..cb8289cfdb 100644 --- a/libraries/baking/src/MaterialBaker.h +++ b/libraries/baking/src/MaterialBaker.h @@ -12,6 +12,8 @@ #ifndef hifi_MaterialBaker_h #define hifi_MaterialBaker_h +#include + #include "Baker.h" #include "TextureBaker.h" diff --git a/libraries/baking/src/ModelBaker.h b/libraries/baking/src/ModelBaker.h index 991cbc25bf..5c336f502f 100644 --- a/libraries/baking/src/ModelBaker.h +++ b/libraries/baking/src/ModelBaker.h @@ -17,6 +17,7 @@ #include #include #include +#include #include "Baker.h" #include "MaterialBaker.h" diff --git a/libraries/display-plugins/CMakeLists.txt b/libraries/display-plugins/CMakeLists.txt index 07b70c310f..2a0da40b71 100644 --- a/libraries/display-plugins/CMakeLists.txt +++ b/libraries/display-plugins/CMakeLists.txt @@ -13,7 +13,7 @@ include_hifi_library_headers(ktx) include_hifi_library_headers(render) include_hifi_library_headers(procedural) -set(OpenGL_GL_PREFERENCE "LEGACY") +set(OpenGL_GL_PREFERENCE "GLVND") target_opengl() GroupSources("src/display-plugins") diff --git a/libraries/display-plugins/src/display-plugins/CompositorHelper.h b/libraries/display-plugins/src/display-plugins/CompositorHelper.h index cc65eeeab7..389d49929e 100644 --- a/libraries/display-plugins/src/display-plugins/CompositorHelper.h +++ b/libraries/display-plugins/src/display-plugins/CompositorHelper.h @@ -161,7 +161,7 @@ private: // application specific position, when it's in desktop mode, the reticle position will simply move // the system mouse. glm::vec2 _reticlePositionInHMD { 0.0f, 0.0f }; - mutable QMutex _reticleLock { QMutex::Recursive }; + mutable QRecursiveMutex _reticleLock; QPointF _lastKnownRealMouse; bool _ignoreMouseMove { false }; diff --git a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp index ba83ddff55..02aa336a54 100644 --- a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp @@ -14,6 +14,7 @@ #include #include +#include #include #include #include diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.h b/libraries/entities-renderer/src/EntityTreeRenderer.h index 009e5f6c4f..c3f2c66ae7 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.h +++ b/libraries/entities-renderer/src/EntityTreeRenderer.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #include // for RayToEntityIntersectionResult diff --git a/libraries/entities-renderer/src/RenderableWebEntityItem.h b/libraries/entities-renderer/src/RenderableWebEntityItem.h index fb04e08ec7..14bf5b105d 100644 --- a/libraries/entities-renderer/src/RenderableWebEntityItem.h +++ b/libraries/entities-renderer/src/RenderableWebEntityItem.h @@ -10,6 +10,7 @@ #ifndef hifi_RenderableWebEntityItem_h #define hifi_RenderableWebEntityItem_h +#include #include #include "RenderableEntityItem.h" diff --git a/libraries/entities/src/EntityEditPacketSender.h b/libraries/entities/src/EntityEditPacketSender.h index 3cc2f016f0..9e91155b02 100644 --- a/libraries/entities/src/EntityEditPacketSender.h +++ b/libraries/entities/src/EntityEditPacketSender.h @@ -12,6 +12,8 @@ #ifndef hifi_EntityEditPacketSender_h #define hifi_EntityEditPacketSender_h +#include + #include #include diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 945804a0fc..8df85bcfe6 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -688,8 +688,8 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @property {Uuid} owningAvatarID=Uuid.NULL - The session ID of the owning avatar if avatarEntity is * true, otherwise {@link Uuid(0)|Uuid.NULL}. Read-only. * - * @property {string} created - The UTC date and time that the entity was created, in ISO 8601 format as - * yyyy-MM-ddTHH:mm:ssZ. Read-only. + * @property {number} created - When the entity was created, expressed as the number of microseconds since + * 1970-01-01T00:00:00 UTC. Read-only. * @property {number} age - The age of the entity in seconds since it was created. Read-only. * @property {string} ageAsText - The age of the entity since it was created, formatted as h hours m minutes s * seconds. diff --git a/libraries/entities/src/EntityScriptServerLogClient.h b/libraries/entities/src/EntityScriptServerLogClient.h index 62b76f8870..9eee5daed8 100644 --- a/libraries/entities/src/EntityScriptServerLogClient.h +++ b/libraries/entities/src/EntityScriptServerLogClient.h @@ -13,6 +13,7 @@ #define hifi_EntityScriptServerLogClient_h #include +#include #include diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 5db278f51e..8a3b92f31f 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -17,6 +17,7 @@ #include #include +#include #include #include diff --git a/libraries/entities/src/EntitySimulation.h b/libraries/entities/src/EntitySimulation.h index 5b7b38e447..5d5f4741d3 100644 --- a/libraries/entities/src/EntitySimulation.h +++ b/libraries/entities/src/EntitySimulation.h @@ -44,7 +44,7 @@ const int DIRTY_SIMULATION_FLAGS = class EntitySimulation : public QObject, public std::enable_shared_from_this { public: - EntitySimulation() : _mutex(QMutex::Recursive), _nextExpiry(std::numeric_limits::max()), _entityTree(nullptr) { } + EntitySimulation() : _mutex(), _nextExpiry(std::numeric_limits::max()), _entityTree(nullptr) { } virtual ~EntitySimulation() { setEntityTree(nullptr); } inline EntitySimulationPointer getThisPointer() const { @@ -90,7 +90,7 @@ protected: void callUpdateOnEntitiesThatNeedIt(uint64_t now); virtual void sortEntitiesThatMoved(); - QMutex _mutex{ QMutex::Recursive }; + QRecursiveMutex _mutex; SetOfEntities _entitiesToSort; // entities moved by simulation (and might need resort in EntityTree) SetOfEntities _simpleKinematicEntities; // entities undergoing non-colliding kinematic motion diff --git a/libraries/gl/CMakeLists.txt b/libraries/gl/CMakeLists.txt index 4e3d7ca16c..f0eec1da9f 100644 --- a/libraries/gl/CMakeLists.txt +++ b/libraries/gl/CMakeLists.txt @@ -2,6 +2,6 @@ set(TARGET_NAME gl) setup_hifi_library(Gui Widgets) link_hifi_libraries(shared) -set(OpenGL_GL_PREFERENCE "LEGACY") +set(OpenGL_GL_PREFERENCE "GLVND") target_opengl() diff --git a/libraries/gpu-gl-common/CMakeLists.txt b/libraries/gpu-gl-common/CMakeLists.txt index eec135e8fe..6bd98a45d0 100644 --- a/libraries/gpu-gl-common/CMakeLists.txt +++ b/libraries/gpu-gl-common/CMakeLists.txt @@ -3,6 +3,6 @@ setup_hifi_library(Concurrent) link_hifi_libraries(shared gl gpu shaders) GroupSources("src") -set(OpenGL_GL_PREFERENCE "LEGACY") +set(OpenGL_GL_PREFERENCE "GLVND") target_opengl() diff --git a/libraries/gpu-gl/CMakeLists.txt b/libraries/gpu-gl/CMakeLists.txt index de651e5116..5797fb5172 100644 --- a/libraries/gpu-gl/CMakeLists.txt +++ b/libraries/gpu-gl/CMakeLists.txt @@ -6,6 +6,6 @@ if (UNIX AND NOT VIRCADIA_THREAD_DEBUGGING) endif(UNIX AND NOT VIRCADIA_THREAD_DEBUGGING) GroupSources("src") -set(OpenGL_GL_PREFERENCE "LEGACY") +set(OpenGL_GL_PREFERENCE "GLVND") target_opengl() diff --git a/libraries/gpu-gles/CMakeLists.txt b/libraries/gpu-gles/CMakeLists.txt index 3e529f7dcd..11d05aa31e 100644 --- a/libraries/gpu-gles/CMakeLists.txt +++ b/libraries/gpu-gles/CMakeLists.txt @@ -2,4 +2,5 @@ set(TARGET_NAME gpu-gles) setup_hifi_library(Gui Concurrent) link_hifi_libraries(shared shaders gl gpu gpu-gl-common) GroupSources("src") +set(OpenGL_GL_PREFERENCE "GLVND") target_opengl() diff --git a/libraries/material-networking/src/material-networking/ShaderCache.h b/libraries/material-networking/src/material-networking/ShaderCache.h index fe9edd7ddf..5129a7d8b4 100644 --- a/libraries/material-networking/src/material-networking/ShaderCache.h +++ b/libraries/material-networking/src/material-networking/ShaderCache.h @@ -9,6 +9,7 @@ #ifndef hifi_ShaderCache_h #define hifi_ShaderCache_h +#include #include class NetworkShader : public Resource { diff --git a/libraries/material-networking/src/material-networking/TextureCache.h b/libraries/material-networking/src/material-networking/TextureCache.h index c0633c2f9b..d2279fbc89 100644 --- a/libraries/material-networking/src/material-networking/TextureCache.h +++ b/libraries/material-networking/src/material-networking/TextureCache.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include diff --git a/libraries/model-networking/src/model-networking/ModelCache.h b/libraries/model-networking/src/model-networking/ModelCache.h index 615951345f..236c6262bf 100644 --- a/libraries/model-networking/src/model-networking/ModelCache.h +++ b/libraries/model-networking/src/model-networking/ModelCache.h @@ -12,6 +12,8 @@ #ifndef hifi_ModelCache_h #define hifi_ModelCache_h +#include + #include #include diff --git a/libraries/networking/src/AccountManager.h b/libraries/networking/src/AccountManager.h index dda90d0833..bd318e3af5 100644 --- a/libraries/networking/src/AccountManager.h +++ b/libraries/networking/src/AccountManager.h @@ -163,8 +163,7 @@ private slots: void postAccountSettingsError(QNetworkReply::NetworkError error); private: - AccountManager(AccountManager const& other) = delete; - void operator=(AccountManager const& other) = delete; + Q_DISABLE_COPY(AccountManager); void persistAccountToFile(); diff --git a/libraries/networking/src/AssetClient.h b/libraries/networking/src/AssetClient.h index 1860a1744a..ef2eec43b8 100644 --- a/libraries/networking/src/AssetClient.h +++ b/libraries/networking/src/AssetClient.h @@ -15,6 +15,7 @@ #include #include #include +#include #include diff --git a/libraries/networking/src/BaseAssetScriptingInterface.h b/libraries/networking/src/BaseAssetScriptingInterface.h index 31aad21ba2..1dcc5ea2ef 100644 --- a/libraries/networking/src/BaseAssetScriptingInterface.h +++ b/libraries/networking/src/BaseAssetScriptingInterface.h @@ -15,6 +15,7 @@ #define hifi_BaseAssetScriptingInterface_h #include +#include #include #include "AssetClient.h" #include diff --git a/libraries/networking/src/DomainHandler.h b/libraries/networking/src/DomainHandler.h index c76cadeb3e..84ef909620 100644 --- a/libraries/networking/src/DomainHandler.h +++ b/libraries/networking/src/DomainHandler.h @@ -17,6 +17,7 @@ #include #include +#include #include #include #include diff --git a/libraries/networking/src/EntityScriptClient.h b/libraries/networking/src/EntityScriptClient.h index 4cfb03dca7..1fddc6b976 100644 --- a/libraries/networking/src/EntityScriptClient.h +++ b/libraries/networking/src/EntityScriptClient.h @@ -12,6 +12,8 @@ #ifndef hifi_EntityScriptClient_h #define hifi_EntityScriptClient_h +#include + #include "ClientServerUtils.h" #include "LimitedNodeList.h" #include "ReceivedMessage.h" diff --git a/libraries/networking/src/HMACAuth.h b/libraries/networking/src/HMACAuth.h index 1346bdee17..92953af3a3 100644 --- a/libraries/networking/src/HMACAuth.h +++ b/libraries/networking/src/HMACAuth.h @@ -39,7 +39,7 @@ public: HMACHash result(); private: - QMutex _lock { QMutex::Recursive }; + QRecursiveMutex _lock; struct hmac_ctx_st* _hmacContext; AuthMethod _authMethod; }; diff --git a/libraries/networking/src/LimitedNodeList.h b/libraries/networking/src/LimitedNodeList.h index 2ee863da07..2a4f9ceeb6 100644 --- a/libraries/networking/src/LimitedNodeList.h +++ b/libraries/networking/src/LimitedNodeList.h @@ -29,6 +29,7 @@ #include #include #include +#include #include #include diff --git a/libraries/networking/src/MappingRequest.cpp b/libraries/networking/src/MappingRequest.cpp index 263f8d023c..fe9281beff 100644 --- a/libraries/networking/src/MappingRequest.cpp +++ b/libraries/networking/src/MappingRequest.cpp @@ -11,6 +11,7 @@ #include "MappingRequest.h" +#include #include #include diff --git a/libraries/networking/src/MessagesClient.h b/libraries/networking/src/MessagesClient.h index db2085da5a..8ad252a596 100644 --- a/libraries/networking/src/MessagesClient.h +++ b/libraries/networking/src/MessagesClient.h @@ -15,6 +15,7 @@ #include #include +#include #include diff --git a/libraries/networking/src/NLPacket.h b/libraries/networking/src/NLPacket.h index b2a174a540..04eb58049a 100644 --- a/libraries/networking/src/NLPacket.h +++ b/libraries/networking/src/NLPacket.h @@ -13,8 +13,6 @@ #ifndef hifi_NLPacket_h #define hifi_NLPacket_h -#include - #include #include "udt/Packet.h" diff --git a/libraries/networking/src/NLPacketList.h b/libraries/networking/src/NLPacketList.h index 9c50033ca7..d463f43af8 100644 --- a/libraries/networking/src/NLPacketList.h +++ b/libraries/networking/src/NLPacketList.h @@ -12,6 +12,7 @@ #ifndef hifi_NLPacketList_h #define hifi_NLPacketList_h +#include #include "udt/PacketList.h" #include "NLPacket.h" @@ -27,11 +28,10 @@ public: qint64 getMaxSegmentSize() const override { return NLPacket::maxPayloadSize(_packetType, _isOrdered); } private: + Q_DISABLE_COPY(NLPacketList) NLPacketList(PacketType packetType, QByteArray extendedHeader = QByteArray(), bool isReliable = false, bool isOrdered = false); NLPacketList(udt::PacketList&& packetList); - NLPacketList(const NLPacketList& other) = delete; - NLPacketList& operator=(const NLPacketList& other) = delete; virtual std::unique_ptr createPacket() override; diff --git a/libraries/networking/src/NetworkPeer.h b/libraries/networking/src/NetworkPeer.h index a3012087af..e7c6849ad9 100644 --- a/libraries/networking/src/NetworkPeer.h +++ b/libraries/networking/src/NetworkPeer.h @@ -16,6 +16,7 @@ #include #include +#include #include #include diff --git a/libraries/networking/src/Node.h b/libraries/networking/src/Node.h index cf2f081da6..70473c678c 100644 --- a/libraries/networking/src/Node.h +++ b/libraries/networking/src/Node.h @@ -109,9 +109,7 @@ public: float getOutboundKbps() const; private: - // privatize copy and assignment operator to disallow Node copying - Node(const Node &otherNode); - Node& operator=(Node otherNode); + Q_DISABLE_COPY(Node) NodeType_t _type; diff --git a/libraries/networking/src/NodeData.h b/libraries/networking/src/NodeData.h index b4cb87d0c2..f07a9db03c 100644 --- a/libraries/networking/src/NodeData.h +++ b/libraries/networking/src/NodeData.h @@ -14,7 +14,6 @@ #include #include -#include #include "NetworkPeer.h" #include "NLPacket.h" diff --git a/libraries/networking/src/NodeList.h b/libraries/networking/src/NodeList.h index bbc0a3e0d9..5ba982aec5 100644 --- a/libraries/networking/src/NodeList.h +++ b/libraries/networking/src/NodeList.h @@ -156,12 +156,11 @@ private slots: void maybeSendIgnoreSetToNode(SharedNodePointer node); private: + Q_DISABLE_COPY(NodeList) NodeList() : LimitedNodeList(INVALID_PORT, INVALID_PORT) { assert(false); // Not implemented, needed for DependencyManager templates compile } NodeList(char ownerType, int socketListenPort = INVALID_PORT, int dtlsListenPort = INVALID_PORT); - NodeList(NodeList const&) = delete; // Don't implement, needed to avoid copies of singleton - void operator=(NodeList const&) = delete; // Don't implement, needed to avoid copies of singleton void processDomainServerAuthRequest(const QByteArray& packet); void requestAuthForDomainServer(); diff --git a/libraries/networking/src/ReceivedMessage.cpp b/libraries/networking/src/ReceivedMessage.cpp index 684ad665ba..0db605a87e 100644 --- a/libraries/networking/src/ReceivedMessage.cpp +++ b/libraries/networking/src/ReceivedMessage.cpp @@ -15,8 +15,6 @@ #include #include -#include "QSharedPointer" - int receivedMessageMetaTypeId = qRegisterMetaType("ReceivedMessage*"); int sharedPtrReceivedMessageMetaTypeId = qRegisterMetaType>("QSharedPointer"); diff --git a/libraries/networking/src/ReceivedMessage.h b/libraries/networking/src/ReceivedMessage.h index f9c8245a10..924670bac2 100644 --- a/libraries/networking/src/ReceivedMessage.h +++ b/libraries/networking/src/ReceivedMessage.h @@ -15,6 +15,7 @@ #include #include +#include #include diff --git a/libraries/networking/src/ReceivedPacketProcessor.h b/libraries/networking/src/ReceivedPacketProcessor.h index 6c590ec54d..c8c45085b8 100644 --- a/libraries/networking/src/ReceivedPacketProcessor.h +++ b/libraries/networking/src/ReceivedPacketProcessor.h @@ -12,6 +12,7 @@ #ifndef hifi_ReceivedPacketProcessor_h #define hifi_ReceivedPacketProcessor_h +#include #include #include "NodeList.h" diff --git a/libraries/networking/src/udt/CongestionControl.h b/libraries/networking/src/udt/CongestionControl.h index bfe7f552d1..f52e646124 100644 --- a/libraries/networking/src/udt/CongestionControl.h +++ b/libraries/networking/src/udt/CongestionControl.h @@ -64,8 +64,7 @@ protected: SequenceNumber _sendCurrSeqNum; // current maximum seq num sent out private: - CongestionControl(const CongestionControl& other) = delete; - CongestionControl& operator=(const CongestionControl& other) = delete; + Q_DISABLE_COPY(CongestionControl); }; diff --git a/libraries/networking/src/udt/ControlPacket.h b/libraries/networking/src/udt/ControlPacket.h index 772df41455..d47f05062b 100644 --- a/libraries/networking/src/udt/ControlPacket.h +++ b/libraries/networking/src/udt/ControlPacket.h @@ -48,13 +48,12 @@ public: void setType(Type type); private: + Q_DISABLE_COPY(ControlPacket) ControlPacket(Type type, qint64 size = -1); ControlPacket(std::unique_ptr data, qint64 size, const SockAddr& senderSockAddr); ControlPacket(ControlPacket&& other); - ControlPacket(const ControlPacket& other) = delete; ControlPacket& operator=(ControlPacket&& other); - ControlPacket& operator=(const ControlPacket& other) = delete; // Header read/write void readType(); diff --git a/libraries/networking/src/udt/PacketList.h b/libraries/networking/src/udt/PacketList.h index af2adf1ddb..f8e3c54d04 100644 --- a/libraries/networking/src/udt/PacketList.h +++ b/libraries/networking/src/udt/PacketList.h @@ -84,9 +84,8 @@ private: friend class PacketQueue; friend class SendQueue; friend class Socket; - - PacketList(const PacketList& other) = delete; - PacketList& operator=(const PacketList& other) = delete; + + Q_DISABLE_COPY(PacketList) // Takes the first packet of the list and returns it. template std::unique_ptr takeFront(); diff --git a/libraries/networking/src/udt/SendQueue.h b/libraries/networking/src/udt/SendQueue.h index ef3ad8bd16..bd75cbbb7f 100644 --- a/libraries/networking/src/udt/SendQueue.h +++ b/libraries/networking/src/udt/SendQueue.h @@ -90,10 +90,9 @@ private slots: void run(); private: + Q_DISABLE_COPY_MOVE(SendQueue) SendQueue(Socket* socket, SockAddr dest, SequenceNumber currentSequenceNumber, MessageNumber currentMessageNumber, bool hasReceivedHandshakeACK); - SendQueue(SendQueue& other) = delete; - SendQueue(SendQueue&& other) = delete; void sendHandshake(); diff --git a/libraries/octree/src/OctreeEditPacketSender.h b/libraries/octree/src/OctreeEditPacketSender.h index 318f6b81bb..ee1849ec31 100644 --- a/libraries/octree/src/OctreeEditPacketSender.h +++ b/libraries/octree/src/OctreeEditPacketSender.h @@ -93,7 +93,7 @@ protected: int _maxPendingMessages; bool _releaseQueuedMessagesPending; QMutex _pendingPacketsLock; - QMutex _packetsQueueLock{ QMutex::Recursive }; // don't let different threads release the queue while another thread is writing to it + QRecursiveMutex _packetsQueueLock; // don't let different threads release the queue while another thread is writing to it std::list _preServerEdits; // these will get packed into other larger packets std::list> _preServerSingleMessagePackets; // these will go out as is diff --git a/libraries/octree/src/OctreePersistThread.h b/libraries/octree/src/OctreePersistThread.h index 6a38a21a84..8726cc5fcb 100644 --- a/libraries/octree/src/OctreePersistThread.h +++ b/libraries/octree/src/OctreePersistThread.h @@ -15,6 +15,7 @@ #define hifi_OctreePersistThread_h #include +#include #include #include "Octree.h" diff --git a/libraries/physics/src/MultiSphereShape.cpp b/libraries/physics/src/MultiSphereShape.cpp index ca5346cd4c..71702ac62b 100644 --- a/libraries/physics/src/MultiSphereShape.cpp +++ b/libraries/physics/src/MultiSphereShape.cpp @@ -486,7 +486,7 @@ void MultiSphereShape::calculateDebugLines() { break; } } - } + } calculateChamferBox(_debugLines, radiuses, axes, _midPoint); } else if (_spheres.size() == 8) { std::vector axes; @@ -508,6 +508,10 @@ void MultiSphereShape::connectEdges(std::vector> } void MultiSphereShape::calculateChamferBox(std::vector>& outLines, const std::vector& radiuses, const std::vector& axes, const glm::vec3& translation) { + if (radiuses.size() == 0) { + return; + } + std::vector> sphereLines; calculateSphereLines(sphereLines, glm::vec3(0.0f), radiuses[0]); diff --git a/libraries/physics/src/ObjectDynamic.cpp b/libraries/physics/src/ObjectDynamic.cpp index 6759697832..4c20bc1e21 100644 --- a/libraries/physics/src/ObjectDynamic.cpp +++ b/libraries/physics/src/ObjectDynamic.cpp @@ -11,6 +11,8 @@ #include "ObjectDynamic.h" +#include + #include "EntitySimulation.h" #include "PhysicsLogging.h" diff --git a/libraries/physics/src/PhysicalEntitySimulation.h b/libraries/physics/src/PhysicalEntitySimulation.h index 0f0a8e9295..1e8c65c639 100644 --- a/libraries/physics/src/PhysicalEntitySimulation.h +++ b/libraries/physics/src/PhysicalEntitySimulation.h @@ -129,7 +129,7 @@ private: QList _dynamicsToAdd; QSet _dynamicsToRemove; - QMutex _dynamicsMutex { QMutex::Recursive }; + QRecursiveMutex _dynamicsMutex; workload::SpacePointer _space; uint64_t _nextBidExpiry; diff --git a/libraries/plugins/src/plugins/DisplayPlugin.h b/libraries/plugins/src/plugins/DisplayPlugin.h index 5c95bf05f8..e2b27f4b26 100644 --- a/libraries/plugins/src/plugins/DisplayPlugin.h +++ b/libraries/plugins/src/plugins/DisplayPlugin.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include diff --git a/libraries/plugins/src/plugins/PluginManager.h b/libraries/plugins/src/plugins/PluginManager.h index f0aa662634..d3040f1d9b 100644 --- a/libraries/plugins/src/plugins/PluginManager.h +++ b/libraries/plugins/src/plugins/PluginManager.h @@ -8,6 +8,7 @@ #pragma once #include +#include #include #include diff --git a/libraries/procedural/src/procedural/ProceduralMaterialCache.h b/libraries/procedural/src/procedural/ProceduralMaterialCache.h index ff0a8cf81c..7d6a6ecdf3 100644 --- a/libraries/procedural/src/procedural/ProceduralMaterialCache.h +++ b/libraries/procedural/src/procedural/ProceduralMaterialCache.h @@ -8,6 +8,8 @@ #ifndef hifi_MaterialCache_h #define hifi_MaterialCache_h +#include + #include "glm/glm.hpp" #include diff --git a/libraries/qml/CMakeLists.txt b/libraries/qml/CMakeLists.txt index 3d53191720..b59b65824d 100644 --- a/libraries/qml/CMakeLists.txt +++ b/libraries/qml/CMakeLists.txt @@ -3,5 +3,5 @@ setup_hifi_library(Multimedia Network Qml Quick WebChannel WebSockets ${PLATFORM link_hifi_libraries(shared networking gl) # Required for some low level GL interaction in the OffscreenQMLSurface -set(OpenGL_GL_PREFERENCE "LEGACY") +set(OpenGL_GL_PREFERENCE "GLVND") target_opengl() diff --git a/libraries/qml/src/qml/OffscreenSurface.h b/libraries/qml/src/qml/OffscreenSurface.h index 8209398e05..1dd699eafe 100644 --- a/libraries/qml/src/qml/OffscreenSurface.h +++ b/libraries/qml/src/qml/OffscreenSurface.h @@ -17,7 +17,6 @@ #include #include #include -#include #include #include diff --git a/libraries/qml/src/qml/impl/SharedObject.h b/libraries/qml/src/qml/impl/SharedObject.h index 50c56ad714..4f287471e8 100644 --- a/libraries/qml/src/qml/impl/SharedObject.h +++ b/libraries/qml/src/qml/impl/SharedObject.h @@ -8,7 +8,6 @@ #pragma once #include -#include #include #include #include diff --git a/libraries/recording/src/recording/ClipCache.h b/libraries/recording/src/recording/ClipCache.h index 202cd2f00e..e909af7e70 100644 --- a/libraries/recording/src/recording/ClipCache.h +++ b/libraries/recording/src/recording/ClipCache.h @@ -9,6 +9,8 @@ #ifndef hifi_Recording_ClipCache_h #define hifi_Recording_ClipCache_h +#include + #include #include "Forward.h" diff --git a/libraries/render-utils/src/FboCache.h b/libraries/render-utils/src/FboCache.h index cedc4bff82..6a6df30cd2 100644 --- a/libraries/render-utils/src/FboCache.h +++ b/libraries/render-utils/src/FboCache.h @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include class QOpenGLFramebufferObject; diff --git a/libraries/render-utils/src/Model.h b/libraries/render-utils/src/Model.h index 930f942260..af477a2f09 100644 --- a/libraries/render-utils/src/Model.h +++ b/libraries/render-utils/src/Model.h @@ -444,7 +444,7 @@ protected: QVector _blendedBlendshapeCoefficients; int _blendNumber { 0 }; - mutable QMutex _mutex{ QMutex::Recursive }; + mutable QRecursiveMutex _mutex; bool _overrideModelTransform { false }; bool _triangleSetsValid { false }; diff --git a/libraries/script-engine/src/RecordingScriptingInterface.h b/libraries/script-engine/src/RecordingScriptingInterface.h index bc88566b9a..a170958a91 100644 --- a/libraries/script-engine/src/RecordingScriptingInterface.h +++ b/libraries/script-engine/src/RecordingScriptingInterface.h @@ -16,6 +16,7 @@ #include #include +#include #include #include diff --git a/libraries/script-engine/src/ScriptEngine.h b/libraries/script-engine/src/ScriptEngine.h index a6f7341f77..0933025ee1 100644 --- a/libraries/script-engine/src/ScriptEngine.h +++ b/libraries/script-engine/src/ScriptEngine.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/libraries/script-engine/src/ScriptEngines.cpp b/libraries/script-engine/src/ScriptEngines.cpp index 62c215c7df..ab47f80731 100644 --- a/libraries/script-engine/src/ScriptEngines.cpp +++ b/libraries/script-engine/src/ScriptEngines.cpp @@ -9,6 +9,7 @@ #include "ScriptEngines.h" #include +#include #include diff --git a/libraries/script-engine/src/ScriptEngines.h b/libraries/script-engine/src/ScriptEngines.h index 52c9a922af..61d8f95442 100644 --- a/libraries/script-engine/src/ScriptEngines.h +++ b/libraries/script-engine/src/ScriptEngines.h @@ -19,6 +19,7 @@ #include #include #include +#include #include #include diff --git a/libraries/shaders/src/shaders/Shaders.h b/libraries/shaders/src/shaders/Shaders.h index 701695c3a8..99060aca29 100644 --- a/libraries/shaders/src/shaders/Shaders.h +++ b/libraries/shaders/src/shaders/Shaders.h @@ -155,8 +155,8 @@ struct Source { static const Source& get(uint32_t shaderId); private: - // Disallow copy construction and assignment - Source(const Source& other) = default; + // Disallow copy construction + Source(const Source& other) = delete; static Source::Pointer loadSource(uint32_t shaderId) ; diff --git a/libraries/shared/src/BaseScriptEngine.h b/libraries/shared/src/BaseScriptEngine.h index c917aa2722..73914dc689 100644 --- a/libraries/shared/src/BaseScriptEngine.h +++ b/libraries/shared/src/BaseScriptEngine.h @@ -14,6 +14,7 @@ #include #include +#include #include class ScriptEngine; diff --git a/libraries/shared/src/DependencyManager.h b/libraries/shared/src/DependencyManager.h index 00faba0e89..eda8b60e9f 100644 --- a/libraries/shared/src/DependencyManager.h +++ b/libraries/shared/src/DependencyManager.h @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include @@ -89,7 +89,7 @@ private: QHash> _instanceHash; QHash _inheritanceHash; - mutable QMutex _instanceHashMutex { QMutex::Recursive }; + mutable QRecursiveMutex _instanceHashMutex; mutable QMutex _inheritanceHashMutex; bool _exiting { false }; diff --git a/libraries/shared/src/SettingHandle.h b/libraries/shared/src/SettingHandle.h index e77ee00b05..4fce3bef96 100644 --- a/libraries/shared/src/SettingHandle.h +++ b/libraries/shared/src/SettingHandle.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include diff --git a/libraries/shared/src/SpatiallyNestable.cpp b/libraries/shared/src/SpatiallyNestable.cpp index 69f3539152..7a02c2dbbb 100644 --- a/libraries/shared/src/SpatiallyNestable.cpp +++ b/libraries/shared/src/SpatiallyNestable.cpp @@ -11,6 +11,8 @@ #include "SpatiallyNestable.h" +#include + #include #include "DependencyManager.h" diff --git a/libraries/shared/src/shared/ScriptInitializerMixin.h b/libraries/shared/src/shared/ScriptInitializerMixin.h index cefa33c2d3..2a7fc10e06 100644 --- a/libraries/shared/src/shared/ScriptInitializerMixin.h +++ b/libraries/shared/src/shared/ScriptInitializerMixin.h @@ -10,7 +10,6 @@ #include #include -#include #include "../DependencyManager.h" class QScriptEngine; diff --git a/libraries/shared/src/shared/WebRTC.h b/libraries/shared/src/shared/WebRTC.h index 888877eadb..4a900dde4e 100644 --- a/libraries/shared/src/shared/WebRTC.h +++ b/libraries/shared/src/shared/WebRTC.h @@ -34,10 +34,16 @@ // # define WEBRTC_AUDIO 1 // # define WEBRTC_POSIX 1 // # define WEBRTC_LEGACY 1 -#elif defined(Q_OS_LINUX) +#elif defined(Q_OS_LINUX) && defined(Q_PROCESSOR_X86_64) # define WEBRTC_AUDIO 1 # define WEBRTC_POSIX 1 # define WEBRTC_LEGACY 1 +#elif defined(Q_OS_LINUX) && defined(Q_PROCESSOR_ARM) +// WebRTC is basically impossible to build on aarch64 Linux. +// I am looking at https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing for an alternative. +// # define WEBRTC_AUDIO 1 +// # define WEBRTC_POSIX 1 +// # define WEBRTC_LEGACY 1 #endif #endif // hifi_WebRTC_h diff --git a/libraries/ui/CMakeLists.txt b/libraries/ui/CMakeLists.txt index 3625bd4f3e..6dde4cc1a2 100644 --- a/libraries/ui/CMakeLists.txt +++ b/libraries/ui/CMakeLists.txt @@ -4,5 +4,5 @@ link_hifi_libraries(shared networking qml gl audio audio-client plugins pointers include_hifi_library_headers(controllers) # Required for some low level GL interaction in the OffscreenQMLSurface -set(OpenGL_GL_PREFERENCE "LEGACY") +set(OpenGL_GL_PREFERENCE "GLVND") target_opengl() diff --git a/libraries/ui/src/CursorManager.cpp b/libraries/ui/src/CursorManager.cpp index 8eb4989ab6..b462c4fb78 100644 --- a/libraries/ui/src/CursorManager.cpp +++ b/libraries/ui/src/CursorManager.cpp @@ -9,6 +9,7 @@ #include "CursorManager.h" #include +#include #include #include diff --git a/libraries/ui/src/DesktopPreviewProvider.h b/libraries/ui/src/DesktopPreviewProvider.h index 449c3723e1..b0cc64245f 100644 --- a/libraries/ui/src/DesktopPreviewProvider.h +++ b/libraries/ui/src/DesktopPreviewProvider.h @@ -8,6 +8,7 @@ #include #include +#include class DesktopPreviewProvider : public QObject, public Dependency { SINGLETON_DEPENDENCY diff --git a/libraries/ui/src/VirtualPadManager.cpp b/libraries/ui/src/VirtualPadManager.cpp index bf325a0bd6..be6eef87d3 100644 --- a/libraries/ui/src/VirtualPadManager.cpp +++ b/libraries/ui/src/VirtualPadManager.cpp @@ -7,6 +7,7 @@ // #include "VirtualPadManager.h" +#include namespace VirtualPad { diff --git a/libraries/ui/src/VrMenu.cpp b/libraries/ui/src/VrMenu.cpp index 867302d955..8003337eac 100644 --- a/libraries/ui/src/VrMenu.cpp +++ b/libraries/ui/src/VrMenu.cpp @@ -141,7 +141,7 @@ public: } private: - MenuUserData(const MenuUserData&); + Q_DISABLE_COPY(MenuUserData); QMetaObject::Connection _shutdownConnection; QMetaObject::Connection _changedConnection; diff --git a/libraries/ui/src/ui/OffscreenQmlSurface.cpp b/libraries/ui/src/ui/OffscreenQmlSurface.cpp index 5dfdce0c63..09107a7c21 100644 --- a/libraries/ui/src/ui/OffscreenQmlSurface.cpp +++ b/libraries/ui/src/ui/OffscreenQmlSurface.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/libraries/ui/src/ui/TabletScriptingInterface.h b/libraries/ui/src/ui/TabletScriptingInterface.h index 0b1af6451a..af0c03de80 100644 --- a/libraries/ui/src/ui/TabletScriptingInterface.h +++ b/libraries/ui/src/ui/TabletScriptingInterface.h @@ -13,6 +13,7 @@ #include #include +#include #include #include #include diff --git a/libraries/ui/src/ui/types/ContextAwareProfile.h b/libraries/ui/src/ui/types/ContextAwareProfile.h index 486ac5481a..7ea5684699 100644 --- a/libraries/ui/src/ui/types/ContextAwareProfile.h +++ b/libraries/ui/src/ui/types/ContextAwareProfile.h @@ -15,7 +15,6 @@ #include #include #include -#include #if !defined(Q_OS_ANDROID) #include diff --git a/pkg-scripts/README.md b/pkg-scripts/README.md index f4f1056877..5ee4ed0243 100644 --- a/pkg-scripts/README.md +++ b/pkg-scripts/README.md @@ -16,7 +16,7 @@ and that the base folder can be reached by going to `../..`. This may not work i ## Ubuntu ``` -DEBVERSION="Semver e.g. 2021.1.0" DEBEMAIL="your-email@somewhere.com" DEBFULLNAME="Your Full Name" ./make-deb-server +DEBVERSION="Semver e.g. 2021.1.3" DEBEMAIL="your-email@somewhere.com" DEBFULLNAME="Your Full Name" ./make-deb-server ``` This script will retrieve the current git commit date and hash and append it to your specified version. @@ -30,7 +30,7 @@ sudo yum install rpm-build ``` Then, run the build script. ``` -RPMVERSION="Semver e.g. 2021.1.0" ./make-rpm-server +RPMVERSION="Semver e.g. 2021.1.3" ./make-rpm-server ``` This script will retrieve the current git commit date and hash and append it to your specified version. diff --git a/pkg-scripts/make-deb-server b/pkg-scripts/make-deb-server index 2040563691..16aeb6c99f 100755 --- a/pkg-scripts/make-deb-server +++ b/pkg-scripts/make-deb-server @@ -2,6 +2,7 @@ if [ "$VIRCADIA" = "" ]; then VIRCADIA=`realpath ../..` + QT5_LIBS=`realpath ../../../vircadia-files/qt/qt5-install/lib` fi GITDATE=`git -C $VIRCADIA/source log -n 1 --format=raw | grep author | cut -d">" -f 2 | cut -d" " -f 2 | xargs -I {} date -d @{} +"%Y%m%d"` @@ -21,15 +22,17 @@ cp $VIRCADIA/build/tools/oven/oven $DEB_BUILD_ROOT cp $VIRCADIA/build/libraries/*/*.so $DEB_BUILD_ROOT #cp $VIRCADIA/build/ice-server/ice-server $DEB_BUILD_ROOT chrpath -d $DEB_BUILD_ROOT/* -cp $VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.* $DEB_BUILD_ROOT -cp $VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.* $DEB_BUILD_ROOT -cp $VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.* $DEB_BUILD_ROOT -cp $VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.* $DEB_BUILD_ROOT -cp $VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.* $DEB_BUILD_ROOT -cp $VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.* $DEB_BUILD_ROOT -cp $VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.* $DEB_BUILD_ROOT -cp $VIRCADIA/qt5-install/lib/libQt5ScriptTools.so.*.*.* $DEB_BUILD_ROOT -chmod +x $DEB_BUILD_ROOT/*.so.*.*.* +if [ "$VIRCADIA_USE_SYSTEM_QT" = "" ]; then + cp $QT5_LIBS/libQt5Network.so.*.*.* $DEB_BUILD_ROOT + cp $QT5_LIBS/libQt5Core.so.*.*.* $DEB_BUILD_ROOT + cp $QT5_LIBS/libQt5Widgets.so.*.*.* $DEB_BUILD_ROOT + cp $QT5_LIBS/libQt5Gui.so.*.*.* $DEB_BUILD_ROOT + cp $QT5_LIBS/libQt5Script.so.*.*.* $DEB_BUILD_ROOT + cp $QT5_LIBS/libQt5WebSockets.so.*.*.* $DEB_BUILD_ROOT + cp $QT5_LIBS/libQt5Qml.so.*.*.* $DEB_BUILD_ROOT + cp $QT5_LIBS/libQt5ScriptTools.so.*.*.* $DEB_BUILD_ROOT + chmod +x $DEB_BUILD_ROOT/*.so.*.*.* +fi strip --strip-all $DEB_BUILD_ROOT/* cp $VIRCADIA/source/pkg-scripts/new-server $DEB_BUILD_ROOT cp -a $VIRCADIA/source/domain-server/resources $DEB_BUILD_ROOT @@ -71,9 +74,11 @@ echo domain-server opt/vircadia >> debian/install echo oven opt/vircadia >> debian/install #echo ice-server opt/vircadia >> debian/install echo new-server opt/vircadia >> debian/install -for so in *.so.*.*.*; do - echo $so opt/vircadia/lib >> debian/install -done +if [ "$VIRCADIA_USE_SYSTEM_QT" = "" ]; then + for so in *.so.*.*.*; do + echo $so opt/vircadia/lib >> debian/install + done +fi for so in *.so; do echo $so opt/vircadia/lib >> debian/install done @@ -86,7 +91,11 @@ done find resources -type f -exec sh -c 'echo {} opt/vircadia/$(dirname "{}") >> debian/install' \; find plugins -type f -exec sh -c 'echo {} opt/vircadia/$(dirname "{}") >> debian/install' \; -SOFILES=`ls *.so *.so.*.*.* | grep -Po '^(.+\.so(\.\d+)?)' | sed 's/\./\\\./g' | paste -d'|' -s` +if [ "$VIRCADIA_USE_SYSTEM_QT" = "" ]; then + SOFILES=`ls *.so *.so.*.*.* | grep -Po '^(.+\.so(\.\d+)?)' | sed 's/\./\\\./g' | paste -d'|' -s` +else + SOFILES=`ls *.so | grep -Po '^(.+\.so(\.\d+)?)' | sed 's/\./\\\./g' | paste -d'|' -s` +fi DEPENDS=`find * -path debian -prune -o -type f -executable -exec sh -c 'objdump -p {} | grep NEEDED' \; \ | awk '{print $2}' | sort | uniq | egrep -v "^($SOFILES)$" \ diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 195021e2fe..fbe9e6b03d 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -12,14 +12,17 @@ list(REMOVE_ITEM PLUGIN_SUBDIRS "CMakeFiles") set(CMAKE_BUILD_TYPE "Release") # client-side plugins if (NOT SERVER_ONLY AND NOT ANDROID) - set(DIR "oculus") - add_subdirectory(${DIR}) + if (NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + set(DIR "oculus") + add_subdirectory(${DIR}) + set(DIR "openvr") + add_subdirectory(${DIR}) + set(DIR "oculusLegacy") + add_subdirectory(${DIR}) + endif() + set(DIR "hifiSdl2") add_subdirectory(${DIR}) - set(DIR "openvr") - add_subdirectory(${DIR}) - set(DIR "oculusLegacy") - add_subdirectory(${DIR}) if (USE_SIXENSE) set(DIR "hifiSixense") @@ -32,8 +35,12 @@ if (NOT SERVER_ONLY AND NOT ANDROID) add_subdirectory(${DIR}) set(DIR "hifiKinect") add_subdirectory(${DIR}) - set(DIR "steamClient") - add_subdirectory(${DIR}) + + if (NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + set(DIR "steamClient") + add_subdirectory(${DIR}) + endif() + set(DIR "hifiLeapMotion") add_subdirectory(${DIR}) diff --git a/plugins/JSAPIExample/src/JSAPIExample.cpp b/plugins/JSAPIExample/src/JSAPIExample.cpp index 4654279bec..34c28bdf8f 100644 --- a/plugins/JSAPIExample/src/JSAPIExample.cpp +++ b/plugins/JSAPIExample/src/JSAPIExample.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/plugins/openvr/src/OpenVrHelpers.cpp b/plugins/openvr/src/OpenVrHelpers.cpp index eed2242602..d22aecaa1f 100644 --- a/plugins/openvr/src/OpenVrHelpers.cpp +++ b/plugins/openvr/src/OpenVrHelpers.cpp @@ -411,6 +411,14 @@ void showMinSpecWarning() { if (!vrOverlay) { qFatal("Unable to initialize SteamVR overlay manager"); } + auto vrChaperone = vr::VRChaperone(); + if (!vrChaperone) { + qFatal("Unable to initialize SteamVR chaperone"); + } + auto vrCompositor = vr::VRCompositor(); + if (!vrCompositor) { + qFatal("Unable to initialize SteamVR compositor"); + } vr::VROverlayHandle_t minSpecFailedOverlay = 0; if (vr::VROverlayError_None != vrOverlay->CreateOverlay(FAILED_MIN_SPEC_OVERLAY_NAME, FAILED_MIN_SPEC_OVERLAY_FRIENDLY_NAME, &minSpecFailedOverlay)) { @@ -443,7 +451,7 @@ void showMinSpecWarning() { }); #endif - vrSystem->ResetSeatedZeroPose(); + vrChaperone->ResetZeroPose(vrCompositor->GetTrackingSpace()); QString imagePath = PathUtils::resourcesPath() + "/images/steam-min-spec-failed.png"; vrOverlay->SetOverlayFromFile(minSpecFailedOverlay, imagePath.toLocal8Bit().toStdString().c_str()); vrOverlay->SetOverlayWidthInMeters(minSpecFailedOverlay, 1.4f); diff --git a/plugins/pcmCodec/CMakeLists.txt b/plugins/pcmCodec/CMakeLists.txt index cce33ecd1a..34e49d908b 100644 --- a/plugins/pcmCodec/CMakeLists.txt +++ b/plugins/pcmCodec/CMakeLists.txt @@ -8,7 +8,7 @@ set(TARGET_NAME pcmCodec) setup_hifi_client_server_plugin() -link_hifi_libraries(shared plugins) +link_hifi_libraries(shared audio plugins) if (BUILD_SERVER) install_beside_console() diff --git a/plugins/pcmCodec/src/PCMCodecManager.h b/plugins/pcmCodec/src/PCMCodecManager.h index 608e9a1556..178f7cbd9b 100644 --- a/plugins/pcmCodec/src/PCMCodecManager.h +++ b/plugins/pcmCodec/src/PCMCodecManager.h @@ -13,6 +13,7 @@ #define hifi__PCMCodecManager_h #include +#include class PCMCodec : public CodecPlugin, public Encoder, public Decoder { Q_OBJECT @@ -44,6 +45,7 @@ public: } virtual void lostFrame(QByteArray& decodedBuffer) override { + decodedBuffer.resize(AudioConstants::NETWORK_FRAME_BYTES_STEREO); memset(decodedBuffer.data(), 0, decodedBuffer.size()); } @@ -81,6 +83,7 @@ public: } virtual void lostFrame(QByteArray& decodedBuffer) override { + decodedBuffer.resize(AudioConstants::NETWORK_FRAME_BYTES_STEREO); memset(decodedBuffer.data(), 0, decodedBuffer.size()); } diff --git a/tools/gpu-frame-player/CMakeLists.txt b/tools/gpu-frame-player/CMakeLists.txt index e3611e1068..3f5330c381 100644 --- a/tools/gpu-frame-player/CMakeLists.txt +++ b/tools/gpu-frame-player/CMakeLists.txt @@ -23,7 +23,7 @@ link_hifi_libraries( target_compile_definitions(${TARGET_NAME} PRIVATE USE_GL) -set(OpenGL_GL_PREFERENCE "LEGACY") +set(OpenGL_GL_PREFERENCE "GLVND") target_opengl() #target_vulkan() diff --git a/tools/gpu-frame-player/src/main.cpp b/tools/gpu-frame-player/src/main.cpp index ac48ee2e1c..fe0e97fa0b 100644 --- a/tools/gpu-frame-player/src/main.cpp +++ b/tools/gpu-frame-player/src/main.cpp @@ -7,6 +7,7 @@ // #include +#include #include #include "PlayerWindow.h" diff --git a/tools/ice-client/src/ICEClientApp.cpp b/tools/ice-client/src/ICEClientApp.cpp index 9bae0dc693..b10ef46b62 100644 --- a/tools/ice-client/src/ICEClientApp.cpp +++ b/tools/ice-client/src/ICEClientApp.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include diff --git a/tools/oven/src/DomainBaker.h b/tools/oven/src/DomainBaker.h index 1642148520..bfeb1853f6 100644 --- a/tools/oven/src/DomainBaker.h +++ b/tools/oven/src/DomainBaker.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #include