WARNING: BREAKING: Reviewed SSBO usage to avoid long long
raylib library tries to avoid `long long` usage. Several SSBO functions have been reviewed (including some renames for consistency) to minimize `long long` type usage.
This commit is contained in:
parent
b478364914
commit
cf24c021a3
2 changed files with 15 additions and 15 deletions
|
@ -104,9 +104,9 @@ int main(void)
|
|||
else if (transfertBuffer.count > 0) // Process transfert buffer
|
||||
{
|
||||
// Send SSBO buffer to GPU
|
||||
rlUpdateShaderBufferElements(ssboTransfert, &transfertBuffer, sizeof(GolUpdateSSBO), 0);
|
||||
rlUpdateShaderBuffer(ssboTransfert, &transfertBuffer, sizeof(GolUpdateSSBO), 0);
|
||||
|
||||
// Process ssbo commands on GPU
|
||||
// Process SSBO commands on GPU
|
||||
rlEnableShader(golTransfertProgram);
|
||||
rlBindShaderBuffer(ssboA, 1);
|
||||
rlBindShaderBuffer(ssboTransfert, 3);
|
||||
|
|
26
src/rlgl.h
26
src/rlgl.h
|
@ -678,15 +678,15 @@ RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId);
|
|||
RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pilepine)
|
||||
|
||||
// Shader buffer storage object management (ssbo)
|
||||
RLAPI unsigned int rlLoadShaderBuffer(unsigned long long size, const void *data, int usageHint); // Load shader storage buffer object (SSBO)
|
||||
RLAPI unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint); // Load shader storage buffer object (SSBO)
|
||||
RLAPI void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO)
|
||||
RLAPI void rlUpdateShaderBufferElements(unsigned int id, const void *data, unsigned long long dataSize, unsigned long long offset); // Update SSBO buffer data
|
||||
RLAPI unsigned long long rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size
|
||||
RLAPI void rlReadShaderBufferElements(unsigned int id, void *dest, unsigned long long count, unsigned long long offset); // Bind SSBO buffer
|
||||
RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Copy SSBO buffer data
|
||||
RLAPI void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset); // Update SSBO buffer data
|
||||
RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Bind SSBO buffer
|
||||
RLAPI void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset); // Read SSBO buffer data (GPU->CPU)
|
||||
RLAPI void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count); // Copy SSBO data between buffers
|
||||
RLAPI unsigned int rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size
|
||||
|
||||
// Buffer management
|
||||
RLAPI void rlCopyBuffersElements(unsigned int destId, unsigned int srcId, unsigned long long destOffset, unsigned long long srcOffset, unsigned long long count); // Copy SSBO buffer data
|
||||
RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, unsigned int format, int readonly); // Bind image texture
|
||||
|
||||
// Matrix state management
|
||||
|
@ -3954,7 +3954,7 @@ void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned
|
|||
}
|
||||
|
||||
// Load shader storage buffer object (SSBO)
|
||||
unsigned int rlLoadShaderBuffer(unsigned long long size, const void *data, int usageHint)
|
||||
unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint)
|
||||
{
|
||||
unsigned int ssbo = 0;
|
||||
|
||||
|
@ -3978,7 +3978,7 @@ void rlUnloadShaderBuffer(unsigned int ssboId)
|
|||
}
|
||||
|
||||
// Update SSBO buffer data
|
||||
void rlUpdateShaderBufferElements(unsigned int id, const void *data, unsigned long long dataSize, unsigned long long offset)
|
||||
void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset)
|
||||
{
|
||||
#if defined(GRAPHICS_API_OPENGL_43)
|
||||
glBindBuffer(GL_SHADER_STORAGE_BUFFER, id);
|
||||
|
@ -3987,7 +3987,7 @@ void rlUpdateShaderBufferElements(unsigned int id, const void *data, unsigned lo
|
|||
}
|
||||
|
||||
// Get SSBO buffer size
|
||||
unsigned long long rlGetShaderBufferSize(unsigned int id)
|
||||
unsigned int rlGetShaderBufferSize(unsigned int id)
|
||||
{
|
||||
long long size = 0;
|
||||
|
||||
|
@ -3996,11 +3996,11 @@ unsigned long long rlGetShaderBufferSize(unsigned int id)
|
|||
glGetInteger64v(GL_SHADER_STORAGE_BUFFER_SIZE, &size);
|
||||
#endif
|
||||
|
||||
return (size > 0)? size : 0;
|
||||
return (size > 0)? (unsigned int)size : 0;
|
||||
}
|
||||
|
||||
// Read SSBO buffer data
|
||||
void rlReadShaderBufferElements(unsigned int id, void *dest, unsigned long long count, unsigned long long offset)
|
||||
// Read SSBO buffer data (GPU->CPU)
|
||||
void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset)
|
||||
{
|
||||
#if defined(GRAPHICS_API_OPENGL_43)
|
||||
glBindBuffer(GL_SHADER_STORAGE_BUFFER, id);
|
||||
|
@ -4017,7 +4017,7 @@ void rlBindShaderBuffer(unsigned int id, unsigned int index)
|
|||
}
|
||||
|
||||
// Copy SSBO buffer data
|
||||
void rlCopyBuffersElements(unsigned int destId, unsigned int srcId, unsigned long long destOffset, unsigned long long srcOffset, unsigned long long count)
|
||||
void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count)
|
||||
{
|
||||
#if defined(GRAPHICS_API_OPENGL_43)
|
||||
glBindBuffer(GL_COPY_READ_BUFFER, srcId);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue