6#include <math/math.hpp>
9#include <unordered_map>
30 [[nodiscard]]
static std::shared_ptr<Program>
create(
const Descriptor& desc);
39 [[nodiscard]]
static std::shared_ptr<Program>
create(std::string_view name);
41 virtual void use() = 0;
43 virtual void set_uniform(
const std::string& name,
int value) = 0;
44 virtual void set_uniform(
const std::string& name,
float value) = 0;
45 virtual void set_uniform(
const std::string& name,
const Vector2& value) = 0;
46 virtual void set_uniform(
const std::string& name,
const Vector3& value) = 0;
47 virtual void set_uniform(
const std::string& name,
const Vector4& value) = 0;
48 virtual void set_uniform(
const std::string& name,
const Matrix4& value) = 0;
50 int get_stage_count()
const;
58 inline static std::unordered_map<std::string, std::shared_ptr<Program>> cache_;
64 std::shared_ptr<Shader> vertex;
65 std::shared_ptr<Shader> fragment;
66 std::shared_ptr<Shader> geometry;
67 std::shared_ptr<Shader> compute;
着色器程序.
Definition: Program.h:21
static std::shared_ptr< Program > create(const Descriptor &desc)
创建着色器阶段.
Definition: Program.cpp:18
着色器阶段.
Definition: Shader.h:20