MCPcopy Create free account
hub / github.com/RobLoach/raylib-cpp / ShaderUnmanaged

Class ShaderUnmanaged

include/ShaderUnmanaged.hpp:15–155  ·  view source on GitHub ↗

* Shader type (generic), not managed by C++ RAII. */

Source from the content-addressed store, hash-verified

13 * Shader type (generic), not managed by C++ RAII.
14 */
15class ShaderUnmanaged : public ::Shader {
16public:
17 ShaderUnmanaged() : ::Shader{rlGetShaderIdDefault(), rlGetShaderLocsDefault()} {}
18
19 ShaderUnmanaged(const ::Shader& shader) : ::Shader(shader) { }
20
21 ShaderUnmanaged(unsigned int id, int* locs = nullptr) : ::Shader{id, locs} {}
22
23 ShaderUnmanaged(const std::string& vsFileName, const std::string& fsFileName) {
24 set(::LoadShader(vsFileName.c_str(), fsFileName.c_str()));
25 }
26 ShaderUnmanaged(const char* vsFileName, const char* fsFileName) { set(::LoadShader(vsFileName, fsFileName)); }
27
28 /**
29 * Load shader from files and bind default locations.
30 *
31 * @see ::LoadShader
32 */
33 static ::Shader Load(const std::string& vsFileName, const std::string& fsFileName) {
34 return ::LoadShader(vsFileName.c_str(), fsFileName.c_str());
35 }
36 static ::Shader Load(const char* vsFileName, const char* fsFileName) {
37 return ::LoadShader(vsFileName, fsFileName);
38 }
39
40 /**
41 * Load a shader from memory.
42 *
43 * @see ::LoadShaderFromMemory
44 */
45 static ::Shader LoadFromMemory(const std::string& vsCode, const std::string& fsCode) {
46 return ::LoadShaderFromMemory(vsCode.c_str(), fsCode.c_str());
47 }
48 static ::Shader LoadFromMemory(const char* vsCode, const char* fsCode) {
49 return ::LoadShaderFromMemory(vsCode, fsCode);
50 }
51
52 GETTER(unsigned int, Id, id)
53 GETTER(int*, Locs, locs)
54
55 ShaderUnmanaged& operator=(const ::Shader& shader) {
56 set(shader);
57 return *this;
58 }
59
60 [[nodiscard]] std::string ToString() const { return TextFormat("Shader(id=%u)", id); }
61
62 operator std::string() const { return ToString(); }
63
64 /**
65 * Begin custom shader drawing.
66 */
67 ShaderUnmanaged& BeginMode() {
68 ::BeginShaderMode(*this);
69 return *this;
70 }
71
72 /**

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected