30 lines
670 B
C++
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
|