neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
i_standard_shader_program.hpp
Go to the documentation of this file.
1// i_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>
26
27namespace neogfx
28{
29 struct no_gradient_shader : std::logic_error { no_gradient_shader() : std::logic_error{ "neogfx::no_gradient_shader" } {} };
30 struct no_filter_shader : std::logic_error { no_filter_shader() : std::logic_error{ "neogfx::no_filter_shader" } {} };
31 struct no_glyph_shader : std::logic_error { no_glyph_shader() : std::logic_error{ "neogfx::no_glyph_shader" } {} };
32 struct no_stipple_shader : std::logic_error { no_stipple_shader() : std::logic_error{ "neogfx::no_stipple_shader" } {} };
33 struct no_shape_shader : std::logic_error { no_shape_shader() : std::logic_error{ "neogfx::no_shape_shader" } {} };
34
36 {
37 public:
39 // operations
40 public:
43 virtual const i_gradient_shader& gradient_shader() const = 0;
45 virtual const i_texture_shader& texture_shader() const = 0;
47 virtual const i_filter_shader& filter_shader() const = 0;
49 virtual const i_glyph_shader& glyph_shader() const = 0;
51 virtual const i_stipple_shader& stipple_shader() const = 0;
53 virtual const i_shape_shader& shape_shader() const = 0;
55 };
56}
virtual i_shape_shader & shape_shader()=0
virtual const i_shape_shader & shape_shader() const =0
virtual const i_gradient_shader & gradient_shader() const =0
virtual i_filter_shader & filter_shader()=0
virtual i_standard_vertex_shader & standard_vertex_shader()=0
virtual const i_stipple_shader & stipple_shader() const =0
virtual i_stipple_shader & stipple_shader()=0
virtual i_texture_shader & texture_shader()=0
virtual const i_filter_shader & filter_shader() const =0
virtual const i_glyph_shader & glyph_shader() const =0
virtual i_glyph_shader & glyph_shader()=0
virtual const i_standard_vertex_shader & standard_vertex_shader() const =0
virtual i_gradient_shader & gradient_shader()=0
virtual const i_texture_shader & texture_shader() const =0