Blender  V3.3
GPU_storage_buffer.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2022 Blender Foundation. All rights reserved. */
3 
14 #pragma once
15 
16 #include "GPU_texture.h"
17 #include "GPU_vertex_buffer.h"
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 struct ListBase;
24 
26 typedef struct GPUStorageBuf GPUStorageBuf;
27 
29  const void *data,
30  GPUUsageType usage,
31  const char *name);
32 
33 #define GPU_storagebuf_create(size) \
34  GPU_storagebuf_create_ex(size, NULL, GPU_USAGE_DYNAMIC, __func__);
35 
37 
38 void GPU_storagebuf_update(GPUStorageBuf *ssbo, const void *data);
39 
40 void GPU_storagebuf_bind(GPUStorageBuf *ssbo, int slot);
42 void GPU_storagebuf_unbind_all(void);
43 
45  eGPUTextureFormat internal_format,
46  eGPUDataFormat data_format,
47  void *data);
49 
60  GPUStorageBuf *ssbo, GPUVertBuf *src, uint dst_offset, uint src_offset, uint copy_size);
61 
62 #ifdef __cplusplus
63 }
64 #endif
unsigned int uint
Definition: BLI_sys_types.h:67
void GPU_storagebuf_copy_sub_from_vertbuf(GPUStorageBuf *ssbo, GPUVertBuf *src, uint dst_offset, uint src_offset, uint copy_size)
Copy a part of a vertex buffer to a storage buffer.
void GPU_storagebuf_bind(GPUStorageBuf *ssbo, int slot)
void GPU_storagebuf_clear(GPUStorageBuf *ssbo, eGPUTextureFormat internal_format, eGPUDataFormat data_format, void *data)
void GPU_storagebuf_unbind(GPUStorageBuf *ssbo)
void GPU_storagebuf_clear_to_zero(GPUStorageBuf *ssbo)
void GPU_storagebuf_unbind_all(void)
void GPU_storagebuf_free(GPUStorageBuf *ssbo)
void GPU_storagebuf_update(GPUStorageBuf *ssbo, const void *data)
GPUStorageBuf * GPU_storagebuf_create_ex(size_t size, const void *data, GPUUsageType usage, const char *name)
struct GPUStorageBuf GPUStorageBuf
eGPUDataFormat
Definition: GPU_texture.h:170
eGPUTextureFormat
Definition: GPU_texture.h:83
struct GPUVertBuf GPUVertBuf
GPUUsageType
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition: btDbvt.cpp:52
SyclQueue void void * src