update to 4.0

This commit is contained in:
richard 2021-11-06 15:18:42 +00:00
parent 77239a0e96
commit 3d675c66ae
5 changed files with 1138 additions and 1126 deletions

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,7 @@
*
* rlgl v4.0 - A multi-OpenGL abstraction layer with an immediate-mode style API
*
* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, ES 2.0)
* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0)
* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...)
*
* When chosing an OpenGL backend different than OpenGL 1.1, some internal buffer are
@ -80,7 +80,7 @@
* DEPENDENCIES:
*
* - OpenGL libraries (depending on platform and OpenGL version selected)
* - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core)
* - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core)
*
*
* LICENSE: zlib/libpng
@ -445,6 +445,19 @@ typedef enum {
void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix
void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler
void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations)
// Compute shader management
unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program
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)
unsigned int rlLoadShaderBuffer(unsigned long long size, const void *data, int usageHint); // Load shader storage buffer object (SSBO)
void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO)
void rlUpdateShaderBufferElements(unsigned int id, const void *data, unsigned long long dataSize, unsigned long long offset); // Update SSBO buffer data
unsigned long long rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size
void rlReadShaderBufferElements(unsigned int id, void *dest, unsigned long long count, unsigned long long offset); // Bind SSBO buffer
void rlBindShaderBuffer(unsigned int id, unsigned int index); // Copy SSBO buffer data
// Buffer management
void rlCopyBuffersElements(unsigned int destId, unsigned int srcId, unsigned long long destOffset, unsigned long long srcOffset, unsigned long long count); // Copy SSBO buffer data
void rlBindImageTexture(unsigned int id, unsigned int index, unsigned int format, int readonly); // Bind image texture
// Matrix state management
Matrix rlGetMatrixModelview(void); // Get internal modelview matrix
Matrix rlGetMatrixProjection(void); // Get internal projection matrix