vulkan test

This commit is contained in:
2025-03-22 19:00:37 +01:00
parent 73727ab45a
commit 1ea77c909f
7 changed files with 177 additions and 376 deletions

View File

@@ -6,6 +6,7 @@
// MY CLASS INCLUDES //
///////////////////////
#include "d3dclass.h"
#include "vulkan.h"
#include "cameraclass.h"
#include "object.h"
#include "lightclass.h"
@@ -71,7 +72,7 @@ public:
RenderTextureClass* GetReflectionTexture() const { return m_ReflectionTexture; };
bool Initialize(int, int, HWND);
bool Initialize(int, int, HWND, bool IsVulkan);
void Shutdown();
bool Frame(InputClass*);
void PhysicsThreadFunction();
@@ -182,6 +183,7 @@ private :
// ------------------------------------- //
D3DClass* m_Direct3D;
VulkanClass* m_Vulkan;
IDXGISwapChain* m_swapChain;
ModelClass* m_Model,* m_GroundModel, * m_WallModel, * m_BathModel, * m_WaterModel;
ModelListClass* m_ModelList;

View File

@@ -1,8 +1,49 @@
#pragma once
#include "Vulkan/Include/vulkan/vulkan.h"
#include <vector>
#include <windows.h>
#include <stdexcept>
#include "Logger.h"
class vulkan
{
class VulkanClass {
public:
};
void Initialize(HWND hwnd, int width, int height);
void Shutdown();
void Render();
private:
void CreateInstance();
void CreateSurface(HWND hwnd);
void PickPhysicalDevice();
void CreateLogicalDevice();
void CreateSwapChain(int width, int height);
void CreateImageViews();
void CreateRenderPass();
void CreateGraphicsPipeline();
void CreateFramebuffers();
void CreateCommandPool();
void CreateCommandBuffers();
void CreateSyncObjects();
VkInstance instance;
VkSurfaceKHR surface;
VkPhysicalDevice physicalDevice = VK_NULL_HANDLE;
VkDevice device;
VkQueue graphicsQueue;
VkQueue presentQueue;
VkSwapchainKHR swapChain;
std::vector<VkImage> swapChainImages;
VkFormat swapChainImageFormat;
VkExtent2D swapChainExtent;
std::vector<VkImageView> swapChainImageViews;
VkRenderPass renderPass;
VkPipelineLayout pipelineLayout;
VkPipeline graphicsPipeline;
std::vector<VkFramebuffer> swapChainFramebuffers;
VkCommandPool commandPool;
std::vector<VkCommandBuffer> commandBuffers;
std::vector<VkSemaphore> imageAvailableSemaphores;
std::vector<VkSemaphore> renderFinishedSemaphores;
std::vector<VkFence> inFlightFences;
};