-
Notifications
You must be signed in to change notification settings - Fork 41
Refactor rendergraph #533
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
IAmNotHanni
wants to merge
205
commits into
main
Choose a base branch
from
hanni/rendergraph2
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Refactor rendergraph #533
Changes from all commits
Commits
Show all changes
205 commits
Select commit
Hold shift + click to select a range
f9d0dc7
[*] Remove unused msaa target file
IAmNotHanni 85fb116
[sampler] Add wrapper for samplers
IAmNotHanni 2d92705
[pipeline] Add wrapper for graphics pipelines
IAmNotHanni f140dfe
[pipeline-layout] Add wrapper for pipeline layouts
IAmNotHanni 07aa64c
[make-info] Add more functions
IAmNotHanni 568de1d
[gpu-texture] Use sampler wrapper (squash me)
IAmNotHanni 00737f1
[render-graph] Use wrappers for pipelines and pipeline layouts (squas…
IAmNotHanni f66742e
[buffer] Add buffer wrapper
IAmNotHanni 6ebdd69
[*] Use new buffer wrapper
IAmNotHanni ae04933
[*] Rewrite image wrapper
IAmNotHanni 7020dd8
[render-graph] Use buffer wrapper
IAmNotHanni d4b2559
[render-graph] Simplify use of image wrapper
IAmNotHanni a2cf9d0
[render-graph] Move update of dynamic buffers into separate method
IAmNotHanni ada2e11
[image|render-graph] Improve image wrapper further
IAmNotHanni c47f810
[pipeline-builder|render-graph] Use graphics pipeline builder
IAmNotHanni 59178a9
[render-graph|render-pass] Add wrapper for renderpasses
IAmNotHanni 5f5ba9c
[*] Introduce update mechanism to ImGui
IAmNotHanni 91dbcaa
[*] Remove renderer base class
IAmNotHanni 5692271
[*] Add template for push constant ranges
IAmNotHanni 226acf5
[render-graph] Remove build_pipeline_layout method
IAmNotHanni 5cebeef
[*] Allow chaining rendergraph methods
IAmNotHanni f074710
[*] Move pipeline setup to stage wrapper
IAmNotHanni ac90edc
[*] Restructure renderer
IAmNotHanni 5375033
[application|render-graph] Set texture format directly in constructor
IAmNotHanni fc61ec0
[render-graph] Make physical stage a physical resource
IAmNotHanni 0242200
[render-graph] Simplify dynamic cast methods
IAmNotHanni 844e450
[render-graph] Remove unused method
IAmNotHanni b8a1baa
[buffer|imgui] Improve ImGUI wrapper and update every frame
IAmNotHanni d4570da
[application|device] Move wait_idle to destructor of device wrapper
IAmNotHanni 1a475e7
[application] Make depth buffer a member
IAmNotHanni ee8c1a8
[imgui|render-graph] Automate push constant range handling
IAmNotHanni cf9ec0c
[device] Query physical device properties in constructor
IAmNotHanni 7ba29ee
[descriptors] Add new descriptor wrapper code
IAmNotHanni db25473
[*] Automate descriptor management and buffer updates
IAmNotHanni 5c98148
[pipelines] Move pipeline related wrappers to subfolder
IAmNotHanni a5ad65d
[rendergraph] Put rendergraph compilation into smaller methods
IAmNotHanni 87a021f
[render-graph] Improve formatting of console output
IAmNotHanni 3fbf3b6
[render-graph] Small improvements
IAmNotHanni f6be7ac
[*] Cleanup
IAmNotHanni 817f83a
[*] Small cleanup
IAmNotHanni 512975b
[render-graph] Fix descriptor set updates
IAmNotHanni 2baa257
[render-graph] Small cleanup
IAmNotHanni 5aa0433
[descriptor] Fix descriptor pool management
IAmNotHanni a9d24c5
[application|render-graph] Omitting shader stage when specifying read…
IAmNotHanni d7226ba
[application] Small improvement to buffer updates
IAmNotHanni 7728222
[descriptors] Improve overall descriptor management
IAmNotHanni 20f9b6f
[rendergraph] Add more const
IAmNotHanni 64fd3b4
[*] Rework descriptor management
IAmNotHanni 33f8524
[rendergraph] Fix descriptors for combined image samplers
IAmNotHanni 971f7c9
[*] Backup of work
IAmNotHanni 9f38440
[*] Backup of work
IAmNotHanni 7f16360
[instance] Switch to using Vulkan 1.3
IAmNotHanni a9c3b8e
[image|render-graph] Add another constructor for image wrapper
IAmNotHanni dffa1e8
[*] Switch to VK_EXT_debug_utils
IAmNotHanni 12d23ac
[application|instance] Remove incorrect manual use of RenderDoc insta…
IAmNotHanni 2f8f053
[doc] Correct use of RenderDoc in this project
IAmNotHanni 197d1b8
[application] Remove option for disabling debug markers because they …
IAmNotHanni 23e0957
[*] Use VK_EXT_debug_utils
IAmNotHanni 64a9fec
[*] Move setup of debug messenger callback to instance wrapper
IAmNotHanni 69c31d3
[*] Cleanup use of VK_EXT_debug_utils
IAmNotHanni a9818e7
[*] Fix debug utils
IAmNotHanni d1a7439
[device] Delete move constructor of device wrapper
IAmNotHanni 53be5bd
[*] Remove misplaced methods in device wrapper
IAmNotHanni 4039951
[*] Use debug utils naming system
IAmNotHanni 1b979b6
[commad-buffer] Small cleanup
IAmNotHanni a283da7
[instance] Small cleanup
IAmNotHanni aae3d14
[*] Small cleanup of debug utils
IAmNotHanni bf30179
[swapchain] Allow vsync to be turned off again
IAmNotHanni 6a526bf
[device] Add method for finding max sample count
IAmNotHanni e94d128
[*] Prepare for dynamic rendering
IAmNotHanni 423b554
WIP
IAmNotHanni ab4c498
WIP
IAmNotHanni 72530b3
[*] Use dynamic rendering
IAmNotHanni 0cdf6eb
[*] WIP
IAmNotHanni 92de322
[*] WIP
IAmNotHanni 8b87f66
[*] WIP
IAmNotHanni d91c5e8
[*] WIP
IAmNotHanni 160d7bf
[*] Backup of work
IAmNotHanni 24ca21c
[*] WIP
IAmNotHanni 9bd37ce
[*] WIP
IAmNotHanni d888c5b
[*] WIP
IAmNotHanni 8258c7b
[*] WIP (broken)
IAmNotHanni f249425
[*] Improve set_debug_name
IAmNotHanni 9a92d2e
[*] WIP
IAmNotHanni d9f98d6
[*] WIP
IAmNotHanni 39e7e9c
[*] WIP
IAmNotHanni 4097b45
[*] WIP
IAmNotHanni e71a1e7
[*] WIP
IAmNotHanni 44a81e6
[*] WIP
IAmNotHanni c418427
[*] WIP
IAmNotHanni 0cff923
[*] WIP
IAmNotHanni a663272
[*] WIP
IAmNotHanni a47e478
[*] WIP
IAmNotHanni c0c27ac
[WIP] Work in progress
IAmNotHanni 7198888
[WIP] Work in progress
IAmNotHanni 3ebc562
[WIP] Work in progress
IAmNotHanni a4bbfc6
[WIP] Work in progress
IAmNotHanni 638e2e1
[WIP] Work in progress
IAmNotHanni 85de555
[WIP] Work in progress
IAmNotHanni 4ee9e44
[WIP] Work in progress
IAmNotHanni afc43c0
[WIP] Work in progress
IAmNotHanni bd8ad96
[WIP] Work in progress
IAmNotHanni 0468c40
[WIP] Work in progress
IAmNotHanni 2ac69f0
[WIP] Work in progress
IAmNotHanni e0600f5
[WIP] Work in progress
IAmNotHanni 36a7691
[WIP] Work in progress
IAmNotHanni fa45441
[WIP] Work in progress
IAmNotHanni 8365d87
[WIP] Work in progress
IAmNotHanni 386a949
[WIP] Work in progress
IAmNotHanni aee8d7f
[WIP] Work in progress
IAmNotHanni 2ec2397
[WIP] Work in progress
IAmNotHanni 79f9de6
[WIP] Work in progress
IAmNotHanni 8c0356f
[WIP] Work in progress
IAmNotHanni c557006
[WIP] Work in progress
IAmNotHanni 8dd6bf9
[WIP] Work in progress
IAmNotHanni 9bc5f7b
[WIP] Work in progress
IAmNotHanni 0580be9
[WIP] Work in progress
IAmNotHanni e71abd9
[WIP] Work in progress
IAmNotHanni 7cf57c5
[WIP] Work in progress
IAmNotHanni 718219c
[WIP] Work in progress
IAmNotHanni dca0128
[WIP] Work in progress
IAmNotHanni b90e67f
[WIP] Work in progress
IAmNotHanni ec78f20
[WIP] Work in progress
IAmNotHanni 106e5c6
[WIP] Work in progress
IAmNotHanni bce5a05
[WIP] Work in progress
IAmNotHanni b164185
[WIP] Work in progress
IAmNotHanni e7b9d15
[WIP] Work in progress
IAmNotHanni e0096b5
[WIP] Work in progress
IAmNotHanni 7c38a6f
[WIP] Work in progress
IAmNotHanni 7613930
[WIP] Work in progress
IAmNotHanni 8832357
[WIP] Work in progress
IAmNotHanni 669c13e
[WIP] Work in progress
IAmNotHanni 838523f
[WIP] Work in progress
IAmNotHanni 62acd17
[*] Cleanup
IAmNotHanni c8facc6
[*] Cleanup
IAmNotHanni b544ad5
[WIP] Work in progress
IAmNotHanni aa96b41
[WIP] Work in progress
IAmNotHanni 9f7245b
[WIP] Work in progress
IAmNotHanni 159e0d0
[WIP] Work in progress
IAmNotHanni 24ae683
[WIP] Work in progress
IAmNotHanni a3c9543
[WIP] Work in progress
IAmNotHanni f48bcba
[WIP] Work in progress
IAmNotHanni 46fea99
[WIP] Work in progress
IAmNotHanni 34fa113
[WIP] Work in progress
IAmNotHanni b7333bc
[WIP] Work in progress
IAmNotHanni 8036f89
[WIP] Work in progress
IAmNotHanni 0de1bb2
[WIP] Work in progress
IAmNotHanni 3ebe3b9
[WIP] Work in progress
IAmNotHanni cda30a3
[WIP] Work in progress
IAmNotHanni 1882b8c
[WIP] Work in progress
IAmNotHanni fffd0c6
[WIP] Work in progress
IAmNotHanni a522e17
[WIP] Work in progress
IAmNotHanni e6a656b
[WIP] Work in progress
IAmNotHanni 25fdabf
[WIP] Work in progress
IAmNotHanni 0db8fa3
[WIP] Work in progress
IAmNotHanni d9f7fc6
[WIP] Work in progress
IAmNotHanni 1eece3e
[WIP] Work in progress
IAmNotHanni d08b426
[WIP] Work in progress
IAmNotHanni e9370d3
[WIP] Work in progress
IAmNotHanni 3c9153a
[WIP] Work in progress
IAmNotHanni 0d13451
[WIP] Work in progress
IAmNotHanni 6ec3597
[WIP] Work in progress
IAmNotHanni 12d9f98
[WIP] Work in progress
IAmNotHanni 998af5f
[WIP] Work in progress
IAmNotHanni 29c34c5
[WIP] Work in progress
IAmNotHanni 20d3b1d
[WIP] Work in progress
IAmNotHanni 8b1c844
[WIP] Work in progress
IAmNotHanni 92acbd1
[WIP] Work in progress
IAmNotHanni 2e90e92
[WIP] Work in progress
IAmNotHanni c83a871
[WIP] Work in progress
IAmNotHanni 8134cc2
[WIP] Work in progress
IAmNotHanni 691d277
[WIP] Work in progress
IAmNotHanni 9392044
[WIP] Work in progress
IAmNotHanni c9cc646
[WIP] Work in progress
IAmNotHanni 2611084
[WIP] Work in progress
IAmNotHanni 9ef0b51
[WIP] Work in progress
IAmNotHanni 9849f5f
[WIP] Work in progress
IAmNotHanni 5933fb9
[WIP] Work in progress
IAmNotHanni 315473b
[WIP] Work in progress
IAmNotHanni 5b9abfb
[WIP] work in progress
IAmNotHanni 998cc51
[WIP] work in progress
IAmNotHanni 4e82d8d
[WIP] Work in progress
IAmNotHanni 58af398
[WIP] Work in progress
IAmNotHanni a420391
[WIP] Work in progress
IAmNotHanni 3b00b36
[WIP] Work in progress
IAmNotHanni 930cd2d
[WIP] Work in progress
IAmNotHanni 8f873b9
[WIP] Work in progress
IAmNotHanni e8316de
[WIP] Work in progress
IAmNotHanni d78c47d
[WIP] Work in progress
IAmNotHanni 71c352e
[WIP] Work in progress
IAmNotHanni 728b930
[WIP] Work in progress
IAmNotHanni 0b2560e
[WIP] Work in progress
IAmNotHanni 15c03f4
[WIP] Work in progress
IAmNotHanni 136ab9f
[WIP] Work in progress
IAmNotHanni 8b8e614
WIP
IAmNotHanni 06f5c27
WIP
IAmNotHanni 6f8c6a7
WIP
IAmNotHanni 785e0dd
[WIP] Work in progress
IAmNotHanni eba05de
[WIP] Work in progress
IAmNotHanni 8c7a67f
[WIP] Work in progress
IAmNotHanni a08187c
[WIP] Work in progress
IAmNotHanni ab4c395
[WIP] Work in progress
IAmNotHanni d8c365c
[*] Implement a Vulkan pipeline cache
IAmNotHanni c96fcc1
[WIP] Work in progress
IAmNotHanni 9d5faa2
WIP
IAmNotHanni File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
Binary file removed
BIN
-273 KB
documentation/source/development/debugging/images/renderdoc/RenderDoc_step_1.jpg
Binary file not shown.
Binary file removed
BIN
-322 KB
documentation/source/development/debugging/images/renderdoc/RenderDoc_step_2.jpg
Binary file not shown.
Binary file removed
BIN
-410 KB
documentation/source/development/debugging/images/renderdoc/RenderDoc_step_3.jpg
Binary file not shown.
Binary file removed
BIN
-396 KB
documentation/source/development/debugging/images/renderdoc/RenderDoc_step_4.jpg
Binary file not shown.
Binary file removed
BIN
-270 KB
documentation/source/development/debugging/images/renderdoc/RenderDoc_step_5.jpg
Binary file not shown.
Binary file removed
BIN
-1.68 MB
documentation/source/development/debugging/images/renderdoc/RenderDoc_step_6.jpg
Binary file not shown.
Binary file removed
BIN
-136 KB
documentation/source/development/debugging/images/renderdoc/RenderDoc_step_7.jpg
Binary file not shown.
Binary file removed
BIN
-326 KB
documentation/source/development/debugging/images/renderdoc/RenderDoc_step_8.jpg
Binary file not shown.
Binary file removed
BIN
-584 KB
documentation/source/development/debugging/images/renderdoc/RenderDoc_step_9.jpg
Binary file not shown.
Binary file removed
BIN
-320 KB
...tation/source/development/debugging/images/renderdoc/VisualStudioBreakpoint.jpg
Binary file not shown.
Binary file removed
BIN
-323 KB
...ntation/source/development/debugging/images/renderdoc/VisualStudioDebugging.jpg
Binary file not shown.
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Rendergraph | ||
=========== | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
#pragma once | ||
|
||
#include "inexor/vulkan-renderer/input/keyboard_mouse_data.hpp" | ||
#include "inexor/vulkan-renderer/render-graph/render_graph.hpp" | ||
#include "inexor/vulkan-renderer/render-modules/imgui_renderer.hpp" | ||
#include "inexor/vulkan-renderer/render-modules/octree_renderer.hpp" | ||
#include "inexor/vulkan-renderer/tools/camera.hpp" | ||
#include "inexor/vulkan-renderer/tools/cla_parser.hpp" | ||
#include "inexor/vulkan-renderer/world/cube.hpp" | ||
#include "inexor/vulkan-renderer/wrapper/device.hpp" | ||
#include "inexor/vulkan-renderer/wrapper/instance.hpp" | ||
#include "inexor/vulkan-renderer/wrapper/pipelines/pipeline_cache.hpp" | ||
#include "inexor/vulkan-renderer/wrapper/surface.hpp" | ||
#include "inexor/vulkan-renderer/wrapper/swapchain.hpp" | ||
#include "inexor/vulkan-renderer/wrapper/window.hpp" | ||
|
||
#include <spdlog/spdlog.h> | ||
|
||
#include <chrono> | ||
|
||
namespace inexor::vulkan_renderer::example_app { | ||
|
||
// Using declarations | ||
using input::KeyboardMouseInputData; | ||
using render_graph::Buffer; | ||
using render_graph::BufferType; | ||
using render_graph::RenderGraph; | ||
using render_graph::TextureResource; | ||
using render_graph::TextureUsage; | ||
using render_modules::ImGuiRenderer; | ||
using render_modules::OctreeRenderer; | ||
using tools::Camera; | ||
using tools::CameraMovement; | ||
using tools::CameraType; | ||
using tools::CommandLineArgumentParser; | ||
using world::Cube; | ||
using wrapper::Device; | ||
using wrapper::Instance; | ||
using wrapper::Surface; | ||
using wrapper::Swapchain; | ||
using wrapper::Window; | ||
using wrapper::pipelines::PipelineCache; | ||
|
||
/// The command line arguments will be parsed into these options | ||
struct CommandLineOptions { | ||
bool stop_on_validation_error{false}; | ||
bool vsync_enabled{true}; | ||
std::optional<std::uint32_t> preferred_gpu{std::nullopt}; | ||
// Add your option here... | ||
}; | ||
|
||
/// An example app using Inexor vulkan-renderer engine | ||
class ExampleApp { | ||
private: | ||
CommandLineOptions m_options; | ||
std::unique_ptr<PipelineCache> m_pipeline_cache; | ||
std::unique_ptr<Instance> m_instance; | ||
std::unique_ptr<Window> m_window; | ||
std::unique_ptr<Surface> m_surface; | ||
std::unique_ptr<Device> m_device; | ||
std::shared_ptr<Swapchain> m_swapchain; | ||
std::shared_ptr<RenderGraph> m_rendergraph; | ||
|
||
std::weak_ptr<TextureResource> m_back_buffer; | ||
std::weak_ptr<TextureResource> m_depth_buffer; | ||
|
||
std::vector<std::shared_ptr<Cube>> m_octrees; | ||
std::unique_ptr<OctreeRenderer> m_octree_renderer; | ||
|
||
std::unique_ptr<ImGuiRenderer> m_imgui_renderer; | ||
|
||
float m_time_passed{0.0f}; | ||
std::shared_ptr<Camera> m_camera; | ||
KeyboardMouseInputData m_input_data; | ||
|
||
std::chrono::time_point<std::chrono::high_resolution_clock> m_duration{std::chrono::high_resolution_clock::now()}; | ||
std::chrono::time_point<std::chrono::high_resolution_clock> m_last_time{std::chrono::high_resolution_clock::now()}; | ||
|
||
void create_physical_device(); | ||
void create_window(); | ||
void initialize_spdlog(); | ||
void setup_octree_rendering(); | ||
void setup_render_graph(); | ||
void recreate_swapchain(); | ||
void render_frame(); | ||
void update_time(); | ||
|
||
/// Because GLFW is a C-style API, we can't use a pointer to non-static class methods as window or input callback. | ||
/// A good explanation can be found on Stack Overflow: | ||
/// https://stackoverflow.com/questions/7676971/pointing-to-a-function-that-is-a-class-member-glfw-setkeycallback | ||
/// In order to fix this, we can pass a lambda to glfwSetKeyCallback, which calls our callbacks internally. There is | ||
/// another problem: Inside of the lambda, we need to call the member function. In order to do so, we need to have | ||
/// access to the this-pointer. Unfortunately, the this-pointer can't be captured in the lambda capture like | ||
/// [this](){}, because the glfw would not accept the lambda then. To fix this problem, we store the this pointer | ||
/// using glfwSetWindowUserPointer. Inside of these lambdas, we then cast the pointer to Application* again, | ||
/// allowing us to finally use the callbacks. | ||
void setup_window_input_callbacks(); | ||
|
||
/// A swap function for move assignment constructor and move assignment operator | ||
/// @param other A reference to the other instance of ExampleApp to swap with | ||
void swap(ExampleApp &other); | ||
|
||
/// The callback for validation messages (VK_EXT_debug_utils) | ||
/// @param severity The severity of the message (info, warning, error) | ||
/// @param type The type of message (validation, performance) | ||
/// @param data Additional data related to the message | ||
/// @param user_data Additional user-defined data related to the message | ||
/// @return This will always return ``VK_FALSE``, meaning the app will continue to run | ||
static VkBool32 validation_layer_debug_messenger_callback(VkDebugUtilsMessageSeverityFlagBitsEXT severity, | ||
VkDebugUtilsMessageTypeFlagsEXT type, | ||
const VkDebugUtilsMessengerCallbackDataEXT *data, | ||
void *user_data); | ||
|
||
public: | ||
/// Default constructor | ||
/// @param argc The number of arguments passed to the main function | ||
/// @param argv The arguments passed to the main function | ||
ExampleApp(int argc, char *argv[]); | ||
|
||
void cursor_position_callback(GLFWwindow *, double, double); | ||
void keyboard_button_callback(GLFWwindow *, int, int, int, int); | ||
void mouse_button_callback(GLFWwindow *, int, int, int); | ||
void mouse_scroll_callback(GLFWwindow *, double, double); | ||
void parse_command_line_arguments(int argc, char *argv[]); | ||
void process_mouse_input(); | ||
void process_keyboard_input(); | ||
void run(); | ||
void update_imgui(); | ||
void check_octree_collisions(); | ||
}; | ||
|
||
} // namespace inexor::vulkan_renderer::example_app |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#pragma once | ||
|
||
#include <array> | ||
|
||
#define MAKE_API_VERSION(major, minor, patch) \ | ||
((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch))) | ||
|
||
namespace inexor::vulkan_renderer::example_app { | ||
|
||
/// The following data will be filled when CMake configures this file | ||
constexpr const char *APP_NAME{"Example-app"}; | ||
constexpr std::uint32_t APP_VERSION{MAKE_API_VERSION(0, 1, 0)}; | ||
constexpr const char *APP_VERSION_STR{"0.1.0"}; | ||
constexpr const char* ENGINE_NAME{"Inexor Engine"}; | ||
constexpr std::uint32_t ENGINE_VERSION{MAKE_API_VERSION(0, 1, 0)}; | ||
constexpr std::uint32_t USED_VULKAN_API_VERSION{MAKE_API_VERSION(1, 3, 0)}; | ||
constexpr const char *ENGINE_VERSION_STR{"0.1.0"}; | ||
constexpr const char *BUILD_GIT = "c96fcc1"; | ||
constexpr const char *BUILD_TYPE = "Release"; | ||
|
||
} // namespace inexor::vulkan_renderer::example_app |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#pragma once | ||
|
||
#include <array> | ||
|
||
#define MAKE_API_VERSION(major, minor, patch) \ | ||
((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch))) | ||
|
||
namespace inexor::vulkan_renderer::example_app { | ||
|
||
/// The following data will be filled when CMake configures this file | ||
constexpr const char *APP_NAME{"${INEXOR_EXAMPLE_APP_NAME}"}; | ||
constexpr std::uint32_t APP_VERSION{MAKE_API_VERSION(${INEXOR_EXAMPLE_APP_VERSION_MAJOR}, ${INEXOR_EXAMPLE_APP_VERSION_MINOR}, ${INEXOR_EXAMPLE_APP_VERSION_PATCH})}; | ||
constexpr const char *APP_VERSION_STR{"${INEXOR_EXAMPLE_APP_VERSION_MAJOR}.${INEXOR_EXAMPLE_APP_VERSION_MINOR}.${INEXOR_EXAMPLE_APP_VERSION_PATCH}"}; | ||
constexpr const char* ENGINE_NAME{"${INEXOR_ENGINE_NAME}"}; | ||
constexpr std::uint32_t ENGINE_VERSION{MAKE_API_VERSION(${INEXOR_ENGINE_VERSION_MAJOR}, ${INEXOR_ENGINE_VERSION_MINOR}, ${INEXOR_ENGINE_VERSION_PATCH})}; | ||
constexpr std::uint32_t USED_VULKAN_API_VERSION{MAKE_API_VERSION(${INEXOR_VULKAN_VERSION_MAJOR}, ${INEXOR_VULKAN_VERSION_MINOR}, ${INEXOR_VULKAN_VERSION_PATCH})}; | ||
constexpr const char *ENGINE_VERSION_STR{"${INEXOR_ENGINE_VERSION_MAJOR}.${INEXOR_ENGINE_VERSION_MINOR}.${INEXOR_ENGINE_VERSION_PATCH}"}; | ||
constexpr const char *BUILD_GIT = "${INEXOR_GIT_SHA}"; | ||
constexpr const char *BUILD_TYPE = "${CMAKE_BUILD_TYPE}"; | ||
|
||
} // namespace inexor::vulkan_renderer::example_app |
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.