neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
graphics_operations.hpp
Go to the documentation of this file.
1// graphics_operations.hpp
2/*
3 neogfx C++ App/Game Engine
4 Copyright (c) 2015, 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>
23#include <vector>
24#include <ranges>
28#include <neogfx/gfx/path.hpp>
31#include <neogfx/game/mesh.hpp>
34
35namespace neogfx
36{
37 namespace graphics_operation
38 {
43
45 {
47 };
48
53
55 {
56 std::optional<rect> rect;
57 };
58
60 {
62 };
63
65 {
66 };
67
69 {
70 };
71
73 {
74 };
75
77 {
78 double opacity;
79 };
80
85
90
95
97 {
98 };
99
106
108 {
109 };
110
112 {
113 };
114
116 {
117 };
118
119 struct clear
120 {
122 };
123
125 {
126 };
127
129 {
130 };
131
133 {
134 };
135
137 {
139 };
140
142 {
145 };
146
148 {
151 };
152
159
168
175
183
192
200
209
219
229
238
245
253
260
270
272 {
276 std::optional<game::filter> filter;
277 };
278
279 typedef std::variant<std::monostate,
297 clear,
302 set_pixel,
304 draw_line,
306 draw_rect,
311 draw_pie,
312 draw_arc,
314 draw_path,
320
364
365 std::string to_string(operation_type aOpType);
366
367 bool batchable(const operation& aLeft, const operation& aRight);
368 bool batchable(text_format const& aLeft, text_format const& aRight);
369 bool batchable(i_glyph_text const& lhsText, i_glyph_text const& rhsText, glyph_char const& lhs, glyph_char const& rhs);
370
371 typedef std::vector<operation> queue;
372 typedef std::ranges::subrange<operation const*> batch;
373 }
374}
i_glyph_text::const_iterator const_iterator
std::variant< std::monostate, set_logical_coordinate_system, set_logical_coordinates, set_origin, set_viewport, scissor_on, scissor_off, snap_to_pixel_on, snap_to_pixel_off, set_opacity, set_blending_mode, set_smoothing_mode, push_logical_operation, pop_logical_operation, line_stipple_on, line_stipple_off, subpixel_rendering_on, subpixel_rendering_off, clear, clear_depth_buffer, clear_stencil_buffer, clear_gradient, set_gradient, set_pixel, draw_pixel, draw_line, draw_triangle, draw_rect, draw_rounded_rect, draw_checker_rect, draw_circle, draw_ellipse, draw_pie, draw_arc, draw_cubic_bezier, draw_path, draw_shape, draw_entities, draw_glyphs, draw_mesh > operation
std::vector< operation > queue
std::ranges::subrange< operation const * > batch
logical_coordinate_system
default_geometry_value_type dimension
std::string to_string(note const &aNote)
logical_operation
double scalar
Definition numerical.hpp:63