Blender
V4.3
source
blender
gpu
vulkan
vk_uniform_buffer.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2022 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
9
#pragma once
10
11
#include "
BLI_utility_mixins.hh
"
12
13
#include "
gpu_uniform_buffer_private.hh
"
14
15
#include "
vk_buffer.hh
"
16
17
namespace
blender::gpu
{
18
19
class
VKUniformBuffer
:
public
UniformBuf
,
NonCopyable
{
20
VKBuffer
buffer_;
21
22
public
:
23
VKUniformBuffer
(
size_t
size,
const
char
*name) :
UniformBuf
(size, name) {}
24
25
void
update
(
const
void
*data)
override
;
26
void
clear_to_zero
()
override
;
27
void
bind
(
int
slot)
override
;
28
void
bind_as_ssbo
(
int
slot)
override
;
29
33
void
unbind
()
override
;
34
35
VkBuffer
vk_handle
()
const
36
{
37
return
buffer_.
vk_handle
();
38
}
39
40
size_t
size_in_bytes
()
const
41
{
42
return
size_in_bytes_
;
43
}
44
45
void
ensure_updated
();
46
47
private
:
48
void
allocate();
49
};
50
51
BLI_INLINE
UniformBuf
*
wrap
(
VKUniformBuffer
*uniform_buffer)
52
{
53
return
static_cast<
UniformBuf
*
>
(uniform_buffer);
54
}
55
56
}
// namespace blender::gpu
BLI_INLINE
#define BLI_INLINE
Definition
BLI_compiler_compat.h:37
BLI_utility_mixins.hh
blender::NonCopyable
Definition
BLI_utility_mixins.hh:16
blender::gpu::UniformBuf
Definition
gpu_uniform_buffer_private.hh:28
blender::gpu::UniformBuf::size_in_bytes_
size_t size_in_bytes_
Definition
gpu_uniform_buffer_private.hh:31
blender::gpu::VKBuffer
Definition
vk_buffer.hh:23
blender::gpu::VKBuffer::vk_handle
VkBuffer vk_handle() const
Definition
vk_buffer.hh:69
blender::gpu::VKUniformBuffer
Definition
vk_uniform_buffer.hh:19
blender::gpu::VKUniformBuffer::bind_as_ssbo
void bind_as_ssbo(int slot) override
Definition
vk_uniform_buffer.cc:71
blender::gpu::VKUniformBuffer::vk_handle
VkBuffer vk_handle() const
Definition
vk_uniform_buffer.hh:35
blender::gpu::VKUniformBuffer::unbind
void unbind() override
Definition
vk_uniform_buffer.cc:78
blender::gpu::VKUniformBuffer::update
void update(const void *data) override
Definition
vk_uniform_buffer.cc:18
blender::gpu::VKUniformBuffer::clear_to_zero
void clear_to_zero() override
Definition
vk_uniform_buffer.cc:41
blender::gpu::VKUniformBuffer::VKUniformBuffer
VKUniformBuffer(size_t size, const char *name)
Definition
vk_uniform_buffer.hh:23
blender::gpu::VKUniformBuffer::ensure_updated
void ensure_updated()
Definition
vk_uniform_buffer.cc:50
blender::gpu::VKUniformBuffer::size_in_bytes
size_t size_in_bytes() const
Definition
vk_uniform_buffer.hh:40
blender::gpu::VKUniformBuffer::bind
void bind(int slot) override
Definition
vk_uniform_buffer.cc:65
gpu_uniform_buffer_private.hh
blender::gpu
Definition
blf_internal_types.hh:23
blender::gpu::wrap
static GPUContext * wrap(Context *ctx)
Definition
gpu_context_private.hh:109
vk_buffer.hh
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0