light/modules/renderer/include/renderer/shader.hpp
light7734 f9ce347ca0
feat: initial math module implementation
refactor: replace glm with built-in math library
2025-07-17 10:44:00 +03:30

41 lines
536 B
C++

#pragma once
namespace Assets {
class TextAsset;
} // namespace Assets
namespace lt {
class SharedContext;
class Shader
{
public:
enum Stage : uint8_t
{
none = 0,
vertex,
pixel,
geometry,
};
static auto create(
const Ref<Assets::TextAsset> &vertex_asset,
const Ref<Assets::TextAsset> &pixel_asset,
const Ref<SharedContext> &shared_context
) -> Ref<Shader>;
virtual ~Shader() = default;
virtual void bind() = 0;
virtual void un_bind() = 0;
protected:
Shader() = default;
};
} // namespace lt