From 50d0e15ff494291779710b120d8f53202aa2ef1f Mon Sep 17 00:00:00 2001 From: jussi Date: Sat, 18 Nov 2023 23:54:16 +0200 Subject: Shader buffer storage object management (ssbo) and rest of rlgl texture management functions. --- API.md | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 108 insertions(+), 2 deletions(-) (limited to 'API.md') diff --git a/API.md b/API.md index ba42bdd..ad5eb3b 100644 --- a/API.md +++ b/API.md @@ -4930,7 +4930,7 @@ Update camera movement, movement/rotation values should be provided by user > buffer = RL.LoadBuffer( data{} buffer, int type ) -Load Buffer. Type should be one of the Buffer types +Load Buffer. Type should be one of the Buffer types. Empty buffer will set data to NULL. - Success return Buffer @@ -9119,7 +9119,7 @@ Draw vertex array elements instanced --- -> id = RL.rlLoadTexture( Vector2 size, int format, int mipmapCount ) +> id = RL.rlLoadTexture( Buffer data, Vector2 size, int format, int mipmapCount ) Load texture in GPU @@ -9135,12 +9135,66 @@ Load depth texture/renderbuffer (to be attached to fbo) --- +> id = RL.rlLoadTextureCubemap( Buffer data, int size, int format ) + +Load texture cubemap + +- Success return int + +--- + +> RL.rlUpdateTexture( int id, Vector2 offset, Vector2 size, int format, Buffer data ) + +Update GPU texture with new data + +--- + +> glInternalFormat, glFormat, glType = RL.rlGetGlTextureFormats( int format ) + +Get OpenGL internal formats + +- Success return int, int, int + +--- + +> name = RL.rlGetPixelFormatName( int format ) + +Get name string for pixel format + +- Success return string + +--- + > RL.rlUnloadTexture( int id ) Unload texture from GPU memory --- +> mipmapCount = RL.rlGenTextureMipmaps( int id, Vector2 size, int format ) + +Generate mipmap data for selected texture + +- Success return int + +--- + +> data = RL.rlReadTexturePixels( int id, Vector2 size, int format ) + +Read texture pixel data + +- Success return Buffer + +--- + +> data = RL.rlReadScreenPixels( Vector2 size ) + +Read screen pixel data (color buffer) + +- Success return Buffer + +--- + ## RLGL - Framebuffer management (fbo) --- @@ -9265,6 +9319,58 @@ Dispatch compute shader (equivalent to *draw* for graphics pipeline) --- +## RLGL - Shader buffer storage object management (ssbo) + +--- + +> buffer = RL.rlLoadShaderBuffer( int size, Buffer data, int usageHint ) + +Load shader storage buffer object (SSBO) + +- Success return int + +--- + +> RL.rlUnloadShaderBuffer( int ssboId ) + +Unload shader storage buffer object (SSBO) + +--- + +> RL.rlUpdateShaderBuffer( int id, Buffer data, int offset ) + +Update SSBO buffer data + +--- + +> RL.rlBindShaderBuffer( int id, int index ) + +Bind SSBO buffer + +--- + +> data = RL.rlReadShaderBuffer( int id, int count, int offset ) + +Read SSBO buffer data (GPU->CPU) + +- Success return Buffer + +--- + +> RL.rlCopyShaderBuffer( int destId, int srcId, int destOffset, int srcOffset, int count ) + +Copy SSBO data between buffers + +--- + +> size = RL.rlGetShaderBufferSize( int id ) + +Get SSBO buffer size + +- Success return int + +--- + ## RLGL - Buffer management --- -- cgit v1.2.3