mirror of
				https://github.com/raysan5/raylib.git
				synced 2025-10-26 12:27:01 +00:00 
			
		
		
		
	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:
		| @@ -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); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Ray
					Ray