Kanzi  3.9.9
Kanzi Engine C++ API
kanzi::TextureSwizzleMask Class Reference

Use the texture swizzle mask to reorder the color channel values returned by the texture function in a shader. More...

#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 color components of the graphics library. 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...
 

Detailed Description

Use the texture swizzle mask to reorder the color channel values returned by the texture function in a shader.

See https://www.khronos.org/opengl/wiki/Texture#Swizzle_mask.

Note
To apply a swizzle mask, the target platform must support the GL_ARB_texture_swizzle or GL_EXT_texture_swizzle extension.

Example

This mask maps the red channel in a texture to the alpha channel:

Since
Kanzi 3.8.0

Member Enumeration Documentation

Wraps the color components of the graphics library.

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.

Constructor & Destructor Documentation

constexpr kanzi::TextureSwizzleMask::TextureSwizzleMask ( ColorComponent  redChannelMask,
ColorComponent  greenChannelMask,
ColorComponent  blueChannelMask,
ColorComponent  alphaChannelMask 
)
inline

Constructs the mask using separate value for each channel.

Parameters
redChannelMaskMask for red channel.
greenChannelMaskMask for green channel.
blueChannelMaskMask for blue channel.
alphaChannelMaskMask for alpha channel.
constexpr kanzi::TextureSwizzleMask::TextureSwizzleMask ( ColorComponent  mask)
inline

Constructs the mask using the same value for each color channel.

Parameters
maskSwizzle mask for all the channels.
kanzi::TextureSwizzleMask::~TextureSwizzleMask ( )
default

Default destructor.

Member Function Documentation

GLSwizzleMask kanzi::TextureSwizzleMask::getMask ( ) const

Gets the swizzle mask.

Returns
Internal GL representation of the swizzle mask.

The documentation for this class was generated from the following file: