Antkeeper  0.0.1
pipeline-color-blend-state.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2023 Christopher J. Howard
3  *
4  * This file is part of Antkeeper source code.
5  *
6  * Antkeeper source code 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  * Antkeeper source code 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 Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef ANTKEEPER_GL_PIPELINE_COLOR_BLEND_STATE_HPP
21 #define ANTKEEPER_GL_PIPELINE_COLOR_BLEND_STATE_HPP
22 
23 #include <engine/gl/logic-op.hpp>
25 #include <array>
26 #include <cstdlib>
27 
28 namespace gl {
29 
32 {
34  bool logic_op_enabled{false};
35 
38 
40  bool blend_enabled{false};
41 
44  {
51  };
52 
54  std::uint8_t color_write_mask{0b1111};
55 
57  std::array<float, 4> blend_constants{0.0f, 0.0f, 0.0f, 0.0f};
58 };
59 
60 } // namespace gl
61 
62 #endif // ANTKEEPER_GL_PIPELINE_COLOR_BLEND_STATE_HPP
Graphics library interface.
Definition: window.hpp:28
logic_op
Framebuffer logical operations.
Definition: logic-op.hpp:29
Color blend factors and operations.
std::array< float, 4 > blend_constants
RGBA components of the blend constant that are used in blending, depending on the blend factor.
bool blend_enabled
Controls whether blending is enabled for the corresponding color attachment.
bool logic_op_enabled
Controls whether to apply logical operations.
std::uint8_t color_write_mask
Bitmask indicating which of the RGBA components are enabled for writing.