Line data Source code
1 : // Copyright (c) 2025 Milton McDonald
2 : // This source code is licensed under the MIT License. See LICENSE file in the
3 : // project root for details.
4 :
5 : #ifndef ENGINE_LIB_SHADER_H_
6 : #define ENGINE_LIB_SHADER_H_
7 :
8 : #include <vector>
9 :
10 : #include "glad/glad.h"
11 : #include "graphics-engine/gl-wrappers.h"
12 : #include "graphics-engine/i-shader.h"
13 : #include "graphics-engine/types.h"
14 :
15 : namespace graphics_engine::shader {
16 :
17 1 : class Shader : public IShader {
18 : public:
19 : Shader() = default;
20 2 : ~Shader() override = default;
21 :
22 : [[nodiscard]] auto GetProgramId() const -> unsigned int override;
23 :
24 : [[nodiscard]] auto Initialize(const types::ShaderSourceMap& sources)
25 : -> types::Expected<void>;
26 :
27 : private:
28 : GLuint program_id_{};
29 : };
30 :
31 : } // namespace graphics_engine::shader
32 :
33 : #endif // ENGINE_LIB_SHADER_H_
|