Files
RayTracer/src/gpu/GPURenderer.h
T

42 lines
815 B
C++
Raw Normal View History

2025-01-25 13:04:12 +01:00
#pragma once
2025-01-25 20:08:21 +01:00
#include "scene/Renderer.h"
2025-01-25 13:04:12 +01:00
#include <vulkan/vulkan.hpp>
#include <vulkan/vulkan_raii.hpp>
using namespace vk::raii;
2025-01-25 20:08:21 +01:00
struct GPURenderer : public Renderer
2025-01-25 13:04:12 +01:00
{
public:
2025-01-25 20:08:21 +01:00
GPURenderer();
virtual ~GPURenderer();
2025-01-25 13:04:12 +01:00
private:
2025-01-25 14:51:17 +01:00
void createDevice();
void createCommands();
void createDescriptors();
void createShaders();
2025-01-25 13:04:12 +01:00
Context context;
Instance instance;
PhysicalDevice physicalDevice;
Device device;
Queue queue;
2025-01-25 14:51:17 +01:00
uint32_t computeQueueFamily;
2025-01-25 13:04:12 +01:00
CommandPool cmdPool;
CommandBuffers cmdBuffers;
DescriptorSetLayout descriptorLayout;
DescriptorSet descriptorSet;
DescriptorPool descriptorPool;
PipelineLayout pipelineLayout;
ShaderModule rayGen;
ShaderModule closestHit;
ShaderModule miss;
Pipeline pipeline;
virtual void render(Camera cam, RenderParameter param);
};