Browse Source

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.
Ray 2 years ago
parent
commit
cf24c021a3
2 changed files with 15 additions and 15 deletions
  1. 2 2
      examples/others/rlgl_compute_shader.c
  2. 13 13
      src/rlgl.h

+ 2 - 2
examples/others/rlgl_compute_shader.c

@@ -104,9 +104,9 @@ int main(void)
         else if (transfertBuffer.count > 0)  // Process transfert buffer
         else if (transfertBuffer.count > 0)  // Process transfert buffer
         {
         {
             // Send SSBO buffer to GPU
             // 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);
             rlEnableShader(golTransfertProgram);
             rlBindShaderBuffer(ssboA, 1);
             rlBindShaderBuffer(ssboA, 1);
             rlBindShaderBuffer(ssboTransfert, 3);
             rlBindShaderBuffer(ssboTransfert, 3);

+ 13 - 13
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)
 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)
 // 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 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
 // 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
 RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, unsigned int format, int readonly);  // Bind image texture
 
 
 // Matrix state management
 // Matrix state management
@@ -3954,7 +3954,7 @@ void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned
 }
 }
 
 
 // Load shader storage buffer object (SSBO)
 // 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;
     unsigned int ssbo = 0;
 
 
@@ -3978,7 +3978,7 @@ void rlUnloadShaderBuffer(unsigned int ssboId)
 }
 }
 
 
 // Update SSBO buffer data
 // 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)
 #if defined(GRAPHICS_API_OPENGL_43)
     glBindBuffer(GL_SHADER_STORAGE_BUFFER, id);
     glBindBuffer(GL_SHADER_STORAGE_BUFFER, id);
@@ -3987,7 +3987,7 @@ void rlUpdateShaderBufferElements(unsigned int id, const void *data, unsigned lo
 }
 }
 
 
 // Get SSBO buffer size
 // Get SSBO buffer size
-unsigned long long rlGetShaderBufferSize(unsigned int id)
+unsigned int rlGetShaderBufferSize(unsigned int id)
 {
 {
     long long size = 0;
     long long size = 0;
 
 
@@ -3996,11 +3996,11 @@ unsigned long long rlGetShaderBufferSize(unsigned int id)
     glGetInteger64v(GL_SHADER_STORAGE_BUFFER_SIZE, &size);
     glGetInteger64v(GL_SHADER_STORAGE_BUFFER_SIZE, &size);
 #endif
 #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)
 #if defined(GRAPHICS_API_OPENGL_43)
     glBindBuffer(GL_SHADER_STORAGE_BUFFER, id);
     glBindBuffer(GL_SHADER_STORAGE_BUFFER, id);
@@ -4017,7 +4017,7 @@ void rlBindShaderBuffer(unsigned int id, unsigned int index)
 }
 }
 
 
 // Copy SSBO buffer data
 // 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)
 #if defined(GRAPHICS_API_OPENGL_43)
     glBindBuffer(GL_COPY_READ_BUFFER, srcId);
     glBindBuffer(GL_COPY_READ_BUFFER, srcId);