Selaa lähdekoodia

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.
pull/2694/head
Ray 2 vuotta sitten
vanhempi
commit
cf24c021a3
2 muutettua tiedostoa jossa 15 lisäystä ja 15 poistoa
  1. +2
    -2
      examples/others/rlgl_compute_shader.c
  2. +13
    -13
      src/rlgl.h

+ 2
- 2
examples/others/rlgl_compute_shader.c Näytä tiedosto

@ -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);

+ 13
- 13
src/rlgl.h Näytä tiedosto

@ -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)? p">(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);

Ladataan…
Peruuta
Tallenna