Addded depenendency load tool

Added simple python script that will load needed libraries into
the project folder structure. Most libraries are now not needed to be
present in development system.
This commit is contained in:
Piotr Krygier committed 2023-08-07 13:48:30 +02:00
1 parent 320c9293b1
commit a82550d414
18 files changed
+1992 -19594

No files matched your search

+8 -5
View File
@@ -1,9 +1,12 @@
find_package(Vulkan REQUIRED)
find_package(vma REQUIRED)
find_package(glfw3 REQUIRED)
find_package(glm REQUIRED)
find_package(Vulkan COMPONENTS glslc)
find_program(glslc_executable NAMES glslc HINTS Vulkan::glslc)
find_program(glslc_executable NAMES glslc HINTS ${Vulkan_GLSLC_EXECUTABLE}/..)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/shaders)
cmake_policy(SET CMP0116 NEW)
function(compile_shader)
@@ -36,14 +39,14 @@ add_library(rse_graphics SHARED shaders/shader.vert.num shaders/shader.frag.num)
target_include_directories(rse_graphics PRIVATE
${PROJECT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}
${Vulkan_INCLUDE_DIR}
${vma_INCLUDE_DIR}
${glfw3_INCLUDE_DIR}
${glm_INCLUDE_DIR}
)
message("Vulkan_INCLUDE_DIR: ${Vulkan_INCLUDE_DIR}")
target_sources(rse_graphics PRIVATE
src/window.cpp
src/vulkan_base.cpp
@@ -58,6 +61,6 @@ target_sources(rse_graphics PRIVATE
target_link_libraries(rse_graphics PRIVATE
rse_utilities
${Vulkan_LIBRARIES}
glfw
glm
${glfw}
${glm}
)
+5 -3
View File
@@ -2,13 +2,15 @@
#define RSE_GRAPHICS_HPP
#include <cstdint>
#include "src/vulkan_commons.hpp"
namespace rse::graphics
{
namespace vulkanbase {
struct VulkanState;
};
class RseGraphics {
public:
RseGraphics();
~RseGraphics();
RseGraphics& operator=(const RseGraphics&) = delete;
RseGraphics(const RseGraphics&) = delete;
@@ -22,7 +24,7 @@ class RseGraphics {
private:
/* Hold vulkan state. It is modified by function initializing and communicating with Vulkan API */
vulkanbase::VulkanState vulkan_state;
vulkanbase::VulkanState* vulkan_state;
};
+21 -17
View File
@@ -9,23 +9,27 @@ namespace rse::graphics
RseGraphics::RseGraphics()
{
vulkan_state = {
.graphicsQueue = VK_NULL_HANDLE,
.physicalDevice = VK_NULL_HANDLE,
.currentFrame = 0U,
.queueFamilyIndices = {0U}, /* TODO: Change when more families are needed */
.uniformBuffers = {},
.pCommandBuffers = {},
.descriptorSets = {},
.swapChainImageViews = {},
.swapchainExtent = {},
.renderPass = VK_NULL_HANDLE,
.descriptorSetLayout = VK_NULL_HANDLE,
.swapchainFramebuffers = {},
.graphicsPipeline = VK_NULL_HANDLE,
.pipelineLayout = VK_NULL_HANDLE,
.swapchain = VK_NULL_HANDLE,
};
vulkan_state = new vulkanbase::VulkanState;
vulkan_state->graphicsQueue = VK_NULL_HANDLE;
vulkan_state->physicalDevice = VK_NULL_HANDLE;
vulkan_state->currentFrame = 0U;
// vulkan_state->queueFamilyIndices = {0U}; /* TODO: Change when more families are needed */
vulkan_state->uniformBuffers = {};
vulkan_state->pCommandBuffers = {};
vulkan_state->descriptorSets = {};
vulkan_state->swapChainImageViews = {};
vulkan_state->swapchainExtent = {};
vulkan_state->renderPass = VK_NULL_HANDLE;
vulkan_state->descriptorSetLayout = VK_NULL_HANDLE;
vulkan_state->swapchainFramebuffers = {};
vulkan_state->graphicsPipeline = VK_NULL_HANDLE;
vulkan_state->pipelineLayout = VK_NULL_HANDLE;
vulkan_state->swapchain = VK_NULL_HANDLE;
}
RseGraphics::~RseGraphics()
{
delete vulkan_state;
}
+1 -1
View File
@@ -24,7 +24,7 @@
#pragma GCC diagnostic ignored "-Wswitch"
#pragma GCC diagnostic ignored "-Wparentheses"
#define VMA_IMPLEMENTATION
#include "third_party/vma/vk_mem_alloc.h"
#include "vk_mem_alloc.h"
#pragma GCC diagnostic pop
#include "locale_vulkan.hpp"
+1 -1
View File
@@ -5,7 +5,7 @@
#include <vector>
#include <vulkan/vulkan.hpp>
#include "third_party/vma/vk_mem_alloc.h"
#include "vk_mem_alloc.h"
#include "vulkan_commons.hpp"
+3 -1
View File
@@ -13,9 +13,11 @@
#define RSE_VULKAN_GLOBAL_HPP
#include <vulkan/vulkan.hpp>
#pragma GCC diagnostic ignored "-Wvolatile"
#include <glm/glm.hpp>
#pragma GCC diagnostic pop
#include "third_party/vma/vk_mem_alloc.h"
#include "vk_mem_alloc.h"
#define SWAP_BUFFER_COUNT 2U