opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
shader.h
Go to the documentation of this file.
1#pragma once
2
5
6#include <cstddef>
7#include <iosfwd>
8#include <optional>
9#include <string_view>
10
11namespace osc
12{
13 // a handle to a shader
14 class Shader final {
15 public:
16 // throws on compile error
18 std::string_view vertex_shader_src,
19 std::string_view fragment_shader_src
20 );
21
22 // throws on compile error
24 std::string_view vertex_shader_src,
25 std::string_view geometry_shader_src,
26 std::string_view fragment_shader_src
27 );
28
29 size_t num_properties() const;
30 std::optional<size_t> property_index(std::string_view property_name) const;
31 std::string_view property_name(size_t) const;
33
34 friend bool operator==(const Shader&, const Shader&) = default;
35
36 private:
37 friend std::ostream& operator<<(std::ostream&, const Shader&);
38 friend class GraphicsBackend;
39
40 class Impl;
42 };
43
44 std::ostream& operator<<(std::ostream&, const Shader&);
45}
Definition copy_on_upd_shared_value.h:16
Definition shader.h:14
ShaderPropertyType property_type(size_t) const
friend bool operator==(const Shader &, const Shader &)=default
friend class GraphicsBackend
Definition shader.h:38
std::optional< size_t > property_index(std::string_view property_name) const
friend std::ostream & operator<<(std::ostream &, const Shader &)
Shader(std::string_view vertex_shader_src, std::string_view fragment_shader_src)
size_t num_properties() const
std::string_view property_name(size_t) const
Shader(std::string_view vertex_shader_src, std::string_view geometry_shader_src, std::string_view fragment_shader_src)
Definition custom_decoration_generator.h:5
std::ostream & operator<<(std::ostream &, const Object &)
ShaderPropertyType
Definition shader_property_type.h:9
constexpr U to(T &&value)
Definition conversion.h:56