44 VkImage vk_image_ = VK_NULL_HANDLE;
45 VmaAllocation allocation_ = VK_NULL_HANDLE;
57 VkImageLayout current_layout_ = VK_IMAGE_LAYOUT_UNDEFINED;
59 int layer_offset_ = 0;
60 bool use_stencil_ =
false;
65 {{
'r',
'g',
'b',
'a'}},
84 void swizzle_set(
const char swizzle_mask[4])
override;
94 GPUPixelBuffer *pixbuf)
override;
101 if (is_texture_view()) {
113 return device_format_;
130 bool init_internal(GPUTexture *src,
int mip_offset,
int layer_offset,
bool use_stencil)
override;
134 bool is_texture_view()
const;
146 int vk_layer_count(
int non_layered_value)
const;
151 VkExtent3D vk_extent_3d(
int mip_level)
const;
uint gl_bindcode_get() const override
void copy_to(Texture *tex) override
void clear(eGPUDataFormat format, const void *data) override
virtual ~VKTexture() override
void generate_mipmap() override
eGPUTextureFormat device_format_get() const
bool init_internal() override
void update_sub(int mip, int offset[3], int extent[3], eGPUDataFormat format, const void *data) override
VkImage vk_image_handle() const
const VKImageView & image_view_get(const VKImageViewInfo &info)
void swizzle_set(const char swizzle_mask[4]) override
VKTexture(const char *name)
void clear_depth_stencil(const eGPUFrameBufferBits buffer, float clear_depth, uint clear_stencil)
void mip_range_set(int min, int max) override
void read_sub(int mip, eGPUDataFormat format, const int region[6], IndexRange layers, void *r_data)
void * read(int mip, eGPUDataFormat format) override
local_group_size(16, 16) .push_constant(Type texture