SFML
Simple and Fast Multimedia Library
Loading...
Searching...
No Matches
StencilMode.hpp
Go to the documentation of this file.
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2023 Laurent Gomila (laurent@sfml-dev.org)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#pragma once
26
28// Headers
31
32
33namespace sf
34{
35
53
69
75{
82 StencilValue(int theValue);
83
90 StencilValue(unsigned int theValue);
91
96 template <typename T>
97 StencilValue(T) = delete;
98
99 unsigned int value{};
100};
101
115
126[[nodiscard]] SFML_GRAPHICS_API bool operator==(const StencilMode& left, const StencilMode& right);
127
138[[nodiscard]] SFML_GRAPHICS_API bool operator!=(const StencilMode& left, const StencilMode& right);
139
140} // namespace sf
141
142
#define SFML_GRAPHICS_API
Definition Export.hpp:42
Definition BlendMode.hpp:34
StencilComparison
Enumeration of the stencil test comparisons that can be performed.
Definition StencilMode.hpp:43
@ NotEqual
The stencil test passes if the new value is strictly inequal to the value in the stencil buffer.
Definition StencilMode.hpp:50
@ Less
The stencil test passes if the new value is less than the value in the stencil buffer.
Definition StencilMode.hpp:45
@ Always
The stencil test always passes.
Definition StencilMode.hpp:51
@ Never
The stencil test never passes.
Definition StencilMode.hpp:44
@ GreaterEqual
The stencil test passes if the new value is greater than or equal to the value in the stencil buffer.
Definition StencilMode.hpp:48
@ Greater
The stencil test passes if the new value is greater than the value in the stencil buffer.
Definition StencilMode.hpp:47
@ LessEqual
The stencil test passes if the new value is less than or equal to the value in the stencil buffer.
Definition StencilMode.hpp:46
@ Equal
The stencil test passes if the new value is strictly equal to the value in the stencil buffer.
Definition StencilMode.hpp:49
StencilUpdateOperation
Enumeration of the stencil buffer update operations.
Definition StencilMode.hpp:61
@ Keep
If the stencil test passes, the value in the stencil buffer is not modified.
Definition StencilMode.hpp:62
@ Replace
If the stencil test passes, the value in the stencil buffer is set to the new value.
Definition StencilMode.hpp:64
@ Decrement
If the stencil test passes, the value in the stencil buffer is decremented and if required clamped.
Definition StencilMode.hpp:66
@ Increment
If the stencil test passes, the value in the stencil buffer is incremented and if required clamped.
Definition StencilMode.hpp:65
@ Invert
If the stencil test passes, the value in the stencil buffer is bitwise inverted.
Definition StencilMode.hpp:67
@ Zero
If the stencil test passes, the value in the stencil buffer is set to zero.
Definition StencilMode.hpp:63
Stencil modes for drawing.
Definition StencilMode.hpp:107
StencilUpdateOperation stencilUpdateOperation
The update operation to perform if the stencil test passes.
Definition StencilMode.hpp:109
StencilValue stencilReference
The reference value we're performing the stencil test with.
Definition StencilMode.hpp:111
SFML_GRAPHICS_API bool operator==(const StencilMode &left, const StencilMode &right)
Overload of the == operator.
bool stencilOnly
Whether we should update the color buffer in addition to the stencil buffer.
Definition StencilMode.hpp:113
StencilComparison stencilComparison
The comparison we're performing the stencil test with.
Definition StencilMode.hpp:108
SFML_GRAPHICS_API bool operator!=(const StencilMode &left, const StencilMode &right)
Overload of the != operator.
StencilValue stencilMask
The mask to apply to both the reference value and the value in the stencil buffer.
Definition StencilMode.hpp:112
Stencil value type (also used as a mask).
Definition StencilMode.hpp:75
unsigned int value
The stored stencil value.
Definition StencilMode.hpp:99
StencilValue(int theValue)
Construct a stencil value from a signed integer.
StencilValue(T)=delete
Disable construction from any other type.
StencilValue(unsigned int theValue)
Construct a stencil value from an unsigned integer.