|
Blender V4.5
|
#include <DRW_gpu_wrapper.hh>
Inherits blender::NonCopyable.
Inherited by blender::draw::TextureFromPool, blender::draw::TextureRef, and blender::eevee::UtilityTexture.
Public Member Functions | |
| Texture (const char *name="gpu::Texture") | |
| Texture (const char *name, eGPUTextureFormat format, eGPUTextureUsage usage, int extent, const float *data=nullptr, bool cubemap=false, int mip_len=1) | |
| Texture (const char *name, eGPUTextureFormat format, eGPUTextureUsage usage, int extent, int layers, const float *data=nullptr, bool cubemap=false, int mip_len=1) | |
| Texture (const char *name, eGPUTextureFormat format, eGPUTextureUsage usage, int2 extent, const float *data=nullptr, int mip_len=1) | |
| Texture (const char *name, eGPUTextureFormat format, eGPUTextureUsage usage, int2 extent, int layers, const float *data=nullptr, int mip_len=1) | |
| Texture (const char *name, eGPUTextureFormat format, eGPUTextureUsage usage, int3 extent, const float *data=nullptr, int mip_len=1) | |
| Texture (Texture &&other)=default | |
| ~Texture () | |
| GPUTexture * | gpu_texture () |
| operator GPUTexture * () const | |
| GPUTexture ** | operator& () |
| Texture * | ptr () |
| Texture & | operator= (Texture &&a) |
| bool | ensure_1d (eGPUTextureFormat format, int extent, eGPUTextureUsage usage=GPU_TEXTURE_USAGE_GENERAL, const float *data=nullptr, int mip_len=1) |
| bool | ensure_1d_array (eGPUTextureFormat format, int extent, int layers, eGPUTextureUsage usage=GPU_TEXTURE_USAGE_GENERAL, const float *data=nullptr, int mip_len=1) |
| bool | ensure_2d (eGPUTextureFormat format, int2 extent, eGPUTextureUsage usage=GPU_TEXTURE_USAGE_GENERAL, const float *data=nullptr, int mip_len=1) |
| bool | ensure_2d_array (eGPUTextureFormat format, int2 extent, int layers, eGPUTextureUsage usage=GPU_TEXTURE_USAGE_GENERAL, const float *data=nullptr, int mip_len=1) |
| bool | ensure_3d (eGPUTextureFormat format, int3 extent, eGPUTextureUsage usage=GPU_TEXTURE_USAGE_GENERAL, const float *data=nullptr, int mip_len=1) |
| bool | ensure_cube (eGPUTextureFormat format, int extent, eGPUTextureUsage usage=GPU_TEXTURE_USAGE_GENERAL, float *data=nullptr, int mip_len=1) |
| bool | ensure_cube_array (eGPUTextureFormat format, int extent, int layers, eGPUTextureUsage usage=GPU_TEXTURE_USAGE_GENERAL, const float *data=nullptr, int mip_len=1) |
| bool | ensure_mip_views (bool cube_as_array=false) |
| GPUTexture * | mip_view (int miplvl) |
| int | mip_count () const |
| bool | ensure_layer_views (bool cube_as_array=false) |
| GPUTexture * | layer_view (int layer) |
| GPUTexture * | stencil_view (bool cube_as_array=false) |
| GPUTexture * | layer_range_view (int layer_start, int layer_len, bool cube_as_array=false) |
| bool | is_valid () const |
| int | width () const |
| int | height () const |
| int | depth () const |
| int | pixel_count () const |
| bool | is_depth () const |
| bool | is_stencil () const |
| bool | is_integer () const |
| bool | is_cube () const |
| bool | is_array () const |
| int3 | size (int miplvl=0) const |
| void | clear (float4 values) |
| void | clear (uint4 values) |
| void | clear (int4 values) |
| void | debug_clear () |
| template<typename T> | |
| T * | read (eGPUDataFormat format, int miplvl=0) |
| void | filter_mode (bool do_filter) |
| void | free () |
Static Public Member Functions | |
| static void | swap (Texture &a, Texture &b) |
Protected Member Functions | |
| void | free_texture_views () |
Protected Attributes | |
| GPUTexture * | tx_ = nullptr |
| GPUTexture * | stencil_view_ = nullptr |
| Vector< GPUTexture *, 0 > | mip_views_ |
| Vector< GPUTexture *, 0 > | layer_views_ |
| GPUTexture * | layer_range_view_ = nullptr |
| const char * | name_ |
Definition at line 525 of file DRW_gpu_wrapper.hh.
|
inline |
Definition at line 535 of file DRW_gpu_wrapper.hh.
References name_.
Referenced by operator=(), ptr(), swap(), blender::draw::TextureFromPool::swap(), blender::draw::TextureFromPool::swap(), Texture(), blender::draw::TextureFromPool::TextureFromPool(), and blender::eevee::UtilityTexture::UtilityTexture().
|
inline |
Definition at line 537 of file DRW_gpu_wrapper.hh.
|
inline |
Definition at line 549 of file DRW_gpu_wrapper.hh.
|
inline |
|
inline |
|
inline |
|
default |
References Texture().
|
inline |
Definition at line 597 of file DRW_gpu_wrapper.hh.
References free().
|
inline |
Clear the entirety of the texture using one pixel worth of data.
Definition at line 905 of file DRW_gpu_wrapper.hh.
References GPU_DATA_FLOAT, GPU_texture_clear(), and tx_.
Referenced by debug_clear(), blender::eevee::DepthOfField::render(), blender::eevee::VolumeLayer::render(), and blender::draw::test_eevee_shadow_finalize().
|
inline |
Clear the entirety of the texture using one pixel worth of data.
Definition at line 921 of file DRW_gpu_wrapper.hh.
References GPU_DATA_INT, GPU_texture_clear(), and tx_.
|
inline |
Clear the entirety of the texture using one pixel worth of data.
Definition at line 913 of file DRW_gpu_wrapper.hh.
References GPU_DATA_UINT, GPU_texture_clear(), and tx_.
|
inline |
Clear the texture to NaN for floats, or a to debug value for integers. (For debugging uninitialized data issues)
Definition at line 930 of file DRW_gpu_wrapper.hh.
References clear(), GPU_texture_dimensions(), GPU_texture_has_float_format(), GPU_texture_has_integer_format(), GPU_texture_has_normalized_format(), GPU_texture_has_signed_format(), and NAN_FLT.
Referenced by blender::draw::TextureFromPool::acquire().
|
inline |
Definition at line 860 of file DRW_gpu_wrapper.hh.
References GPU_texture_depth(), and tx_.
|
inline |
Ensure the texture has the correct properties. Recreating it if needed. Return true if a texture has been created.
Definition at line 652 of file DRW_gpu_wrapper.hh.
References data, and GPU_TEXTURE_USAGE_GENERAL.
|
inline |
Ensure the texture has the correct properties. Recreating it if needed. Return true if a texture has been created.
Definition at line 665 of file DRW_gpu_wrapper.hh.
References BLI_assert, data, and GPU_TEXTURE_USAGE_GENERAL.
|
inline |
Ensure the texture has the correct properties. Recreating it if needed. Return true if a texture has been created.
Definition at line 680 of file DRW_gpu_wrapper.hh.
References data, GPU_TEXTURE_USAGE_GENERAL, and UNPACK2.
Referenced by blender::eevee::DepthOfField::render(), blender::draw::gpencil::render_init_buffers(), blender::draw::test_draw_pass_all_commands(), blender::draw::test_draw_resource_id_gen(), blender::draw::test_draw_submit_only(), blender::draw::test_draw_visibility(), blender::draw::test_eevee_shadow_finalize(), and blender::draw::test_eevee_shadow_tilemap_amend().
|
inline |
Ensure the texture has the correct properties. Recreating it if needed. Return true if a texture has been created.
Definition at line 693 of file DRW_gpu_wrapper.hh.
References BLI_assert, data, GPU_TEXTURE_USAGE_GENERAL, and UNPACK2.
|
inline |
Ensure the texture has the correct properties. Recreating it if needed. Return true if a texture has been created.
Definition at line 708 of file DRW_gpu_wrapper.hh.
References data, GPU_TEXTURE_USAGE_GENERAL, and UNPACK3.
Referenced by blender::eevee::Precompute::Precompute().
|
inline |
Ensure the texture has the correct properties. Recreating it if needed. Return true if a texture has been created.
Definition at line 721 of file DRW_gpu_wrapper.hh.
References data, and GPU_TEXTURE_USAGE_GENERAL.
|
inline |
Ensure the texture has the correct properties. Recreating it if needed. Return true if a texture has been created.
Definition at line 734 of file DRW_gpu_wrapper.hh.
References data, and GPU_TEXTURE_USAGE_GENERAL.
|
inline |
Ensure the availability of layer views. Layer views covers all layers of array textures. Returns true if the views were (re)created.
Definition at line 783 of file DRW_gpu_wrapper.hh.
References GPU_texture_create_view(), GPU_texture_format(), GPU_TEXTURE_FREE_SAFE, GPU_texture_layer_count(), i, layer_views_, name_, tx_, and view.
Referenced by blender::eevee::Film::get_aov_texture(), and blender::eevee::Film::get_pass_texture().
|
inline |
Ensure the availability of mipmap views. MIP view covers all layers of array textures.
Definition at line 748 of file DRW_gpu_wrapper.hh.
References GPU_texture_create_view(), GPU_texture_format(), GPU_TEXTURE_FREE_SAFE, GPU_texture_mip_count(), i, mip_views_, name_, tx_, and view.
|
inline |
Definition at line 959 of file DRW_gpu_wrapper.hh.
References GPU_texture_filter_mode(), and tx_.
|
inline |
Free the internal texture but not the #draw::Texture itself.
Definition at line 967 of file DRW_gpu_wrapper.hh.
References free_texture_views(), GPU_TEXTURE_FREE_SAFE, and tx_.
Referenced by operator=(), and ~Texture().
|
inlineprotected |
Definition at line 987 of file DRW_gpu_wrapper.hh.
References GPU_TEXTURE_FREE_SAFE, layer_range_view_, layer_views_, mip_views_, stencil_view_, and view.
Referenced by free(), and blender::draw::TextureRef::wrap().
|
inline |
Definition at line 602 of file DRW_gpu_wrapper.hh.
References tx_.
Referenced by blender::draw::compositor_engine::Context::get_pass().
|
inline |
Definition at line 855 of file DRW_gpu_wrapper.hh.
References GPU_texture_height(), and tx_.
Referenced by blender::eevee::MotionBlurModule::render().
|
inline |
Definition at line 890 of file DRW_gpu_wrapper.hh.
References GPU_texture_is_array(), and tx_.
|
inline |
Definition at line 885 of file DRW_gpu_wrapper.hh.
References GPU_texture_is_cube(), and tx_.
|
inline |
Definition at line 870 of file DRW_gpu_wrapper.hh.
References GPU_texture_has_depth_format(), and tx_.
|
inline |
Definition at line 880 of file DRW_gpu_wrapper.hh.
References GPU_texture_has_integer_format(), and tx_.
|
inline |
Definition at line 875 of file DRW_gpu_wrapper.hh.
References GPU_texture_has_stencil_format(), and tx_.
|
inline |
Returns true if the texture has been allocated or acquired from the pool.
Definition at line 845 of file DRW_gpu_wrapper.hh.
References tx_.
Referenced by blender::draw::overlay::Resources::acquire(), blender::workbench::AntiAliasingPass::draw(), blender::workbench::OpaquePass::draw(), blender::workbench::TransparentDepthPass::draw(), blender::draw::overlay::MeshUVs::end_sync(), layer_range_view(), blender::eevee::RayTraceModule::render(), and blender::draw::gpencil::render_init_buffers().
|
inline |
Layer range view cover only the given range. This can only called to create one range. View is recreated if:
Definition at line 824 of file DRW_gpu_wrapper.hh.
References BLI_assert, BLI_assert_msg, GPU_texture_create_view(), GPU_texture_format(), GPU_TEXTURE_FREE_SAFE, GPU_texture_layer_count(), is_valid(), layer_range_view_, name_, and tx_.
|
inline |
Definition at line 800 of file DRW_gpu_wrapper.hh.
References layer_views_.
Referenced by blender::eevee::Film::get_aov_texture(), blender::eevee::Film::get_pass_texture(), blender::eevee::ShadingView::render(), and blender::eevee::PlanarProbeModule::set_view().
|
inline |
Definition at line 773 of file DRW_gpu_wrapper.hh.
References GPU_texture_mip_count(), and tx_.
|
inline |
Definition at line 765 of file DRW_gpu_wrapper.hh.
References BLI_assert_msg, and mip_views_.
|
inline |
Definition at line 608 of file DRW_gpu_wrapper.hh.
References BLI_assert, and tx_.
|
inline |
Definition at line 615 of file DRW_gpu_wrapper.hh.
References tx_.
Definition at line 626 of file DRW_gpu_wrapper.hh.
|
inline |
Definition at line 865 of file DRW_gpu_wrapper.hh.
References GPU_texture_height(), GPU_texture_width(), and tx_.
|
inline |
WORKAROUND: used when needing a ref to the Texture and not the GPUTexture.
Definition at line 621 of file DRW_gpu_wrapper.hh.
References Texture().
Referenced by blender::workbench::VolumePass::draw().
|
inline |
Returns a buffer containing the texture data for the specified miplvl. The memory block needs to be manually freed by MEM_freeN().
Definition at line 954 of file DRW_gpu_wrapper.hh.
References GPU_texture_read(), T, and tx_.
Referenced by blender::eevee::Precompute::Precompute(), blender::draw::test_eevee_shadow_finalize(), and blender::draw::test_eevee_shadow_tilemap_amend().
|
inline |
Definition at line 895 of file DRW_gpu_wrapper.hh.
References GPU_texture_get_mipmap_size(), size(), and tx_.
Referenced by blender::draw::overlay::Resources::acquire(), blender::draw::overlay::Wireframe::copy_depth(), blender::draw::overlay::Outline::draw_line_only_ex(), blender::draw::overlay::MeshUVs::end_sync(), blender::draw::gpencil::render_frame(), and size().
|
inline |
Definition at line 805 of file DRW_gpu_wrapper.hh.
References GPU_texture_create_view(), GPU_texture_format(), name_, stencil_view_, and tx_.
Referenced by blender::workbench::VolumePass::draw().
Swap the content of the two textures.
Definition at line 976 of file DRW_gpu_wrapper.hh.
References b, layer_range_view_, layer_views_, mip_views_, name_, stencil_view_, Texture(), and tx_.
Referenced by blender::draw::TextureFromPool::swap(), and blender::draw::TextureFromPool::swap().
|
inline |
Definition at line 850 of file DRW_gpu_wrapper.hh.
References GPU_texture_width(), and tx_.
Referenced by blender::eevee::MotionBlurModule::render().
|
protected |
Definition at line 531 of file DRW_gpu_wrapper.hh.
Referenced by free_texture_views(), layer_range_view(), and swap().
|
protected |
Definition at line 530 of file DRW_gpu_wrapper.hh.
Referenced by ensure_layer_views(), free_texture_views(), layer_view(), and swap().
|
protected |
Definition at line 529 of file DRW_gpu_wrapper.hh.
Referenced by ensure_mip_views(), free_texture_views(), mip_view(), and swap().
|
protected |
Definition at line 532 of file DRW_gpu_wrapper.hh.
Referenced by ensure_layer_views(), ensure_mip_views(), layer_range_view(), stencil_view(), swap(), Texture(), Texture(), Texture(), Texture(), Texture(), and Texture().
|
protected |
Definition at line 528 of file DRW_gpu_wrapper.hh.
Referenced by free_texture_views(), stencil_view(), and swap().
|
protected |
Definition at line 527 of file DRW_gpu_wrapper.hh.
Referenced by clear(), clear(), clear(), depth(), ensure_layer_views(), ensure_mip_views(), filter_mode(), free(), gpu_texture(), height(), is_array(), is_cube(), is_depth(), is_integer(), is_stencil(), is_valid(), layer_range_view(), mip_count(), operator GPUTexture *(), operator&(), pixel_count(), read(), size(), stencil_view(), swap(), Texture(), Texture(), Texture(), Texture(), Texture(), and width().