diff --git a/3rdparty/assimp/.gitattributes b/3rdparty/assimp/.gitattributes deleted file mode 100644 index f3df90d38..000000000 --- a/3rdparty/assimp/.gitattributes +++ /dev/null @@ -1,22 +0,0 @@ -# Declare files that will always have LF line endings on checkout. -*.cpp text eol=lf -*.h text eol=lf -*.c text eol=lf -*.cc text eol=lf -*.cpp text eol=lf -*.rc text eol=lf -*.hpp text eol=lf -*.txt text eol=lf -*.cmake text eol=lf -*.sh text eol=lf -CHANGES text eol=lf -CREDITS text eol=lf -LICENSE text eol=lf -Readme.md text eol=lf -# make sure that repo-specific settings (.gitignore, CI-setup,...) -# are excluded from the source-package generated via 'git archive' -.git* export-ignore -/.travis* export-ignore -/.coveralls* export-ignore -appveyor.yml export-ignore - diff --git a/3rdparty/assimp/.github/FUNDING.yml b/3rdparty/assimp/.github/FUNDING.yml deleted file mode 100644 index 3f820ec7d..000000000 --- a/3rdparty/assimp/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -open_collective: assimp -patreon: assimp diff --git a/3rdparty/assimp/.github/ISSUE_TEMPLATE/bug_report.md b/3rdparty/assimp/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 0f9a5f105..000000000 --- a/3rdparty/assimp/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: 'Bug:' -labels: 'Bug' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Platform (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/3rdparty/assimp/.github/ISSUE_TEMPLATE/feature_request.md b/3rdparty/assimp/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 87302a0f0..000000000 --- a/3rdparty/assimp/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: 'Feature-Request' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/3rdparty/assimp/.github/ISSUE_TEMPLATE/tech_debt.md b/3rdparty/assimp/.github/ISSUE_TEMPLATE/tech_debt.md deleted file mode 100644 index a1172d932..000000000 --- a/3rdparty/assimp/.github/ISSUE_TEMPLATE/tech_debt.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -name: Technical debt -about: Create a report to help us to fix and detect tech debts -title: '' -labels: 'Techdebt' -assignees: '' - ---- - -**Describe the technical debt** -A clear and concise description of what the tech debt is about. - -**Better solution** -A clear and concise description of what you would expect. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/3rdparty/assimp/.github/dependabot.yml b/3rdparty/assimp/.github/dependabot.yml deleted file mode 100644 index ee9898a61..000000000 --- a/3rdparty/assimp/.github/dependabot.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: 2 -updates: -- package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - - package-ecosystem: "gitsubmodule" - directory: "/" # the .gitmodules file must be placed at the top-level directory of a git working tree - schedule: - interval: "weekly" - open-pull-requests-limit: 15 # Assimp has 15 dependencies diff --git a/3rdparty/assimp/.github/workflows/ccpp.yml b/3rdparty/assimp/.github/workflows/ccpp.yml deleted file mode 100644 index 2c5ca438b..000000000 --- a/3rdparty/assimp/.github/workflows/ccpp.yml +++ /dev/null @@ -1,128 +0,0 @@ -name: C/C++ CI - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - job: - name: ${{ matrix.name }}-build-and-test - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - name: [ubuntu-latest-g++, macos-latest-clang++, windows-latest-cl.exe, ubuntu-latest-clang++, ubuntu-gcc-hunter, macos-clang-hunter, windows-msvc-hunter] - # For Windows msvc, for Linux and macOS let's use the clang compiler, use gcc for Linux. - include: - - name: windows-latest-cl.exe - os: windows-latest - cxx: cl.exe - cc: cl.exe - - name: ubuntu-latest-clang++ - os: ubuntu-latest - cxx: clang++ - cc: clang - - name: macos-latest-clang++ - os: macos-latest - cxx: clang++ - cc: clang - - name: ubuntu-latest-g++ - os: ubuntu-latest - cxx: g++ - cc: gcc - - name: ubuntu-gcc-hunter - os: ubuntu-latest - toolchain: ninja-gcc-cxx17-fpic - - name: macos-clang-hunter - os: macos-latest - toolchain: ninja-clang-cxx17-fpic - - name: windows-msvc-hunter - os: windows-latest - toolchain: ninja-vs-win64-cxx17 - - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - - uses: lukka/get-cmake@latest - - - uses: ilammy/msvc-dev-cmd@v1 - - - name: Set Compiler Environment - if: "!endsWith(matrix.name, 'hunter')" - uses: lukka/set-shell-env@v1 - with: - CXX: ${{ matrix.cxx }} - CC: ${{ matrix.cc }} - - - name: Set Compiler Environment for Hunter on Windows - if: startsWith(matrix.name, 'windows') && endsWith(matrix.name, 'hunter') - uses: lukka/set-shell-env@v1 - with: - VS160COMNTOOLS: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools - - - name: Checkout Hunter toolchains - if: endsWith(matrix.name, 'hunter') - uses: actions/checkout@v4 - with: - repository: cpp-pm/polly - path: cmake/polly - - - name: Cache DX SDK - id: dxcache - if: contains(matrix.name, 'windows') - uses: actions/cache@v3 - with: - path: '${{ github.workspace }}/DX_SDK' - key: ${{ runner.os }}-DX_SDK - restore-keys: | - ${{ runner.os }}-DX_SDK - - - name: Download DXSetup - if: contains(matrix.name, 'windows') && steps.dxcache.outputs.cache-hit != 'true' - run: | - curl -s -o DXSDK_Jun10.exe --location https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe - cmd.exe /c start /wait .\DXSDK_Jun10.exe /U /O /F /S /P "${{ github.workspace }}\DX_SDK" - - - name: Set Windows specific CMake arguments - if: contains(matrix.name, 'windows') - id: windows_extra_cmake_args - run: echo "::set-output name=args::-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1 -DASSIMP_BUILD_ZLIB=1" - - - name: Set Hunter specific CMake arguments - if: contains(matrix.name, 'hunter') - id: hunter_extra_cmake_args - run: echo "::set-output name=args::-DBUILD_SHARED_LIBS=OFF -DASSIMP_HUNTER_ENABLED=ON -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/cmake/polly/${{ matrix.toolchain }}.cmake" - - - name: configure and build - uses: lukka/run-cmake@v3 - env: - DXSDK_DIR: '${{ github.workspace }}/DX_SDK' - - with: - cmakeListsOrSettingsJson: CMakeListsTxtAdvanced - cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt' - cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Release ${{ steps.windows_extra_cmake_args.outputs.args }} ${{ steps.hunter_extra_cmake_args.outputs.args }}' - buildWithCMakeArgs: '--parallel 24 -v' - buildDirectory: '${{ github.workspace }}/build/' - - - name: Exclude certain tests in Hunter specific builds - if: contains(matrix.name, 'hunter') - id: hunter_extra_test_args - run: echo "::set-output name=args::--gtest_filter=-utOpenGEXImportExport.Importissue1340_EmptyCameraObject:utColladaZaeImportExport.importBlenFromFileTest" - - - name: test - run: cd build/bin && ./unit ${{ steps.hunter_extra_test_args.outputs.args }} - shell: bash - - - uses: actions/upload-artifact@v3 - if: matrix.name == 'windows-msvc' - with: - name: 'assimp-bins-${{ matrix.name }}-${{ github.sha }}' - path: build/bin diff --git a/3rdparty/assimp/.github/workflows/cifuzz.yml b/3rdparty/assimp/.github/workflows/cifuzz.yml deleted file mode 100644 index a84be8cbc..000000000 --- a/3rdparty/assimp/.github/workflows/cifuzz.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: CIFuzz -on: [pull_request] -jobs: - Fuzzing: - runs-on: ubuntu-latest - steps: - - name: Build Fuzzers - id: build - uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master - with: - oss-fuzz-project-name: 'assimp' - dry-run: false - language: c++ - - name: Run Fuzzers - uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master - with: - oss-fuzz-project-name: 'assimp' - fuzz-seconds: 300 - dry-run: false - language: c++ - - name: Upload Crash - uses: actions/upload-artifact@v3 - if: failure() && steps.build.outcome == 'success' - with: - name: artifacts - path: ./out/artifacts diff --git a/3rdparty/assimp/.github/workflows/sanitizer.yml b/3rdparty/assimp/.github/workflows/sanitizer.yml deleted file mode 100644 index 6a8e2336f..000000000 --- a/3rdparty/assimp/.github/workflows/sanitizer.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: C/C++ Sanitizer - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - job1: - name: adress-sanitizer - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: lukka/get-cmake@latest - - uses: lukka/set-shell-env@v1 - with: - CXX: clang++ - CC: clang - - - name: configure and build - uses: lukka/run-cmake@v3 - with: - cmakeListsOrSettingsJson: CMakeListsTxtAdvanced - cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt' - cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Debug -DASSIMP_ASAN=ON' - buildWithCMakeArgs: '-- -v' - buildDirectory: '${{ github.workspace }}/build/' - - - name: test - run: cd build/bin && ./unit - shell: bash - - job2: - name: undefined-behavior-sanitizer - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: lukka/get-cmake@latest - - uses: lukka/set-shell-env@v1 - with: - CXX: clang++ - CC: clang - - - name: configure and build - uses: lukka/run-cmake@v3 - with: - cmakeListsOrSettingsJson: CMakeListsTxtAdvanced - cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt' - cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Debug -DASSIMP_UBSAN=ON' - buildWithCMakeArgs: '-- -v' - buildDirectory: '${{ github.workspace }}/build/' - - - name: test - run: cd build/bin && ./unit - shell: bash - - job3: - name: printf-sanitizer - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: run scan_printf script - run: ./scripts/scan_printf.sh - shell: bash diff --git a/3rdparty/assimp/.gitignore b/3rdparty/assimp/.gitignore deleted file mode 100644 index 09d631ee8..000000000 --- a/3rdparty/assimp/.gitignore +++ /dev/null @@ -1,122 +0,0 @@ -.idea -build -.project -*.kdev4* -.DS_Store - -# build artefacts -*.o -*.a - -# Visual Studio -*.sln -*.ncb -*.vcproj -*.vcxproj.user -*.VC.db -*.VC.db-shm -*.VC.db-wal -*.VC.opendb -*.ipch -.vs/ -out/ -CMakeSettings.json - -# Output -bin/ -lib/ -x64/ -# QtCreator -CMakeLists.txt.user - -# Generated -assimp.pc -assimp.aps -revision.h -contrib/zlib/zconf.h -contrib/zlib/zlib.pc -include/assimp/config.h -unit.vcxproj.user - -# CMake -CMakeCache.txt -CMakeFiles -cmake_install.cmake -cmake_uninstall.cmake -*.dir/ -assimp-config.cmake -assimp-config-version.cmake -assimpTargets*.cmake - -# MakeFile -Makefile -code/Makefile -test/Makefile -test/headercheck/Makefile -tools/assimp_cmd/Makefile - -# Tests -test/results -test/readlinetest* - -# Python -__pycache__ -*.log -*.vcxproj -*.filters -*.tlog -Assimp.sdf -test/gtest/tmp/gtest-gitupdate.cmake -test/gtest/tmp/gtest-gitclone.cmake -test/gtest/tmp/gtest-cfgcmd.txt.in -test/gtest/tmp/gtest-cfgcmd.txt -test/gtest/src/gtest-stamp/gtest-download.cmake -test/gtest/src/gtest-stamp/gtest-configure.cmake -test/gtest/src/gtest-stamp/gtest-build.cmake -test/gtest/src/gtest-stamp/Debug/gtest-patch -*.cache -test/gtest/src/gtest-stamp/Debug/gtest-build -*.suo -*.lib -test/gtest/src/gtest-stamp/Debug/ -tools/assimp_view/assimp_viewer.vcxproj.user -*.pyc - -### Rust ### -# Generated by Cargo; will have compiled files and executables -port/assimp_rs/target/ -# Backup files generated by rustfmt -port/assimp_rs/**/*.rs.bk - -# Unix editor backups -*~ -test/gtest/src/gtest-stamp/gtest-gitinfo.txt -test/gtest/src/gtest-stamp/gtest-gitclone-lastrun.txt -Assimp.opensdf -contrib/zlib/CTestTestfile.cmake -contrib/zlib/Debug/zlibstaticd.pdb -ipch/assimp_viewer-44bbbcd1/assimp_viewerd-ccc45335.ipch -bin64/assimp-vc140-mt.dll -bin64/assimp-vc140-mtd.dll -lib64/assimp-vc140-mt.exp -lib64/assimp-vc140-mtd.exp -lib64/assimp-vc140-mtd.ilk -lib64/assimp-vc140-mtd.pdb -bin64/assimp-vc120-mt.dll -bin64/assimp-vc120-mtd.dll -lib64/assimp-vc120-mtd.pdb -lib64/assimp-vc120-mtd.ilk -lib64/assimp-vc120-mtd.exp -lib64/assimp-vc120-mt.exp -xcuserdata - -cmake-build-debug -install_manifest.txt -tools/assimp_qt_viewer/moc_glview.cpp -tools/assimp_qt_viewer/moc_glview.cpp_parameters -tools/assimp_qt_viewer/moc_mainwindow.cpp -tools/assimp_qt_viewer/moc_mainwindow.cpp_parameters -tools/assimp_qt_viewer/ui_mainwindow.h - -#Generated directory -generated/* diff --git a/3rdparty/assimp/CMakeLists.txt b/3rdparty/assimp/CMakeLists.txt index 88f69174a..75b160c6f 100644 --- a/3rdparty/assimp/CMakeLists.txt +++ b/3rdparty/assimp/CMakeLists.txt @@ -258,7 +258,7 @@ IF( UNIX ) ENDIF() # Grouped compiler settings ######################################## -IF ((CMAKE_C_COMPILER_ID MATCHES "GNU") AND NOT MINGW AND NOT HAIKU) +IF ((CMAKE_C_COMPILER_ID MATCHES "GNU") AND NOT MINGW) IF(NOT ASSIMP_HUNTER_ENABLED) SET(CMAKE_POSITION_INDEPENDENT_CODE ON) ENDIF() diff --git a/3rdparty/assimp/Readme.md b/3rdparty/assimp/Readme.md index a740be772..9a8ac7c33 100644 --- a/3rdparty/assimp/Readme.md +++ b/3rdparty/assimp/Readme.md @@ -6,14 +6,20 @@ Open Asset Import Library is a library to load various 3d file formats into a sh ### Current project status ### [![Financial Contributors on Open Collective](https://opencollective.com/assimp/all/badge.svg?label=financial+contributors)](https://opencollective.com/assimp) ![C/C++ CI](https://github.com/assimp/assimp/workflows/C/C++%20CI/badge.svg) + + Coverity Scan Build Status + [![Codacy Badge](https://app.codacy.com/project/badge/Grade/9973693b7bdd4543b07084d5d9cf4745)](https://www.codacy.com/gh/assimp/assimp/dashboard?utm_source=github.com&utm_medium=referral&utm_content=assimp/assimp&utm_campaign=Badge_Grade) + +[![Coverage Status](https://coveralls.io/repos/github/assimp/assimp/badge.svg?branch=master)](https://coveralls.io/github/assimp/assimp?branch=master) [![Join the chat at https://gitter.im/assimp/assimp](https://badges.gitter.im/assimp/assimp.svg)](https://gitter.im/assimp/assimp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/assimp/assimp.svg)](http://isitmaintained.com/project/assimp/assimp "Average time to resolve an issue") [![Percentage of issues still open](http://isitmaintained.com/badge/open/assimp/assimp.svg)](http://isitmaintained.com/project/assimp/assimp "Percentage of issues still open")
APIs are provided for C and C++. There are various bindings to other languages (C#, Java, Python, Delphi, D). Assimp also runs on Android and iOS. -Additionally, assimp features various __mesh post-processing tools__: normals and tangent space generation, triangulation, vertex cache locality optimization, removal of degenerate primitives and duplicate vertices, sorting by primitive type, merging of redundant materials and many more. +Additionally, assimp features various __mesh post processing tools__: normals and tangent space generation, triangulation, vertex cache locality optimization, removal of degenerate primitives and duplicate vertices, sorting by primitive type, merging of redundant materials and many more. ### Latest Doc's ### Please check the latest documents at [Asset-Importer-Lib-Doc](https://assimp-docs.readthedocs.io/en/latest/). @@ -52,21 +58,20 @@ Take a look into the https://github.com/assimp/assimp/blob/master/Build.md file. ### Other tools ### [open3mod](https://github.com/acgessler/open3mod) is a powerful 3D model viewer based on Assimp's import and export abilities. -[Assimp-Viewer(]https://github.com/assimp/assimp_view) is an experimental implementation for an Asset-Viewer based on ImGUI and Assimp (experimental). #### Repository structure #### -Open Asset Import Library is implemented in C++. The directory structure looks like this: +Open Asset Import Library is implemented in C++. The directory structure looks like: /code Source code /contrib Third-party libraries /doc Documentation (doxysource and pre-compiled docs) - /fuzz Contains the test code for the Google Fuzzer project + /fuzz Contains the test-code for the Google-Fuzzer project /include Public header C and C++ header files - /scripts Scripts are used to generate the loading code for some formats + /scripts Scripts used to generate the loading code for some formats /port Ports to other languages and scripts to maintain those. /test Unit- and regression tests, test suite of models /tools Tools (old assimp viewer, command line `assimp`) - /samples A small number of samples to illustrate possible use cases for Assimp + /samples A small number of samples to illustrate possible use-cases for Assimp The source code is organized in the following way: @@ -74,9 +79,9 @@ The source code is organized in the following way: code/CApi Special implementations which are only used for the C-API code/Geometry A collection of geometry tools code/Material The material system - code/PBR An exporter for physical-based models + code/PBR An exporter for physical based models code/PostProcessing The post-processing steps - code/AssetLib/ Implementation for import and export of the format + code/AssetLib/ Implementation for import and export for the format ### Contributing ### Contributions to assimp are highly appreciated. The easiest way to get involved is to submit @@ -113,4 +118,4 @@ and don't sue us if our code doesn't work. Note that, unlike LGPLed code, you ma For the legal details, see the `LICENSE` file. ### Why this name ### -Sorry, we're germans :-), no English native speakers ... +Sorry, we're germans :-), no english native speakers ... diff --git a/3rdparty/assimp/code/AssetLib/FBX/FBXExporter.cpp b/3rdparty/assimp/code/AssetLib/FBX/FBXExporter.cpp index 9da713e5d..31bea76b5 100644 --- a/3rdparty/assimp/code/AssetLib/FBX/FBXExporter.cpp +++ b/3rdparty/assimp/code/AssetLib/FBX/FBXExporter.cpp @@ -1391,7 +1391,7 @@ void FBXExporter::WriteObjects () aiMaterial* m = mScene->mMaterials[i]; // these are used to receive material data - ai_real f; aiColor3D c; + float f; aiColor3D c; // start the node record FBX::Node n("Material"); diff --git a/3rdparty/assimp/code/AssetLib/MD5/MD5Parser.cpp b/3rdparty/assimp/code/AssetLib/MD5/MD5Parser.cpp index 8da30e28f..7d0b41c24 100644 --- a/3rdparty/assimp/code/AssetLib/MD5/MD5Parser.cpp +++ b/3rdparty/assimp/code/AssetLib/MD5/MD5Parser.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2023, assimp team +Copyright (c) 2006-2022, assimp team All rights reserved. @@ -87,7 +87,7 @@ MD5Parser::MD5Parser(char *_buffer, unsigned int _fileSize) : buffer(_buffer), b // ------------------------------------------------------------------------------------------------ // Report error to the log stream -AI_WONT_RETURN void MD5Parser::ReportError(const char *error, unsigned int line) { +/*static*/ AI_WONT_RETURN void MD5Parser::ReportError(const char *error, unsigned int line) { char szBuffer[1024]; ::ai_snprintf(szBuffer, 1024, "[MD5] Line %u: %s", line, error); throw DeadlyImportError(szBuffer); @@ -95,7 +95,7 @@ AI_WONT_RETURN void MD5Parser::ReportError(const char *error, unsigned int line) // ------------------------------------------------------------------------------------------------ // Report warning to the log stream -void MD5Parser::ReportWarning(const char *warn, unsigned int line) { +/*static*/ void MD5Parser::ReportWarning(const char *warn, unsigned int line) { char szBuffer[1024]; ::snprintf(szBuffer, sizeof(szBuffer), "[MD5] Line %u: %s", line, warn); ASSIMP_LOG_WARN(szBuffer); @@ -122,8 +122,8 @@ void MD5Parser::ParseHeader() { // print the command line options to the console // FIX: can break the log length limit, so we need to be careful char *sz = buffer; - while (!IsLineEnd(*buffer++)); - + while (!IsLineEnd(*buffer++)) + ; ASSIMP_LOG_INFO(std::string(sz, std::min((uintptr_t)MAX_LOG_MESSAGE_LENGTH, (uintptr_t)(buffer - sz)))); SkipSpacesAndLineEnd(); } diff --git a/3rdparty/assimp/code/AssetLib/MD5/MD5Parser.h b/3rdparty/assimp/code/AssetLib/MD5/MD5Parser.h index 9b29fbe85..ad7367e2a 100644 --- a/3rdparty/assimp/code/AssetLib/MD5/MD5Parser.h +++ b/3rdparty/assimp/code/AssetLib/MD5/MD5Parser.h @@ -2,7 +2,8 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2023, assimp team +Copyright (c) 2006-2022, assimp team + All rights reserved. @@ -92,7 +93,7 @@ struct Section { std::string mName; //! For global elements: the value of the element as string - //! if !length() the section is not a global element + //! Iif !length() the section is not a global element std::string mGlobalValue; }; @@ -184,7 +185,7 @@ using FrameList = std::vector; */ struct VertexDesc { VertexDesc() AI_NO_EXCEPT - : mFirstWeight(0), mNumWeights(0) { + : mFirstWeight(0), mNumWeights(0) { // empty } @@ -348,61 +349,62 @@ class MD5Parser { */ MD5Parser(char* buffer, unsigned int fileSize); + // ------------------------------------------------------------------- /** Report a specific error message and throw an exception * @param error Error message to be reported * @param line Index of the line where the error occurred */ - AI_WONT_RETURN static void ReportError(const char* error, unsigned int line) AI_WONT_RETURN_SUFFIX; + AI_WONT_RETURN static void ReportError (const char* error, unsigned int line) AI_WONT_RETURN_SUFFIX; // ------------------------------------------------------------------- /** Report a specific warning * @param warn Warn message to be reported * @param line Index of the line where the error occurred */ - static void ReportWarning(const char* warn, unsigned int line); + static void ReportWarning (const char* warn, unsigned int line); + - // ------------------------------------------------------------------- - /** Report a specific error - * @param error Error message to be reported - */ AI_WONT_RETURN void ReportError (const char* error) AI_WONT_RETURN_SUFFIX; - // ------------------------------------------------------------------- - /** Report a specific warning - * @param error Warn message to be reported - */ - void ReportWarning (const char* warn); + void ReportWarning (const char* warn) { + return ReportWarning(warn, lineNumber); + } //! List of all sections which have been read SectionList mSections; private: + // ------------------------------------------------------------------- + /** Parses a file section. The current file pointer must be outside + * of a section. + * @param out Receives the section data + * @return true if the end of the file has been reached + * @throws ImportErrorException if an error occurs + */ bool ParseSection(Section& out); + + // ------------------------------------------------------------------- + /** Parses the file header + * @throws ImportErrorException if an error occurs + */ void ParseHeader(); + bool SkipLine(const char* in, const char** out); bool SkipLine( ); bool SkipSpacesAndLineEnd( const char* in, const char** out); bool SkipSpacesAndLineEnd(); bool SkipSpaces(); -private: char* buffer; char* bufferEnd; unsigned int fileSize; unsigned int lineNumber; }; -// ------------------------------------------------------------------- -inline void MD5Parser::ReportWarning (const char* warn) { - return ReportWarning(warn, lineNumber); -} - -// ------------------------------------------------------------------- inline void MD5Parser::ReportError(const char* error) { ReportError(error, lineNumber); } - // ------------------------------------------------------------------- inline bool MD5Parser::SkipLine(const char* in, const char** out) { ++lineNumber; @@ -416,24 +418,18 @@ inline bool MD5Parser::SkipLine( ) { // ------------------------------------------------------------------- inline bool MD5Parser::SkipSpacesAndLineEnd( const char* in, const char** out) { - if (in == bufferEnd) { - *out = in; - return false; - } - - bool bHad = false, running = true; + bool bHad = false; + bool running = true; while (running) { if( *in == '\r' || *in == '\n') { - // we open files in binary mode, so there could be \r\n sequences ... + // we open files in binary mode, so there could be \r\n sequences ... if (!bHad) { bHad = true; ++lineNumber; } - } else if (*in == '\t' || *in == ' ') { - bHad = false; - } else { - break; } + else if (*in == '\t' || *in == ' ')bHad = false; + else break; ++in; if (in == bufferEnd) { break; diff --git a/3rdparty/assimp/code/AssetLib/glTF2/glTF2Exporter.cpp b/3rdparty/assimp/code/AssetLib/glTF2/glTF2Exporter.cpp index 614ce763c..d6f778fbe 100644 --- a/3rdparty/assimp/code/AssetLib/glTF2/glTF2Exporter.cpp +++ b/3rdparty/assimp/code/AssetLib/glTF2/glTF2Exporter.cpp @@ -172,6 +172,22 @@ static void IdentityMatrix4(mat4 &o) { o[15] = 1; } +static bool IsBoneWeightFitted(vec4 &weight) { + return weight[0] + weight[1] + weight[2] + weight[3] >= 1.f; +} + +static int FitBoneWeight(vec4 &weight, float value) { + int i = 0; + for (; i < 4; ++i) { + if (weight[i] < value) { + weight[i] = value; + return i; + } + } + + return -1; +} + template void SetAccessorRange(Ref acc, void *data, size_t count, unsigned int numCompsIn, unsigned int numCompsOut) { @@ -993,29 +1009,23 @@ Ref FindSkeletonRootJoint(Ref &skinRef) { return parentNodeRef; } -struct boneIndexWeightPair { - unsigned int indexJoint; - float weight; - bool operator()(boneIndexWeightPair &a, boneIndexWeightPair &b) { - return a.weight > b.weight; - } -}; - void ExportSkin(Asset &mAsset, const aiMesh *aimesh, Ref &meshRef, Ref &bufferRef, Ref &skinRef, - std::vector &inverseBindMatricesData, bool unlimitedBonesPerVertex) { + std::vector &inverseBindMatricesData) { if (aimesh->mNumBones < 1) { return; } // Store the vertex joint and weight data. const size_t NumVerts(aimesh->mNumVertices); + vec4 *vertexJointData = new vec4[NumVerts]; + vec4 *vertexWeightData = new vec4[NumVerts]; int *jointsPerVertex = new int[NumVerts]; - std::vector> allVerticesPairs; - int maxJointsPerVertex = 0; for (size_t i = 0; i < NumVerts; ++i) { jointsPerVertex[i] = 0; - std::vector vertexPair; - allVerticesPairs.push_back(vertexPair); + for (size_t j = 0; j < 4; ++j) { + vertexJointData[i][j] = 0; + vertexWeightData[i][j] = 0; + } } for (unsigned int idx_bone = 0; idx_bone < aimesh->mNumBones; ++idx_bone) { @@ -1045,88 +1055,61 @@ void ExportSkin(Asset &mAsset, const aiMesh *aimesh, Ref &meshRef, Ref(inverseBindMatricesData.size() - 1); } - // aib->mWeights =====> temp pairs data - for (unsigned int idx_weights = 0; idx_weights < aib->mNumWeights; - ++idx_weights) { + // aib->mWeights =====> vertexWeightData + for (unsigned int idx_weights = 0; idx_weights < aib->mNumWeights; ++idx_weights) { unsigned int vertexId = aib->mWeights[idx_weights].mVertexId; float vertWeight = aib->mWeights[idx_weights].mWeight; - allVerticesPairs[vertexId].push_back({jointNamesIndex, vertWeight}); - jointsPerVertex[vertexId] += 1; - maxJointsPerVertex = - std::max(maxJointsPerVertex, jointsPerVertex[vertexId]); - } - } // End: for-loop mNumMeshes - if (!unlimitedBonesPerVertex){ - // skinning limited only for 4 bones per vertex, default - maxJointsPerVertex = 4; - } - - // temp pairs data =====> vertexWeightData - size_t numGroups = (maxJointsPerVertex - 1) / 4 + 1; - vec4 *vertexJointData = new vec4[NumVerts * numGroups]; - vec4 *vertexWeightData = new vec4[NumVerts * numGroups]; - for (size_t indexVertex = 0; indexVertex < NumVerts; ++indexVertex) { - // order pairs by weight for each vertex - std::sort(allVerticesPairs[indexVertex].begin(), - allVerticesPairs[indexVertex].end(), - boneIndexWeightPair()); - for (size_t indexGroup = 0; indexGroup < numGroups; ++indexGroup) { - for (size_t indexJoint = 0; indexJoint < 4; ++indexJoint) { - size_t indexBone = indexGroup * 4 + indexJoint; - size_t indexData = indexVertex + NumVerts * indexGroup; - if (indexBone >= allVerticesPairs[indexVertex].size()) { - vertexJointData[indexData][indexJoint] = 0.f; - vertexWeightData[indexData][indexJoint] = 0.f; - } else { - vertexJointData[indexData][indexJoint] = - static_cast( - allVerticesPairs[indexVertex][indexBone].indexJoint); - vertexWeightData[indexData][indexJoint] = - allVerticesPairs[indexVertex][indexBone].weight; + // A vertex can only have at most four joint weights, which ideally sum up to 1 + if (IsBoneWeightFitted(vertexWeightData[vertexId])) { + continue; + } + if (jointsPerVertex[vertexId] > 3) { + int boneIndexFitted = FitBoneWeight(vertexWeightData[vertexId], vertWeight); + if (boneIndexFitted != -1) { + vertexJointData[vertexId][boneIndexFitted] = static_cast(jointNamesIndex); } + } else { + vertexJointData[vertexId][jointsPerVertex[vertexId]] = static_cast(jointNamesIndex); + vertexWeightData[vertexId][jointsPerVertex[vertexId]] = vertWeight; + + jointsPerVertex[vertexId] += 1; } } - } - for (size_t idx_group = 0; idx_group < numGroups; ++idx_group) { - Mesh::Primitive &p = meshRef->primitives.back(); - Ref vertexJointAccessor = ExportData( - mAsset, skinRef->id, bufferRef, aimesh->mNumVertices, - vertexJointData + idx_group * NumVerts, - AttribType::VEC4, AttribType::VEC4, ComponentType_FLOAT); - if (vertexJointAccessor) { - size_t offset = vertexJointAccessor->bufferView->byteOffset; - size_t bytesLen = vertexJointAccessor->bufferView->byteLength; - unsigned int s_bytesPerComp = - ComponentTypeSize(ComponentType_UNSIGNED_SHORT); - unsigned int bytesPerComp = - ComponentTypeSize(vertexJointAccessor->componentType); - size_t s_bytesLen = bytesLen * s_bytesPerComp / bytesPerComp; - Ref buf = vertexJointAccessor->bufferView->buffer; - uint8_t *arrys = new uint8_t[bytesLen]; - unsigned int i = 0; - for (unsigned int j = 0; j < bytesLen; j += bytesPerComp) { - size_t len_p = offset + j; - float f_value = *(float *)&buf->GetPointer()[len_p]; - unsigned short c = static_cast(f_value); - memcpy(&arrys[i * s_bytesPerComp], &c, s_bytesPerComp); - ++i; - } - buf->ReplaceData_joint(offset, bytesLen, arrys, bytesLen); - vertexJointAccessor->componentType = ComponentType_UNSIGNED_SHORT; - vertexJointAccessor->bufferView->byteLength = s_bytesLen; + } // End: for-loop mNumMeshes - p.attributes.joint.push_back(vertexJointAccessor); - delete[] arrys; - } - Ref vertexWeightAccessor = ExportData( - mAsset, skinRef->id, bufferRef, aimesh->mNumVertices, - vertexWeightData + idx_group * NumVerts, - AttribType::VEC4, AttribType::VEC4, ComponentType_FLOAT); - if (vertexWeightAccessor) { - p.attributes.weight.push_back(vertexWeightAccessor); + Mesh::Primitive &p = meshRef->primitives.back(); + Ref vertexJointAccessor = ExportData(mAsset, skinRef->id, bufferRef, aimesh->mNumVertices, + vertexJointData, AttribType::VEC4, AttribType::VEC4, ComponentType_FLOAT); + if (vertexJointAccessor) { + size_t offset = vertexJointAccessor->bufferView->byteOffset; + size_t bytesLen = vertexJointAccessor->bufferView->byteLength; + unsigned int s_bytesPerComp = ComponentTypeSize(ComponentType_UNSIGNED_SHORT); + unsigned int bytesPerComp = ComponentTypeSize(vertexJointAccessor->componentType); + size_t s_bytesLen = bytesLen * s_bytesPerComp / bytesPerComp; + Ref buf = vertexJointAccessor->bufferView->buffer; + uint8_t *arrys = new uint8_t[bytesLen]; + unsigned int i = 0; + for (unsigned int j = 0; j < bytesLen; j += bytesPerComp) { + size_t len_p = offset + j; + float f_value = *(float *)&buf->GetPointer()[len_p]; + unsigned short c = static_cast(f_value); + memcpy(&arrys[i * s_bytesPerComp], &c, s_bytesPerComp); + ++i; } + buf->ReplaceData_joint(offset, bytesLen, arrys, bytesLen); + vertexJointAccessor->componentType = ComponentType_UNSIGNED_SHORT; + vertexJointAccessor->bufferView->byteLength = s_bytesLen; + + p.attributes.joint.push_back(vertexJointAccessor); + delete[] arrys; + } + + Ref vertexWeightAccessor = ExportData(mAsset, skinRef->id, bufferRef, aimesh->mNumVertices, + vertexWeightData, AttribType::VEC4, AttribType::VEC4, ComponentType_FLOAT); + if (vertexWeightAccessor) { + p.attributes.weight.push_back(vertexWeightAccessor); } delete[] jointsPerVertex; delete[] vertexWeightData; @@ -1264,19 +1247,9 @@ void glTF2Exporter::ExportMeshes() { break; } -// /*************** Skins ****************/ -// if (aim->HasBones()) { -// ExportSkin(*mAsset, aim, m, b, skinRef, inverseBindMatricesData); -// } /*************** Skins ****************/ if (aim->HasBones()) { - bool unlimitedBonesPerVertex = - this->mProperties->HasPropertyBool( - AI_CONFIG_EXPORT_GLTF_UNLIMITED_SKINNING_BONES_PER_VERTEX) && - this->mProperties->GetPropertyBool( - AI_CONFIG_EXPORT_GLTF_UNLIMITED_SKINNING_BONES_PER_VERTEX); - ExportSkin(*mAsset, aim, m, b, skinRef, inverseBindMatricesData, - unlimitedBonesPerVertex); + ExportSkin(*mAsset, aim, m, b, skinRef, inverseBindMatricesData); } /*************** Targets for blendshapes ****************/ diff --git a/3rdparty/assimp/code/PostProcessing/FindInvalidDataProcess.cpp b/3rdparty/assimp/code/PostProcessing/FindInvalidDataProcess.cpp index 64abf7589..aa91139bc 100644 --- a/3rdparty/assimp/code/PostProcessing/FindInvalidDataProcess.cpp +++ b/3rdparty/assimp/code/PostProcessing/FindInvalidDataProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2023, assimp team +Copyright (c) 2006-2022, assimp team All rights reserved. @@ -273,8 +273,7 @@ void FindInvalidDataProcess::ProcessAnimation(aiAnimation *anim) { void FindInvalidDataProcess::ProcessAnimationChannel(aiNodeAnim *anim) { ai_assert(nullptr != anim); if (anim->mNumPositionKeys == 0 && anim->mNumRotationKeys == 0 && anim->mNumScalingKeys == 0) { - ASSIMP_LOG_ERROR("Invalid node anuimation instance detected."); - + ai_assert_entry(); return; } diff --git a/3rdparty/assimp/code/PostProcessing/ImproveCacheLocality.cpp b/3rdparty/assimp/code/PostProcessing/ImproveCacheLocality.cpp index d7bb95698..9336d6b17 100644 --- a/3rdparty/assimp/code/PostProcessing/ImproveCacheLocality.cpp +++ b/3rdparty/assimp/code/PostProcessing/ImproveCacheLocality.cpp @@ -3,7 +3,9 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2023, assimp team +Copyright (c) 2006-2022, assimp team + + All rights reserved. @@ -57,31 +59,31 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include -namespace Assimp { +using namespace Assimp; // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer -ImproveCacheLocalityProcess::ImproveCacheLocalityProcess() : - mConfigCacheDepth(PP_ICL_PTCACHE_SIZE) { +ImproveCacheLocalityProcess::ImproveCacheLocalityProcess() +: mConfigCacheDepth(PP_ICL_PTCACHE_SIZE) { // empty } // ------------------------------------------------------------------------------------------------ // Returns whether the processing step is present in the given flag field. -bool ImproveCacheLocalityProcess::IsActive(unsigned int pFlags) const { +bool ImproveCacheLocalityProcess::IsActive( unsigned int pFlags) const { return (pFlags & aiProcess_ImproveCacheLocality) != 0; } // ------------------------------------------------------------------------------------------------ // Setup configuration -void ImproveCacheLocalityProcess::SetupProperties(const Importer *pImp) { +void ImproveCacheLocalityProcess::SetupProperties(const Importer* pImp) { // AI_CONFIG_PP_ICL_PTCACHE_SIZE controls the target cache size for the optimizer - mConfigCacheDepth = pImp->GetPropertyInteger(AI_CONFIG_PP_ICL_PTCACHE_SIZE, PP_ICL_PTCACHE_SIZE); + mConfigCacheDepth = pImp->GetPropertyInteger(AI_CONFIG_PP_ICL_PTCACHE_SIZE,PP_ICL_PTCACHE_SIZE); } // ------------------------------------------------------------------------------------------------ // Executes the post processing step on the given imported data. -void ImproveCacheLocalityProcess::Execute(aiScene *pScene) { +void ImproveCacheLocalityProcess::Execute( aiScene* pScene) { if (!pScene->mNumMeshes) { ASSIMP_LOG_DEBUG("ImproveCacheLocalityProcess skipped; there are no meshes"); return; @@ -91,11 +93,11 @@ void ImproveCacheLocalityProcess::Execute(aiScene *pScene) { float out = 0.f; unsigned int numf = 0, numm = 0; - for (unsigned int a = 0; a < pScene->mNumMeshes; ++a) { - const float res = ProcessMesh(pScene->mMeshes[a], a); + for( unsigned int a = 0; a < pScene->mNumMeshes; ++a ){ + const float res = ProcessMesh( pScene->mMeshes[a],a); if (res) { numf += pScene->mMeshes[a]->mNumFaces; - out += res; + out += res; ++numm; } } @@ -107,54 +109,9 @@ void ImproveCacheLocalityProcess::Execute(aiScene *pScene) { } } -// ------------------------------------------------------------------------------------------------ -static ai_real calculateInputACMR(aiMesh *pMesh, const aiFace *const pcEnd, - unsigned int configCacheDepth, unsigned int meshNum) { - ai_real fACMR = 0.0f; - unsigned int *piFIFOStack = new unsigned int[configCacheDepth]; - memset(piFIFOStack, 0xff, configCacheDepth * sizeof(unsigned int)); - unsigned int *piCur = piFIFOStack; - const unsigned int *const piCurEnd = piFIFOStack + configCacheDepth; - - // count the number of cache misses - unsigned int iCacheMisses = 0; - for (const aiFace *pcFace = pMesh->mFaces; pcFace != pcEnd; ++pcFace) { - for (unsigned int qq = 0; qq < 3; ++qq) { - bool bInCache = false; - for (unsigned int *pp = piFIFOStack; pp < piCurEnd; ++pp) { - if (*pp == pcFace->mIndices[qq]) { - // the vertex is in cache - bInCache = true; - break; - } - } - if (!bInCache) { - ++iCacheMisses; - if (piCurEnd == piCur) { - piCur = piFIFOStack; - } - *piCur++ = pcFace->mIndices[qq]; - } - } - } - delete[] piFIFOStack; - fACMR = (ai_real)iCacheMisses / pMesh->mNumFaces; - if (3.0 == fACMR) { - char szBuff[128]; // should be sufficiently large in every case - - // the JoinIdenticalVertices process has not been executed on this - // mesh, otherwise this value would normally be at least minimally - // smaller than 3.0 ... - ai_snprintf(szBuff, 128, "Mesh %u: Not suitable for vcache optimization", meshNum); - ASSIMP_LOG_WARN(szBuff); - return static_cast(0.f); - } - return fACMR; -} - // ------------------------------------------------------------------------------------------------ // Improves the cache coherency of a specific mesh -ai_real ImproveCacheLocalityProcess::ProcessMesh(aiMesh *pMesh, unsigned int meshNum) { +ai_real ImproveCacheLocalityProcess::ProcessMesh( aiMesh* pMesh, unsigned int meshNum) { // TODO: rewrite this to use std::vector or boost::shared_array ai_assert(nullptr != pMesh); @@ -169,57 +126,91 @@ ai_real ImproveCacheLocalityProcess::ProcessMesh(aiMesh *pMesh, unsigned int mes return static_cast(0.f); } - if (pMesh->mNumVertices <= mConfigCacheDepth) { + if(pMesh->mNumVertices <= mConfigCacheDepth) { return static_cast(0.f); } ai_real fACMR = 3.f; - const aiFace *const pcEnd = pMesh->mFaces + pMesh->mNumFaces; + const aiFace* const pcEnd = pMesh->mFaces+pMesh->mNumFaces; // Input ACMR is for logging purposes only - if (!DefaultLogger::isNullLogger()) { - fACMR = calculateInputACMR(pMesh, pcEnd, mConfigCacheDepth, meshNum); + if (!DefaultLogger::isNullLogger()) { + + unsigned int* piFIFOStack = new unsigned int[mConfigCacheDepth]; + memset(piFIFOStack,0xff,mConfigCacheDepth*sizeof(unsigned int)); + unsigned int* piCur = piFIFOStack; + const unsigned int* const piCurEnd = piFIFOStack + mConfigCacheDepth; + + // count the number of cache misses + unsigned int iCacheMisses = 0; + for (const aiFace* pcFace = pMesh->mFaces;pcFace != pcEnd;++pcFace) { + for (unsigned int qq = 0; qq < 3;++qq) { + bool bInCache = false; + for (unsigned int* pp = piFIFOStack;pp < piCurEnd;++pp) { + if (*pp == pcFace->mIndices[qq]) { + // the vertex is in cache + bInCache = true; + break; + } + } + if (!bInCache) { + ++iCacheMisses; + if (piCurEnd == piCur) { + piCur = piFIFOStack; + } + *piCur++ = pcFace->mIndices[qq]; + } + } + } + delete[] piFIFOStack; + fACMR = (ai_real) iCacheMisses / pMesh->mNumFaces; + if (3.0 == fACMR) { + char szBuff[128]; // should be sufficiently large in every case + + // the JoinIdenticalVertices process has not been executed on this + // mesh, otherwise this value would normally be at least minimally + // smaller than 3.0 ... + ai_snprintf(szBuff,128,"Mesh %u: Not suitable for vcache optimization",meshNum); + ASSIMP_LOG_WARN(szBuff); + return static_cast(0.f); + } } // first we need to build a vertex-triangle adjacency list - VertexTriangleAdjacency adj(pMesh->mFaces, pMesh->mNumFaces, pMesh->mNumVertices, true); + VertexTriangleAdjacency adj(pMesh->mFaces,pMesh->mNumFaces, pMesh->mNumVertices,true); // build a list to store per-vertex caching time stamps - std::vector piCachingStamps; - piCachingStamps.resize(pMesh->mNumVertices); - memset(&piCachingStamps[0], 0x0, pMesh->mNumVertices * sizeof(unsigned int)); + unsigned int* const piCachingStamps = new unsigned int[pMesh->mNumVertices]; + memset(piCachingStamps,0x0,pMesh->mNumVertices*sizeof(unsigned int)); // allocate an empty output index buffer. We store the output indices in one large array. // Since the number of triangles won't change the input faces can be reused. This is how // we save thousands of redundant mini allocations for aiFace::mIndices - const unsigned int iIdxCnt = pMesh->mNumFaces * 3; - std::vector piIBOutput; - piIBOutput.resize(iIdxCnt); - std::vector::iterator piCSIter = piIBOutput.begin(); + const unsigned int iIdxCnt = pMesh->mNumFaces*3; + unsigned int* const piIBOutput = new unsigned int[iIdxCnt]; + unsigned int* piCSIter = piIBOutput; // allocate the flag array to hold the information // whether a face has already been emitted or not - std::vector abEmitted(pMesh->mNumFaces, false); + std::vector abEmitted(pMesh->mNumFaces,false); // dead-end vertex index stack - std::stack> sDeadEndVStack; + std::stack > sDeadEndVStack; // create a copy of the piNumTriPtr buffer - unsigned int *const piNumTriPtr = adj.mLiveTriangles; + unsigned int* const piNumTriPtr = adj.mLiveTriangles; const std::vector piNumTriPtrNoModify(piNumTriPtr, piNumTriPtr + pMesh->mNumVertices); // get the largest number of referenced triangles and allocate the "candidate buffer" - unsigned int iMaxRefTris = 0; - { - const unsigned int *piCur = adj.mLiveTriangles; - const unsigned int *const piCurEnd = adj.mLiveTriangles + pMesh->mNumVertices; - for (; piCur != piCurEnd; ++piCur) { - iMaxRefTris = std::max(iMaxRefTris, *piCur); + unsigned int iMaxRefTris = 0; { + const unsigned int* piCur = adj.mLiveTriangles; + const unsigned int* const piCurEnd = adj.mLiveTriangles+pMesh->mNumVertices; + for (;piCur != piCurEnd;++piCur) { + iMaxRefTris = std::max(iMaxRefTris,*piCur); } } ai_assert(iMaxRefTris > 0); - std::vector piCandidates; - piCandidates.resize(iMaxRefTris * 3); + unsigned int* piCandidates = new unsigned int[iMaxRefTris*3]; unsigned int iCacheMisses = 0; // ................................................................................... @@ -254,23 +245,23 @@ ai_real ImproveCacheLocalityProcess::ProcessMesh(aiMesh *pMesh, unsigned int mes int ivdx = 0; int ics = 1; - int iStampCnt = mConfigCacheDepth + 1; - while (ivdx >= 0) { + int iStampCnt = mConfigCacheDepth+1; + while (ivdx >= 0) { unsigned int icnt = piNumTriPtrNoModify[ivdx]; - unsigned int *piList = adj.GetAdjacentTriangles(ivdx); - std::vector::iterator piCurCandidate = piCandidates.begin(); + unsigned int* piList = adj.GetAdjacentTriangles(ivdx); + unsigned int* piCurCandidate = piCandidates; // get all triangles in the neighborhood - for (unsigned int tri = 0; tri < icnt; ++tri) { + for (unsigned int tri = 0; tri < icnt;++tri) { // if they have not yet been emitted, add them to the output IB const unsigned int fidx = *piList++; - if (!abEmitted[fidx]) { + if (!abEmitted[fidx]) { // so iterate through all vertices of the current triangle - const aiFace *pcFace = &pMesh->mFaces[fidx]; - const unsigned nind = pcFace->mNumIndices; + const aiFace* pcFace = &pMesh->mFaces[ fidx ]; + unsigned nind = pcFace->mNumIndices; for (unsigned ind = 0; ind < nind; ind++) { unsigned dp = pcFace->mIndices[ind]; @@ -290,7 +281,7 @@ ai_real ImproveCacheLocalityProcess::ProcessMesh(aiMesh *pMesh, unsigned int mes *piCSIter++ = dp; // if the vertex is not yet in cache, set its cache count - if (iStampCnt - piCachingStamps[dp] > mConfigCacheDepth) { + if (iStampCnt-piCachingStamps[dp] > mConfigCacheDepth) { piCachingStamps[dp] = iStampCnt++; ++iCacheMisses; } @@ -306,16 +297,16 @@ ai_real ImproveCacheLocalityProcess::ProcessMesh(aiMesh *pMesh, unsigned int mes // get next fanning vertex ivdx = -1; int max_priority = -1; - for (std::vector::iterator piCur = piCandidates.begin(); piCur != piCurCandidate; ++piCur) { + for (unsigned int* piCur = piCandidates;piCur != piCurCandidate;++piCur) { const unsigned int dp = *piCur; // must have live triangles - if (piNumTriPtr[dp] > 0) { + if (piNumTriPtr[dp] > 0) { int priority = 0; // will the vertex be in cache, even after fanning occurs? unsigned int tmp; - if ((tmp = iStampCnt - piCachingStamps[dp]) + 2 * piNumTriPtr[dp] <= mConfigCacheDepth) { + if ((tmp = iStampCnt-piCachingStamps[dp]) + 2*piNumTriPtr[dp] <= mConfigCacheDepth) { priority = tmp; } @@ -333,7 +324,7 @@ ai_real ImproveCacheLocalityProcess::ProcessMesh(aiMesh *pMesh, unsigned int mes while (!sDeadEndVStack.empty()) { unsigned int iCachedIdx = sDeadEndVStack.top(); sDeadEndVStack.pop(); - if (piNumTriPtr[iCachedIdx] > 0) { + if (piNumTriPtr[ iCachedIdx ] > 0) { ivdx = iCachedIdx; break; } @@ -342,9 +333,9 @@ ai_real ImproveCacheLocalityProcess::ProcessMesh(aiMesh *pMesh, unsigned int mes if (-1 == ivdx) { // well, there isn't such a vertex. Simply get the next vertex in input order and // hope it is not too bad ... - while (ics < (int)pMesh->mNumVertices) { + while (ics < (int)pMesh->mNumVertices) { ++ics; - if (piNumTriPtr[ics] > 0) { + if (piNumTriPtr[ics] > 0) { ivdx = ics; break; } @@ -354,29 +345,29 @@ ai_real ImproveCacheLocalityProcess::ProcessMesh(aiMesh *pMesh, unsigned int mes } ai_real fACMR2 = 0.0f; if (!DefaultLogger::isNullLogger()) { - fACMR2 = static_cast(iCacheMisses / pMesh->mNumFaces); - const ai_real averageACMR = ((fACMR - fACMR2) / fACMR) * 100.f; + fACMR2 = (float)iCacheMisses / pMesh->mNumFaces; + // very intense verbose logging ... prepare for much text if there are many meshes - if (DefaultLogger::get()->getLogSeverity() == Logger::VERBOSE) { - ASSIMP_LOG_VERBOSE_DEBUG("Mesh ", meshNum, "| ACMR in: ", fACMR, " out: ", fACMR2, " | average ACMR ", averageACMR); + if ( DefaultLogger::get()->getLogSeverity() == Logger::VERBOSE) { + ASSIMP_LOG_VERBOSE_DEBUG("Mesh %u | ACMR in: ", meshNum, " out: ", fACMR, " | ~", fACMR2, ((fACMR - fACMR2) / fACMR) * 100.f); } + fACMR2 *= pMesh->mNumFaces; } - // sort the output index buffer back to the input array - piCSIter = piIBOutput.begin(); - for (aiFace *pcFace = pMesh->mFaces; pcFace != pcEnd; ++pcFace) { + piCSIter = piIBOutput; + for (aiFace* pcFace = pMesh->mFaces; pcFace != pcEnd;++pcFace) { unsigned nind = pcFace->mNumIndices; - unsigned *ind = pcFace->mIndices; - if (nind > 0) - ind[0] = *piCSIter++; - if (nind > 1) - ind[1] = *piCSIter++; - if (nind > 2) - ind[2] = *piCSIter++; + unsigned * ind = pcFace->mIndices; + if (nind > 0) ind[0] = *piCSIter++; + if (nind > 1) ind[1] = *piCSIter++; + if (nind > 2) ind[2] = *piCSIter++; } + // delete temporary storage + delete[] piCachingStamps; + delete[] piIBOutput; + delete[] piCandidates; + return fACMR2; } - -} // namespace Assimp diff --git a/3rdparty/assimp/code/PostProcessing/JoinVerticesProcess.cpp b/3rdparty/assimp/code/PostProcessing/JoinVerticesProcess.cpp index 4de6c3e1b..d36915e0c 100644 --- a/3rdparty/assimp/code/PostProcessing/JoinVerticesProcess.cpp +++ b/3rdparty/assimp/code/PostProcessing/JoinVerticesProcess.cpp @@ -53,7 +53,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include -#include using namespace Assimp; @@ -146,7 +145,7 @@ bool areVerticesEqual( } template -void updateXMeshVertices(XMesh *pMesh, std::vector &uniqueVertices) { +void updateXMeshVertices(XMesh *pMesh, std::vector &uniqueVertices) { // replace vertex data with the unique data sets pMesh->mNumVertices = (unsigned int)uniqueVertices.size(); @@ -157,47 +156,53 @@ void updateXMeshVertices(XMesh *pMesh, std::vector &uniqueVertices) { // ---------------------------------------------------------------------------- // Position, if present (check made for aiAnimMesh) - if (pMesh->mVertices) { - std::unique_ptr oldVertices(pMesh->mVertices); + if (pMesh->mVertices) { + delete [] pMesh->mVertices; pMesh->mVertices = new aiVector3D[pMesh->mNumVertices]; - for (unsigned int a = 0; a < pMesh->mNumVertices; a++) - pMesh->mVertices[a] = oldVertices[uniqueVertices[a]]; + for (unsigned int a = 0; a < pMesh->mNumVertices; a++) { + pMesh->mVertices[a] = uniqueVertices[a].position; + } } // Normals, if present if (pMesh->mNormals) { - std::unique_ptr oldNormals(pMesh->mNormals); + delete [] pMesh->mNormals; pMesh->mNormals = new aiVector3D[pMesh->mNumVertices]; - for (unsigned int a = 0; a < pMesh->mNumVertices; a++) - pMesh->mNormals[a] = oldNormals[uniqueVertices[a]]; + for( unsigned int a = 0; a < pMesh->mNumVertices; a++) { + pMesh->mNormals[a] = uniqueVertices[a].normal; + } } // Tangents, if present if (pMesh->mTangents) { - std::unique_ptr oldTangents(pMesh->mTangents); + delete [] pMesh->mTangents; pMesh->mTangents = new aiVector3D[pMesh->mNumVertices]; - for (unsigned int a = 0; a < pMesh->mNumVertices; a++) - pMesh->mTangents[a] = oldTangents[uniqueVertices[a]]; + for (unsigned int a = 0; a < pMesh->mNumVertices; a++) { + pMesh->mTangents[a] = uniqueVertices[a].tangent; + } } // Bitangents as well if (pMesh->mBitangents) { - std::unique_ptr oldBitangents(pMesh->mBitangents); + delete [] pMesh->mBitangents; pMesh->mBitangents = new aiVector3D[pMesh->mNumVertices]; - for (unsigned int a = 0; a < pMesh->mNumVertices; a++) - pMesh->mBitangents[a] = oldBitangents[uniqueVertices[a]]; + for (unsigned int a = 0; a < pMesh->mNumVertices; a++) { + pMesh->mBitangents[a] = uniqueVertices[a].bitangent; + } } // Vertex colors for (unsigned int a = 0; pMesh->HasVertexColors(a); a++) { - std::unique_ptr oldColors(pMesh->mColors[a]); + delete [] pMesh->mColors[a]; pMesh->mColors[a] = new aiColor4D[pMesh->mNumVertices]; - for (unsigned int b = 0; b < pMesh->mNumVertices; b++) - pMesh->mColors[a][b] = oldColors[uniqueVertices[b]]; + for( unsigned int b = 0; b < pMesh->mNumVertices; b++) { + pMesh->mColors[a][b] = uniqueVertices[b].colors[a]; + } } // Texture coords for (unsigned int a = 0; pMesh->HasTextureCoords(a); a++) { - std::unique_ptr oldTextureCoords(pMesh->mTextureCoords[a]); + delete [] pMesh->mTextureCoords[a]; pMesh->mTextureCoords[a] = new aiVector3D[pMesh->mNumVertices]; - for (unsigned int b = 0; b < pMesh->mNumVertices; b++) - pMesh->mTextureCoords[a][b] = oldTextureCoords[uniqueVertices[b]]; + for (unsigned int b = 0; b < pMesh->mNumVertices; b++) { + pMesh->mTextureCoords[a][b] = uniqueVertices[b].texcoords[a]; + } } } @@ -265,7 +270,7 @@ int JoinVerticesProcess::ProcessMesh( aiMesh* pMesh, unsigned int meshIndex) { } // We'll never have more vertices afterwards. - std::vector uniqueVertices; + std::vector uniqueVertices; uniqueVertices.reserve( pMesh->mNumVertices); // For each vertex the index of the vertex it was replaced by. @@ -306,7 +311,7 @@ int JoinVerticesProcess::ProcessMesh( aiMesh* pMesh, unsigned int meshIndex) { const bool hasAnimMeshes = pMesh->mNumAnimMeshes > 0; // We'll never have more vertices afterwards. - std::vector> uniqueAnimatedVertices; + std::vector> uniqueAnimatedVertices; if (hasAnimMeshes) { uniqueAnimatedVertices.resize(pMesh->mNumAnimMeshes); for (unsigned int animMeshIndex = 0; animMeshIndex < pMesh->mNumAnimMeshes; animMeshIndex++) { @@ -340,10 +345,10 @@ int JoinVerticesProcess::ProcessMesh( aiMesh* pMesh, unsigned int meshIndex) { //keep track of its index and increment 1 replaceIndex[a] = newIndex++; // add the vertex to the unique vertices - uniqueVertices.push_back(a); + uniqueVertices.push_back(v); if (hasAnimMeshes) { for (unsigned int animMeshIndex = 0; animMeshIndex < pMesh->mNumAnimMeshes; animMeshIndex++) { - uniqueAnimatedVertices[animMeshIndex].emplace_back(a); + uniqueAnimatedVertices[animMeshIndex].emplace_back(pMesh->mAnimMeshes[animMeshIndex], a); } } } else{ diff --git a/3rdparty/assimp/contrib/draco/.gitattributes b/3rdparty/assimp/contrib/draco/.gitattributes deleted file mode 100644 index 96acfc612..000000000 --- a/3rdparty/assimp/contrib/draco/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.obj eol=lf \ No newline at end of file diff --git a/3rdparty/assimp/contrib/draco/.gitignore b/3rdparty/assimp/contrib/draco/.gitignore deleted file mode 100644 index 522866ee2..000000000 --- a/3rdparty/assimp/contrib/draco/.gitignore +++ /dev/null @@ -1 +0,0 @@ -docs/_site diff --git a/3rdparty/assimp/contrib/draco/.gitmodules b/3rdparty/assimp/contrib/draco/.gitmodules deleted file mode 100644 index 25f0a1c03..000000000 --- a/3rdparty/assimp/contrib/draco/.gitmodules +++ /dev/null @@ -1,12 +0,0 @@ -[submodule "third_party/googletest"] - path = third_party/googletest - url = https://github.com/google/googletest.git -[submodule "third_party/eigen"] - path = third_party/eigen - url = https://gitlab.com/libeigen/eigen.git -[submodule "third_party/tinygltf"] - path = third_party/tinygltf - url = https://github.com/syoyo/tinygltf.git -[submodule "third_party/filesystem"] - path = third_party/filesystem - url = https://github.com/gulrak/filesystem diff --git a/3rdparty/assimp/contrib/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml b/3rdparty/assimp/contrib/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml deleted file mode 100644 index 586779ad2..000000000 --- a/3rdparty/assimp/contrib/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Bug Report -description: Let us know that something does not work as expected. -title: "[Bug]: Please title this bug report" -body: - - type: textarea - id: what-happened - attributes: - label: Describe the issue - description: What happened, and what did you expect to happen? - validations: - required: true - - type: textarea - id: steps - attributes: - label: Steps to reproduce the problem - description: It is important that we are able to reproduce the problem that you are experiencing. Please provide all code and relevant steps to reproduce the problem, including your `BUILD`/`CMakeLists.txt` file and build commands. Links to a GitHub branch or [godbolt.org](https://godbolt.org/) that demonstrate the problem are also helpful. - validations: - required: true - - type: textarea - id: version - attributes: - label: What version of GoogleTest are you using? - description: Please include the output of `git rev-parse HEAD` or the GoogleTest release version number that you are using. - validations: - required: true - - type: textarea - id: os - attributes: - label: What operating system and version are you using? - description: If you are using a Linux distribution please include the name and version of the distribution as well. - validations: - required: true - - type: textarea - id: compiler - attributes: - label: What compiler and version are you using? - description: Please include the output of `gcc -v` or `clang -v`, or the equivalent for your compiler. - validations: - required: true - - type: textarea - id: buildsystem - attributes: - label: What build system are you using? - description: Please include the output of `bazel --version` or `cmake --version`, or the equivalent for your build system. - validations: - required: true - - type: textarea - id: additional - attributes: - label: Additional context - description: Add any other context about the problem here. - validations: - required: false diff --git a/3rdparty/assimp/contrib/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml b/3rdparty/assimp/contrib/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml deleted file mode 100644 index f3bbc091e..000000000 --- a/3rdparty/assimp/contrib/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Feature request -description: Propose a new feature. -title: "[FR]: Please title this feature request" -labels: "enhancement" -body: - - type: textarea - id: version - attributes: - label: Does the feature exist in the most recent commit? - description: We recommend using the latest commit from GitHub in your projects. - validations: - required: true - - type: textarea - id: why - attributes: - label: Why do we need this feature? - description: Ideally, explain why a combination of existing features cannot be used instead. - validations: - required: true - - type: textarea - id: proposal - attributes: - label: Describe the proposal. - description: Include a detailed description of the feature, with usage examples. - validations: - required: true - - type: textarea - id: platform - attributes: - label: Is the feature specific to an operating system, compiler, or build system version? - description: If it is, please specify which versions. - validations: - required: true diff --git a/3rdparty/assimp/contrib/googletest/.github/ISSUE_TEMPLATE/config.yml b/3rdparty/assimp/contrib/googletest/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 65170d10a..000000000 --- a/3rdparty/assimp/contrib/googletest/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Get Help - url: https://github.com/google/googletest/discussions - about: Please ask and answer questions here. diff --git a/3rdparty/assimp/contrib/googletest/.github/workflows/gtest-ci.yml b/3rdparty/assimp/contrib/googletest/.github/workflows/gtest-ci.yml deleted file mode 100644 index 03a8cc5e2..000000000 --- a/3rdparty/assimp/contrib/googletest/.github/workflows/gtest-ci.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: ci - -on: - push: - pull_request: - -env: - BAZEL_CXXOPTS: -std=c++14 - -jobs: - Linux: - runs-on: ubuntu-latest - steps: - - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Tests - run: bazel test --cxxopt=-std=c++14 --features=external_include_paths --test_output=errors ... - - macOS: - runs-on: macos-latest - steps: - - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Tests - run: bazel test --cxxopt=-std=c++14 --features=external_include_paths --test_output=errors ... - - - Windows: - runs-on: windows-latest - steps: - - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Tests - run: bazel test --cxxopt=/std:c++14 --features=external_include_paths --test_output=errors ... diff --git a/3rdparty/assimp/contrib/googletest/.gitignore b/3rdparty/assimp/contrib/googletest/.gitignore deleted file mode 100644 index fede02f65..000000000 --- a/3rdparty/assimp/contrib/googletest/.gitignore +++ /dev/null @@ -1,88 +0,0 @@ -# Ignore CI build directory -build/ -xcuserdata -cmake-build-debug/ -.idea/ -bazel-bin -bazel-genfiles -bazel-googletest -bazel-out -bazel-testlogs -# python -*.pyc - -# Visual Studio files -.vs -*.sdf -*.opensdf -*.VC.opendb -*.suo -*.user -_ReSharper.Caches/ -Win32-Debug/ -Win32-Release/ -x64-Debug/ -x64-Release/ - -# VSCode files -.cache/ -cmake-variants.yaml - -# Ignore autoconf / automake files -Makefile.in -aclocal.m4 -configure -build-aux/ -autom4te.cache/ -googletest/m4/libtool.m4 -googletest/m4/ltoptions.m4 -googletest/m4/ltsugar.m4 -googletest/m4/ltversion.m4 -googletest/m4/lt~obsolete.m4 -googlemock/m4 - -# Ignore generated directories. -googlemock/fused-src/ -googletest/fused-src/ - -# macOS files -.DS_Store -googletest/.DS_Store -googletest/xcode/.DS_Store - -# Ignore cmake generated directories and files. -CMakeFiles -CTestTestfile.cmake -Makefile -cmake_install.cmake -googlemock/CMakeFiles -googlemock/CTestTestfile.cmake -googlemock/Makefile -googlemock/cmake_install.cmake -googlemock/gtest -/bin -/googlemock/gmock.dir -/googlemock/gmock_main.dir -/googlemock/RUN_TESTS.vcxproj.filters -/googlemock/RUN_TESTS.vcxproj -/googlemock/INSTALL.vcxproj.filters -/googlemock/INSTALL.vcxproj -/googlemock/gmock_main.vcxproj.filters -/googlemock/gmock_main.vcxproj -/googlemock/gmock.vcxproj.filters -/googlemock/gmock.vcxproj -/googlemock/gmock.sln -/googlemock/ALL_BUILD.vcxproj.filters -/googlemock/ALL_BUILD.vcxproj -/lib -/Win32 -/ZERO_CHECK.vcxproj.filters -/ZERO_CHECK.vcxproj -/RUN_TESTS.vcxproj.filters -/RUN_TESTS.vcxproj -/INSTALL.vcxproj.filters -/INSTALL.vcxproj -/googletest-distribution.sln -/CMakeCache.txt -/ALL_BUILD.vcxproj.filters -/ALL_BUILD.vcxproj diff --git a/3rdparty/assimp/contrib/unzip/ioapi.h b/3rdparty/assimp/contrib/unzip/ioapi.h index 548dafb5e..ae9ca7e83 100644 --- a/3rdparty/assimp/contrib/unzip/ioapi.h +++ b/3rdparty/assimp/contrib/unzip/ioapi.h @@ -50,7 +50,7 @@ #define ftello64 ftell #define fseeko64 fseek #else -#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__HAIKU__) +#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) #define fopen64 fopen #define ftello64 ftello #define fseeko64 fseeko diff --git a/3rdparty/assimp/contrib/zip/appveyor.yml b/3rdparty/assimp/contrib/zip/appveyor.yml deleted file mode 100644 index ea17f5de9..000000000 --- a/3rdparty/assimp/contrib/zip/appveyor.yml +++ /dev/null @@ -1,14 +0,0 @@ -version: zip-0.1.15.{build} -build_script: -- cmd: >- - cd c:\projects\zip - - mkdir build - - cd build - - cmake -G"Visual Studio 14" -DCMAKE_BUILD_TYPE=Debug .. - - cmake --build . --config %CMAKE_BUILD_TYPE% - - ctest --verbose -C "Debug" diff --git a/3rdparty/assimp/include/assimp/config.h.in b/3rdparty/assimp/include/assimp/config.h.in index cb46d8057..97551e602 100644 --- a/3rdparty/assimp/include/assimp/config.h.in +++ b/3rdparty/assimp/include/assimp/config.h.in @@ -1085,19 +1085,6 @@ enum aiComponent */ #define AI_CONFIG_USE_GLTF_PBR_SPECULAR_GLOSSINESS "USE_GLTF_PBR_SPECULAR_GLOSSINESS" -/** @brief Specifies whether to apply a limit on the number of four bones per vertex in skinning - * - * When this flag is not defined, all bone weights and indices are limited to a - * maximum of four bones for each vertex (attributes JOINT_0 and WEIGHT_0 only). - * By enabling this flag, the number of bones per vertex is unlimited. - * In both cases, indices and bone weights are sorted by weight in descending order. - * In the case of the limit of up to four bones, a maximum of the four largest values are exported. - * Weights are not normalized. - * Property type: Bool. Default value: false. - */ -#define AI_CONFIG_EXPORT_GLTF_UNLIMITED_SKINNING_BONES_PER_VERTEX \ - "USE_UNLIMITED_BONES_PER VERTEX" - /** * @brief Specifies the blob name, assimp uses for exporting. * diff --git a/3rdparty/assimp/include/assimp/defs.h b/3rdparty/assimp/include/assimp/defs.h index e1aaafd44..ad8ca5f78 100644 --- a/3rdparty/assimp/include/assimp/defs.h +++ b/3rdparty/assimp/include/assimp/defs.h @@ -343,4 +343,4 @@ constexpr ai_real ai_epsilon = (ai_real) 1e-6; #define AI_COUNT_OF(X) (sizeof(X) / sizeof((X)[0])) -#endif // !! AI_DEFINES_H_INC \ No newline at end of file +#endif // !! AI_DEFINES_H_INC diff --git a/3rdparty/assimp/scripts/android_crosscompile/.gitignore b/3rdparty/assimp/scripts/android_crosscompile/.gitignore deleted file mode 100644 index 6caf68aff..000000000 --- a/3rdparty/assimp/scripts/android_crosscompile/.gitignore +++ /dev/null @@ -1 +0,0 @@ -output \ No newline at end of file diff --git a/3rdparty/assimp/test/.gitignore b/3rdparty/assimp/test/.gitignore deleted file mode 100644 index b652d6aae..000000000 --- a/3rdparty/assimp/test/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Ignore Unit Test Output files - -*_out.* diff --git a/3rdparty/assimp/test/headercheck/.gitignore b/3rdparty/assimp/test/headercheck/.gitignore deleted file mode 100644 index 879a87fd5..000000000 --- a/3rdparty/assimp/test/headercheck/.gitignore +++ /dev/null @@ -1 +0,0 @@ -src-generated/ diff --git a/3rdparty/assimp/test/models/glTF2/simple_skin/quad_skin.glb b/3rdparty/assimp/test/models/glTF2/simple_skin/quad_skin.glb deleted file mode 100644 index 407cebc76..000000000 Binary files a/3rdparty/assimp/test/models/glTF2/simple_skin/quad_skin.glb and /dev/null differ diff --git a/3rdparty/assimp/test/unit/utglTF2ImportExport.cpp b/3rdparty/assimp/test/unit/utglTF2ImportExport.cpp index 6778e2679..ba1c859ad 100644 --- a/3rdparty/assimp/test/unit/utglTF2ImportExport.cpp +++ b/3rdparty/assimp/test/unit/utglTF2ImportExport.cpp @@ -43,7 +43,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include -#include #include #include #include @@ -505,143 +504,6 @@ TEST_F(utglTF2ImportExport, bug_import_simple_skin) { EXPECT_NE(nullptr, scene); } -bool checkSkinnedScene(const aiScene *scene){ - float eps = 0.001f; - bool result = true; - EXPECT_EQ(scene->mNumMeshes, 1u); - EXPECT_EQ(scene->mMeshes[0]->mNumBones, 10u); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 4u); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[0].x - -1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[0].y - -1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[0].z - 0), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[1].x - 1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[1].y - -1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[1].z - 0), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[2].x - 1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[2].y - 1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[2].z - 0), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[3].x - -1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[3].y - 1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[3].z - 0), eps); - - unsigned int numWeights[] = {4u, 4u, 4u, 4u, 2u , 1u, 1u, 2u, 1u, 1u}; - float weights[10][4] = {{0.207f, 0.291f, 0.057f, 0.303f}, - {0.113f, 0.243f, 0.499f, 0.251f}, - {0.005f, 0.010f, 0.041f, 0.093f}, - {0.090f, 0.234f, 0.404f, 0.243f}, - {0.090f, 0.222f, 0.000f, 0.000f}, - {0.216f, 0.000f, 0.000f, 0.000f}, - {0.058f, 0.000f, 0.000f, 0.000f}, - {0.086f, 0.000f, 0.000f, 0.111f}, - {0.088f, 0.000f, 0.000f, 0.000f}, - {0.049f, 0.000f, 0.000f, 0.000f}}; - for (size_t boneIndex = 0; boneIndex < 10u; ++boneIndex) { - EXPECT_EQ(scene->mMeshes[0]->mBones[boneIndex]->mNumWeights, numWeights[boneIndex]); - std::map map; - for (size_t jointIndex = 0; jointIndex < scene->mMeshes[0]->mBones[boneIndex]->mNumWeights; ++jointIndex){ - auto key = scene->mMeshes[0]->mBones[boneIndex]->mWeights[jointIndex].mVertexId; - auto weight = scene->mMeshes[0]->mBones[boneIndex]->mWeights[jointIndex].mWeight; - map[key] = weight; - } - - for (unsigned int jointIndex = 0; jointIndex < scene->mMeshes[0]->mBones[boneIndex]->mNumWeights; ++jointIndex) { - auto weight = map[jointIndex]; - EXPECT_LT(abs(ai_real(weight) - ai_real(weights[boneIndex][jointIndex])), 0.002); - } - } - - return result; -} - -void checkSkinnedSceneLimited(const aiScene *scene){ - float eps = 0.001f; - EXPECT_EQ(scene->mNumMeshes, 1u); - EXPECT_EQ(scene->mMeshes[0]->mNumBones, 10u); - EXPECT_EQ(scene->mMeshes[0]->mNumVertices, 4u); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[0].x - -1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[0].y - -1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[0].z - 0), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[1].x - 1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[1].y - -1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[1].z - 0), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[2].x - 1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[2].y - 1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[2].z - 0), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[3].x - -1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[3].y - 1), eps); - EXPECT_LT(abs(scene->mMeshes[0]->mVertices[3].z - 0), eps); - - unsigned int numWeights[] = {4u, 4u, 1u, 4u, 1u , 1u, 1u, 1u, 1u, 1u}; - float weights[10][4] = {{0.207f, 0.291f, 0.057f, 0.303f}, - {0.113f, 0.243f, 0.499f, 0.251f}, - {0.000f, 0.000f, 0.041f, 0.000f}, - {0.090f, 0.234f, 0.404f, 0.243f}, - {0.000f, 0.222f, 0.000f, 0.000f}, - {0.216f, 0.000f, 0.000f, 0.000f}, - {0.000f, 0.000f, 0.000f, 0.000f}, - {0.000f, 0.000f, 0.000f, 0.111f}, - {0.000f, 0.000f, 0.000f, 0.000f}, - {0.000f, 0.000f, 0.000f, 0.000f}}; - for (unsigned int boneIndex = 0; boneIndex < 10u; ++boneIndex) { - EXPECT_EQ(scene->mMeshes[0]->mBones[boneIndex]->mNumWeights, numWeights[boneIndex]); - std::map map; - for (unsigned int jointIndex = 0; jointIndex < scene->mMeshes[0]->mBones[boneIndex]->mNumWeights; ++jointIndex){ - auto key = scene->mMeshes[0]->mBones[boneIndex]->mWeights[jointIndex].mVertexId; - auto weight = scene->mMeshes[0]->mBones[boneIndex]->mWeights[jointIndex].mWeight; - map[key] = weight; - } - for (unsigned int jointIndex = 0; jointIndex < scene->mMeshes[0]->mBones[boneIndex]->mNumWeights; ++jointIndex) { - auto weight = map[jointIndex]; - EXPECT_LT(std::abs(ai_real(weight) - ai_real(weights[boneIndex][jointIndex])), 0.002); - } - } -} - -TEST_F(utglTF2ImportExport, bug_import_simple_skin2) { - Assimp::Importer importer; - Assimp::Exporter exporter; - const aiScene *scene = importer.ReadFile( - ASSIMP_TEST_MODELS_DIR "/glTF2/simple_skin/quad_skin.glb", - aiProcess_ValidateDataStructure); - checkSkinnedScene(scene); - - ASSERT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "glb2", - ASSIMP_TEST_MODELS_DIR "/glTF2/simple_skin/quad_four_out.glb")); - ASSERT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "gltf2", - ASSIMP_TEST_MODELS_DIR "/glTF2/simple_skin/quad_four_out.gltf")); - - // enable more than four bones per vertex - Assimp::ExportProperties properties = Assimp::ExportProperties(); - properties.SetPropertyBool( - AI_CONFIG_EXPORT_GLTF_UNLIMITED_SKINNING_BONES_PER_VERTEX, true); - ASSERT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "glb2", - ASSIMP_TEST_MODELS_DIR "/glTF2/simple_skin/quad_all_out.glb", 0u, &properties)); - ASSERT_EQ(aiReturn_SUCCESS, exporter.Export(scene, "gltf2", - ASSIMP_TEST_MODELS_DIR "/glTF2/simple_skin/quad_all_out.gltf", 0u, &properties)); - - // check skinning data of both exported files for limited number bones per vertex - const aiScene *limitedSceneImported = importer.ReadFile( - ASSIMP_TEST_MODELS_DIR "/glTF2/simple_skin/quad_four_out.gltf", - aiProcess_ValidateDataStructure); - checkSkinnedSceneLimited(limitedSceneImported); - limitedSceneImported = importer.ReadFile( - ASSIMP_TEST_MODELS_DIR "/glTF2/simple_skin/quad_four_out.glb", - aiProcess_ValidateDataStructure); - checkSkinnedSceneLimited(limitedSceneImported); - - // check skinning data of both exported files for unlimited number bones per vertex - const aiScene *sceneImported = importer.ReadFile( - ASSIMP_TEST_MODELS_DIR "/glTF2/simple_skin/quad_all_out.gltf", - aiProcess_ValidateDataStructure); - checkSkinnedScene(sceneImported); - sceneImported = importer.ReadFile( - ASSIMP_TEST_MODELS_DIR "/glTF2/simple_skin/quad_all_out.glb", - aiProcess_ValidateDataStructure); - checkSkinnedScene(sceneImported); - - -} - TEST_F(utglTF2ImportExport, import_cameras) { Assimp::Importer importer; const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/glTF2/cameras/Cameras.gltf", diff --git a/Plugins/AudiArt/src/Headers/AudiArtBuild.h b/Plugins/AudiArt/src/Headers/AudiArtBuild.h index c4601dc0f..a00f2ada9 100644 --- a/Plugins/AudiArt/src/Headers/AudiArtBuild.h +++ b/Plugins/AudiArt/src/Headers/AudiArtBuild.h @@ -1,7 +1,7 @@ #pragma once #define AudiArt_Prefix "AudiArt" -#define AudiArt_BuildNumber 117 +#define AudiArt_BuildNumber 120 #define AudiArt_MinorNumber 0 #define AudiArt_MajorNumber 0 -#define AudiArt_BuildId "0.0.117" +#define AudiArt_BuildId "0.0.120" diff --git a/Plugins/CodeGenerator/src/Headers/CodeGeneratorBuild.h b/Plugins/CodeGenerator/src/Headers/CodeGeneratorBuild.h index 69f9835c1..b63809094 100644 --- a/Plugins/CodeGenerator/src/Headers/CodeGeneratorBuild.h +++ b/Plugins/CodeGenerator/src/Headers/CodeGeneratorBuild.h @@ -1,7 +1,7 @@ #pragma once #define CodeGenerator_Prefix "CodeGenerator" -#define CodeGenerator_BuildNumber 735 +#define CodeGenerator_BuildNumber 738 #define CodeGenerator_MinorNumber 0 #define CodeGenerator_MajorNumber 0 -#define CodeGenerator_BuildId "0.0.735" +#define CodeGenerator_BuildId "0.0.738" diff --git a/Plugins/Landscape/src/Headers/LandscapeBuild.h b/Plugins/Landscape/src/Headers/LandscapeBuild.h index 560efb7f4..c122b708e 100644 --- a/Plugins/Landscape/src/Headers/LandscapeBuild.h +++ b/Plugins/Landscape/src/Headers/LandscapeBuild.h @@ -1,7 +1,7 @@ #pragma once #define Landscape_Prefix "Landscape" -#define Landscape_BuildNumber 19 +#define Landscape_BuildNumber 22 #define Landscape_MinorNumber 0 #define Landscape_MajorNumber 0 -#define Landscape_BuildId "0.0.19" +#define Landscape_BuildId "0.0.22" diff --git a/Plugins/Lighting/src/Headers/LightingBuild.h b/Plugins/Lighting/src/Headers/LightingBuild.h index d7a746c02..265294d8e 100644 --- a/Plugins/Lighting/src/Headers/LightingBuild.h +++ b/Plugins/Lighting/src/Headers/LightingBuild.h @@ -1,7 +1,7 @@ #pragma once #define Lighting_Prefix "Lighting" -#define Lighting_BuildNumber 647 +#define Lighting_BuildNumber 650 #define Lighting_MinorNumber 0 #define Lighting_MajorNumber 0 -#define Lighting_BuildId "0.0.647" +#define Lighting_BuildId "0.0.650" diff --git a/Plugins/MeshGen/src/Headers/MeshGenBuild.h b/Plugins/MeshGen/src/Headers/MeshGenBuild.h index 7ad7ca8e5..4c8e0991e 100644 --- a/Plugins/MeshGen/src/Headers/MeshGenBuild.h +++ b/Plugins/MeshGen/src/Headers/MeshGenBuild.h @@ -1,7 +1,7 @@ #pragma once #define MeshGen_Prefix "MeshGen" -#define MeshGen_BuildNumber 401 +#define MeshGen_BuildNumber 404 #define MeshGen_MinorNumber 0 #define MeshGen_MajorNumber 0 -#define MeshGen_BuildId "0.0.401" +#define MeshGen_BuildId "0.0.404" diff --git a/Plugins/Misc/src/Headers/MiscBuild.h b/Plugins/Misc/src/Headers/MiscBuild.h index d795175f8..1f274331d 100644 --- a/Plugins/Misc/src/Headers/MiscBuild.h +++ b/Plugins/Misc/src/Headers/MiscBuild.h @@ -1,7 +1,7 @@ #pragma once #define Misc_Prefix "Misc" -#define Misc_BuildNumber 200 +#define Misc_BuildNumber 203 #define Misc_MinorNumber 1 #define Misc_MajorNumber 0 -#define Misc_BuildId "0.1.200" +#define Misc_BuildId "0.1.203" diff --git a/Plugins/Particles/src/Headers/ParticlesBuild.h b/Plugins/Particles/src/Headers/ParticlesBuild.h index a106ca569..4ac88d4af 100644 --- a/Plugins/Particles/src/Headers/ParticlesBuild.h +++ b/Plugins/Particles/src/Headers/ParticlesBuild.h @@ -1,7 +1,7 @@ #pragma once #define Particles_Prefix "Particles" -#define Particles_BuildNumber 429 +#define Particles_BuildNumber 432 #define Particles_MinorNumber 0 #define Particles_MajorNumber 0 -#define Particles_BuildId "0.0.429" +#define Particles_BuildId "0.0.432" diff --git a/Plugins/PlanetSystem/src/Headers/PlanetSystemBuild.h b/Plugins/PlanetSystem/src/Headers/PlanetSystemBuild.h index c49661220..4e142d7af 100644 --- a/Plugins/PlanetSystem/src/Headers/PlanetSystemBuild.h +++ b/Plugins/PlanetSystem/src/Headers/PlanetSystemBuild.h @@ -1,7 +1,7 @@ #pragma once #define PlanetSystem_Prefix "PlanetSystem" -#define PlanetSystem_BuildNumber 186 +#define PlanetSystem_BuildNumber 189 #define PlanetSystem_MinorNumber 0 #define PlanetSystem_MajorNumber 0 -#define PlanetSystem_BuildId "0.0.186" +#define PlanetSystem_BuildId "0.0.189" diff --git a/Plugins/PostProcessing/src/Headers/PostProcessingBuild.h b/Plugins/PostProcessing/src/Headers/PostProcessingBuild.h index a347776b7..b457c1bb2 100644 --- a/Plugins/PostProcessing/src/Headers/PostProcessingBuild.h +++ b/Plugins/PostProcessing/src/Headers/PostProcessingBuild.h @@ -1,7 +1,7 @@ #pragma once #define PostProcessing_Prefix "PostProcessing" -#define PostProcessing_BuildNumber 696 +#define PostProcessing_BuildNumber 699 #define PostProcessing_MinorNumber 1 #define PostProcessing_MajorNumber 0 -#define PostProcessing_BuildId "0.1.696" +#define PostProcessing_BuildId "0.1.699" diff --git a/Plugins/RTX/src/Headers/RTXBuild.h b/Plugins/RTX/src/Headers/RTXBuild.h index fed8dc108..d8c8c5598 100644 --- a/Plugins/RTX/src/Headers/RTXBuild.h +++ b/Plugins/RTX/src/Headers/RTXBuild.h @@ -1,7 +1,7 @@ #pragma once #define RTX_Prefix "RTX" -#define RTX_BuildNumber 469 +#define RTX_BuildNumber 472 #define RTX_MinorNumber 0 #define RTX_MajorNumber 0 -#define RTX_BuildId "0.0.469" +#define RTX_BuildId "0.0.472" diff --git a/Plugins/ScreenSpace/src/Headers/ScreenSpaceBuild.h b/Plugins/ScreenSpace/src/Headers/ScreenSpaceBuild.h index 662ef17c7..c823a7292 100644 --- a/Plugins/ScreenSpace/src/Headers/ScreenSpaceBuild.h +++ b/Plugins/ScreenSpace/src/Headers/ScreenSpaceBuild.h @@ -1,7 +1,7 @@ #pragma once #define ScreenSpace_Prefix "ScreenSpace" -#define ScreenSpace_BuildNumber 172 +#define ScreenSpace_BuildNumber 175 #define ScreenSpace_MinorNumber 0 #define ScreenSpace_MajorNumber 0 -#define ScreenSpace_BuildId "0.0.172" +#define ScreenSpace_BuildId "0.0.175" diff --git a/Plugins/Simulation/src/Headers/SimulationBuild.h b/Plugins/Simulation/src/Headers/SimulationBuild.h index 4b987d575..badd21e7a 100644 --- a/Plugins/Simulation/src/Headers/SimulationBuild.h +++ b/Plugins/Simulation/src/Headers/SimulationBuild.h @@ -1,7 +1,7 @@ #pragma once #define Simulation_Prefix "Simulation" -#define Simulation_BuildNumber 458 +#define Simulation_BuildNumber 461 #define Simulation_MinorNumber 1 #define Simulation_MajorNumber 0 -#define Simulation_BuildId "0.1.458" +#define Simulation_BuildId "0.1.461" diff --git a/Plugins/Smoke/src/Headers/SmokeBuild.h b/Plugins/Smoke/src/Headers/SmokeBuild.h index 49caf7a36..d836cbffa 100644 --- a/Plugins/Smoke/src/Headers/SmokeBuild.h +++ b/Plugins/Smoke/src/Headers/SmokeBuild.h @@ -1,7 +1,7 @@ #pragma once #define Smoke_Prefix "Smoke" -#define Smoke_BuildNumber 44 +#define Smoke_BuildNumber 47 #define Smoke_MinorNumber 0 #define Smoke_MajorNumber 0 -#define Smoke_BuildId "0.0.44" +#define Smoke_BuildId "0.0.47" diff --git a/VERSION b/VERSION index 316e7ecb7..5fbcae2d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Lumo_Windows_Debug_x64_v0.0.5563 +Lumo_Windows_Debug_x64_v0.0.5568 diff --git a/cmake/3rdparty/assimp.cmake b/cmake/3rdparty/assimp.cmake index 8adef1cfa..e0e28b431 100644 --- a/cmake/3rdparty/assimp.cmake +++ b/cmake/3rdparty/assimp.cmake @@ -33,6 +33,10 @@ set(ASSIMP_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/3rdparty/assimp/include) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/assimp EXCLUDE_FROM_ALL) +if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + target_compile_options(${ASSIMP_LIBRARIES} PRIVATE -Wno-unsafe-buffer-usage -Wno-unreachable-code-break) +endif() + set_target_properties(${ASSIMP_LIBRARIES} PROPERTIES FOLDER 3rdparty) set_target_properties(${ASSIMP_LIBRARIES} PROPERTIES RUNTIME_OUTPUT_NAME_DEBUG "assimpd") diff --git a/libs/Gaia b/libs/Gaia index a131a4850..25677896e 160000 --- a/libs/Gaia +++ b/libs/Gaia @@ -1 +1 @@ -Subproject commit a131a48503e422ae63ed8870d69a7f894217a98b +Subproject commit 25677896ecbaf175a0f884129be92bcdf7ca4cab diff --git a/libs/LumoBackend/CMakeLists.txt b/libs/LumoBackend/CMakeLists.txt index db6f68801..8f315a23d 100644 --- a/libs/LumoBackend/CMakeLists.txt +++ b/libs/LumoBackend/CMakeLists.txt @@ -28,7 +28,6 @@ source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/src PREFIX src FILES ${PROJECT_SRC add_definitions(-DPROJECT_PATH="${CMAKE_SOURCE_DIR}") add_definitions(-DIMGUI_DEFINE_MATH_OPERATORS) add_definitions(${GLFW_DEFINITIONS}) -add_definitions(-DPROJECT_NAME="${PROJECT}") add_definitions(-DUSE_STD_FILESYSTEM) add_definitions(-DUSE_VULKAN) add_definitions(-DVULKAN) diff --git a/libs/LumoBackend/include/LumoBackend/Base/BaseRenderer.h b/libs/LumoBackend/include/LumoBackend/Base/BaseRenderer.h index 0969a5858..d381d3ebf 100644 --- a/libs/LumoBackend/include/LumoBackend/Base/BaseRenderer.h +++ b/libs/LumoBackend/include/LumoBackend/Base/BaseRenderer.h @@ -50,10 +50,6 @@ limitations under the License. // pouront etre bloqué en code pour specialisation class LUMO_BACKEND_API BaseRenderer : public conf::ConfigAbstract, public GuiInterface, public ShaderUpdateInterface, public ResizerInterface { -private: - bool m_NeedNewUBOUpload = true; // true for first render - bool m_NeedNewSBOUpload = true; // true for first render - protected: BaseRendererWeak m_This; // pointer to this for affected in other op @@ -177,11 +173,11 @@ class LUMO_BACKEND_API BaseRenderer : public conf::ConfigAbstract, public GuiInt virtual void ResetFrame(); - void UpdateShaders(const std::set& vFiles); + void UpdateShaders(const std::set& vFiles) override; - std::string getXml(const std::string& vOffset, const std::string& vUserDatas); + std::string getXml(const std::string& vOffset, const std::string& vUserDatas) override; // return true for continue xml parsing of childs in this node or false for interupt the child exploration - bool setFromXml(tinyxml2::XMLElement* vElem, tinyxml2::XMLElement* vParent, const std::string& vUserDatas); + bool setFromXml(tinyxml2::XMLElement* vElem, tinyxml2::XMLElement* vParent, const std::string& vUserDatas) override; protected: virtual void DoBeforeEndCommandBuffer(vk::CommandBuffer* vCmdBufferPtr); diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeLink.h b/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeLink.h index 7a6691823..1be0700d9 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeLink.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeLink.h @@ -41,5 +41,5 @@ class LUMO_BACKEND_API NodeLink { public: NodeLink(); - ~NodeLink(); + virtual ~NodeLink(); }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlot.h b/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlot.h index fe05acf17..494cdb5b9 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlot.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlot.h @@ -128,7 +128,7 @@ class LUMO_BACKEND_API NodeSlot : public conf::ConfigAbstract { bool virtualUniform = false; // virtual si l'uniform n'est pas utilisé private: - bool m_Selected = false; // will select visually the slot, signify he is the output of the graph + //bool m_Selected = false; // will select visually the slot, signify he is the output of the graph public: explicit NodeSlot(); @@ -136,7 +136,7 @@ class LUMO_BACKEND_API NodeSlot : public conf::ConfigAbstract { explicit NodeSlot(std::string vName, std::string vType); explicit NodeSlot(std::string vName, std::string vType, bool vHideName); explicit NodeSlot(std::string vName, std::string vType, bool vHideName, bool vShowWidget); - ~NodeSlot(); + virtual ~NodeSlot(); void Init(); void Unit(); diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlotInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlotInput.h index 772c7dbb7..52d8b924c 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlotInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlotInput.h @@ -35,10 +35,10 @@ class LUMO_BACKEND_API NodeSlotInput : public NodeSlot { explicit NodeSlotInput(const std::string& vName, const std::string& vType); explicit NodeSlotInput(const std::string& vName, const std::string& vType, const bool& vHideName); explicit NodeSlotInput(const std::string& vName, const std::string& vType, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotInput(); + virtual ~NodeSlotInput(); void Init(); void Unit(); - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlotOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlotOutput.h index ed42d60cc..ded6a9cd2 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlotOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeSlotOutput.h @@ -35,10 +35,10 @@ class LUMO_BACKEND_API NodeSlotOutput : public NodeSlot { explicit NodeSlotOutput(const std::string& vName, const std::string& vType); explicit NodeSlotOutput(const std::string& vName, const std::string& vType, const bool& vHideName); explicit NodeSlotOutput(const std::string& vName, const std::string& vType, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotOutput(); + virtual ~NodeSlotOutput(); void Init(); void Unit(); - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeStamp.h b/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeStamp.h index e29f15fd2..5a7a5e90e 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeStamp.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Base/NodeStamp.h @@ -30,7 +30,7 @@ class LUMO_BACKEND_API NodeStamp { public: NodeStamp(); - ~NodeStamp(); + virtual ~NodeStamp(); void DrawImGui(); }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Layout/GraphLayout.h b/libs/LumoBackend/include/LumoBackend/Graph/Layout/GraphLayout.h index a31099c9a..682321671 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Layout/GraphLayout.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Layout/GraphLayout.h @@ -89,5 +89,5 @@ class LUMO_BACKEND_API GraphLayout { GraphLayout &operator=(const GraphLayout &) { return *this; }; // Prevent assignment - ~GraphLayout() = default; // Prevent unwanted destruction + virtual ~GraphLayout() = default; // Prevent unwanted destruction }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Library/LibraryCategory.h b/libs/LumoBackend/include/LumoBackend/Graph/Library/LibraryCategory.h index 03b5e7883..3b5c9e296 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Library/LibraryCategory.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Library/LibraryCategory.h @@ -74,7 +74,7 @@ class LUMO_BACKEND_API LibraryCategory { public: LibraryCategory(); - ~LibraryCategory(); + virtual ~LibraryCategory(); void Clear(); LibraryCategory* AddCategory(const std::string& vCategoryName); void AddShader(const std::string& vShaderName, const std::string& vShaderPath); diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotLightGroupInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotLightGroupInput.h index c0c296fa2..a0bf76304 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotLightGroupInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotLightGroupInput.h @@ -36,7 +36,7 @@ class LUMO_BACKEND_API NodeSlotLightGroupInput : public NodeSlotInput { explicit NodeSlotLightGroupInput(const std::string& vName); explicit NodeSlotLightGroupInput(const std::string& vName, const bool& vHideName); explicit NodeSlotLightGroupInput(const std::string& vName, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotLightGroupInput(); + virtual ~NodeSlotLightGroupInput(); void Init(); void Unit(); @@ -45,7 +45,7 @@ class LUMO_BACKEND_API NodeSlotLightGroupInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotLightGroupOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotLightGroupOutput.h index 617807b0d..932c0f164 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotLightGroupOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotLightGroupOutput.h @@ -36,12 +36,12 @@ class LUMO_BACKEND_API NodeSlotLightGroupOutput : public NodeSlotOutput { explicit NodeSlotLightGroupOutput(const std::string& vName); explicit NodeSlotLightGroupOutput(const std::string& vName, const bool& vHideName); explicit NodeSlotLightGroupOutput(const std::string& vName, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotLightGroupOutput(); + virtual ~NodeSlotLightGroupOutput(); void Init(); void Unit(); void SendFrontNotification(const NotifyEvent& vEvent) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotModelInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotModelInput.h index 59acfed67..79e390ff2 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotModelInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotModelInput.h @@ -36,7 +36,7 @@ class LUMO_BACKEND_API NodeSlotModelInput : public NodeSlotInput { explicit NodeSlotModelInput(const std::string& vName); explicit NodeSlotModelInput(const std::string& vName, const bool& vHideName); explicit NodeSlotModelInput(const std::string& vName, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotModelInput(); + virtual ~NodeSlotModelInput(); void Init(); void Unit(); @@ -45,7 +45,7 @@ class LUMO_BACKEND_API NodeSlotModelInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotModelOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotModelOutput.h index 82c802602..ad4a793be 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotModelOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotModelOutput.h @@ -36,12 +36,12 @@ class LUMO_BACKEND_API NodeSlotModelOutput : public NodeSlotOutput { explicit NodeSlotModelOutput(const std::string& vName); explicit NodeSlotModelOutput(const std::string& vName, const bool& vHideName); explicit NodeSlotModelOutput(const std::string& vName, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotModelOutput(); + virtual ~NodeSlotModelOutput(); void Init(); void Unit(); void SendFrontNotification(const NotifyEvent& vEvent) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotShaderPassInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotShaderPassInput.h index 10114ad84..d7dda65f4 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotShaderPassInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotShaderPassInput.h @@ -36,7 +36,7 @@ class LUMO_BACKEND_API NodeSlotShaderPassInput : public NodeSlotInput { explicit NodeSlotShaderPassInput(const std::string& vName); explicit NodeSlotShaderPassInput(const std::string& vName, const bool& vHideName); explicit NodeSlotShaderPassInput(const std::string& vName, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotShaderPassInput(); + virtual ~NodeSlotShaderPassInput(); void Init(); void Unit(); @@ -45,9 +45,9 @@ class LUMO_BACKEND_API NodeSlotShaderPassInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak())override; void MouseDoubleClickedOnSlot(const ImGuiMouseButton& vMouseButton) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotShaderPassOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotShaderPassOutput.h index 71dbd2c84..f92d1c93a 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotShaderPassOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotShaderPassOutput.h @@ -36,7 +36,7 @@ class LUMO_BACKEND_API NodeSlotShaderPassOutput : public NodeSlotOutput { explicit NodeSlotShaderPassOutput(const std::string& vName); explicit NodeSlotShaderPassOutput(const std::string& vName, const bool& vHideName); explicit NodeSlotShaderPassOutput(const std::string& vName, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotShaderPassOutput(); + virtual ~NodeSlotShaderPassOutput(); void Init(); void Unit(); @@ -45,5 +45,5 @@ class LUMO_BACKEND_API NodeSlotShaderPassOutput : public NodeSlotOutput { void MouseDoubleClickedOnSlot(const ImGuiMouseButton& vMouseButton) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotStorageBufferInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotStorageBufferInput.h index e3fbe9738..c95c7147a 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotStorageBufferInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotStorageBufferInput.h @@ -41,7 +41,7 @@ class LUMO_BACKEND_API NodeSlotStorageBufferInput : public NodeSlotInput { explicit NodeSlotStorageBufferInput(const std::string& vName, const std::string& vType, const uint32_t& vBindingPoint, const bool& vHideName); explicit NodeSlotStorageBufferInput( const std::string& vName, const std::string& vType, const uint32_t& vBindingPoint, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotStorageBufferInput(); + virtual ~NodeSlotStorageBufferInput(); void Init(); void Unit(); @@ -50,7 +50,7 @@ class LUMO_BACKEND_API NodeSlotStorageBufferInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotStorageBufferOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotStorageBufferOutput.h index 4b9365363..54898da76 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotStorageBufferOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotStorageBufferOutput.h @@ -41,12 +41,12 @@ class LUMO_BACKEND_API NodeSlotStorageBufferOutput : public NodeSlotOutput { explicit NodeSlotStorageBufferOutput(const std::string& vName, const std::string& vType, const uint32_t& vBindingPoint, const bool& vHideName); explicit NodeSlotStorageBufferOutput( const std::string& vName, const std::string& vType, const uint32_t& vBindingPoint, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotStorageBufferOutput(); + virtual ~NodeSlotStorageBufferOutput(); void Init(); void Unit(); void SendFrontNotification(const NotifyEvent& vEvent) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTaskInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTaskInput.h index 8cb24e66f..0a83403d2 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTaskInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTaskInput.h @@ -36,7 +36,7 @@ class LUMO_BACKEND_API NodeSlotTaskInput : public NodeSlotInput { explicit NodeSlotTaskInput(const std::string& vName); explicit NodeSlotTaskInput(const std::string& vName, const bool& vHideName); explicit NodeSlotTaskInput(const std::string& vName, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTaskInput(); + virtual ~NodeSlotTaskInput(); void Init(); void Unit(); @@ -45,7 +45,7 @@ class LUMO_BACKEND_API NodeSlotTaskInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTaskOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTaskOutput.h index 1179d941a..dbf480ad5 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTaskOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTaskOutput.h @@ -36,12 +36,12 @@ class LUMO_BACKEND_API NodeSlotTaskOutput : public NodeSlotOutput { explicit NodeSlotTaskOutput(const std::string& vName); explicit NodeSlotTaskOutput(const std::string& vName, const bool& vHideName); explicit NodeSlotTaskOutput(const std::string& vName, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTaskOutput(); + virtual ~NodeSlotTaskOutput(); void Init(); void Unit(); void SendFrontNotification(const NotifyEvent& vEvent) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexelBufferInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexelBufferInput.h index 900c5adfc..3c27acbb7 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexelBufferInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexelBufferInput.h @@ -41,7 +41,7 @@ class LUMO_BACKEND_API NodeSlotTexelBufferInput : public NodeSlotInput { explicit NodeSlotTexelBufferInput(const std::string& vName, const std::string& vType, const uint32_t& vBindingPoint, const bool& vHideName); explicit NodeSlotTexelBufferInput( const std::string& vName, const std::string& vType, const uint32_t& vBindingPoint, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTexelBufferInput(); + virtual ~NodeSlotTexelBufferInput(); void Init(); void Unit(); @@ -50,7 +50,7 @@ class LUMO_BACKEND_API NodeSlotTexelBufferInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexelBufferOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexelBufferOutput.h index 808f77773..a47c63a53 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexelBufferOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexelBufferOutput.h @@ -41,12 +41,12 @@ class LUMO_BACKEND_API NodeSlotTexelBufferOutput : public NodeSlotOutput { explicit NodeSlotTexelBufferOutput(const std::string& vName, const std::string& vType, const uint32_t& vBindingPoint, const bool& vHideName); explicit NodeSlotTexelBufferOutput( const std::string& vName, const std::string& vType, const uint32_t& vBindingPoint, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTexelBufferOutput(); + virtual ~NodeSlotTexelBufferOutput(); void Init(); void Unit(); void SendFrontNotification(const NotifyEvent& vEvent) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture2DInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture2DInput.h index ab7326cd3..26f84b08e 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture2DInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture2DInput.h @@ -36,7 +36,7 @@ class LUMO_BACKEND_API NodeSlotTexture2DInput : public NodeSlotInput { explicit NodeSlotTexture2DInput(const std::string& vName, const uint32_t& vBindingPoint); explicit NodeSlotTexture2DInput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName); explicit NodeSlotTexture2DInput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTexture2DInput(); + virtual ~NodeSlotTexture2DInput(); void Init(); void Unit(); @@ -45,9 +45,9 @@ class LUMO_BACKEND_API NodeSlotTexture2DInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()) override; void MouseDoubleClickedOnSlot(const ImGuiMouseButton& vMouseButton) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture2DOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture2DOutput.h index aafd78af5..acae12d04 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture2DOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture2DOutput.h @@ -36,7 +36,7 @@ class LUMO_BACKEND_API NodeSlotTexture2DOutput : public NodeSlotOutput { explicit NodeSlotTexture2DOutput(const std::string& vName, const uint32_t& vBindingPoint); explicit NodeSlotTexture2DOutput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName); explicit NodeSlotTexture2DOutput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTexture2DOutput(); + virtual ~NodeSlotTexture2DOutput(); void Init(); void Unit(); @@ -45,5 +45,5 @@ class LUMO_BACKEND_API NodeSlotTexture2DOutput : public NodeSlotOutput { void MouseDoubleClickedOnSlot(const ImGuiMouseButton& vMouseButton) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture3DInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture3DInput.h index ba035d32d..ee243214a 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture3DInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture3DInput.h @@ -36,7 +36,7 @@ class LUMO_BACKEND_API NodeSlotTexture3DInput : public NodeSlotInput { explicit NodeSlotTexture3DInput(const std::string& vName, const uint32_t& vBindingPoint); explicit NodeSlotTexture3DInput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName); explicit NodeSlotTexture3DInput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTexture3DInput(); + virtual ~NodeSlotTexture3DInput(); void Init(); void Unit(); @@ -45,9 +45,9 @@ class LUMO_BACKEND_API NodeSlotTexture3DInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()) override; void MouseDoubleClickedOnSlot(const ImGuiMouseButton& vMouseButton) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture3DOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture3DOutput.h index 1b99303d4..fc53d5a08 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture3DOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTexture3DOutput.h @@ -36,7 +36,7 @@ class LUMO_BACKEND_API NodeSlotTexture3DOutput : public NodeSlotOutput { explicit NodeSlotTexture3DOutput(const std::string& vName, const uint32_t& vBindingPoint); explicit NodeSlotTexture3DOutput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName); explicit NodeSlotTexture3DOutput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTexture3DOutput(); + virtual ~NodeSlotTexture3DOutput(); void Init(); void Unit(); @@ -45,5 +45,5 @@ class LUMO_BACKEND_API NodeSlotTexture3DOutput : public NodeSlotOutput { void MouseDoubleClickedOnSlot(const ImGuiMouseButton& vMouseButton) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureCubeInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureCubeInput.h index 42a1143f6..bbbf239eb 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureCubeInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureCubeInput.h @@ -37,7 +37,7 @@ class LUMO_BACKEND_API NodeSlotTextureCubeInput : public NodeSlotInput { explicit NodeSlotTextureCubeInput(const std::string& vName, const uint32_t& vBindingPoint); explicit NodeSlotTextureCubeInput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName); explicit NodeSlotTextureCubeInput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTextureCubeInput(); + virtual ~NodeSlotTextureCubeInput(); void Init(); void Unit(); @@ -46,7 +46,7 @@ class LUMO_BACKEND_API NodeSlotTextureCubeInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureCubeOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureCubeOutput.h index 2243725d4..ae143a9f7 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureCubeOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureCubeOutput.h @@ -37,12 +37,12 @@ class LUMO_BACKEND_API NodeSlotTextureCubeOutput : public NodeSlotOutput { explicit NodeSlotTextureCubeOutput(const std::string& vName, const uint32_t& vBindingPoint); explicit NodeSlotTextureCubeOutput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName); explicit NodeSlotTextureCubeOutput(const std::string& vName, const uint32_t& vBindingPoint, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTextureCubeOutput(); + virtual ~NodeSlotTextureCubeOutput(); void Init(); void Unit(); void SendFrontNotification(const NotifyEvent& vEvent) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureGroupInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureGroupInput.h index 95d434f0e..5250548a7 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureGroupInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureGroupInput.h @@ -36,7 +36,7 @@ class LUMO_BACKEND_API NodeSlotTextureGroupInput : public NodeSlotInput { explicit NodeSlotTextureGroupInput(const std::string& vName); explicit NodeSlotTextureGroupInput(const std::string& vName, const bool& vHideName); explicit NodeSlotTextureGroupInput(const std::string& vName, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTextureGroupInput(); + virtual ~NodeSlotTextureGroupInput(); void Init(); void Unit(); @@ -45,7 +45,7 @@ class LUMO_BACKEND_API NodeSlotTextureGroupInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureGroupOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureGroupOutput.h index 6c61f8d56..2ad5431c0 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureGroupOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotTextureGroupOutput.h @@ -36,12 +36,12 @@ class LUMO_BACKEND_API NodeSlotTextureGroupOutput : public NodeSlotOutput { explicit NodeSlotTextureGroupOutput(const std::string& vName); explicit NodeSlotTextureGroupOutput(const std::string& vName, const bool& vHideName); explicit NodeSlotTextureGroupOutput(const std::string& vName, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotTextureGroupOutput(); + virtual ~NodeSlotTextureGroupOutput(); void Init(); void Unit(); void SendFrontNotification(const NotifyEvent& vEvent) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotVariableInput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotVariableInput.h index a39302027..29ab2252e 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotVariableInput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotVariableInput.h @@ -38,7 +38,7 @@ class LUMO_BACKEND_API NodeSlotVariableInput : public NodeSlotInput { explicit NodeSlotVariableInput(const std::string& vName, const std::string& vType, const uint32_t& vVariableIndex, const bool& vHideName); explicit NodeSlotVariableInput( const std::string& vName, const std::string& vType, const uint32_t& vVariableIndex, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotVariableInput(); + virtual ~NodeSlotVariableInput(); void Init(); void Unit(); @@ -47,7 +47,7 @@ class LUMO_BACKEND_API NodeSlotVariableInput : public NodeSlotInput { void OnDisConnectEvent(NodeSlotWeak vOtherSlot) override; void TreatNotification( - const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()); + const NotifyEvent& vEvent, const NodeSlotWeak& vEmitterSlot = NodeSlotWeak(), const NodeSlotWeak& vReceiverSlot = NodeSlotWeak()) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotVariableOutput.h b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotVariableOutput.h index 1fb082ec6..ab18a9439 100644 --- a/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotVariableOutput.h +++ b/libs/LumoBackend/include/LumoBackend/Graph/Slots/NodeSlotVariableOutput.h @@ -39,12 +39,12 @@ class LUMO_BACKEND_API NodeSlotVariableOutput : public NodeSlotOutput { explicit NodeSlotVariableOutput(const std::string& vName, const std::string& vType, const uint32_t& vVariableIndex, const bool& vHideName); explicit NodeSlotVariableOutput( const std::string& vName, const std::string& vType, const uint32_t& vVariableIndex, const bool& vHideName, const bool& vShowWidget); - ~NodeSlotVariableOutput(); + virtual ~NodeSlotVariableOutput(); void Init(); void Unit(); void SendFrontNotification(const NotifyEvent& vEvent) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Headers/LumoBackendBuild.h b/libs/LumoBackend/include/LumoBackend/Headers/LumoBackendBuild.h index cdcb3928c..6f6798de1 100644 --- a/libs/LumoBackend/include/LumoBackend/Headers/LumoBackendBuild.h +++ b/libs/LumoBackend/include/LumoBackend/Headers/LumoBackendBuild.h @@ -1,7 +1,7 @@ #pragma once #define LumoBackend_Prefix "LumoBackend" -#define LumoBackend_BuildNumber 693 +#define LumoBackend_BuildNumber 713 #define LumoBackend_MinorNumber 2 #define LumoBackend_MajorNumber 0 -#define LumoBackend_BuildId "0.2.693" +#define LumoBackend_BuildId "0.2.713" diff --git a/libs/LumoBackend/include/LumoBackend/Headers/LumoBackendDefs.h b/libs/LumoBackend/include/LumoBackend/Headers/LumoBackendDefs.h index 33eb9b431..1527d3c1a 100644 --- a/libs/LumoBackend/include/LumoBackend/Headers/LumoBackendDefs.h +++ b/libs/LumoBackend/include/LumoBackend/Headers/LumoBackendDefs.h @@ -72,6 +72,8 @@ static inline const char* GetModelRenderModeEnumString(ModelRenderModeEnum vMode case ModelRenderModeEnum::MODEL_RENDER_MODE_TRIANGLE_FAN: return "TRIANGLE_FAN"; case ModelRenderModeEnum::MODEL_RENDER_MODE_TRIANGLES: return "TRIANGLES"; case ModelRenderModeEnum::MODEL_RENDER_MODE_PATCHES: return "PATCHES"; + case ModelRenderModeEnum::MODEL_RENDER_MODE_NONE: + case ModelRenderModeEnum::MODEL_RENDER_MODE_Count: break; } return ""; } @@ -83,6 +85,8 @@ static inline const char* GetModelTypeEnumString(BaseMeshEnum vBaseMeshEnum) { case BaseMeshEnum::BASE_MESH_QUAD: return "QUAD"; case BaseMeshEnum::BASE_MESH_POINTS: return "POINTS"; case BaseMeshEnum::BASE_MESH_MESH: return "MESH"; + case BaseMeshEnum::BASE_MESH_NONE: + case BaseMeshEnum::BASE_MESH_Count: break; } return ""; } diff --git a/libs/LumoBackend/include/LumoBackend/Helpers/RenderDocController.h b/libs/LumoBackend/include/LumoBackend/Helpers/RenderDocController.h index 134c38330..4555ba203 100644 --- a/libs/LumoBackend/include/LumoBackend/Helpers/RenderDocController.h +++ b/libs/LumoBackend/include/LumoBackend/Helpers/RenderDocController.h @@ -40,5 +40,5 @@ class LUMO_BACKEND_API RenderDocController { RenderDocController& operator=(const RenderDocController&) { return *this; }; // Prevent assignment - ~RenderDocController() = default; // Prevent unwanted destruction + virtual ~RenderDocController() = default; // Prevent unwanted destruction }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Interfaces/PluginInterface.h b/libs/LumoBackend/include/LumoBackend/Interfaces/PluginInterface.h index f53e75bd3..8c77fb805 100644 --- a/libs/LumoBackend/include/LumoBackend/Interfaces/PluginInterface.h +++ b/libs/LumoBackend/include/LumoBackend/Interfaces/PluginInterface.h @@ -44,11 +44,6 @@ class LUMO_BACKEND_API PluginPane : public AbstractPane, public ProjectInterface ProjectInterface* m_ProjectInstancePtr = nullptr; public: - virtual bool Init() = 0; - virtual void Unit() = 0; - virtual bool DrawPanes( - const uint32_t& vCurrentFrame, PaneFlags& vInOutPaneShown, ImGuiContext* vContextPtr = nullptr, void* vUserDatas = nullptr) = 0; - void SetProjectInstancePtr(ProjectInterface* vProjectInstancePtr) { m_ProjectInstancePtr = vProjectInstancePtr; } diff --git a/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneLight.h b/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneLight.h index 3862f8d6d..b2044179f 100644 --- a/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneLight.h +++ b/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneLight.h @@ -83,6 +83,9 @@ class LUMO_BACKEND_API SceneLight : public GizmoInterface SceneLightWeak m_This; public: + SceneLight() = default; + virtual ~SceneLight() = default; + // std430 struct LightDatasStruct { glm::mat4x4 lightGizmo = glm::mat4x4(1.0f); diff --git a/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneLightGroup.h b/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneLightGroup.h index ca52055c1..6918b1783 100644 --- a/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneLightGroup.h +++ b/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneLightGroup.h @@ -55,8 +55,8 @@ class LUMO_BACKEND_API SceneLightGroup : vk::DescriptorBufferInfo m_EmptyBufferInfo = { VK_NULL_HANDLE, 0, VK_WHOLE_SIZE }; public: - SceneLightGroup(); - ~SceneLightGroup(); + SceneLightGroup(); + virtual ~SceneLightGroup(); bool Init(GaiApi::VulkanCoreWeak vVulkanCore); void Unit(); diff --git a/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneTextureGroup.h b/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneTextureGroup.h index 80957974d..7b07f5137 100644 --- a/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneTextureGroup.h +++ b/libs/LumoBackend/include/LumoBackend/SceneGraph/SceneTextureGroup.h @@ -52,7 +52,7 @@ class LUMO_BACKEND_API SceneTextureGroup : public: SceneTextureGroup(); - ~SceneTextureGroup(); + virtual ~SceneTextureGroup(); bool Init(GaiApi::VulkanCoreWeak vVulkanCore); void Unit(); diff --git a/libs/LumoBackend/include/LumoBackend/Systems/CommonSystem.h b/libs/LumoBackend/include/LumoBackend/Systems/CommonSystem.h index 118ffdbd9..b565a4e3a 100644 --- a/libs/LumoBackend/include/LumoBackend/Systems/CommonSystem.h +++ b/libs/LumoBackend/include/LumoBackend/Systems/CommonSystem.h @@ -134,7 +134,7 @@ class LUMO_BACKEND_API CommonSystem : public conf::ConfigAbstract, public Camera CommonSystem& operator=(const CommonSystem&) { return *this; }; // Prevent assignment - ~CommonSystem() = default; // Prevent unwanted destruction + virtual ~CommonSystem() = default; // Prevent unwanted destruction public: void SetCameraMode(const CAMERA_MODE_Enum& vCameraMode); diff --git a/libs/LumoBackend/include/LumoBackend/Systems/FilesTrackerSystem.h b/libs/LumoBackend/include/LumoBackend/Systems/FilesTrackerSystem.h index bb75ba0af..fd8c78fb9 100644 --- a/libs/LumoBackend/include/LumoBackend/Systems/FilesTrackerSystem.h +++ b/libs/LumoBackend/include/LumoBackend/Systems/FilesTrackerSystem.h @@ -48,11 +48,11 @@ class LUMO_BACKEND_API FilesTrackerSystem : public efsw::FileWatchListener { efsw::WatchID watchid, const std::string& dir, const std::string& filename, efsw::Action action, std::string oldFilename = "") override; FilesTrackerSystem() = default; // Prevent construction - FilesTrackerSystem(const FilesTrackerSystem&) = default; // Prevent construction by copying + FilesTrackerSystem(const FilesTrackerSystem&) = delete; // Prevent construction by copying FilesTrackerSystem& operator=(const FilesTrackerSystem&) { return *this; }; // Prevent assignment - ~FilesTrackerSystem() = default; // Prevent unwanted destruction + virtual ~FilesTrackerSystem() = default; // Prevent unwanted destruction public: void addWatch(std::string& vPath); diff --git a/libs/LumoBackend/include/LumoBackend/Systems/GizmoSystem.h b/libs/LumoBackend/include/LumoBackend/Systems/GizmoSystem.h index acb85fdc1..b8064c778 100644 --- a/libs/LumoBackend/include/LumoBackend/Systems/GizmoSystem.h +++ b/libs/LumoBackend/include/LumoBackend/Systems/GizmoSystem.h @@ -53,5 +53,5 @@ class LUMO_BACKEND_API GizmoSystem { GizmoSystem& operator=(const GizmoSystem&) { return *this; }; // Prevent assignment - ~GizmoSystem(); // Prevent unwanted destruction + virtual ~GizmoSystem(); // Prevent unwanted destruction }; \ No newline at end of file diff --git a/libs/LumoBackend/include/LumoBackend/Systems/SceneMerger.h b/libs/LumoBackend/include/LumoBackend/Systems/SceneMerger.h index 01949b092..84ca095a1 100644 --- a/libs/LumoBackend/include/LumoBackend/Systems/SceneMerger.h +++ b/libs/LumoBackend/include/LumoBackend/Systems/SceneMerger.h @@ -49,7 +49,7 @@ class LUMO_BACKEND_API SceneMerger : public BaseRenderer, // public: SceneMerger(GaiApi::VulkanCoreWeak vVulkanCore); - ~SceneMerger() = default; + virtual ~SceneMerger() = default; bool Init(); void Unit(); diff --git a/libs/LumoBackend/src/Base/ShaderPass.cpp b/libs/LumoBackend/src/Base/ShaderPass.cpp index 42e7777d1..5920815ab 100644 --- a/libs/LumoBackend/src/Base/ShaderPass.cpp +++ b/libs/LumoBackend/src/Base/ShaderPass.cpp @@ -859,10 +859,8 @@ vk::PrimitiveTopology ShaderPass::GetPrimitiveTopologyFamily(const vk::Primitive case vk::PrimitiveTopology::eTriangleStrip: case vk::PrimitiveTopology::eTriangleFan: case vk::PrimitiveTopology::eTriangleListWithAdjacency: - case vk::PrimitiveTopology::eTriangleStripWithAdjacency: - return vk::PrimitiveTopology::eTriangleList; - // case vk::PrimitiveTopology::ePatchList: - // return vk::PrimitiveTopology::ePatchList; + case vk::PrimitiveTopology::eTriangleStripWithAdjacency: return vk::PrimitiveTopology::eTriangleList; + case vk::PrimitiveTopology::ePatchList: return vk::PrimitiveTopology::ePatchList; } return vk::PrimitiveTopology::ePatchList; diff --git a/libs/LumoBackend/src/Graph/Base/NodeSlotInput.cpp b/libs/LumoBackend/src/Graph/Base/NodeSlotInput.cpp index dbf3b37a8..0b2f77221 100644 --- a/libs/LumoBackend/src/Graph/Base/NodeSlotInput.cpp +++ b/libs/LumoBackend/src/Graph/Base/NodeSlotInput.cpp @@ -21,7 +21,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; +// ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Base/NodeSlotOutput.cpp b/libs/LumoBackend/src/Graph/Base/NodeSlotOutput.cpp index 9cc794941..69691c9c1 100644 --- a/libs/LumoBackend/src/Graph/Base/NodeSlotOutput.cpp +++ b/libs/LumoBackend/src/Graph/Base/NodeSlotOutput.cpp @@ -21,7 +21,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; +// ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotLightGroupInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotLightGroupInput.cpp index f42f98ac0..4c1c53c31 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotLightGroupInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotLightGroupInput.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; +// ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotLightGroupOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotLightGroupOutput.cpp index d0339b5e5..a7c1d786f 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotLightGroupOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotLightGroupOutput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotModelInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotModelInput.cpp index b4027e164..5f21b26c2 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotModelInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotModelInput.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotModelOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotModelOutput.cpp index 55a1def76..8c58e33e8 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotModelOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotModelOutput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotShaderPassInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotShaderPassInput.cpp index 03fa735ba..c33c6875e 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotShaderPassInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotShaderPassInput.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotShaderPassOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotShaderPassOutput.cpp index 4ff75551c..2d031146c 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotShaderPassOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotShaderPassOutput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotStorageBufferInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotStorageBufferInput.cpp index f107b155a..87c14c265 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotStorageBufferInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotStorageBufferInput.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotStorageBufferOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotStorageBufferOutput.cpp index 39535a1b3..c5f395e85 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotStorageBufferOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotStorageBufferOutput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTaskInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTaskInput.cpp index c45512048..b10b77211 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTaskInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTaskInput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTaskOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTaskOutput.cpp index 64adfe767..30a37567e 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTaskOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTaskOutput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexelBufferInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexelBufferInput.cpp index 310ac12c5..7b8687b01 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexelBufferInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexelBufferInput.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexelBufferOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexelBufferOutput.cpp index 667b05bef..3b0a6735d 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexelBufferOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexelBufferOutput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture2DInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture2DInput.cpp index ff99c727d..658caca6c 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture2DInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture2DInput.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture2DOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture2DOutput.cpp index 56d34f3cb..a2c6b037f 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture2DOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture2DOutput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture3DInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture3DInput.cpp index eafe03297..81ccad379 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture3DInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture3DInput.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture3DOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture3DOutput.cpp index 4fce8d520..e29f6bffb 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture3DOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTexture3DOutput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureCubeInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureCubeInput.cpp index 84c528a28..b707a8554 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureCubeInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureCubeInput.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureCubeOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureCubeOutput.cpp index 98d096242..9e616d490 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureCubeOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureCubeOutput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureGroupInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureGroupInput.cpp index 671064e9f..6105ddecb 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureGroupInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureGroupInput.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureGroupOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureGroupOutput.cpp index 9498bbb13..d8e31332d 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureGroupOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotTextureGroupOutput.cpp @@ -22,7 +22,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotVariableInput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotVariableInput.cpp index 37dfb9c84..7ae475d6a 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotVariableInput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotVariableInput.cpp @@ -24,7 +24,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/Graph/Slots/NodeSlotVariableOutput.cpp b/libs/LumoBackend/src/Graph/Slots/NodeSlotVariableOutput.cpp index 5a24e1881..98e73a496 100644 --- a/libs/LumoBackend/src/Graph/Slots/NodeSlotVariableOutput.cpp +++ b/libs/LumoBackend/src/Graph/Slots/NodeSlotVariableOutput.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static const float slotIconSize = 15.0f; + ////////////////////////////////////////////////////////////////////////////////////////////// //// STATIC ////////////////////////////////////////////////////////////////////////////////// diff --git a/libs/LumoBackend/src/SceneGraph/SceneLight.cpp b/libs/LumoBackend/src/SceneGraph/SceneLight.cpp index 7de41d3e8..88ad4fbaa 100644 --- a/libs/LumoBackend/src/SceneGraph/SceneLight.cpp +++ b/libs/LumoBackend/src/SceneGraph/SceneLight.cpp @@ -55,7 +55,7 @@ bool SceneLight::NeedUpdateCamera() { ZoneScoped; if (gizmo_was_changed) { - const glm::mat4 bias(0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.5f, 0.5f, 0.5f, 1.0f); + //const glm::mat4 bias(0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.5f, 0.5f, 0.5f, 1.0f); switch ((LightTypeEnum)lightDatas.lightType) { case LightTypeEnum::POINT: { @@ -82,6 +82,8 @@ bool SceneLight::NeedUpdateCamera() { case LightTypeEnum::AREA: { break; } + case LightTypeEnum::NONE: + case LightTypeEnum::Count: break; } gizmo_was_changed = false; diff --git a/libs/LumoBackend/src/Systems/FilesTrackerSystem.cpp b/libs/LumoBackend/src/Systems/FilesTrackerSystem.cpp index 8f7616585..7c4ccebf0 100644 --- a/libs/LumoBackend/src/Systems/FilesTrackerSystem.cpp +++ b/libs/LumoBackend/src/Systems/FilesTrackerSystem.cpp @@ -47,7 +47,7 @@ void FilesTrackerSystem::update() { } void FilesTrackerSystem::handleFileAction( - efsw::WatchID vWatchid, const std::string& vDir, const std::string& vFileName, efsw::Action vAction, std::string vOldFilename) { + efsw::WatchID vWatchid, const std::string& vDir, const std::string& vFileName, efsw::Action vAction, std::string /*vOldFilename*/) { UNUSED(vWatchid); switch (vAction) { diff --git a/libs/LumoBackend/src/Systems/GizmoSystem.cpp b/libs/LumoBackend/src/Systems/GizmoSystem.cpp index 5fc49e5b0..9e9a1b5e1 100644 --- a/libs/LumoBackend/src/Systems/GizmoSystem.cpp +++ b/libs/LumoBackend/src/Systems/GizmoSystem.cpp @@ -23,7 +23,7 @@ limitations under the License. #include #include -static bool useGizmoCulling = false; +//static bool useGizmoCulling = false; GizmoSystem::GizmoSystem() { Init(); @@ -93,7 +93,7 @@ bool GizmoSystem::DrawGizmoTransformDialog(GizmoInterfaceWeak vGizmo) { auto gizmoPtr = vGizmo.lock(); if (gizmoPtr) { - float matrixTranslation[3], matrixRotation[3], matrixScale[3], matrixRotationEmpty[3] = {0.0f, 0.0f, 0.0f}; + float matrixTranslation[3], matrixRotation[3], matrixScale[3];//, matrixRotationEmpty[3] = {0.0f, 0.0f, 0.0f}; ImGuizmo::DecomposeMatrixToComponents(gizmoPtr->GetGizmoFloatPtr(), matrixTranslation, matrixRotation, matrixScale); ImGui::BeginGroup(); diff --git a/src/Headers/LumoBuild.h b/src/Headers/LumoBuild.h index 529db6a01..f7b8545d4 100644 --- a/src/Headers/LumoBuild.h +++ b/src/Headers/LumoBuild.h @@ -1,7 +1,7 @@ #pragma once #define Lumo_Prefix "Lumo" -#define Lumo_BuildNumber 5564 +#define Lumo_BuildNumber 5569 #define Lumo_MinorNumber 0 #define Lumo_MajorNumber 0 -#define Lumo_BuildId "0.0.5564" +#define Lumo_BuildId "0.0.5569" diff --git a/src/Panes/GraphPane.h b/src/Panes/GraphPane.h index 462c5bec5..914453426 100644 --- a/src/Panes/GraphPane.h +++ b/src/Panes/GraphPane.h @@ -44,7 +44,7 @@ class GraphPane : public conf::ConfigAbstract, public AbstractPane { bool DrawDialogsAndPopups( const uint32_t& vCurrentFrame, const ImVec2& vMaxSize, ImGuiContext* vContextPtr = nullptr, void* vUserDatas = nullptr) override; - void DrawDebugInfos(); + void DrawDebugInfos() override; void DrawProperties(); void Clear();