20 lines
522 B
C++
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_;
|
|
};
|