light/modules/renderer/public/texture.hpp

40 lines
604 B
C++
Raw Normal View History

#pragma once
2025-07-10 21:51:17 +03:30
namespace Assets {
2025-07-10 21:51:17 +03:30
class TextureAsset;
}
2025-07-11 00:05:48 +03:30
namespace lt {
class SharedContext;
class Texture
{
public:
2025-07-05 16:07:51 +03:30
static Ref<Texture> create(
2025-07-15 16:31:46 +03:30
const Ref<Assets::TextureAsset> &asset,
2025-07-10 21:51:17 +03:30
const Ref<SharedContext> &shared_context
2025-07-05 16:07:51 +03:30
);
2025-07-10 21:51:17 +03:30
virtual ~Texture() = default;
Texture(Texture &&) = default;
auto operator=(Texture &&) -> Texture & = default;
2025-07-05 16:07:51 +03:30
Texture(const Texture &) = delete;
2025-07-06 14:02:50 +03:30
auto operator=(const Texture &) -> Texture & = delete;
virtual void bind(unsigned int slot = 0) = 0;
2025-07-06 14:02:50 +03:30
virtual auto get_texture() -> void * = 0;
protected:
2025-07-10 21:51:17 +03:30
Texture() = default;
};
2025-07-11 00:05:48 +03:30
} // namespace lt