light/modules/renderer/public/shader.hpp
light7734 cd886aa8c9
Some checks reported errors
continuous-integration/drone/push Build was killed
refactor: flatten directory structure
2025-07-20 04:46:15 +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