#pragma once #include "Deer/Tools/Memory.h" #include namespace Deer { class Texture { public: virtual ~Texture() = default; virtual unsigned int getWidth() = 0; virtual unsigned int getHeight() = 0; virtual unsigned int getTextureID() = 0; virtual void bind(unsigned int slot) = 0; virtual void unbind(unsigned int slot) = 0; }; class Texture2D : public Texture { public: static Texture2D* create(const uint8_t* data, uint32_t width, uint32_t height, int channels); }; } // namespace Deer