Move draw methods to renderer class.#93
Closed
anunknowperson wants to merge 177 commits into
Closed
Conversation
* fix: sign conversion in _frameNumber * fix: unused parameter in mesh getter * fix: double-float conversion in updateCube * fix: removed -Wmissing-field-initializers flag * fix: float conversion of fileSize in vk_pipelines.cpp * fix: added array indexing to silence string plus int warning * fix: unused parameters * fix: signedness changing conversions fix in vk_images.cpp * fix: signedness changing and float conversions fix in vk_descriptors.cpp.cpp * fix: changed field initialization order in Node ctor * fix: unused parameter in TransformSystem.cpp * fix: float-double conversion * fix: range-based for loops * fix: uint32_t and size_t conversions * fix: capture in lambda function for deletionQueue * fix: sign and long conversion * fix: removed range based for loop * fix: removed DescriptorWriter variable re-declaring * fix: long conversion * fix: added default ctor in IRenderable heirs * fix(vk_pipelines.cpp): casting fileSize to uint32_t * fix: int parameter to string conversion in "cube" + parameter * fix: fileSize.tellg() error handling * fix: removed unnecessary std::move in Cubes functions
A line of code the previous commit (#49) was deleted, but in this way the methods were called from another object (line 934), although with the same name. By returning the line, you can now run the demo on Windows. The original problem was name shadowing. I solved it by renaming the object.
fix: return a line that was deleted in #49
* feat: update vcpkg to 2025.02.14 * feat(build,ci): delete x86 builds from CI I'm sure there is no need to make builds for x86 systems. Github Actions build checks will also be less time consuming. * feat(ci): replace setup-ninja with get-cmake The documentation for lukka/run-cmake uses lukka/get-cmake * feat(ci): update actions/checkout to ver. 4 * fix(ci): solve build issue Refer to microsoft/vcpkg#40065 installing 'libltdl-dev' package solves the problem of libxcrypt build by vcpkg. * fix(ci): delete wrong options for run-vcpkg According to the lukka/run-cmake documentation, the use of 'vcpkgJsonGlob' is only necessary if `runVcpkgInstall` is `true`. In a previous commit, the 'vendor' folder was removed, so 'vcpkgDirectory' doesn't make sense to specify either. Very strange how it worked before! * feat: update vcpkg Use the old version of 'fastgltf', since it doesn't build any further. * fix: override old version 'fastgltf' in CI GH Workflow couldn't checkout to the old version of 'fastgltf', so we need to fetch all history.
* feat(ci): add build stage The commit adds a project build step to CI in addition to the CMake configuration step. It was also decided that it didn't make sense to do debug builds. * fix(ci): install 'glslc' with installing full SDK Unfortunately, I couldn't find a quick way to download 'glslc' without installing the full SDK, so I decided to download the entire VulkanSDK. I also updated the VulkanSDK version, because the old one can't be downloaded anymore.
* ref: replace 'remove_if' with 'ranges::remove_if' * ref: replace 'find' with 'ranges::find' * ref: replace functional-style cast with static_cast * ref: add const to local vars * ref: make parameters pointer/ref to const * refactor: pass alue by const reference * refactor: replace postfix operator with prefix * ref: replace some vars with strctured binding * fix: change signatures to match the new ones * ref: use nullptr instead of 0 for pointer * refactor: extension of switch statement * refactor: extend if statement with else * refactor: remove hiding declaration * refactor: match params names * refactor: add const to local vars * refactor: add const to methods * refactor: make vars constexpr * refactor: match params names * refactor: remove redundant casts * refactor: replace '.' with '->' * refactor: remove redundant type specifier * refactor: add const to local vars * refactor: add const to methods * refactor: remove redundant lambda parameter list * refactor: make ctor and dtor '= default' * refactor: check for emptiness with method * refactor: pass string by value and use std::move * refactor: use auto for iterator * refactor: check for emptiness with method * refactor: make vars const ref * refactor: use range-based for loop * refactor: make filepath const ref * refactor: remove redundant get() call on ptr * refactor: reserve space for vector before loop * refactor: use auto to avoid duplicating * refactor: use dynamic_cast to downcast * refactor: use auto to avoid duplicating * refactor: remove pattern duplicates from .gitignore * refactor: use auto to avoid duplicating * refactor: remove unused include Node.h * refactor: add include (Node.cpp) for LOGW * refactor: replace include with smaller one (vk_images.h) * refactor: add include for int32_t (vk_images.cpp) * refactor: replace includes (vk_pipelines.h) 1 #include <vulkan/vulkan_core.h>//for VkFormat, VkShaderModule, VkDevice 2 #include <vector> //for vector * refactor: add includes (vk_pipelines.cpp) 1 #include <fmt/base.h> // for println, vformat_to 2 #include <spdlog/spdlog.h // for error 3 #include <stdint.h> // for uint32_t * iwyu: vk_initializers.h * iwyu: vk_descriptors.h * iwyu: vk_descriptors.cpp * iwyu: Camera.h * iwyu: View.cpp * iwyu: createInstance.cpp * ref: remove implicit conversion enum -> ints * refactor: change VK_CHECK(x) macro It's odd that 'err' (enum type) is used as bool. Also I believe it's safer to use cast with 'underlying_type_t' than cast to int. * refactor: 'push_back -> emplace_back' * refactor: render 'engine' as pointer to const * refactor: make iterator ref to const * refactor: make iterator ref to const * refactor: 'virtual' -> 'override' * iwyu: Controller.cpp 1 #include <memory> // for make_shared 2 #include <utility> // for move * iwyu: ControllerImpl.h 1 #include <SDL_events.h> // for SDL_Event 2 #include <memory> // for enable_shared_from_this, shared_ptr * iwyu: ControllerImpl.cpp * iwyu: Model.cpp * iwyu: main.cpp * iwyu: ModelImpl.h * iwyu: ModelImpl.cpp * iwyu: ViewImpl.h * iwyu: ViewImpl.cpp * iwyu: vk_engine.h * iwyu: vk_engine.cpp * iwyu: vk_loader.h * iwyu: vk_loader.cpp * clang-format * fix: remove memory leak * fix: return a line that was deleted in #49 A line of code the previous commit (#49) was deleted, but in this way the methods were called from another object (line 934), although with the same name. By returning the line, you can now run the demo on Windows. The original problem was name shadowing. I solved it by renaming the object. * ref: make 'windows_flags' a const in an unnamed namespace * Add Light class with implementation (#63) * fix ci (#68) * feat: update vcpkg to 2025.02.14 * feat(build,ci): delete x86 builds from CI I'm sure there is no need to make builds for x86 systems. Github Actions build checks will also be less time consuming. * feat(ci): replace setup-ninja with get-cmake The documentation for lukka/run-cmake uses lukka/get-cmake * feat(ci): update actions/checkout to ver. 4 * fix(ci): solve build issue Refer to microsoft/vcpkg#40065 installing 'libltdl-dev' package solves the problem of libxcrypt build by vcpkg. * fix(ci): delete wrong options for run-vcpkg According to the lukka/run-cmake documentation, the use of 'vcpkgJsonGlob' is only necessary if `runVcpkgInstall` is `true`. In a previous commit, the 'vendor' folder was removed, so 'vcpkgDirectory' doesn't make sense to specify either. Very strange how it worked before! * feat: update vcpkg Use the old version of 'fastgltf', since it doesn't build any further. * fix: override old version 'fastgltf' in CI GH Workflow couldn't checkout to the old version of 'fastgltf', so we need to fetch all history. * feat(ci): add the build stage (#69) * feat(ci): add build stage The commit adds a project build step to CI in addition to the CMake configuration step. It was also decided that it didn't make sense to do debug builds. * fix(ci): install 'glslc' with installing full SDK Unfortunately, I couldn't find a quick way to download 'glslc' without installing the full SDK, so I decided to download the entire VulkanSDK. I also updated the VulkanSDK version, because the old one can't be downloaded anymore. * ref: replace 'remove_if' with 'ranges::remove_if' * ref: replace 'find' with 'ranges::find' * ref: replace functional-style cast with static_cast * ref: add const to local vars * ref: make parameters pointer/ref to const * refactor: pass alue by const reference * refactor: replace postfix operator with prefix * ref: replace some vars with strctured binding * fix: change signatures to match the new ones * ref: use nullptr instead of 0 for pointer * refactor: extension of switch statement * refactor: extend if statement with else * refactor: remove hiding declaration * refactor: match params names * refactor: add const to local vars * refactor: add const to methods * refactor: make vars constexpr * refactor: match params names * refactor: remove redundant casts * refactor: replace '.' with '->' * refactor: remove redundant type specifier * refactor: add const to local vars * refactor: add const to methods * refactor: remove redundant lambda parameter list * refactor: make ctor and dtor '= default' * refactor: check for emptiness with method * refactor: pass string by value and use std::move * refactor: use auto for iterator * refactor: check for emptiness with method * refactor: make vars const ref * refactor: use range-based for loop * refactor: make filepath const ref * refactor: remove redundant get() call on ptr * refactor: reserve space for vector before loop * refactor: use auto to avoid duplicating * refactor: use dynamic_cast to downcast * refactor: use auto to avoid duplicating * refactor: remove pattern duplicates from .gitignore * refactor: use auto to avoid duplicating * refactor: remove unused include Node.h * refactor: add include (Node.cpp) for LOGW * refactor: replace include with smaller one (vk_images.h) * refactor: add include for int32_t (vk_images.cpp) * refactor: replace includes (vk_pipelines.h) 1 #include <vulkan/vulkan_core.h>//for VkFormat, VkShaderModule, VkDevice 2 #include <vector> //for vector * refactor: add includes (vk_pipelines.cpp) 1 #include <fmt/base.h> // for println, vformat_to 2 #include <spdlog/spdlog.h // for error 3 #include <stdint.h> // for uint32_t * iwyu: vk_initializers.h * iwyu: vk_descriptors.h * iwyu: vk_descriptors.cpp * iwyu: Camera.h * iwyu: View.cpp * iwyu: createInstance.cpp * ref: remove implicit conversion enum -> ints * refactor: change VK_CHECK(x) macro It's odd that 'err' (enum type) is used as bool. Also I believe it's safer to use cast with 'underlying_type_t' than cast to int. * refactor: 'push_back -> emplace_back' * refactor: render 'engine' as pointer to const * refactor: make iterator ref to const * refactor: make iterator ref to const * refactor: 'virtual' -> 'override' * iwyu: Controller.cpp 1 #include <memory> // for make_shared 2 #include <utility> // for move * iwyu: ControllerImpl.h 1 #include <SDL_events.h> // for SDL_Event 2 #include <memory> // for enable_shared_from_this, shared_ptr * iwyu: ControllerImpl.cpp * iwyu: Model.cpp * iwyu: main.cpp * iwyu: ModelImpl.h * iwyu: ModelImpl.cpp * iwyu: ViewImpl.h * iwyu: ViewImpl.cpp * iwyu: vk_engine.h * iwyu: vk_engine.cpp * iwyu: vk_loader.h * iwyu: vk_loader.cpp * clang-format * fix: remove memory leak * ref: make 'windows_flags' a const in an unnamed namespace * fix(IModel): added <string> include for build on windows * fix(ViewImpl): resolve build error on windows by using conditional compilation for chrono header --------- Co-authored-by: Artyom Gavrilov <rzdartem14@gmail.com> Co-authored-by: Sergei Kiselev <54563399+anunknowperson@users.noreply.github.com> Co-authored-by: Fraise <154538114+Fra1sse@users.noreply.github.com> Co-authored-by: Tydik42 <tgaraev653@gmail.com>
* feat(test): download gtest with vcpkg * feat(test): enable test by default * add example test * feat: add test presets * feat(ci): add tests to CI * fix: add gtest by vcpkg guide
* feat: clang-tidy readability identifier added * fix(cmake): compile options generation removed due to uselessness * feat: created сodestyle.yml * fix(clang-tidy): class members prefix fixed to "_" * feat(ci): dependencies moved to composite action * fix(ci): cmake workflow fixed with composite action * fix(ci): fixed composite action * fix(ci): trying to fix windows install dependencies * fix(ci): yet another install dependencies fix * fix(ci): codestyle checker fix * chore(ci): checking the work * chore(ci): checking the work of clang-tidy * chore(ci): checking the work of clang-tidy #2 * fix: remove checking lines in main.cpp, changed cpp version to 23 * fix(clang-tidy): remove prefix from class public member
* Rewritten vk_command_buffers from scratch * Linked CommandBuffers with VulkanEngine * Finalized CommandBuffers class
Co-authored-by: psiblvdegod <@>
* fix: ubuntu ci * fix: ubuntu ci
* Move out pipelines from vk_engine class Moved creating, managing and destroying mesh pipelines to a separate class. Unnecessary pipelines have been removed. * Remove debug files * Add pipeline interfaces * Make compute pipeline be managed together with other * Remove config.h file * Remove shader temporary file * Revert temporary file * Rename variable
* chore(ci): refactor build add new codestyle check * chore(ci): add changes to check codestyle * chore(ci): add caching * chore: add compile commands export
* chore: update readme * Create LICENSE * chore: fix for Tagir Garaev
…ivate internal vma's method and use public interface instead
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Also fix VMA allocation to not use pr…ivate internal vma's method and use public interface instead