AronaCore/core/rhi/shader.h
2024-02-01 12:42:58 +08:00

20 lines
522 B
C++

#pragma once
class slang_handle;
class shader
{
public:
virtual ~shader() = default;
explicit shader(const std::shared_ptr<slang_handle>& handle) : handle_(handle) {}
virtual bool init() { return false; }
[[nodiscard]] virtual bool is_initialized() const = 0;
[[nodiscard]] virtual bool is_valid() const { return handle_ != nullptr && is_initialized(); }
// param setters
// virtual void set_int(const char* name, int value) = 0;
protected:
std::shared_ptr<slang_handle> handle_;
};