Blender V5.0
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(StorageBuf *indirect_buf, intptr_t offset) override;
21 void multi_draw_indirect(StorageBuf *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
29};
30
31inline VKBatch *unwrap(Batch *batch)
32{
33 return static_cast<VKBatch *>(batch);
34}
35
37{
38 return unwrap(verts_(index));
39}
40
42{
43 return unwrap(unwrap(elem));
44}
45
46} // namespace blender::gpu
void draw_indirect(StorageBuf *indirect_buf, intptr_t offset) override
Definition vk_batch.cc:76
VKVertexBuffer * vertex_buffer_get(int index)
Definition vk_batch.hh:36
VKIndexBuffer * index_buffer_get()
Definition vk_batch.hh:41
void multi_draw_indirect(StorageBuf *indirect_buf, int count, intptr_t offset, intptr_t stride) override
Definition vk_batch.cc:81
void draw(int vertex_first, int vertex_count, int instance_first, int instance_count) override
Definition vk_batch.cc:22
struct @021025263243242147216143265077100330027142264337::@225245033123204053237120173316075113304004012000 batch
int count
static Context * unwrap(GPUContext *ctx)