#include <kanzi/core.ui/platform/graphics_backend/gl/graphics_swizzle_mask.hpp>
Public Types | |
enum | ColorComponent : uint8_t { ColorComponent::Zero, ColorComponent::One, ColorComponent::Red, ColorComponent::Green, ColorComponent::Blue, ColorComponent::Alpha, ColorComponent::Count } |
Wraps the graphics library's color components. More... | |
Public Member Functions | |
GLSwizzleMask | getMask () const |
Gets the swizzle mask. More... | |
constexpr | TextureSwizzleMask (ColorComponent redChannelMask, ColorComponent greenChannelMask, ColorComponent blueChannelMask, ColorComponent alphaChannelMask) |
Constructs the mask using separate value for each channel. More... | |
constexpr | TextureSwizzleMask (ColorComponent mask) |
Constructs the mask using the same value for each color channel. More... | |
~TextureSwizzleMask ()=default | |
Default destructor. More... | |
Texture swizzle mask.
The texture swizzle mask can used to reorder the color channel value, returned by the texture function in a shader. For more info see https://www.khronos.org/opengl/wiki/Texture#Swizzle_mask. Note: To apply a swizzle mask, the target platform must support GL_ARB_texture_swizzle or GL_EXT_texture_swizzle extension.
auto redOverAlphaMask = TextureSwizzleMask(ColorComponent::Zero, ColorComponent::Zero, ColorComponent::Zero, ColorComponent::Red); Renderer::setTextureSwizzleMask(..., redOverAlphaMask); This mask will map the red channel in the texture to the alpha channel.
|
strong |
Wraps the graphics library's color components.
Enumerator | |
---|---|
Zero | The component is disabled. Maps to KZS_GL_ZERO. |
One | The component is kept as-is. Maps to KZS_GL_ONE. |
Red | The value for this component comes from the red channel of the texture. All texture color formats have at least a red channel. Maps to KZS_GL_RED. |
Green | The value for this component comes from the green channel of the texture, or 0 if it has no green channel. Maps to KZS_GL_GREEN. |
Blue | The value for this component comes from the blue channel of the texture, or 0 if it has no blue channel. Maps to KZS_GL_BLUE. |
Alpha | The value for this component comes from the alpha channel of the texture, or 1 if it has no alpha channel. Maps to KZS_GL_ALPHA. |
Count | The number of supported color components. |
|
inline |
Constructs the mask using separate value for each channel.
redChannelMask | Mask for red channel. |
greenChannelMask | Mask for green channel. |
blueChannelMask | Mask for blue channel. |
alphaChannelMask | Mask for alpha channel. |
|
inline |
Constructs the mask using the same value for each color channel.
mask | Swizzle mask for all the channels. |
|
default |
Default destructor.
GLSwizzleMask kanzi::TextureSwizzleMask::getMask | ( | ) | const |
Gets the swizzle mask.