10#define VMA_STATIC_VULKAN_FUNCTIONS 0
11#define VMA_DYNAMIC_VULKAN_FUNCTIONS 1
15#include "PhysicsDebug.hpp"
18#include "MeshManager.hpp"
25#include "components/Environment.hpp"
98 VulkanPhysicsDebug* getPhysicsDebug() {
return m_p_physicsDebug.get(); }
101 VulkanContext m_context;
102 SDL_Window* m_p_window;
103 VirtualFileSystem* m_vfs;
104 std::unique_ptr<VulkanSwapchainManager> m_p_swapchainManager;
105 std::unique_ptr<VulkanResources> m_p_resources;
106 std::unique_ptr<VulkanPipeline> m_p_pipeline;
107 std::unique_ptr<VulkanPipeline> m_p_transPipeline;
108 std::unique_ptr<VulkanPipeline> m_p_maskPipeline;
109 std::unique_ptr<VulkanPipeline> m_p_billboardMaskedPipeline;
110 std::unique_ptr<VulkanPipeline> m_p_billboardTransPipeline;
111 std::unique_ptr<VulkanPipeline> m_p_particleMaskedPipeline;
112 std::unique_ptr<VulkanPipeline> m_p_particleTransPipeline;
113 std::unique_ptr<VulkanPipeline> m_p_uiPipeline;
114 std::unique_ptr<VulkanPipeline> m_p_compositePipeline;
115 std::unique_ptr<VulkanPipeline> m_p_fullscreenPipeline;
116 std::unique_ptr<MeshManager> m_p_meshManager;
117 std::unique_ptr<Renderer> m_p_renderer;
119 uint32_t GetBestDeviceVersion();
120 bool CheckValidationLayerSupport();
123 std::unique_ptr<VulkanPipeline> m_p_debugPipeline;
124 std::unique_ptr<VulkanPhysicsDebug> m_p_physicsDebug;
This file defines struct GameInfo.
This file defines VulkanPipeline Class.
This file defines Renderer Class.
This file defines VulkanResources Class.
This file defines VulkanSwapchainManager Class.
This file defines structs needed for UI rendering.
This file defines VirtualFileSystem and VPKStream classes.
environment getEnvironment()
Getter for Enviroment settings.
void bindWindow(SDL_Window *window)
Binds the backend to a window.
void unbindWindow()
Unbinds the current window.
Renderer & getRenderer()
Getter for Renderer.
~Interface()
Simple destructor cleaning up resources.
Interface(SDL_Window *window, glm::uvec2 initialResolution, GameInfo gInfo, VirtualFileSystem *vfs)
Constructor for Interface class.
VulkanContext * getContext()
Getter for VulkanContext.
void WaitForGPUToFinish()
Helper function to wait for GPU to finish.
void createDefaultTexture()
Creates the default texture.
MeshManager & getMeshManager()
Getter for MeshManager.
void setVSync(bool enabled)
Sets VSync (Vertical Synchronization).
void setEnvironment(environment env)
Allows to update Enviroment settings at runtime.
VulkanResources * getResources()
Getter for VulkanResources.
Class responsible for rendering the scene using Vulkan backend.
This class provides abstraction of file system needed for loading packed and unpacked assets.
This class manages resources like textures, descriptor sets, and uniform buffers.
This file defines struct holding all vulkan data, like device, surface, swapchain,...
this struct contains information about the game. like project name and version.
Struct holding all vulkan data, like device, surface, swapchain, images, views, and more.
This struct is used to hold all environment settings. eg. shading details or lighting setup.