neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
standard_shader_program.hpp
Go to the documentation of this file.
1// standard_shader_program.hpp
2/*
3 neogfx C++ App/Game Engine
4 Copyright (c) 2019, 2020 Leigh Johnston. All Rights Reserved.
5
6 This program is free software: you can redistribute it and / or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#pragma once
21
22#include <neogfx/neogfx.hpp>
25
26namespace neogfx
27{
28 class standard_shader_program : public shader_program<i_standard_shader_program>
29 {
30 public:
31 standard_shader_program(std::string const& aName = "standard_shader_program");
32 public:
36 const i_gradient_shader& gradient_shader() const final;
38 const i_texture_shader& texture_shader() const final;
40 const i_filter_shader& filter_shader() const final;
42 const i_glyph_shader& glyph_shader() const final;
44 const i_stipple_shader& stipple_shader() const final;
46 const i_shape_shader& shape_shader() const final;
48 private:
49 ref_ptr<i_fragment_shader> iDefaultShader;
50 ref_ptr<i_gradient_shader> iGradientShader;
51 ref_ptr<i_texture_shader> iTextureShader;
52 ref_ptr<i_filter_shader> iFilterShader;
53 ref_ptr<i_glyph_shader> iGlyphShader;
54 ref_ptr<i_stipple_shader> iStippleShader;
55 ref_ptr<i_shape_shader> iShapeShader;
56 };
57}
const i_texture_shader & texture_shader() const final
const i_shape_shader & shape_shader() const final
standard_shader_program(std::string const &aName="standard_shader_program")
shader_program_type type() const final
const i_stipple_shader & stipple_shader() const final
const i_glyph_shader & glyph_shader() const final
const i_filter_shader & filter_shader() const final
const i_gradient_shader & gradient_shader() const final