|
Blender V4.3
|
#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 |
| 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 |
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 174 of file GPU_texture.hh.
|
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 252 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().
|
inlinestaticconstexpr |
Constructs a sampler state with default filtering and extended extend in both x and y axis. See the documentation on GPU_SAMPLER_FILTERING_DEFAULT and GPU_SAMPLER_EXTEND_MODE_EXTEND for more information.
GPU_SAMPLER_STATE_TYPE_PARAMETERS is set in order to utilize the aforementioned parameters, so GPU_SAMPLER_CUSTOM_COMPARE is arbitrary, ignored, and irrelevant.
Definition at line 201 of file GPU_texture.hh.
References GPU_SAMPLER_CUSTOM_COMPARE, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_SAMPLER_FILTERING_DEFAULT, and GPU_SAMPLER_STATE_TYPE_PARAMETERS.
Referenced by blender::eevee::PlanarProbeModule::bind_resources(), draw_tile(), DRW_shgroup_add_material_resources(), DRW_shgroup_buffer_texture(), DRW_shgroup_buffer_texture_ref(), drw_shgroup_init(), DRW_shgroup_storage_block_ex(), DRW_shgroup_storage_block_ref_ex(), DRW_shgroup_transform_feedback_create(), drw_shgroup_uniform(), DRW_shgroup_uniform_block_ex(), DRW_shgroup_uniform_block_ref_ex(), DRW_shgroup_uniform_image(), DRW_shgroup_uniform_image_ref(), DRW_shgroup_uniform_mat4_copy(), DRW_shgroup_vertex_buffer_ex(), DRW_shgroup_vertex_buffer_ref_ex(), blender::gpu::GLShader::fragment_interface_declare(), blender::gpu::VKShader::fragment_interface_declare(), blender::gpu::MTLContext::get_default_sampler_state(), gpencil_vfx_pixelize(), blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image(), blender::gpu::GLFrameBuffer::subpass_transition_impl(), blender::gpu::VKFrameBuffer::subpass_transition_impl(), blender::eevee::MotionBlurModule::sync(), blender::eevee::RayTraceModule::sync(), blender::gpu::VKStateManager::texel_buffer_bind(), and blender::gpu::BindSpaceTextures::unbind().
|
inline |
Disables the given filtering flags.
Definition at line 272 of file GPU_texture.hh.
References filtering.
Referenced by blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image(), and set_filtering_flag_from_test().
|
inline |
Enables the given filtering flags.
Definition at line 264 of file GPU_texture.hh.
References filtering.
Referenced by set_filtering_flag_from_test().
|
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 234 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().
|
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 218 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 DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), gpencil_vfx_pixelize(), and GPU_color_band().
|
inline |
Definition at line 381 of file GPU_texture.hh.
References custom_type, extend_x, extend_yz, filtering, and rhs.
|
inline |
Enables the given filtering flags if the given test is true, otherwise, disables the given filtering flags.
Definition at line 281 of file GPU_texture.hh.
References disable_filtering_flag(), and enable_filtering_flag().
Referenced by blender::workbench::ObjectState::ObjectState().
|
inline |
Definition at line 291 of file GPU_texture.hh.
References BLI_assert, BLI_assert_unreachable, custom_type, extend_x, extend_yz, filtering, GPU_SAMPLER_CUSTOM_COMPARE, GPU_SAMPLER_CUSTOM_ICON, GPU_SAMPLER_EXTEND_MODE_CLAMP_TO_BORDER, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_SAMPLER_EXTEND_MODE_MIRRORED_REPEAT, GPU_SAMPLER_EXTEND_MODE_REPEAT, GPU_SAMPLER_FILTERING_ANISOTROPIC, GPU_SAMPLER_FILTERING_LINEAR, GPU_SAMPLER_FILTERING_MIPMAP, GPU_SAMPLER_STATE_TYPE_CUSTOM, GPU_SAMPLER_STATE_TYPE_INTERNAL, and GPU_SAMPLER_STATE_TYPE_PARAMETERS.
Referenced by blender::gpu::VKSampler::create(), blender::gpu::GLTexture::samplers_init(), and blender::draw::command::ResourceBind::serialize().
| GPUSamplerCustomType GPUSamplerState::custom_type |
Specifies the type of sampler if the state type is GPU_SAMPLER_STATE_TYPE_CUSTOM.
Definition at line 189 of file GPU_texture.hh.
Referenced by blender::gpu::VKSampler::create(), blender::gpu::VKSamplers::get(), blender::gpu::GLTexture::get_sampler(), blender::gpu::MTLContext::get_sampler_from_state(), blender::gpu::MTLSamplerState::operator uint(), blender::gpu::MTLSamplerState::operator uint64_t(), operator==(), and to_string().
| GPUSamplerExtendMode GPUSamplerState::extend_x |
Specifies how the texture will be extrapolated for out-of-bound texture sampling along the x axis.
Definition at line 181 of file GPU_texture.hh.
Referenced by blender::gpu::VKSampler::create(), blender::gpu::VKSamplers::get(), blender::gpu::GLTexture::get_sampler(), blender::gpu::MTLContext::get_sampler_from_state(), blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image(), blender::workbench::ObjectState::ObjectState(), blender::gpu::MTLSamplerState::operator uint(), blender::gpu::MTLSamplerState::operator uint64_t(), operator==(), and to_string().
| 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 187 of file GPU_texture.hh.
Referenced by blender::gpu::VKSampler::create(), blender::gpu::VKSamplers::get(), blender::gpu::GLTexture::get_sampler(), blender::gpu::MTLContext::get_sampler_from_state(), blender::gpu::VKSamplers::init(), blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image(), blender::workbench::ObjectState::ObjectState(), blender::gpu::MTLSamplerState::operator uint(), blender::gpu::MTLSamplerState::operator uint64_t(), operator==(), and to_string().
| GPUSamplerFiltering GPUSamplerState::filtering |
Specifies the enabled filtering options for the sampler.
Definition at line 176 of file GPU_texture.hh.
Referenced by blender::gpu::VKSampler::create(), disable_filtering_flag(), enable_filtering_flag(), blender::gpu::VKSamplers::get(), blender::gpu::GLTexture::get_sampler(), blender::gpu::MTLContext::get_sampler_from_state(), blender::gpu::Texture::init_1D(), blender::gpu::Texture::init_2D(), blender::gpu::Texture::init_3D(), blender::gpu::Texture::init_cubemap(), 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().
| GPUSamplerStateType GPUSamplerState::type |
Specifies how the GPUSamplerState structure should be interpreted when passed around.
Definition at line 191 of file GPU_texture.hh.
Referenced by blender::gpu::VKSampler::create(), blender::gpu::VKSamplers::get(), blender::gpu::GLTexture::get_sampler(), blender::gpu::MTLContext::get_sampler_from_state(), blender::gpu::MTLSamplerState::operator uint(), and blender::gpu::MTLSamplerState::operator uint64_t().