More code cleanup

This commit is contained in:
2020-10-18 21:56:30 +02:00
parent d50a14f9c9
commit 0790e40294
9 changed files with 328 additions and 241 deletions

View File

@@ -7,37 +7,45 @@
#pragma once
#include <vulkan/vulkan.hpp>
#include "../../Scene/Shader.hpp"
#include "../../Base/ICloseable.hpp"
#include "../Resources/IShaderOwner.hpp"
#include "IRecordable.hpp"
namespace openVulkanoCpp::Vulkan
namespace openVulkanoCpp
{
class Context;
struct VulkanShader final : virtual public ICloseable, virtual public IRecordable
namespace Scene
{
Scene::Shader* shader = nullptr;
vk::Device device;
vk::ShaderModule shaderModuleVertex, shaderModuleFragment;
vk::Pipeline pipeline;
IShaderOwner* owner;
Context* context;
class Shader;
}
VulkanShader() = default;
~VulkanShader() override { if (shader) VulkanShader::Close(); }
namespace Vulkan
{
class Context;
class IShaderOwner;
void Init(Context* context, Scene::Shader* shader, IShaderOwner* owner);
struct VulkanShader final : virtual public ICloseable, virtual public IRecordable
{
Scene::Shader* shader = nullptr;
vk::Device device;
vk::ShaderModule shaderModuleVertex, shaderModuleFragment;
vk::Pipeline pipeline;
IShaderOwner* owner;
Context* context;
void Resize();
VulkanShader() = default;
void Record(vk::CommandBuffer& cmdBuffer, uint32_t bufferId) override;
~VulkanShader() override
{ if (shader) VulkanShader::Close(); }
void Close() override;
void Init(Context* context, Scene::Shader* shader, IShaderOwner* owner);
private:
void BuildPipeline();
};
void Resize();
}
void Record(vk::CommandBuffer& cmdBuffer, uint32_t bufferId) override;
void Close() override;
private:
void BuildPipeline();
};
}
}