Blender V5.0
blender::gpu::VKTexture Class Reference

#include <vk_texture.hh>

Inherits blender::gpu::Texture.

Public Member Functions

 VKTexture (const char *name)
virtual ~VKTexture () override
void generate_mipmap () override
void copy_to (Texture *tex) override
void copy_to (VKTexture &dst_texture, VkImageAspectFlags vk_image_aspect)
void clear (eGPUDataFormat format, const void *data) override
void clear_depth_stencil (const GPUFrameBufferBits buffer, float clear_depth, uint clear_stencil, std::optional< int > layer)
void swizzle_set (const char swizzle_mask[4]) override
void mip_range_set (int min, int max) override
void * read (int mip, eGPUDataFormat format) override
void read_sub (int mip, eGPUDataFormat format, const int region[6], IndexRange layers, void *r_data)
void update_sub (int mip, int offset[3], int extent[3], eGPUDataFormat format, const void *data, VKPixelBuffer *pixel_buffer)
void update_sub (int mip, int offset[3], int extent[3], eGPUDataFormat format, const void *data) override
void update_sub (int offset[3], int extent[3], eGPUDataFormat format, GPUPixelBuffer *pixbuf) override
VKMemoryExport export_memory (VkExternalMemoryHandleTypeFlagBits handle_type)
VkImage vk_image_handle () const
TextureFormat device_format_get () const
Public Member Functions inherited from blender::gpu::Texture
int width_get () const
int height_get () const
int depth_get () const
eGPUTextureUsage usage_get () const
void mip_size_get (int mip, int r_size[3]) const
int mip_width_get (int mip) const
int mip_height_get (int mip) const
int mip_depth_get (int mip) const
int dimensions_count () const
int layer_count () const
int mip_count () const
TextureFormat format_get () const
GPUTextureFormatFlag format_flag_get () const
GPUTextureType type_get () const
GPUAttachmentType attachment_type (int slot) const
 Texture (const char *name)
virtual ~Texture ()
bool init_1D (int w, int layers, int mip_len, TextureFormat format)
bool init_2D (int w, int h, int layers, int mip_len, TextureFormat format)
bool init_3D (int w, int h, int d, int mip_len, TextureFormat format)
bool init_cubemap (int w, int layers, int mip_len, TextureFormat format)
bool init_buffer (VertBuf *vbo, TextureFormat format)
bool init_view (Texture *src, TextureFormat format, GPUTextureType type, int mip_start, int mip_len, int layer_start, int layer_len, bool cube_as_array, bool use_stencil)
void usage_set (eGPUTextureUsage usage_flags)
void attach_to (FrameBuffer *fb, GPUAttachmentType type)
void detach_from (FrameBuffer *fb)
void update (eGPUDataFormat format, const void *data)

Protected Member Functions

bool init_internal () override
bool init_internal (VertBuf *vbo) override
bool init_internal (gpu::Texture *src, int mip_offset, int layer_offset, bool use_stencil) override
void init_swapchain (VkImage vk_image, TextureFormat gpu_format)

Friends

class VKDescriptorSetUpdator
class VKContext

Image Views

const VKImageViewimage_view_get (const VKImageViewInfo &info)
const VKImageViewimage_view_get (VKImageViewArrayed arrayed, VKImageViewFlags flags)

Additional Inherited Members

Public Attributes inherited from blender::gpu::Texture
GPUSamplerState sampler_state = GPUSamplerState::default_sampler()
int refcount = 1
int src_w = 0
int src_h = 0
void ** py_ref = nullptr
Protected Attributes inherited from blender::gpu::Texture
int w_
int h_
int d_
TextureFormat format_
GPUTextureFormatFlag format_flag_
GPUTextureType type_
eGPUTextureUsage gpu_image_usage_flags_
int mipmaps_ = -1
int mip_min_ = 0
int mip_max_ = 0
char name_ [DEBUG_NAME_LEN]
GPUAttachmentType fb_attachment_ [GPU_TEX_MAX_FBO_ATTACHED]
FrameBufferfb_ [GPU_TEX_MAX_FBO_ATTACHED]

Detailed Description

Definition at line 31 of file vk_texture.hh.

Constructor & Destructor Documentation

◆ VKTexture()

blender::gpu::VKTexture::VKTexture ( const char * name)
inline

Definition at line 77 of file vk_texture.hh.

References name, and blender::gpu::Texture::Texture().

Referenced by copy_to(), copy_to(), init_internal(), and VKContext.

◆ ~VKTexture()

blender::gpu::VKTexture::~VKTexture ( )
overridevirtual

Member Function Documentation

◆ clear()

◆ clear_depth_stencil()

◆ copy_to() [1/2]

◆ copy_to() [2/2]

◆ device_format_get()

TextureFormat blender::gpu::VKTexture::device_format_get ( ) const
inline

Get the texture format how the texture is stored on the device.

Definition at line 128 of file vk_texture.hh.

Referenced by blender::gpu::blit_aspect(), clear_depth_stencil(), copy_to(), and blender::gpu::VKFrameBuffer::rendering_ensure_dynamic_rendering().

◆ export_memory()

VKMemoryExport blender::gpu::VKTexture::export_memory ( VkExternalMemoryHandleTypeFlagBits handle_type)

◆ generate_mipmap()

◆ image_view_get() [1/2]

const VKImageView & blender::gpu::VKTexture::image_view_get ( const VKImageViewInfo & info)

Get a specific image view for this texture. The specification of the image view are passed inside the info parameter.

Definition at line 773 of file vk_texture.cc.

References blender::gpu::VKImageViewInfo::arrayed, blender::gpu::DEFAULT, image_view_get(), and blender::gpu::Texture::name_.

Referenced by image_view_get(), image_view_get(), and blender::gpu::VKFrameBuffer::rendering_ensure_dynamic_rendering().

◆ image_view_get() [2/2]

const VKImageView & blender::gpu::VKTexture::image_view_get ( VKImageViewArrayed arrayed,
VKImageViewFlags flags )

◆ init_internal() [1/3]

bool blender::gpu::VKTexture::init_internal ( )
overrideprotectedvirtual

◆ init_internal() [2/3]

bool blender::gpu::VKTexture::init_internal ( gpu::Texture * src,
int mip_offset,
int layer_offset,
bool use_stencil )
overrideprotectedvirtual

◆ init_internal() [3/3]

bool blender::gpu::VKTexture::init_internal ( VertBuf * vbo)
overrideprotectedvirtual

◆ init_swapchain()

◆ mip_range_set()

void blender::gpu::VKTexture::mip_range_set ( int min,
int max )
overridevirtual

Implements blender::gpu::Texture.

Definition at line 187 of file vk_texture.cc.

References max, min, blender::gpu::Texture::mip_max_, and blender::gpu::Texture::mip_min_.

Referenced by init_internal().

◆ read()

◆ read_sub()

◆ swizzle_set()

void blender::gpu::VKTexture::swizzle_set ( const char swizzle_mask[4])
overridevirtual

Implements blender::gpu::Texture.

Definition at line 182 of file vk_texture.cc.

◆ update_sub() [1/3]

void blender::gpu::VKTexture::update_sub ( int mip,
int offset[3],
int extent[3],
eGPUDataFormat format,
const void * data )
overridevirtual

Implements blender::gpu::Texture.

Definition at line 460 of file vk_texture.cc.

References data, and update_sub().

◆ update_sub() [2/3]

◆ update_sub() [3/3]

void blender::gpu::VKTexture::update_sub ( int offset[3],
int extent[3],
eGPUDataFormat format,
GPUPixelBuffer * pixbuf )
overridevirtual

Implements blender::gpu::Texture.

Definition at line 466 of file vk_texture.cc.

References blender::gpu::unwrap(), and update_sub().

◆ vk_image_handle()

VkImage blender::gpu::VKTexture::vk_image_handle ( ) const
inline

◆ VKContext

friend class VKContext
friend

◆ VKDescriptorSetUpdator

friend class VKDescriptorSetUpdator
friend

Definition at line 32 of file vk_texture.hh.

References VKDescriptorSetUpdator.

Referenced by VKDescriptorSetUpdator.


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