Blender V4.5
vk_batch.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
8
9#pragma once
10
11#include "vk_index_buffer.hh"
12#include "vk_vertex_buffer.hh"
13
14#include "GPU_batch.hh"
15
16namespace blender::gpu {
17class VKBatch : public Batch {
18 public:
19 void draw(int vertex_first, int vertex_count, int instance_first, int instance_count) override;
20 void draw_indirect(GPUStorageBuf *indirect_buf, intptr_t offset) override;
21 void multi_draw_indirect(GPUStorageBuf *indirect_buf,
22 int count,
23 intptr_t offset,
24 intptr_t stride) override;
25 void multi_draw_indirect(VkBuffer indirect_buf, int count, intptr_t offset, intptr_t stride);
26
30};
31
32inline VKBatch *unwrap(Batch *batch)
33{
34 return static_cast<VKBatch *>(batch);
35}
36
38{
39 return unwrap(verts_(index));
40}
41
43{
44 return unwrap(inst_(index));
45}
46
48{
49 return unwrap(unwrap(elem));
50}
51
52} // namespace blender::gpu
void draw_indirect(GPUStorageBuf *indirect_buf, intptr_t offset) override
Definition vk_batch.cc:75
void multi_draw_indirect(GPUStorageBuf *indirect_buf, int count, intptr_t offset, intptr_t stride) override
Definition vk_batch.cc:80
VKVertexBuffer * vertex_buffer_get(int index)
Definition vk_batch.hh:37
VKIndexBuffer * index_buffer_get()
Definition vk_batch.hh:47
VKVertexBuffer * instance_buffer_get(int index)
Definition vk_batch.hh:42
void draw(int vertex_first, int vertex_count, int instance_first, int instance_count) override
Definition vk_batch.cc:22
struct @064345207361167251075330302113175271221317160336::@113254110077376341056327177062323111323010325277 batch
int count
static Context * unwrap(GPUContext *ctx)