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
StencilComparison
Enumeration of the stencil test comparisons that can be performed.
@ NotEqual
The stencil test passes if the new value is strictly unequal to the value in the stencil buffer.
@ Less
The stencil test passes if the new value is less than the value in the stencil buffer.
@ Always
The stencil test always passes.
@ Never
The stencil test never passes.
@ GreaterEqual
The stencil test passes if the new value is greater than or equal to the value in the stencil buffer.
@ Greater
The stencil test passes if the new value is greater than the value in the stencil buffer.
@ LessEqual
The stencil test passes if the new value is less than or equal to the value in the stencil buffer.
@ Equal
The stencil test passes if the new value is strictly equal to the value in the stencil buffer.
StencilUpdateOperation
Enumeration of the stencil buffer update operations.
@ Keep
If the stencil test passes, the value in the stencil buffer is not modified.
@ Replace
If the stencil test passes, the value in the stencil buffer is set to the new value.
@ Decrement
If the stencil test passes, the value in the stencil buffer is decremented and if required clamped.
@ Increment
If the stencil test passes, the value in the stencil buffer is incremented and if required clamped.
@ Invert
If the stencil test passes, the value in the stencil buffer is bitwise inverted.
@ Zero
If the stencil test passes, the value in the stencil buffer is set to zero.
Stencil modes for drawing.
StencilUpdateOperation stencilUpdateOperation
The update operation to perform if the stencil test passes.
StencilValue stencilReference
The reference value we're performing the stencil test with.
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.
StencilComparison stencilComparison
The comparison we're performing the stencil test with.
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.
Stencil value type (also used as a mask)
unsigned int value
The stored stencil value.
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.