Blender V5.0
GPUSamplerState Struct Reference

#include <GPU_texture.hh>

Public Member Functions

void enable_filtering_flag (GPUSamplerFiltering filtering_flags)
void disable_filtering_flag (GPUSamplerFiltering filtering_flags)
void set_filtering_flag_from_test (GPUSamplerFiltering filtering_flags, bool test)
std::string to_string () const
uint32_t as_uint () const
bool operator== (GPUSamplerState const &rhs) const

Static Public Member Functions

static constexpr GPUSamplerState default_sampler ()
static constexpr GPUSamplerState internal_sampler ()
static constexpr GPUSamplerState icon_sampler ()
static constexpr GPUSamplerState compare_sampler ()

Public Attributes

GPUSamplerFiltering filtering: 8
GPUSamplerExtendMode extend_x: 4
GPUSamplerExtendMode extend_yz: 4
GPUSamplerCustomType custom_type: 8
GPUSamplerStateType type: 8

Detailed Description

The GPUSamplerState specifies the sampler state to bind a texture with.

When the state type is set to GPU_SAMPLER_STATE_TYPE_CUSTOM or GPU_SAMPLER_STATE_TYPE_INTERNAL, the rest of the members of the structure will be ignored. However, we can't turn this structure into a union, because various functions merely temporally change the state type and expect the rest of the members' values to be retained when the state type is changed back to GPU_SAMPLER_STATE_TYPE_PARAMETERS. For the instance, a function might do the following and expect the original sampler state of the texture to be retained after disabling comparison mode:

GPU_texture_compare_mode(texture, true); // Use the texture ... GPU_texture_compare_mode(texture, false);

Definition at line 419 of file GPU_texture.hh.

Member Function Documentation

◆ as_uint()

uint32_t GPUSamplerState::as_uint ( ) const
inline

Definition at line 626 of file GPU_texture.hh.

References custom_type, extend_x, extend_yz, filtering, and type.

◆ compare_sampler()

constexpr GPUSamplerState GPUSamplerState::compare_sampler ( )
inlinestaticconstexpr

Constructs a special sampler state for depth comparison. See the documentation on GPU_SAMPLER_CUSTOM_COMPARE for more information.

GPU_SAMPLER_STATE_TYPE_CUSTOM is set in order to specify a custom sampler type, so the rest of the options before it are ignored and irrelevant, but they are set to sensible defaults in case comparison mode is turned off, in which case, the sampler state will become equivalent to GPUSamplerState::default_sampler().

Definition at line 497 of file GPU_texture.hh.

References GPU_SAMPLER_CUSTOM_COMPARE, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_SAMPLER_FILTERING_DEFAULT, and GPU_SAMPLER_STATE_TYPE_CUSTOM.

Referenced by blender::gpu::VKSamplers::init().

◆ default_sampler()

constexpr GPUSamplerState GPUSamplerState::default_sampler ( )
inlinestaticconstexpr

◆ disable_filtering_flag()

void GPUSamplerState::disable_filtering_flag ( GPUSamplerFiltering filtering_flags)
inline

◆ enable_filtering_flag()

void GPUSamplerState::enable_filtering_flag ( GPUSamplerFiltering filtering_flags)
inline

Enables the given filtering flags.

Definition at line 509 of file GPU_texture.hh.

References filtering.

Referenced by blender::nodes::node_shader_tex_environment_cc::node_shader_gpu_tex_environment(), and set_filtering_flag_from_test().

◆ icon_sampler()

constexpr GPUSamplerState GPUSamplerState::icon_sampler ( )
inlinestaticconstexpr

Constructs a special sampler state that can be used sampler icons. See the documentation on GPU_SAMPLER_CUSTOM_ICON for more information.

GPU_SAMPLER_STATE_TYPE_CUSTOM is set in order to specify a custom sampler type, so the rest of the options before it are arbitrary, ignored, and irrelevant.

Definition at line 479 of file GPU_texture.hh.

References GPU_SAMPLER_CUSTOM_ICON, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_SAMPLER_FILTERING_DEFAULT, and GPU_SAMPLER_STATE_TYPE_CUSTOM.

Referenced by blender::gpu::VKSamplers::init().

◆ internal_sampler()

constexpr GPUSamplerState GPUSamplerState::internal_sampler ( )
inlinestaticconstexpr

Constructs a sampler state that can be used to signal that the internal sampler of the texture should be used instead. See the documentation on GPU_SAMPLER_STATE_TYPE_INTERNAL for more information.

GPU_SAMPLER_STATE_TYPE_INTERNAL is set in order to signal the use of the internal sampler of the texture, so the rest of the options before it are arbitrary, ignored, and irrelevant.

Definition at line 463 of file GPU_texture.hh.

References GPU_SAMPLER_CUSTOM_COMPARE, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_SAMPLER_FILTERING_DEFAULT, and GPU_SAMPLER_STATE_TYPE_INTERNAL.

Referenced by GPU_color_band(), and blender::gpu::shader::ShaderCreateInfo::sampler().

◆ operator==()

bool GPUSamplerState::operator== ( GPUSamplerState const & rhs) const
inline

Definition at line 636 of file GPU_texture.hh.

References custom_type, extend_x, extend_yz, filtering, rhs, and type.

◆ set_filtering_flag_from_test()

void GPUSamplerState::set_filtering_flag_from_test ( GPUSamplerFiltering filtering_flags,
bool test )
inline

Enables the given filtering flags if the given test is true, otherwise, disables the given filtering flags.

Definition at line 526 of file GPU_texture.hh.

References disable_filtering_flag(), and enable_filtering_flag().

Referenced by GPU_texture_anisotropic_filter(), GPU_texture_filter_mode(), and GPU_texture_mipmap_mode().

◆ to_string()

Member Data Documentation

◆ custom_type

◆ extend_x

◆ extend_yz

GPUSamplerExtendMode GPUSamplerState::extend_yz

Specifies how the texture will be extrapolated for out-of-bound texture sampling along both the y and z axis. There is no individual control for the z axis because 3D textures have limited use, and when used, their extend mode is typically the same for all axis.

Definition at line 432 of file GPU_texture.hh.

Referenced by as_uint(), blender::gpu::VKSampler::create(), blender::gpu::VKSamplers::get(), blender::gpu::MTLContext::get_sampler_from_state(), blender::nodes::node_shader_tex_environment_cc::node_shader_gpu_tex_environment(), blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image(), blender::gpu::MTLSamplerState::operator uint(), blender::gpu::MTLSamplerState::operator uint64_t(), operator==(), and to_string().

◆ filtering

◆ type


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