Files
OpenEngine/open_engine/include/open_engine/renderer/texture.hpp

30 lines
670 B
C++

#ifndef TEXTURE_HPP
#define TEXTURE_HPP
#include "open_engine/core.hpp"
#include <cstdint>
namespace OpenEngine {
class Texture
{
public:
virtual ~Texture() = default;
virtual uint32_t GetWidth() const = 0;
virtual uint32_t GetHeight() const = 0;
virtual void Bind(uint32_t slot = 0) const = 0;
virtual void SetData(void* data, uint32_t size) = 0;
};
class Texture2D : public Texture
{
public:
static Ref<Texture2D> Create(uint32_t width, uint32_t height);
static Ref<Texture2D> Create(const std::string& path);
};
}
#endif // TEXTURE_HPP