#pragma once
/*
VulkanFramework
by John Ryland
Copyright (c) 2023
*/
////////////////////////////////////////////////////////////////////////////////////
// Vulkan Shader
#include "VulkanDevice.h"
#include <functional>
namespace Vulkan {
class Shader
{
public:
Shader(Device* device, const char* fileName);
Shader(Device* device, uint32_t* code, size_t size);
virtual ~Shader();
Device* m_owner;
VkShaderModule m_module;
protected:
virtual void Create(uint32_t* code, size_t size);
virtual void Destroy();
};
} // Vulkan namespace