This commit introduces functions related to compute shaders and
Shader Buffer Storage Objects (SSBOs) in raylib-go. It adds
bindings for loading, dispatching, and managing compute shaders
and SSBOs, aligning raylib-go more closely with the raylib C
library's capabilities. Specifically, the functions added are
`LoadComputeShaderProgram`, `ComputeShaderDispatch`, `LoadShaderBuffer`,
`UnloadShaderBuffer`, `UpdateShaderBuffer`, `BindShaderBuffer`,
`ReadShaderBuffer`, and `CopyShaderBuffer`. These additions enhance
raylib-go's utility for more advanced GPU operations.
This commit introduces functions related to compute shaders and
Shader Buffer Storage Objects (SSBOs) in raylib-go. It adds
bindings for loading, dispatching, and managing compute shaders
and SSBOs, aligning raylib-go more closely with the raylib C
library's capabilities. Specifically, the functions added are
`LoadComputeShaderProgram`, `ComputeShaderDispatch`, `LoadShaderBuffer`,
`UnloadShaderBuffer`, `UpdateShaderBuffer`, `BindShaderBuffer`,
`ReadShaderBuffer`, and `CopyShaderBuffer`. These additions enhance
raylib-go's utility for more advanced GPU operations.
The original raylib C library's ExportImage function returns a boolean to
indicate the success or failure of the export operation. This behavior was
missing in the raylib-go implementation, which provided no return value,
thereby limiting error handling capabilities.
This commit updates the ExportImage function in raylib-go to return a boolean
or an error, aligning it with its C counterpart and enabling idiomatic Go
error handling. The change includes updates to the function and tests to
reflect the new return type. This enhancement increases robustness and clarity
in error handling for Go developers using raylib-go.
The test suite has been updated and run to ensure the correct functioning of
the modified ExportImage function, with results confirming the expected
behavior in both successful and unsuccessful scenarios.
- Daniel "ShellFu" Kendrick