#pragma once #include "rendering/texture.h" namespace Donut { class VulkanTexture2D : public Texture2D { public: VulkanTexture2D(uint32_t width, uint32_t height); VulkanTexture2D(const std::string& path); virtual ~VulkanTexture2D(); virtual uint32_t get_width() const override { return m_width; } virtual uint32_t get_height() const override { return m_height; } virtual void set_data(void* data, uint32_t size) override; virtual void bind(uint32_t slot = 0) const override; virtual bool operator==(const Texture& other) const override { return m_renderer_id == ((VulkanTexture2D&)other).m_renderer_id; } private: std::string m_path; uint32_t m_width, m_height; uint32_t m_renderer_id; uint32_t m_internal_format, m_data_format; }; };