From 7ca87e52a9373a5701813f02128b908da3d6c006 Mon Sep 17 00:00:00 2001 From: Kaehvaman Date: Fri, 27 Dec 2024 10:57:48 +0400 Subject: [PATCH] rewritten watershader from barotrauma --- lab16 with raylib/include/rlgl.h | 5262 ----------------- .../lab16 with raylib.vcxproj | 1 + .../lab16 with raylib.vcxproj.filters | 3 + lab16 with raylib/resources/blur.frag | 14 +- lab16 with raylib/resources/color_mix.fs | 27 + .../resources/distortnormals.png | Bin 0 -> 403607 bytes lab16 with raylib/resources/water.frag | 32 + lab16 with raylib/resources/waterbump.png | Bin 0 -> 452781 bytes lab16 with raylib/resources/watershader.frag | 48 + lab16 with raylib/resources/watershader.fx | 143 + lab16 with raylib/src/main.c | 81 +- 11 files changed, 327 insertions(+), 5284 deletions(-) delete mode 100644 lab16 with raylib/include/rlgl.h create mode 100644 lab16 with raylib/resources/color_mix.fs create mode 100644 lab16 with raylib/resources/distortnormals.png create mode 100644 lab16 with raylib/resources/water.frag create mode 100644 lab16 with raylib/resources/waterbump.png create mode 100644 lab16 with raylib/resources/watershader.frag create mode 100644 lab16 with raylib/resources/watershader.fx diff --git a/lab16 with raylib/include/rlgl.h b/lab16 with raylib/include/rlgl.h deleted file mode 100644 index 508960d..0000000 --- a/lab16 with raylib/include/rlgl.h +++ /dev/null @@ -1,5262 +0,0 @@ -/********************************************************************************************** -* -* rlgl v5.0 - A multi-OpenGL abstraction layer with an immediate-mode style API -* -* DESCRIPTION: -* 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...) -* -* ADDITIONAL NOTES: -* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are -* initialized on rlglInit() to accumulate vertex data -* -* When an internal state change is required all the stored vertex data is renderer in batch, -* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch -* -* Some resources are also loaded for convenience, here the complete list: -* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data -* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 -* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) -* -* Internal buffer (and resources) must be manually unloaded calling rlglClose() -* -* CONFIGURATION: -* #define GRAPHICS_API_OPENGL_11 -* #define GRAPHICS_API_OPENGL_21 -* #define GRAPHICS_API_OPENGL_33 -* #define GRAPHICS_API_OPENGL_43 -* #define GRAPHICS_API_OPENGL_ES2 -* #define GRAPHICS_API_OPENGL_ES3 -* Use selected OpenGL graphics backend, should be supported by platform -* Those preprocessor defines are only used on rlgl module, if OpenGL version is -* required by any other module, use rlGetVersion() to check it -* -* #define RLGL_IMPLEMENTATION -* Generates the implementation of the library into the included file -* If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation -* -* #define RLGL_RENDER_TEXTURES_HINT -* Enable framebuffer objects (fbo) support (enabled by default) -* Some GPUs could not support them despite the OpenGL version -* -* #define RLGL_SHOW_GL_DETAILS_INFO -* Show OpenGL extensions and capabilities detailed logs on init -* -* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT -* Enable debug context (only available on OpenGL 4.3) -* -* rlgl capabilities could be customized just defining some internal -* values before library inclusion (default values listed): -* -* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits -* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) -* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) -* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) -* -* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack -* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported -* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance -* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance -* -* When loading a shader, the following vertex attributes and uniform -* location names are tried to be set automatically: -* -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))) -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) -* -* DEPENDENCIES: -* - OpenGL libraries (depending on platform and OpenGL version selected) -* - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core) -* -* -* LICENSE: zlib/libpng -* -* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) -* -* This software is provided "as-is", without any express or implied warranty. In no event -* will the authors be held liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, including commercial -* applications, and to alter it and redistribute it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that you -* wrote the original software. If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but is not required. -* -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* -* 3. This notice may not be removed or altered from any source distribution. -* -**********************************************************************************************/ - -#ifndef RLGL_H -#define RLGL_H - -#define RLGL_VERSION "5.0" - -// Function specifiers in case library is build/used as a shared library -// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll -// NOTE: visibility(default) attribute makes symbols "visible" when compiled with -fvisibility=hidden -#if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) -#elif defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __attribute__((visibility("default"))) // We are building the library as a Unix shared library (.so/.dylib) -#elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) - #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) -#endif - -// Function specifiers definition -#ifndef RLAPI - #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) -#endif - -// Support TRACELOG macros -#ifndef TRACELOG - #define TRACELOG(level, ...) (void)0 - #define TRACELOGD(...) (void)0 -#endif - -// Allow custom memory allocators -#ifndef RL_MALLOC - #define RL_MALLOC(sz) malloc(sz) -#endif -#ifndef RL_CALLOC - #define RL_CALLOC(n,sz) calloc(n,sz) -#endif -#ifndef RL_REALLOC - #define RL_REALLOC(n,sz) realloc(n,sz) -#endif -#ifndef RL_FREE - #define RL_FREE(p) free(p) -#endif - -// Security check in case no GRAPHICS_API_OPENGL_* defined -#if !defined(GRAPHICS_API_OPENGL_11) && \ - !defined(GRAPHICS_API_OPENGL_21) && \ - !defined(GRAPHICS_API_OPENGL_33) && \ - !defined(GRAPHICS_API_OPENGL_43) && \ - !defined(GRAPHICS_API_OPENGL_ES2) && \ - !defined(GRAPHICS_API_OPENGL_ES3) - #define GRAPHICS_API_OPENGL_33 -#endif - -// Security check in case multiple GRAPHICS_API_OPENGL_* defined -#if defined(GRAPHICS_API_OPENGL_11) - #if defined(GRAPHICS_API_OPENGL_21) - #undef GRAPHICS_API_OPENGL_21 - #endif - #if defined(GRAPHICS_API_OPENGL_33) - #undef GRAPHICS_API_OPENGL_33 - #endif - #if defined(GRAPHICS_API_OPENGL_43) - #undef GRAPHICS_API_OPENGL_43 - #endif - #if defined(GRAPHICS_API_OPENGL_ES2) - #undef GRAPHICS_API_OPENGL_ES2 - #endif -#endif - -// OpenGL 2.1 uses most of OpenGL 3.3 Core functionality -// WARNING: Specific parts are checked with #if defines -#if defined(GRAPHICS_API_OPENGL_21) - #define GRAPHICS_API_OPENGL_33 -#endif - -// OpenGL 4.3 uses OpenGL 3.3 Core functionality -#if defined(GRAPHICS_API_OPENGL_43) - #define GRAPHICS_API_OPENGL_33 -#endif - -// OpenGL ES 3.0 uses OpenGL ES 2.0 functionality (and more) -#if defined(GRAPHICS_API_OPENGL_ES3) - #define GRAPHICS_API_OPENGL_ES2 -#endif - -// Support framebuffer objects by default -// NOTE: Some driver implementation do not support it, despite they should -#define RLGL_RENDER_TEXTURES_HINT - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- - -// Default internal render batch elements limits -#ifndef RL_DEFAULT_BATCH_BUFFER_ELEMENTS - #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // This is the maximum amount of elements (quads) per batch - // NOTE: Be careful with text, every letter maps to a quad - #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 - #endif - #if defined(GRAPHICS_API_OPENGL_ES2) - // We reduce memory sizes for embedded systems (RPI and HTML5) - // NOTE: On HTML5 (emscripten) this is allocated on heap, - // by default it's only 16MB!...just take care... - #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 2048 - #endif -#endif -#ifndef RL_DEFAULT_BATCH_BUFFERS - #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) -#endif -#ifndef RL_DEFAULT_BATCH_DRAWCALLS - #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) -#endif -#ifndef RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS - #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) -#endif - -// Internal Matrix stack -#ifndef RL_MAX_MATRIX_STACK_SIZE - #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of Matrix stack -#endif - -// Shader limits -#ifndef RL_MAX_SHADER_LOCATIONS - #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported -#endif - -// Projection matrix culling -#ifndef RL_CULL_DISTANCE_NEAR - #define RL_CULL_DISTANCE_NEAR 0.01 // Default near cull distance -#endif -#ifndef RL_CULL_DISTANCE_FAR - #define RL_CULL_DISTANCE_FAR 1000.0 // Default far cull distance -#endif - -// Texture parameters (equivalent to OpenGL defines) -#define RL_TEXTURE_WRAP_S 0x2802 // GL_TEXTURE_WRAP_S -#define RL_TEXTURE_WRAP_T 0x2803 // GL_TEXTURE_WRAP_T -#define RL_TEXTURE_MAG_FILTER 0x2800 // GL_TEXTURE_MAG_FILTER -#define RL_TEXTURE_MIN_FILTER 0x2801 // GL_TEXTURE_MIN_FILTER - -#define RL_TEXTURE_FILTER_NEAREST 0x2600 // GL_NEAREST -#define RL_TEXTURE_FILTER_LINEAR 0x2601 // GL_LINEAR -#define RL_TEXTURE_FILTER_MIP_NEAREST 0x2700 // GL_NEAREST_MIPMAP_NEAREST -#define RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR 0x2702 // GL_NEAREST_MIPMAP_LINEAR -#define RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST 0x2701 // GL_LINEAR_MIPMAP_NEAREST -#define RL_TEXTURE_FILTER_MIP_LINEAR 0x2703 // GL_LINEAR_MIPMAP_LINEAR -#define RL_TEXTURE_FILTER_ANISOTROPIC 0x3000 // Anisotropic filter (custom identifier) -#define RL_TEXTURE_MIPMAP_BIAS_RATIO 0x4000 // Texture mipmap bias, percentage ratio (custom identifier) - -#define RL_TEXTURE_WRAP_REPEAT 0x2901 // GL_REPEAT -#define RL_TEXTURE_WRAP_CLAMP 0x812F // GL_CLAMP_TO_EDGE -#define RL_TEXTURE_WRAP_MIRROR_REPEAT 0x8370 // GL_MIRRORED_REPEAT -#define RL_TEXTURE_WRAP_MIRROR_CLAMP 0x8742 // GL_MIRROR_CLAMP_EXT - -// Matrix modes (equivalent to OpenGL) -#define RL_MODELVIEW 0x1700 // GL_MODELVIEW -#define RL_PROJECTION 0x1701 // GL_PROJECTION -#define RL_TEXTURE 0x1702 // GL_TEXTURE - -// Primitive assembly draw modes -#define RL_LINES 0x0001 // GL_LINES -#define RL_TRIANGLES 0x0004 // GL_TRIANGLES -#define RL_QUADS 0x0007 // GL_QUADS - -// GL equivalent data types -#define RL_UNSIGNED_BYTE 0x1401 // GL_UNSIGNED_BYTE -#define RL_FLOAT 0x1406 // GL_FLOAT - -// GL buffer usage hint -#define RL_STREAM_DRAW 0x88E0 // GL_STREAM_DRAW -#define RL_STREAM_READ 0x88E1 // GL_STREAM_READ -#define RL_STREAM_COPY 0x88E2 // GL_STREAM_COPY -#define RL_STATIC_DRAW 0x88E4 // GL_STATIC_DRAW -#define RL_STATIC_READ 0x88E5 // GL_STATIC_READ -#define RL_STATIC_COPY 0x88E6 // GL_STATIC_COPY -#define RL_DYNAMIC_DRAW 0x88E8 // GL_DYNAMIC_DRAW -#define RL_DYNAMIC_READ 0x88E9 // GL_DYNAMIC_READ -#define RL_DYNAMIC_COPY 0x88EA // GL_DYNAMIC_COPY - -// GL Shader type -#define RL_FRAGMENT_SHADER 0x8B30 // GL_FRAGMENT_SHADER -#define RL_VERTEX_SHADER 0x8B31 // GL_VERTEX_SHADER -#define RL_COMPUTE_SHADER 0x91B9 // GL_COMPUTE_SHADER - -// GL blending factors -#define RL_ZERO 0 // GL_ZERO -#define RL_ONE 1 // GL_ONE -#define RL_SRC_COLOR 0x0300 // GL_SRC_COLOR -#define RL_ONE_MINUS_SRC_COLOR 0x0301 // GL_ONE_MINUS_SRC_COLOR -#define RL_SRC_ALPHA 0x0302 // GL_SRC_ALPHA -#define RL_ONE_MINUS_SRC_ALPHA 0x0303 // GL_ONE_MINUS_SRC_ALPHA -#define RL_DST_ALPHA 0x0304 // GL_DST_ALPHA -#define RL_ONE_MINUS_DST_ALPHA 0x0305 // GL_ONE_MINUS_DST_ALPHA -#define RL_DST_COLOR 0x0306 // GL_DST_COLOR -#define RL_ONE_MINUS_DST_COLOR 0x0307 // GL_ONE_MINUS_DST_COLOR -#define RL_SRC_ALPHA_SATURATE 0x0308 // GL_SRC_ALPHA_SATURATE -#define RL_CONSTANT_COLOR 0x8001 // GL_CONSTANT_COLOR -#define RL_ONE_MINUS_CONSTANT_COLOR 0x8002 // GL_ONE_MINUS_CONSTANT_COLOR -#define RL_CONSTANT_ALPHA 0x8003 // GL_CONSTANT_ALPHA -#define RL_ONE_MINUS_CONSTANT_ALPHA 0x8004 // GL_ONE_MINUS_CONSTANT_ALPHA - -// GL blending functions/equations -#define RL_FUNC_ADD 0x8006 // GL_FUNC_ADD -#define RL_MIN 0x8007 // GL_MIN -#define RL_MAX 0x8008 // GL_MAX -#define RL_FUNC_SUBTRACT 0x800A // GL_FUNC_SUBTRACT -#define RL_FUNC_REVERSE_SUBTRACT 0x800B // GL_FUNC_REVERSE_SUBTRACT -#define RL_BLEND_EQUATION 0x8009 // GL_BLEND_EQUATION -#define RL_BLEND_EQUATION_RGB 0x8009 // GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION) -#define RL_BLEND_EQUATION_ALPHA 0x883D // GL_BLEND_EQUATION_ALPHA -#define RL_BLEND_DST_RGB 0x80C8 // GL_BLEND_DST_RGB -#define RL_BLEND_SRC_RGB 0x80C9 // GL_BLEND_SRC_RGB -#define RL_BLEND_DST_ALPHA 0x80CA // GL_BLEND_DST_ALPHA -#define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA -#define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR - -#define RL_READ_FRAMEBUFFER 0x8CA8 // GL_READ_FRAMEBUFFER -#define RL_DRAW_FRAMEBUFFER 0x8CA9 // GL_DRAW_FRAMEBUFFER - -// Default shader vertex attribute locations -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 -#endif - #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT -#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES 6 -#endif -#ifdef RL_SUPPORT_MESH_GPU_SKINNING -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS 7 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS 8 -#endif -#endif - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) - #include -#elif !defined(__cplusplus) && !defined(bool) && !defined(RL_BOOL_TYPE) - // Boolean type -typedef enum bool { false = 0, true = !false } bool; -#endif - -#if !defined(RL_MATRIX_TYPE) -// Matrix, 4x4 components, column major, OpenGL style, right handed -typedef struct Matrix { - float m0, m4, m8, m12; // Matrix first row (4 components) - float m1, m5, m9, m13; // Matrix second row (4 components) - float m2, m6, m10, m14; // Matrix third row (4 components) - float m3, m7, m11, m15; // Matrix fourth row (4 components) -} Matrix; -#define RL_MATRIX_TYPE -#endif - -// Dynamic vertex buffers (position + texcoords + colors + indices arrays) -typedef struct rlVertexBuffer { - int elementCount; // Number of elements in the buffer (QUADS) - - float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) - float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) - float *normals; // Vertex normal (XYZ - 3 components per vertex) (shader-location = 2) - unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - unsigned int *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - unsigned short *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) -#endif - unsigned int vaoId; // OpenGL Vertex Array Object id - unsigned int vboId[5]; // OpenGL Vertex Buffer Objects id (5 types of vertex data) -} rlVertexBuffer; - -// Draw call type -// NOTE: Only texture changes register a new draw, other state-change-related elements are not -// used at this moment (vaoId, shaderId, matrices), raylib just forces a batch draw call if any -// of those state-change happens (this is done in core module) -typedef struct rlDrawCall { - int mode; // Drawing mode: LINES, TRIANGLES, QUADS - int vertexCount; // Number of vertex of the draw - int vertexAlignment; // Number of vertex required for index alignment (LINES, TRIANGLES) - //unsigned int vaoId; // Vertex array id to be used on the draw -> Using RLGL.currentBatch->vertexBuffer.vaoId - //unsigned int shaderId; // Shader id to be used on the draw -> Using RLGL.currentShaderId - unsigned int textureId; // Texture id to be used on the draw -> Use to create new draw call if changes - - //Matrix projection; // Projection matrix for this draw -> Using RLGL.projection by default - //Matrix modelview; // Modelview matrix for this draw -> Using RLGL.modelview by default -} rlDrawCall; - -// rlRenderBatch type -typedef struct rlRenderBatch { - int bufferCount; // Number of vertex buffers (multi-buffering support) - int currentBuffer; // Current buffer tracking in case of multi-buffering - rlVertexBuffer *vertexBuffer; // Dynamic buffer(s) for vertex data - - rlDrawCall *draws; // Draw calls array, depends on textureId - int drawCounter; // Draw calls counter - float currentDepth; // Current depth value for next draw -} rlRenderBatch; - -// OpenGL version -typedef enum { - RL_OPENGL_11 = 1, // OpenGL 1.1 - RL_OPENGL_21, // OpenGL 2.1 (GLSL 120) - RL_OPENGL_33, // OpenGL 3.3 (GLSL 330) - RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330) - RL_OPENGL_ES_20, // OpenGL ES 2.0 (GLSL 100) - RL_OPENGL_ES_30 // OpenGL ES 3.0 (GLSL 300 es) -} rlGlVersion; - -// Trace log level -// NOTE: Organized by priority level -typedef enum { - RL_LOG_ALL = 0, // Display all logs - RL_LOG_TRACE, // Trace logging, intended for internal use only - RL_LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds - RL_LOG_INFO, // Info logging, used for program execution info - RL_LOG_WARNING, // Warning logging, used on recoverable failures - RL_LOG_ERROR, // Error logging, used on unrecoverable failures - RL_LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) - RL_LOG_NONE // Disable logging -} rlTraceLogLevel; - -// Texture pixel formats -// NOTE: Support depends on OpenGL version -typedef enum { - RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) - RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) - RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp - RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp - RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) - RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) - RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp - RL_PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) - RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) - RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) - RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) - RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) - RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) - RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) - RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) - RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp -} rlPixelFormat; - -// Texture parameters: filter mode -// NOTE 1: Filtering considers mipmaps if available in the texture -// NOTE 2: Filter is accordingly set for minification and magnification -typedef enum { - RL_TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation - RL_TEXTURE_FILTER_BILINEAR, // Linear filtering - RL_TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) - RL_TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x - RL_TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x - RL_TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x -} rlTextureFilter; - -// Color blending modes (pre-defined) -typedef enum { - RL_BLEND_ALPHA = 0, // Blend textures considering alpha (default) - RL_BLEND_ADDITIVE, // Blend textures adding colors - RL_BLEND_MULTIPLIED, // Blend textures multiplying colors - RL_BLEND_ADD_COLORS, // Blend textures adding colors (alternative) - RL_BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) - RL_BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha - RL_BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) - RL_BLEND_CUSTOM_SEPARATE // Blend textures using custom src/dst factors (use rlSetBlendFactorsSeparate()) -} rlBlendMode; - -// Shader location point type -typedef enum { - RL_SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position - RL_SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 - RL_SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 - RL_SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal - RL_SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent - RL_SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color - RL_SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection - RL_SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) - RL_SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection - RL_SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) - RL_SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal - RL_SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view - RL_SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color - RL_SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color - RL_SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color - RL_SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: RL_SHADER_LOC_MAP_DIFFUSE) - RL_SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: RL_SHADER_LOC_MAP_SPECULAR) - RL_SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal - RL_SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness - RL_SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion - RL_SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission - RL_SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height - RL_SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap - RL_SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance - RL_SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter - RL_SHADER_LOC_MAP_BRDF // Shader location: sampler2d texture: brdf -} rlShaderLocationIndex; - -#define RL_SHADER_LOC_MAP_DIFFUSE RL_SHADER_LOC_MAP_ALBEDO -#define RL_SHADER_LOC_MAP_SPECULAR RL_SHADER_LOC_MAP_METALNESS - -// Shader uniform data type -typedef enum { - RL_SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float - RL_SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) - RL_SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) - RL_SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) - RL_SHADER_UNIFORM_INT, // Shader uniform type: int - RL_SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) - RL_SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) - RL_SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) - RL_SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int - RL_SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) - RL_SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) - RL_SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) - RL_SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d -} rlShaderUniformDataType; - -// Shader attribute data types -typedef enum { - RL_SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float - RL_SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) - RL_SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) - RL_SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) -} rlShaderAttributeDataType; - -// Framebuffer attachment type -// NOTE: By default up to 8 color channels defined, but it can be more -typedef enum { - RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 - RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1 - RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2 - RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3 - RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4 - RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5 - RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6 - RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7 - RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth - RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil -} rlFramebufferAttachType; - -// Framebuffer texture attachment type -typedef enum { - RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side - RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side - RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side - RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d - RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer -} rlFramebufferAttachTextureType; - -// Face culling mode -typedef enum { - RL_CULL_FACE_FRONT = 0, - RL_CULL_FACE_BACK -} rlCullMode; - -//------------------------------------------------------------------------------------ -// Functions Declaration - Matrix operations -//------------------------------------------------------------------------------------ - -#if defined(__cplusplus) -extern "C" { // Prevents name mangling of functions -#endif - -RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed -RLAPI void rlPushMatrix(void); // Push the current matrix to stack -RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack -RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix -RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix -RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix -RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix -RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix -RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); -RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); -RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area -RLAPI void rlSetClipPlanes(double nearPlane, double farPlane); // Set clip planes distances -RLAPI double rlGetCullDistanceNear(void); // Get cull plane distance near -RLAPI double rlGetCullDistanceFar(void); // Get cull plane distance far - -//------------------------------------------------------------------------------------ -// Functions Declaration - Vertex level operations -//------------------------------------------------------------------------------------ -RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) -RLAPI void rlEnd(void); // Finish vertex providing -RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int -RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float -RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float -RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float -RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float -RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte -RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float -RLAPI void rlColor4f(float x, float y, float z, float w); // Define one vertex (color) - 4 float - -//------------------------------------------------------------------------------------ -// Functions Declaration - OpenGL style functions (common to 1.1, 3.3+, ES2) -// NOTE: This functions are used to completely abstract raylib code from OpenGL layer, -// some of them are direct wrappers over OpenGL calls, some others are custom -//------------------------------------------------------------------------------------ - -// Vertex buffers state -RLAPI bool rlEnableVertexArray(unsigned int vaoId); // Enable vertex array (VAO, if supported) -RLAPI void rlDisableVertexArray(void); // Disable vertex array (VAO, if supported) -RLAPI void rlEnableVertexBuffer(unsigned int id); // Enable vertex buffer (VBO) -RLAPI void rlDisableVertexBuffer(void); // Disable vertex buffer (VBO) -RLAPI void rlEnableVertexBufferElement(unsigned int id); // Enable vertex buffer element (VBO element) -RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) -RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index -RLAPI void rlDisableVertexAttribute(unsigned int index); // Disable vertex attribute index -#if defined(GRAPHICS_API_OPENGL_11) -RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer -RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer -#endif - -// Textures state -RLAPI void rlActiveTextureSlot(int slot); // Select and active a texture slot -RLAPI void rlEnableTexture(unsigned int id); // Enable texture -RLAPI void rlDisableTexture(void); // Disable texture -RLAPI void rlEnableTextureCubemap(unsigned int id); // Enable texture cubemap -RLAPI void rlDisableTextureCubemap(void); // Disable texture cubemap -RLAPI void rlTextureParameters(unsigned int id, int param, int value); // Set texture parameters (filter, wrap) -RLAPI void rlCubemapParameters(unsigned int id, int param, int value); // Set cubemap parameters (filter, wrap) - -// Shader state -RLAPI void rlEnableShader(unsigned int id); // Enable shader program -RLAPI void rlDisableShader(void); // Disable shader program - -// Framebuffer state -RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) -RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer -RLAPI unsigned int rlGetActiveFramebuffer(void); // Get the currently active render texture (fbo), 0 for default framebuffer -RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers -RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer -RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) - -// General render state -RLAPI void rlEnableColorBlend(void); // Enable color blending -RLAPI void rlDisableColorBlend(void); // Disable color blending -RLAPI void rlEnableDepthTest(void); // Enable depth test -RLAPI void rlDisableDepthTest(void); // Disable depth test -RLAPI void rlEnableDepthMask(void); // Enable depth write -RLAPI void rlDisableDepthMask(void); // Disable depth write -RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling -RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling -RLAPI void rlColorMask(bool r, bool g, bool b, bool a); // Color mask control -RLAPI void rlSetCullFace(int mode); // Set face culling mode -RLAPI void rlEnableScissorTest(void); // Enable scissor test -RLAPI void rlDisableScissorTest(void); // Disable scissor test -RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test -RLAPI void rlEnableWireMode(void); // Enable wire mode -RLAPI void rlEnablePointMode(void); // Enable point mode -RLAPI void rlDisableWireMode(void); // Disable wire (and point) mode -RLAPI void rlSetLineWidth(float width); // Set the line drawing width -RLAPI float rlGetLineWidth(void); // Get the line drawing width -RLAPI void rlEnableSmoothLines(void); // Enable line aliasing -RLAPI void rlDisableSmoothLines(void); // Disable line aliasing -RLAPI void rlEnableStereoRender(void); // Enable stereo rendering -RLAPI void rlDisableStereoRender(void); // Disable stereo rendering -RLAPI bool rlIsStereoRenderEnabled(void); // Check if stereo render is enabled - -RLAPI void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Clear color buffer with color -RLAPI void rlClearScreenBuffers(void); // Clear used screen buffers (color and depth) -RLAPI void rlCheckErrors(void); // Check and log OpenGL error codes -RLAPI void rlSetBlendMode(int mode); // Set blending mode -RLAPI void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation); // Set blending mode factor and equation (using OpenGL factors) -RLAPI void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha); // Set blending mode factors and equations separately (using OpenGL factors) - -//------------------------------------------------------------------------------------ -// Functions Declaration - rlgl functionality -//------------------------------------------------------------------------------------ -// rlgl initialization functions -RLAPI void rlglInit(int width, int height); // Initialize rlgl (buffers, shaders, textures, states) -RLAPI void rlglClose(void); // De-initialize rlgl (buffers, shaders, textures) -RLAPI void rlLoadExtensions(void *loader); // Load OpenGL extensions (loader function required) -RLAPI int rlGetVersion(void); // Get current OpenGL version -RLAPI void rlSetFramebufferWidth(int width); // Set current framebuffer width -RLAPI int rlGetFramebufferWidth(void); // Get default framebuffer width -RLAPI void rlSetFramebufferHeight(int height); // Set current framebuffer height -RLAPI int rlGetFramebufferHeight(void); // Get default framebuffer height - -RLAPI unsigned int rlGetTextureIdDefault(void); // Get default texture id -RLAPI unsigned int rlGetShaderIdDefault(void); // Get default shader id -RLAPI int *rlGetShaderLocsDefault(void); // Get default shader locations - -// Render batch management -// NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode -// but this render batch API is exposed in case of custom batches are required -RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system -RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system -RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) -RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) -RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch -RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex - -RLAPI void rlSetTexture(unsigned int id); // Set current texture for render batch and check buffers limits - -//------------------------------------------------------------------------------------------------------------------------ - -// Vertex buffers management -RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported -RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer object -RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load vertex buffer elements object -RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update vertex buffer object data on GPU buffer -RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements data on GPU buffer -RLAPI void rlUnloadVertexArray(unsigned int vaoId); // Unload vertex array (vao) -RLAPI void rlUnloadVertexBuffer(unsigned int vboId); // Unload vertex buffer object -RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset); // Set vertex attribute data configuration -RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); // Set vertex attribute data divisor -RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value, when attribute to provided -RLAPI void rlDrawVertexArray(int offset, int count); // Draw vertex array (currently active vao) -RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); // Draw vertex array elements -RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); // Draw vertex array (currently active vao) with instancing -RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); // Draw vertex array elements with instancing - -// Textures management -RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture data -RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) -RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount); // Load texture cubemap data -RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update texture with new data on GPU -RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats -RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format -RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory -RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture -RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data -RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) - -// Framebuffer management (fbo) -RLAPI unsigned int rlLoadFramebuffer(void); // Load an empty framebuffer -RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer -RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete -RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU - -// Shaders management -RLAPI unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings -RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) -RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId); // Load custom shader program -RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program -RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform -RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute -RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform -RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix -RLAPI void rlSetUniformMatrices(int locIndex, const Matrix *mat, int count); // Set shader value matrices -RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler -RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) - -// Compute shader management -RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program -RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) - -// Shader buffer storage object management (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 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 rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly); // Bind image texture - -// Matrix state management -RLAPI Matrix rlGetMatrixModelview(void); // Get internal modelview matrix -RLAPI Matrix rlGetMatrixProjection(void); // Get internal projection matrix -RLAPI Matrix rlGetMatrixTransform(void); // Get internal accumulated transform matrix -RLAPI Matrix rlGetMatrixProjectionStereo(int eye); // Get internal projection matrix for stereo render (selected eye) -RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye); // Get internal view offset matrix for stereo render (selected eye) -RLAPI void rlSetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) -RLAPI void rlSetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) -RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering -RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering - -// Quick and dirty cube/quad buffers load->draw->unload -RLAPI void rlLoadDrawCube(void); // Load and draw a cube -RLAPI void rlLoadDrawQuad(void); // Load and draw a quad - -#if defined(__cplusplus) -} -#endif - -#endif // RLGL_H - -/*********************************************************************************** -* -* RLGL IMPLEMENTATION -* -************************************************************************************/ - -#if defined(RLGL_IMPLEMENTATION) - -// Expose OpenGL functions from glad in raylib -#if defined(BUILD_LIBTYPE_SHARED) - #define GLAD_API_CALL_EXPORT - #define GLAD_API_CALL_EXPORT_BUILD -#endif - -#if defined(GRAPHICS_API_OPENGL_11) - #if defined(__APPLE__) - #include // OpenGL 1.1 library for OSX - #include // OpenGL extensions library - #else - // APIENTRY for OpenGL function pointer declarations is required - #if !defined(APIENTRY) - #if defined(_WIN32) - #define APIENTRY __stdcall - #else - #define APIENTRY - #endif - #endif - // WINGDIAPI definition. Some Windows OpenGL headers need it - #if !defined(WINGDIAPI) && defined(_WIN32) - #define WINGDIAPI __declspec(dllimport) - #endif - - #include // OpenGL 1.1 library - #endif -#endif - -#if defined(GRAPHICS_API_OPENGL_33) - #define GLAD_MALLOC RL_MALLOC - #define GLAD_FREE RL_FREE - - #define GLAD_GL_IMPLEMENTATION - #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers -#endif - -#if defined(GRAPHICS_API_OPENGL_ES3) - #include // OpenGL ES 3.0 library - #define GL_GLEXT_PROTOTYPES - #include // OpenGL ES 2.0 extensions library -#elif defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: OpenGL ES 2.0 can be enabled on Desktop platforms, - // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 - #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) - #define GLAD_GLES2_IMPLEMENTATION - #include "external/glad_gles2.h" - #else - #define GL_GLEXT_PROTOTYPES - //#include // EGL library -> not required, platform layer - #include // OpenGL ES 2.0 library - #include // OpenGL ES 2.0 extensions library - #endif - - // It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi - // provided headers (despite being defined in official Khronos GLES2 headers) - #if defined(PLATFORM_DRM) - typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); - typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); - typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); - #endif -#endif - -#include // Required for: malloc(), free() -#include // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] -#include // Required for: sqrtf(), sinf(), cosf(), floor(), log() - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -#ifndef PI - #define PI 3.14159265358979323846f -#endif -#ifndef DEG2RAD - #define DEG2RAD (PI/180.0f) -#endif -#ifndef RAD2DEG - #define RAD2DEG (180.0f/PI) -#endif - -#ifndef GL_SHADING_LANGUAGE_VERSION - #define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#endif - -#ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT - #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#endif -#ifndef GL_COMPRESSED_RGBA_S3TC_DXT1_EXT - #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#endif -#ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT - #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#endif -#ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT - #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif -#ifndef GL_ETC1_RGB8_OES - #define GL_ETC1_RGB8_OES 0x8D64 -#endif -#ifndef GL_COMPRESSED_RGB8_ETC2 - #define GL_COMPRESSED_RGB8_ETC2 0x9274 -#endif -#ifndef GL_COMPRESSED_RGBA8_ETC2_EAC - #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#endif -#ifndef GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG - #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 -#endif -#ifndef GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG - #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 -#endif -#ifndef GL_COMPRESSED_RGBA_ASTC_4x4_KHR - #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93b0 -#endif -#ifndef GL_COMPRESSED_RGBA_ASTC_8x8_KHR - #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93b7 -#endif - -#ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT - #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif -#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT - #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#endif - -#ifndef GL_PROGRAM_POINT_SIZE - #define GL_PROGRAM_POINT_SIZE 0x8642 -#endif - -#ifndef GL_LINE_WIDTH - #define GL_LINE_WIDTH 0x0B21 -#endif - -#if defined(GRAPHICS_API_OPENGL_11) - #define GL_UNSIGNED_SHORT_5_6_5 0x8363 - #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 - #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#endif - -#if defined(GRAPHICS_API_OPENGL_21) - #define GL_LUMINANCE 0x1909 - #define GL_LUMINANCE_ALPHA 0x190A -#endif - -#if defined(GRAPHICS_API_OPENGL_ES2) - #define glClearDepth glClearDepthf - #if !defined(GRAPHICS_API_OPENGL_ES3) - #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER - #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER - #endif -#endif - -// Default shader vertex attribute names to set location points -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION - #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL - #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR - #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS - #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS - #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS -#endif - -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP - #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW - #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION - #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL - #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL - #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR - #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES - #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices -#endif -#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 - #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) -#endif -#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 - #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) -#endif -#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 - #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) -#endif - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -typedef struct rlglData { - rlRenderBatch *currentBatch; // Current render batch - rlRenderBatch defaultBatch; // Default internal render batch - - struct { - int vertexCounter; // Current active render batch vertex counter (generic, used for all batches) - float texcoordx, texcoordy; // Current active texture coordinate (added on glVertex*()) - float normalx, normaly, normalz; // Current active normal (added on glVertex*()) - unsigned char colorr, colorg, colorb, colora; // Current active color (added on glVertex*()) - - int currentMatrixMode; // Current matrix mode - Matrix *currentMatrix; // Current matrix pointer - Matrix modelview; // Default modelview matrix - Matrix projection; // Default projection matrix - Matrix transform; // Transform matrix to be used with rlTranslate, rlRotate, rlScale - bool transformRequired; // Require transform matrix application to current draw-call vertex (if required) - Matrix stack[RL_MAX_MATRIX_STACK_SIZE];// Matrix stack for push/pop - int stackCounter; // Matrix stack counter - - unsigned int defaultTextureId; // Default texture used on shapes/poly drawing (required by shader) - unsigned int activeTextureId[RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS]; // Active texture ids to be enabled on batch drawing (0 active by default) - unsigned int defaultVShaderId; // Default vertex shader id (used by default shader program) - unsigned int defaultFShaderId; // Default fragment shader id (used by default shader program) - unsigned int defaultShaderId; // Default shader program id, supports vertex color and diffuse texture - int *defaultShaderLocs; // Default shader locations pointer to be used on rendering - unsigned int currentShaderId; // Current shader id to be used on rendering (by default, defaultShaderId) - int *currentShaderLocs; // Current shader locations pointer to be used on rendering (by default, defaultShaderLocs) - - bool stereoRender; // Stereo rendering flag - Matrix projectionStereo[2]; // VR stereo rendering eyes projection matrices - Matrix viewOffsetStereo[2]; // VR stereo rendering eyes view offset matrices - - // Blending variables - int currentBlendMode; // Blending mode active - int glBlendSrcFactor; // Blending source factor - int glBlendDstFactor; // Blending destination factor - int glBlendEquation; // Blending equation - int glBlendSrcFactorRGB; // Blending source RGB factor - int glBlendDestFactorRGB; // Blending destination RGB factor - int glBlendSrcFactorAlpha; // Blending source alpha factor - int glBlendDestFactorAlpha; // Blending destination alpha factor - int glBlendEquationRGB; // Blending equation for RGB - int glBlendEquationAlpha; // Blending equation for alpha - bool glCustomBlendModeModified; // Custom blending factor and equation modification status - - int framebufferWidth; // Current framebuffer width - int framebufferHeight; // Current framebuffer height - - } State; // Renderer state - struct { - bool vao; // VAO support (OpenGL ES2 could not support VAO extension) (GL_ARB_vertex_array_object) - bool instancing; // Instancing supported (GL_ANGLE_instanced_arrays, GL_EXT_draw_instanced + GL_EXT_instanced_arrays) - bool texNPOT; // NPOT textures full support (GL_ARB_texture_non_power_of_two, GL_OES_texture_npot) - bool texDepth; // Depth textures supported (GL_ARB_depth_texture, GL_OES_depth_texture) - bool texDepthWebGL; // Depth textures supported WebGL specific (GL_WEBGL_depth_texture) - bool texFloat32; // float textures support (32 bit per channel) (GL_OES_texture_float) - bool texFloat16; // half float textures support (16 bit per channel) (GL_OES_texture_half_float) - bool texCompDXT; // DDS texture compression support (GL_EXT_texture_compression_s3tc, GL_WEBGL_compressed_texture_s3tc, GL_WEBKIT_WEBGL_compressed_texture_s3tc) - bool texCompETC1; // ETC1 texture compression support (GL_OES_compressed_ETC1_RGB8_texture, GL_WEBGL_compressed_texture_etc1) - bool texCompETC2; // ETC2/EAC texture compression support (GL_ARB_ES3_compatibility) - bool texCompPVRT; // PVR texture compression support (GL_IMG_texture_compression_pvrtc) - bool texCompASTC; // ASTC texture compression support (GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr) - bool texMirrorClamp; // Clamp mirror wrap mode supported (GL_EXT_texture_mirror_clamp) - bool texAnisoFilter; // Anisotropic texture filtering support (GL_EXT_texture_filter_anisotropic) - bool computeShader; // Compute shaders support (GL_ARB_compute_shader) - bool ssbo; // Shader storage buffer object support (GL_ARB_shader_storage_buffer_object) - - float maxAnisotropyLevel; // Maximum anisotropy level supported (minimum is 2.0f) - int maxDepthBits; // Maximum bits for depth component - - } ExtSupported; // Extensions supported flags -} rlglData; - -typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions loader signature (same as GLADloadproc) - -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -static double rlCullDistanceNear = RL_CULL_DISTANCE_NEAR; -static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -static rlglData RLGL = { 0 }; -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -#if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3) -// NOTE: VAO functionality is exposed through extensions (OES) -static PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays = NULL; -static PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray = NULL; -static PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays = NULL; - -// NOTE: Instancing functionality could also be available through extension -static PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstanced = NULL; -static PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstanced = NULL; -static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; -#endif - -//---------------------------------------------------------------------------------- -// Module specific Functions Declaration -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -static void rlLoadShaderDefault(void); // Load default shader -static void rlUnloadShaderDefault(void); // Unload default shader -#if defined(RLGL_SHOW_GL_DETAILS_INFO) -static const char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name -#endif // RLGL_SHOW_GL_DETAILS_INFO -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) - -// Auxiliar matrix math functions -typedef struct rl_float16 { - float v[16]; -} rl_float16; -static rl_float16 rlMatrixToFloatV(Matrix mat); // Get float array of matrix data -#define rlMatrixToFloat(mat) (rlMatrixToFloatV(mat).v) // Get float vector for Matrix -static Matrix rlMatrixIdentity(void); // Get identity matrix -static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices -static Matrix rlMatrixTranspose(Matrix mat); // Transposes provided matrix -static Matrix rlMatrixInvert(Matrix mat); // Invert provided matrix - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Matrix operations -//---------------------------------------------------------------------------------- - -#if defined(GRAPHICS_API_OPENGL_11) -// Fallback to OpenGL 1.1 function calls -//--------------------------------------- -void rlMatrixMode(int mode) -{ - switch (mode) - { - case RL_PROJECTION: glMatrixMode(GL_PROJECTION); break; - case RL_MODELVIEW: glMatrixMode(GL_MODELVIEW); break; - case RL_TEXTURE: glMatrixMode(GL_TEXTURE); break; - default: break; - } -} - -void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) -{ - glFrustum(left, right, bottom, top, znear, zfar); -} - -void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) -{ - glOrtho(left, right, bottom, top, znear, zfar); -} - -void rlPushMatrix(void) { glPushMatrix(); } -void rlPopMatrix(void) { glPopMatrix(); } -void rlLoadIdentity(void) { glLoadIdentity(); } -void rlTranslatef(float x, float y, float z) { glTranslatef(x, y, z); } -void rlRotatef(float angle, float x, float y, float z) { glRotatef(angle, x, y, z); } -void rlScalef(float x, float y, float z) { glScalef(x, y, z); } -void rlMultMatrixf(const float *matf) { glMultMatrixf(matf); } -#endif -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Choose the current matrix to be transformed -void rlMatrixMode(int mode) -{ - if (mode == RL_PROJECTION) RLGL.State.currentMatrix = &RLGL.State.projection; - else if (mode == RL_MODELVIEW) RLGL.State.currentMatrix = &RLGL.State.modelview; - //else if (mode == RL_TEXTURE) // Not supported - - RLGL.State.currentMatrixMode = mode; -} - -// Push the current matrix into RLGL.State.stack -void rlPushMatrix(void) -{ - if (RLGL.State.stackCounter >= RL_MAX_MATRIX_STACK_SIZE) TRACELOG(RL_LOG_ERROR, "RLGL: Matrix stack overflow (RL_MAX_MATRIX_STACK_SIZE)"); - - if (RLGL.State.currentMatrixMode == RL_MODELVIEW) - { - RLGL.State.transformRequired = true; - RLGL.State.currentMatrix = &RLGL.State.transform; - } - - RLGL.State.stack[RLGL.State.stackCounter] = *RLGL.State.currentMatrix; - RLGL.State.stackCounter++; -} - -// Pop lattest inserted matrix from RLGL.State.stack -void rlPopMatrix(void) -{ - if (RLGL.State.stackCounter > 0) - { - Matrix mat = RLGL.State.stack[RLGL.State.stackCounter - 1]; - *RLGL.State.currentMatrix = mat; - RLGL.State.stackCounter--; - } - - if ((RLGL.State.stackCounter == 0) && (RLGL.State.currentMatrixMode == RL_MODELVIEW)) - { - RLGL.State.currentMatrix = &RLGL.State.modelview; - RLGL.State.transformRequired = false; - } -} - -// Reset current matrix to identity matrix -void rlLoadIdentity(void) -{ - *RLGL.State.currentMatrix = rlMatrixIdentity(); -} - -// Multiply the current matrix by a translation matrix -void rlTranslatef(float x, float y, float z) -{ - Matrix matTranslation = { - 1.0f, 0.0f, 0.0f, x, - 0.0f, 1.0f, 0.0f, y, - 0.0f, 0.0f, 1.0f, z, - 0.0f, 0.0f, 0.0f, 1.0f - }; - - // NOTE: We transpose matrix with multiplication order - *RLGL.State.currentMatrix = rlMatrixMultiply(matTranslation, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by a rotation matrix -// NOTE: The provided angle must be in degrees -void rlRotatef(float angle, float x, float y, float z) -{ - Matrix matRotation = rlMatrixIdentity(); - - // Axis vector (x, y, z) normalization - float lengthSquared = x*x + y*y + z*z; - if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) - { - float inverseLength = 1.0f/sqrtf(lengthSquared); - x *= inverseLength; - y *= inverseLength; - z *= inverseLength; - } - - // Rotation matrix generation - float sinres = sinf(DEG2RAD*angle); - float cosres = cosf(DEG2RAD*angle); - float t = 1.0f - cosres; - - matRotation.m0 = x*x*t + cosres; - matRotation.m1 = y*x*t + z*sinres; - matRotation.m2 = z*x*t - y*sinres; - matRotation.m3 = 0.0f; - - matRotation.m4 = x*y*t - z*sinres; - matRotation.m5 = y*y*t + cosres; - matRotation.m6 = z*y*t + x*sinres; - matRotation.m7 = 0.0f; - - matRotation.m8 = x*z*t + y*sinres; - matRotation.m9 = y*z*t - x*sinres; - matRotation.m10 = z*z*t + cosres; - matRotation.m11 = 0.0f; - - matRotation.m12 = 0.0f; - matRotation.m13 = 0.0f; - matRotation.m14 = 0.0f; - matRotation.m15 = 1.0f; - - // NOTE: We transpose matrix with multiplication order - *RLGL.State.currentMatrix = rlMatrixMultiply(matRotation, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by a scaling matrix -void rlScalef(float x, float y, float z) -{ - Matrix matScale = { - x, 0.0f, 0.0f, 0.0f, - 0.0f, y, 0.0f, 0.0f, - 0.0f, 0.0f, z, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f - }; - - // NOTE: We transpose matrix with multiplication order - *RLGL.State.currentMatrix = rlMatrixMultiply(matScale, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by another matrix -void rlMultMatrixf(const float *matf) -{ - // Matrix creation from array - Matrix mat = { matf[0], matf[4], matf[8], matf[12], - matf[1], matf[5], matf[9], matf[13], - matf[2], matf[6], matf[10], matf[14], - matf[3], matf[7], matf[11], matf[15] }; - - *RLGL.State.currentMatrix = rlMatrixMultiply(mat, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by a perspective matrix generated by parameters -void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) -{ - Matrix matFrustum = { 0 }; - - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(zfar - znear); - - matFrustum.m0 = ((float) znear*2.0f)/rl; - matFrustum.m1 = 0.0f; - matFrustum.m2 = 0.0f; - matFrustum.m3 = 0.0f; - - matFrustum.m4 = 0.0f; - matFrustum.m5 = ((float) znear*2.0f)/tb; - matFrustum.m6 = 0.0f; - matFrustum.m7 = 0.0f; - - matFrustum.m8 = ((float)right + (float)left)/rl; - matFrustum.m9 = ((float)top + (float)bottom)/tb; - matFrustum.m10 = -((float)zfar + (float)znear)/fn; - matFrustum.m11 = -1.0f; - - matFrustum.m12 = 0.0f; - matFrustum.m13 = 0.0f; - matFrustum.m14 = -((float)zfar*(float)znear*2.0f)/fn; - matFrustum.m15 = 0.0f; - - *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matFrustum); -} - -// Multiply the current matrix by an orthographic matrix generated by parameters -void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) -{ - // NOTE: If left-right and top-botton values are equal it could create a division by zero, - // response to it is platform/compiler dependant - Matrix matOrtho = { 0 }; - - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(zfar - znear); - - matOrtho.m0 = 2.0f/rl; - matOrtho.m1 = 0.0f; - matOrtho.m2 = 0.0f; - matOrtho.m3 = 0.0f; - matOrtho.m4 = 0.0f; - matOrtho.m5 = 2.0f/tb; - matOrtho.m6 = 0.0f; - matOrtho.m7 = 0.0f; - matOrtho.m8 = 0.0f; - matOrtho.m9 = 0.0f; - matOrtho.m10 = -2.0f/fn; - matOrtho.m11 = 0.0f; - matOrtho.m12 = -((float)left + (float)right)/rl; - matOrtho.m13 = -((float)top + (float)bottom)/tb; - matOrtho.m14 = -((float)zfar + (float)znear)/fn; - matOrtho.m15 = 1.0f; - - *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matOrtho); -} -#endif - -// Set the viewport area (transformation from normalized device coordinates to window coordinates) -// NOTE: We store current viewport dimensions -void rlViewport(int x, int y, int width, int height) -{ - glViewport(x, y, width, height); -} - -// Set clip planes distances -void rlSetClipPlanes(double nearPlane, double farPlane) -{ - rlCullDistanceNear = nearPlane; - rlCullDistanceFar = farPlane; -} - -// Get cull plane distance near -double rlGetCullDistanceNear(void) -{ - return rlCullDistanceNear; -} - -// Get cull plane distance far -double rlGetCullDistanceFar(void) -{ - return rlCullDistanceFar; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Vertex level operations -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_11) -// Fallback to OpenGL 1.1 function calls -//--------------------------------------- -void rlBegin(int mode) -{ - switch (mode) - { - case RL_LINES: glBegin(GL_LINES); break; - case RL_TRIANGLES: glBegin(GL_TRIANGLES); break; - case RL_QUADS: glBegin(GL_QUADS); break; - default: break; - } -} - -void rlEnd(void) { glEnd(); } -void rlVertex2i(int x, int y) { glVertex2i(x, y); } -void rlVertex2f(float x, float y) { glVertex2f(x, y); } -void rlVertex3f(float x, float y, float z) { glVertex3f(x, y, z); } -void rlTexCoord2f(float x, float y) { glTexCoord2f(x, y); } -void rlNormal3f(float x, float y, float z) { glNormal3f(x, y, z); } -void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a) { glColor4ub(r, g, b, a); } -void rlColor3f(float x, float y, float z) { glColor3f(x, y, z); } -void rlColor4f(float x, float y, float z, float w) { glColor4f(x, y, z, w); } -#endif -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Initialize drawing mode (how to organize vertex) -void rlBegin(int mode) -{ - // Draw mode can be RL_LINES, RL_TRIANGLES and RL_QUADS - // NOTE: In all three cases, vertex are accumulated over default internal vertex buffer - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode != mode) - { - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) - { - // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, - // that way, following QUADS drawing will keep aligned with index processing - // It implies adding some extra alignment vertex at the end of the draw, - // those vertex are not processed but they are considered as an additional offset - // for the next set of vertex to be drawn - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); - else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); - else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; - - if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) - { - RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; - RLGL.currentBatch->drawCounter++; - } - } - - if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); - - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.defaultTextureId; - } -} - -// Finish vertex providing -void rlEnd(void) -{ - // NOTE: Depth increment is dependant on rlOrtho(): z-near and z-far values, - // as well as depth buffer bit-depth (16bit or 24bit or 32bit) - // Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits) - RLGL.currentBatch->currentDepth += (1.0f/20000.0f); -} - -// Define one vertex (position) -// NOTE: Vertex position data is the basic information required for drawing -void rlVertex3f(float x, float y, float z) -{ - float tx = x; - float ty = y; - float tz = z; - - // Transform provided vector if required - if (RLGL.State.transformRequired) - { - tx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z + RLGL.State.transform.m12; - ty = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z + RLGL.State.transform.m13; - tz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z + RLGL.State.transform.m14; - } - - // WARNING: We can't break primitives when launching a new batch - // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices - // We must check current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 - if (RLGL.State.vertexCounter > (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4 - 4)) - { - if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) && - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%2 == 0)) - { - // Reached the maximum number of vertices for RL_LINES drawing - // Launch a draw call but keep current state for next vertices comming - // NOTE: We add +1 vertex to the check for security - rlCheckRenderBatchLimit(2 + 1); - } - else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) && - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%3 == 0)) - { - rlCheckRenderBatchLimit(3 + 1); - } - else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_QUADS) && - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4 == 0)) - { - rlCheckRenderBatchLimit(4 + 1); - } - } - - // Add vertices - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter] = tx; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 1] = ty; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 2] = tz; - - // Add current texcoord - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; - - // Add current normal - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter] = RLGL.State.normalx; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 1] = RLGL.State.normaly; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 2] = RLGL.State.normalz; - - // Add current color - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 1] = RLGL.State.colorg; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 2] = RLGL.State.colorb; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 3] = RLGL.State.colora; - - RLGL.State.vertexCounter++; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount++; -} - -// Define one vertex (position) -void rlVertex2f(float x, float y) -{ - rlVertex3f(x, y, RLGL.currentBatch->currentDepth); -} - -// Define one vertex (position) -void rlVertex2i(int x, int y) -{ - rlVertex3f((float)x, (float)y, RLGL.currentBatch->currentDepth); -} - -// Define one vertex (texture coordinate) -// NOTE: Texture coordinates are limited to QUADS only -void rlTexCoord2f(float x, float y) -{ - RLGL.State.texcoordx = x; - RLGL.State.texcoordy = y; -} - -// Define one vertex (normal) -// NOTE: Normals limited to TRIANGLES only? -void rlNormal3f(float x, float y, float z) -{ - float normalx = x; - float normaly = y; - float normalz = z; - if (RLGL.State.transformRequired) - { - normalx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z; - normaly = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z; - normalz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z; - } - float length = sqrtf(normalx*normalx + normaly*normaly + normalz*normalz); - if (length != 0.0f) - { - float ilength = 1.0f/length; - normalx *= ilength; - normaly *= ilength; - normalz *= ilength; - } - RLGL.State.normalx = normalx; - RLGL.State.normaly = normaly; - RLGL.State.normalz = normalz; -} - -// Define one vertex (color) -void rlColor4ub(unsigned char x, unsigned char y, unsigned char z, unsigned char w) -{ - RLGL.State.colorr = x; - RLGL.State.colorg = y; - RLGL.State.colorb = z; - RLGL.State.colora = w; -} - -// Define one vertex (color) -void rlColor4f(float r, float g, float b, float a) -{ - rlColor4ub((unsigned char)(r*255), (unsigned char)(g*255), (unsigned char)(b*255), (unsigned char)(a*255)); -} - -// Define one vertex (color) -void rlColor3f(float x, float y, float z) -{ - rlColor4ub((unsigned char)(x*255), (unsigned char)(y*255), (unsigned char)(z*255), 255); -} - -#endif - -//-------------------------------------------------------------------------------------- -// Module Functions Definition - OpenGL style functions (common to 1.1, 3.3+, ES2) -//-------------------------------------------------------------------------------------- - -// Set current texture to use -void rlSetTexture(unsigned int id) -{ - if (id == 0) - { -#if defined(GRAPHICS_API_OPENGL_11) - rlDisableTexture(); -#else - // NOTE: If quads batch limit is reached, we force a draw call and next batch starts - if (RLGL.State.vertexCounter >= - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4) - { - rlDrawRenderBatch(RLGL.currentBatch); - } -#endif - } - else - { -#if defined(GRAPHICS_API_OPENGL_11) - rlEnableTexture(id); -#else - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId != id) - { - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) - { - // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, - // that way, following QUADS drawing will keep aligned with index processing - // It implies adding some extra alignment vertex at the end of the draw, - // those vertex are not processed but they are considered as an additional offset - // for the next set of vertex to be drawn - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); - else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); - else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; - - if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) - { - RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; - - RLGL.currentBatch->drawCounter++; - } - } - - if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); - - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = id; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; - } -#endif - } -} - -// Select and active a texture slot -void rlActiveTextureSlot(int slot) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glActiveTexture(GL_TEXTURE0 + slot); -#endif -} - -// Enable texture -void rlEnableTexture(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_11) - glEnable(GL_TEXTURE_2D); -#endif - glBindTexture(GL_TEXTURE_2D, id); -} - -// Disable texture -void rlDisableTexture(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) - glDisable(GL_TEXTURE_2D); -#endif - glBindTexture(GL_TEXTURE_2D, 0); -} - -// Enable texture cubemap -void rlEnableTextureCubemap(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindTexture(GL_TEXTURE_CUBE_MAP, id); -#endif -} - -// Disable texture cubemap -void rlDisableTextureCubemap(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindTexture(GL_TEXTURE_CUBE_MAP, 0); -#endif -} - -// Set texture parameters (wrap mode/filter mode) -void rlTextureParameters(unsigned int id, int param, int value) -{ - glBindTexture(GL_TEXTURE_2D, id); - -#if !defined(GRAPHICS_API_OPENGL_11) - // Reset anisotropy filter, in case it was set - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); -#endif - - switch (param) - { - case RL_TEXTURE_WRAP_S: - case RL_TEXTURE_WRAP_T: - { - if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) - { -#if !defined(GRAPHICS_API_OPENGL_11) - if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_2D, param, value); - else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); -#endif - } - else glTexParameteri(GL_TEXTURE_2D, param, value); - - } break; - case RL_TEXTURE_MAG_FILTER: - case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_2D, param, value); break; - case RL_TEXTURE_FILTER_ANISOTROPIC: - { -#if !defined(GRAPHICS_API_OPENGL_11) - if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) - { - TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - } - else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); -#endif - } break; -#if defined(GRAPHICS_API_OPENGL_33) - case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, value/100.0f); -#endif - default: break; - } - - glBindTexture(GL_TEXTURE_2D, 0); -} - -// Set cubemap parameters (wrap mode/filter mode) -void rlCubemapParameters(unsigned int id, int param, int value) -{ -#if !defined(GRAPHICS_API_OPENGL_11) - glBindTexture(GL_TEXTURE_CUBE_MAP, id); - - // Reset anisotropy filter, in case it was set - glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); - - switch (param) - { - case RL_TEXTURE_WRAP_S: - case RL_TEXTURE_WRAP_T: - { - if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) - { - if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); - else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); - } - else glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); - - } break; - case RL_TEXTURE_MAG_FILTER: - case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); break; - case RL_TEXTURE_FILTER_ANISOTROPIC: - { - if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) - { - TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); - glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - } - else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); - } break; -#if defined(GRAPHICS_API_OPENGL_33) - case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_LOD_BIAS, value/100.0f); -#endif - default: break; - } - - glBindTexture(GL_TEXTURE_CUBE_MAP, 0); -#endif -} - -// Enable shader program -void rlEnableShader(unsigned int id) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glUseProgram(id); -#endif -} - -// Disable shader program -void rlDisableShader(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glUseProgram(0); -#endif -} - -// Enable rendering to texture (fbo) -void rlEnableFramebuffer(unsigned int id) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBindFramebuffer(GL_FRAMEBUFFER, id); -#endif -} - -// return the active render texture (fbo) -unsigned int rlGetActiveFramebuffer(void) -{ - GLint fboId = 0; -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) - glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); -#endif - return fboId; -} - -// Disable rendering to texture -void rlDisableFramebuffer(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBindFramebuffer(GL_FRAMEBUFFER, 0); -#endif -} - -// Blit active framebuffer to main framebuffer -void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST); -#endif -} - -// Bind framebuffer object (fbo) -void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBindFramebuffer(target, framebuffer); -#endif -} - -// Activate multiple draw color buffers -// NOTE: One color buffer is always active by default -void rlActiveDrawBuffers(int count) -{ -#if ((defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT)) - // NOTE: Maximum number of draw buffers supported is implementation dependant, - // it can be queried with glGet*() but it must be at least 8 - //GLint maxDrawBuffers = 0; - //glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuffers); - - if (count > 0) - { - if (count > 8) TRACELOG(LOG_WARNING, "GL: Max color buffers limited to 8"); - else - { - unsigned int buffers[8] = { -#if defined(GRAPHICS_API_OPENGL_ES3) - GL_COLOR_ATTACHMENT0_EXT, - GL_COLOR_ATTACHMENT1_EXT, - GL_COLOR_ATTACHMENT2_EXT, - GL_COLOR_ATTACHMENT3_EXT, - GL_COLOR_ATTACHMENT4_EXT, - GL_COLOR_ATTACHMENT5_EXT, - GL_COLOR_ATTACHMENT6_EXT, - GL_COLOR_ATTACHMENT7_EXT, -#else - GL_COLOR_ATTACHMENT0, - GL_COLOR_ATTACHMENT1, - GL_COLOR_ATTACHMENT2, - GL_COLOR_ATTACHMENT3, - GL_COLOR_ATTACHMENT4, - GL_COLOR_ATTACHMENT5, - GL_COLOR_ATTACHMENT6, - GL_COLOR_ATTACHMENT7, -#endif - }; - -#if defined(GRAPHICS_API_OPENGL_ES3) - glDrawBuffersEXT(count, buffers); -#else - glDrawBuffers(count, buffers); -#endif - } - } - else TRACELOG(LOG_WARNING, "GL: One color buffer active by default"); -#endif -} - -//---------------------------------------------------------------------------------- -// General render state configuration -//---------------------------------------------------------------------------------- - -// Enable color blending -void rlEnableColorBlend(void) { glEnable(GL_BLEND); } - -// Disable color blending -void rlDisableColorBlend(void) { glDisable(GL_BLEND); } - -// Enable depth test -void rlEnableDepthTest(void) { glEnable(GL_DEPTH_TEST); } - -// Disable depth test -void rlDisableDepthTest(void) { glDisable(GL_DEPTH_TEST); } - -// Enable depth write -void rlEnableDepthMask(void) { glDepthMask(GL_TRUE); } - -// Disable depth write -void rlDisableDepthMask(void) { glDepthMask(GL_FALSE); } - -// Enable backface culling -void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } - -// Disable backface culling -void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } - -// Set color mask active for screen read/draw -void rlColorMask(bool r, bool g, bool b, bool a) { glColorMask(r, g, b, a); } - -// Set face culling mode -void rlSetCullFace(int mode) -{ - switch (mode) - { - case RL_CULL_FACE_BACK: glCullFace(GL_BACK); break; - case RL_CULL_FACE_FRONT: glCullFace(GL_FRONT); break; - default: break; - } -} - -// Enable scissor test -void rlEnableScissorTest(void) { glEnable(GL_SCISSOR_TEST); } - -// Disable scissor test -void rlDisableScissorTest(void) { glDisable(GL_SCISSOR_TEST); } - -// Scissor test -void rlScissor(int x, int y, int width, int height) { glScissor(x, y, width, height); } - -// Enable wire mode -void rlEnableWireMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); -#endif -} - -// Enable point mode -void rlEnablePointMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); - glEnable(GL_PROGRAM_POINT_SIZE); -#endif -} - -// Disable wire mode -void rlDisableWireMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); -#endif -} - -// Set the line drawing width -void rlSetLineWidth(float width) { glLineWidth(width); } - -// Get the line drawing width -float rlGetLineWidth(void) -{ - float width = 0; - glGetFloatv(GL_LINE_WIDTH, &width); - return width; -} - -// Enable line aliasing -void rlEnableSmoothLines(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) - glEnable(GL_LINE_SMOOTH); -#endif -} - -// Disable line aliasing -void rlDisableSmoothLines(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) - glDisable(GL_LINE_SMOOTH); -#endif -} - -// Enable stereo rendering -void rlEnableStereoRender(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - RLGL.State.stereoRender = true; -#endif -} - -// Disable stereo rendering -void rlDisableStereoRender(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - RLGL.State.stereoRender = false; -#endif -} - -// Check if stereo render is enabled -bool rlIsStereoRenderEnabled(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - return RLGL.State.stereoRender; -#else - return false; -#endif -} - -// Clear color buffer with color -void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) -{ - // Color values clamp to 0.0f(0) and 1.0f(255) - float cr = (float)r/255; - float cg = (float)g/255; - float cb = (float)b/255; - float ca = (float)a/255; - - glClearColor(cr, cg, cb, ca); -} - -// Clear used screen buffers (color and depth) -void rlClearScreenBuffers(void) -{ - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear used buffers: Color and Depth (Depth is used for 3D) - //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // Stencil buffer not used... -} - -// Check and log OpenGL error codes -void rlCheckErrors(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - int check = 1; - while (check) - { - const GLenum err = glGetError(); - switch (err) - { - case GL_NO_ERROR: check = 0; break; - case 0x0500: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_ENUM"); break; - case 0x0501: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_VALUE"); break; - case 0x0502: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_OPERATION"); break; - case 0x0503: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_OVERFLOW"); break; - case 0x0504: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_UNDERFLOW"); break; - case 0x0505: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_OUT_OF_MEMORY"); break; - case 0x0506: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_FRAMEBUFFER_OPERATION"); break; - default: TRACELOG(RL_LOG_WARNING, "GL: Error detected: Unknown error code: %x", err); break; - } - } -#endif -} - -// Set blend mode -void rlSetBlendMode(int mode) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.currentBlendMode != mode) || ((mode == RL_BLEND_CUSTOM || mode == RL_BLEND_CUSTOM_SEPARATE) && RLGL.State.glCustomBlendModeModified)) - { - rlDrawRenderBatch(RLGL.currentBatch); - - switch (mode) - { - case RL_BLEND_ALPHA: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_ADDITIVE: glBlendFunc(GL_SRC_ALPHA, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_MULTIPLIED: glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_ADD_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_SUBTRACT_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_SUBTRACT); break; - case RL_BLEND_ALPHA_PREMULTIPLY: glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_CUSTOM: - { - // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() - glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); - - } break; - case RL_BLEND_CUSTOM_SEPARATE: - { - // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactorsSeparate() - glBlendFuncSeparate(RLGL.State.glBlendSrcFactorRGB, RLGL.State.glBlendDestFactorRGB, RLGL.State.glBlendSrcFactorAlpha, RLGL.State.glBlendDestFactorAlpha); - glBlendEquationSeparate(RLGL.State.glBlendEquationRGB, RLGL.State.glBlendEquationAlpha); - - } break; - default: break; - } - - RLGL.State.currentBlendMode = mode; - RLGL.State.glCustomBlendModeModified = false; - } -#endif -} - -// Set blending mode factor and equation -void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.glBlendSrcFactor != glSrcFactor) || - (RLGL.State.glBlendDstFactor != glDstFactor) || - (RLGL.State.glBlendEquation != glEquation)) - { - RLGL.State.glBlendSrcFactor = glSrcFactor; - RLGL.State.glBlendDstFactor = glDstFactor; - RLGL.State.glBlendEquation = glEquation; - - RLGL.State.glCustomBlendModeModified = true; - } -#endif -} - -// Set blending mode factor and equation separately for RGB and alpha -void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.glBlendSrcFactorRGB != glSrcRGB) || - (RLGL.State.glBlendDestFactorRGB != glDstRGB) || - (RLGL.State.glBlendSrcFactorAlpha != glSrcAlpha) || - (RLGL.State.glBlendDestFactorAlpha != glDstAlpha) || - (RLGL.State.glBlendEquationRGB != glEqRGB) || - (RLGL.State.glBlendEquationAlpha != glEqAlpha)) - { - RLGL.State.glBlendSrcFactorRGB = glSrcRGB; - RLGL.State.glBlendDestFactorRGB = glDstRGB; - RLGL.State.glBlendSrcFactorAlpha = glSrcAlpha; - RLGL.State.glBlendDestFactorAlpha = glDstAlpha; - RLGL.State.glBlendEquationRGB = glEqRGB; - RLGL.State.glBlendEquationAlpha = glEqAlpha; - - RLGL.State.glCustomBlendModeModified = true; - } -#endif -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - OpenGL Debug -//---------------------------------------------------------------------------------- -#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) -static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam) -{ - // Ignore non-significant error/warning codes (NVidia drivers) - // NOTE: Here there are the details with a sample output: - // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low) - // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4) - // will use VIDEO memory as the source for buffer object operations. (severity: low) - // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium) - // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have - // a defined base level and cannot be used for texture mapping. (severity: low) - if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) return; - - const char *msgSource = NULL; - switch (source) - { - case GL_DEBUG_SOURCE_API: msgSource = "API"; break; - case GL_DEBUG_SOURCE_WINDOW_SYSTEM: msgSource = "WINDOW_SYSTEM"; break; - case GL_DEBUG_SOURCE_SHADER_COMPILER: msgSource = "SHADER_COMPILER"; break; - case GL_DEBUG_SOURCE_THIRD_PARTY: msgSource = "THIRD_PARTY"; break; - case GL_DEBUG_SOURCE_APPLICATION: msgSource = "APPLICATION"; break; - case GL_DEBUG_SOURCE_OTHER: msgSource = "OTHER"; break; - default: break; - } - - const char *msgType = NULL; - switch (type) - { - case GL_DEBUG_TYPE_ERROR: msgType = "ERROR"; break; - case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: msgType = "DEPRECATED_BEHAVIOR"; break; - case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: msgType = "UNDEFINED_BEHAVIOR"; break; - case GL_DEBUG_TYPE_PORTABILITY: msgType = "PORTABILITY"; break; - case GL_DEBUG_TYPE_PERFORMANCE: msgType = "PERFORMANCE"; break; - case GL_DEBUG_TYPE_MARKER: msgType = "MARKER"; break; - case GL_DEBUG_TYPE_PUSH_GROUP: msgType = "PUSH_GROUP"; break; - case GL_DEBUG_TYPE_POP_GROUP: msgType = "POP_GROUP"; break; - case GL_DEBUG_TYPE_OTHER: msgType = "OTHER"; break; - default: break; - } - - const char *msgSeverity = "DEFAULT"; - switch (severity) - { - case GL_DEBUG_SEVERITY_LOW: msgSeverity = "LOW"; break; - case GL_DEBUG_SEVERITY_MEDIUM: msgSeverity = "MEDIUM"; break; - case GL_DEBUG_SEVERITY_HIGH: msgSeverity = "HIGH"; break; - case GL_DEBUG_SEVERITY_NOTIFICATION: msgSeverity = "NOTIFICATION"; break; - default: break; - } - - TRACELOG(LOG_WARNING, "GL: OpenGL debug message: %s", message); - TRACELOG(LOG_WARNING, " > Type: %s", msgType); - TRACELOG(LOG_WARNING, " > Source = %s", msgSource); - TRACELOG(LOG_WARNING, " > Severity = %s", msgSeverity); -} -#endif - -//---------------------------------------------------------------------------------- -// Module Functions Definition - rlgl functionality -//---------------------------------------------------------------------------------- - -// Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states -void rlglInit(int width, int height) -{ - // Enable OpenGL debug context if required -#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) - if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) - { - glDebugMessageCallback(rlDebugMessageCallback, 0); - // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); - - // Debug context options: - // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints - // - GL_DEBUG_OUTPUT_SYNCHRONUS - Callback is in sync with errors, so a breakpoint can be placed on the callback in order to get a stacktrace for the GL error - glEnable(GL_DEBUG_OUTPUT); - glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); - } -#endif - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Init default white texture - unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes) - RLGL.State.defaultTextureId = rlLoadTexture(pixels, 1, 1, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); - - if (RLGL.State.defaultTextureId != 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture loaded successfully", RLGL.State.defaultTextureId); - else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load default texture"); - - // Init default Shader (customized for GL 3.3 and ES2) - // Loaded: RLGL.State.defaultShaderId + RLGL.State.defaultShaderLocs - rlLoadShaderDefault(); - RLGL.State.currentShaderId = RLGL.State.defaultShaderId; - RLGL.State.currentShaderLocs = RLGL.State.defaultShaderLocs; - - // Init default vertex arrays buffers - // Simulate that the default shader has the location RL_SHADER_LOC_VERTEX_NORMAL to bind the normal buffer for the default render batch - RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL; - RLGL.defaultBatch = rlLoadRenderBatch(RL_DEFAULT_BATCH_BUFFERS, RL_DEFAULT_BATCH_BUFFER_ELEMENTS); - RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = -1; - RLGL.currentBatch = &RLGL.defaultBatch; - - // Init stack matrices (emulating OpenGL 1.1) - for (int i = 0; i < RL_MAX_MATRIX_STACK_SIZE; i++) RLGL.State.stack[i] = rlMatrixIdentity(); - - // Init internal matrices - RLGL.State.transform = rlMatrixIdentity(); - RLGL.State.projection = rlMatrixIdentity(); - RLGL.State.modelview = rlMatrixIdentity(); - RLGL.State.currentMatrix = &RLGL.State.modelview; -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - - // Initialize OpenGL default states - //---------------------------------------------------------- - // Init state: Depth test - glDepthFunc(GL_LEQUAL); // Type of depth testing to apply - glDisable(GL_DEPTH_TEST); // Disable depth testing for 2D (only used for 3D) - - // Init state: Blending mode - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Color blending function (how colors are mixed) - glEnable(GL_BLEND); // Enable color blending (required to work with transparencies) - - // Init state: Culling - // NOTE: All shapes/models triangles are drawn CCW - glCullFace(GL_BACK); // Cull the back face (default) - glFrontFace(GL_CCW); // Front face are defined counter clockwise (default) - glEnable(GL_CULL_FACE); // Enable backface culling - - // Init state: Cubemap seamless -#if defined(GRAPHICS_API_OPENGL_33) - glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Seamless cubemaps (not supported on OpenGL ES 2.0) -#endif - -#if defined(GRAPHICS_API_OPENGL_11) - // Init state: Color hints (deprecated in OpenGL 3.0+) - glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Improve quality of color and texture coordinate interpolation - glShadeModel(GL_SMOOTH); // Smooth shading between vertex (vertex colors interpolation) -#endif - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Store screen size into global variables - RLGL.State.framebufferWidth = width; - RLGL.State.framebufferHeight = height; - - TRACELOG(RL_LOG_INFO, "RLGL: Default OpenGL state initialized successfully"); - //---------------------------------------------------------- -#endif - - // Init state: Color/Depth buffers clear - glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set clear color (black) - glClearDepth(1.0f); // Set clear depth value (default) - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear color and depth buffers (depth buffer required for 3D) -} - -// Vertex Buffer Object deinitialization (memory free) -void rlglClose(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - rlUnloadRenderBatch(RLGL.defaultBatch); - - rlUnloadShaderDefault(); // Unload default shader - - glDeleteTextures(1, &RLGL.State.defaultTextureId); // Unload default texture - TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture unloaded successfully", RLGL.State.defaultTextureId); -#endif -} - -// Load OpenGL extensions -// NOTE: External loader function must be provided -void rlLoadExtensions(void *loader) -{ -#if defined(GRAPHICS_API_OPENGL_33) // Also defined for GRAPHICS_API_OPENGL_21 - // NOTE: glad is generated and contains only required OpenGL 3.3 Core extensions (and lower versions) - if (gladLoadGL((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); - else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); - - // Get number of supported extensions - GLint numExt = 0; - glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); - TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); - -#if defined(RLGL_SHOW_GL_DETAILS_INFO) - // Get supported extensions list - // WARNING: glGetStringi() not available on OpenGL 2.1 - TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); - for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", glGetStringi(GL_EXTENSIONS, i)); -#endif - -#if defined(GRAPHICS_API_OPENGL_21) - // Register supported extensions flags - // Optional OpenGL 2.1 extensions - RLGL.ExtSupported.vao = GLAD_GL_ARB_vertex_array_object; - RLGL.ExtSupported.instancing = (GLAD_GL_EXT_draw_instanced && GLAD_GL_ARB_instanced_arrays); - RLGL.ExtSupported.texNPOT = GLAD_GL_ARB_texture_non_power_of_two; - RLGL.ExtSupported.texFloat32 = GLAD_GL_ARB_texture_float; - RLGL.ExtSupported.texFloat16 = GLAD_GL_ARB_texture_float; - RLGL.ExtSupported.texDepth = GLAD_GL_ARB_depth_texture; - RLGL.ExtSupported.maxDepthBits = 32; - RLGL.ExtSupported.texAnisoFilter = GLAD_GL_EXT_texture_filter_anisotropic; - RLGL.ExtSupported.texMirrorClamp = GLAD_GL_EXT_texture_mirror_clamp; -#else - // Register supported extensions flags - // OpenGL 3.3 extensions supported by default (core) - RLGL.ExtSupported.vao = true; - RLGL.ExtSupported.instancing = true; - RLGL.ExtSupported.texNPOT = true; - RLGL.ExtSupported.texFloat32 = true; - RLGL.ExtSupported.texFloat16 = true; - RLGL.ExtSupported.texDepth = true; - RLGL.ExtSupported.maxDepthBits = 32; - RLGL.ExtSupported.texAnisoFilter = true; - RLGL.ExtSupported.texMirrorClamp = true; -#endif - - // Optional OpenGL 3.3 extensions - RLGL.ExtSupported.texCompASTC = GLAD_GL_KHR_texture_compression_astc_hdr && GLAD_GL_KHR_texture_compression_astc_ldr; - RLGL.ExtSupported.texCompDXT = GLAD_GL_EXT_texture_compression_s3tc; // Texture compression: DXT - RLGL.ExtSupported.texCompETC2 = GLAD_GL_ARB_ES3_compatibility; // Texture compression: ETC2/EAC - #if defined(GRAPHICS_API_OPENGL_43) - RLGL.ExtSupported.computeShader = GLAD_GL_ARB_compute_shader; - RLGL.ExtSupported.ssbo = GLAD_GL_ARB_shader_storage_buffer_object; - #endif - -#endif // GRAPHICS_API_OPENGL_33 - -#if defined(GRAPHICS_API_OPENGL_ES3) - // Register supported extensions flags - // OpenGL ES 3.0 extensions supported by default (or it should be) - RLGL.ExtSupported.vao = true; - RLGL.ExtSupported.instancing = true; - RLGL.ExtSupported.texNPOT = true; - RLGL.ExtSupported.texFloat32 = true; - RLGL.ExtSupported.texFloat16 = true; - RLGL.ExtSupported.texDepth = true; - RLGL.ExtSupported.texDepthWebGL = true; - RLGL.ExtSupported.maxDepthBits = 24; - RLGL.ExtSupported.texAnisoFilter = true; - RLGL.ExtSupported.texMirrorClamp = true; - // TODO: Check for additional OpenGL ES 3.0 supported extensions: - //RLGL.ExtSupported.texCompDXT = true; - //RLGL.ExtSupported.texCompETC1 = true; - //RLGL.ExtSupported.texCompETC2 = true; - //RLGL.ExtSupported.texCompPVRT = true; - //RLGL.ExtSupported.texCompASTC = true; - //RLGL.ExtSupported.maxAnisotropyLevel = true; - //RLGL.ExtSupported.computeShader = true; - //RLGL.ExtSupported.ssbo = true; - -#elif defined(GRAPHICS_API_OPENGL_ES2) - - #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) - // TODO: Support GLAD loader for OpenGL ES 3.0 - if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); - else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); - #endif - - // Get supported extensions list - GLint numExt = 0; - const char **extList = RL_MALLOC(512*sizeof(const char *)); // Allocate 512 strings pointers (2 KB) - const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string - - // NOTE: We have to duplicate string because glGetString() returns a const string - int size = strlen(extensions) + 1; // Get extensions string size in bytes - char *extensionsDup = (char *)RL_CALLOC(size, sizeof(char)); - strcpy(extensionsDup, extensions); - extList[numExt] = extensionsDup; - - for (int i = 0; i < size; i++) - { - if (extensionsDup[i] == ' ') - { - extensionsDup[i] = '\0'; - numExt++; - extList[numExt] = &extensionsDup[i + 1]; - } - } - - TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); - -#if defined(RLGL_SHOW_GL_DETAILS_INFO) - TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); - for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", extList[i]); -#endif - - // Check required extensions - for (int i = 0; i < numExt; i++) - { - // Check VAO support - // NOTE: Only check on OpenGL ES, OpenGL 3.3 has VAO support as core feature - if (strcmp(extList[i], (const char *)"GL_OES_vertex_array_object") == 0) - { - // The extension is supported by our hardware and driver, try to get related functions pointers - // NOTE: emscripten does not support VAOs natively, it uses emulation and it reduces overall performance... - glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glGenVertexArraysOES"); - glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)((rlglLoadProc)loader)("glBindVertexArrayOES"); - glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glDeleteVertexArraysOES"); - //glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)loader("glIsVertexArrayOES"); // NOTE: Fails in WebGL, omitted - - if ((glGenVertexArrays != NULL) && (glBindVertexArray != NULL) && (glDeleteVertexArrays != NULL)) RLGL.ExtSupported.vao = true; - } - - // Check instanced rendering support - if (strstr(extList[i], (const char*)"instanced_arrays") != NULL) // Broad check for instanced_arrays - { - // Specific check - if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // ANGLE - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedANGLE"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedANGLE"); - glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorANGLE"); - } - else if (strcmp(extList[i], (const char *)"GL_EXT_instanced_arrays") == 0) // EXT - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); - glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorEXT"); - } - else if (strcmp(extList[i], (const char *)"GL_NV_instanced_arrays") == 0) // NVIDIA GLES - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); - glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorNV"); - } - - // The feature will only be marked as supported if the elements from GL_XXX_instanced_arrays are present - if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; - } - else if (strstr(extList[i], (const char *)"draw_instanced") != NULL) - { - // GL_ANGLE_draw_instanced doesn't exist - if (strcmp(extList[i], (const char *)"GL_EXT_draw_instanced") == 0) - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); - } - else if (strcmp(extList[i], (const char*)"GL_NV_draw_instanced") == 0) - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); - } - - // But the functions will at least be loaded if only GL_XX_EXT_draw_instanced exist - if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; - } - - // Check NPOT textures support - // NOTE: Only check on OpenGL ES, OpenGL 3.3 has NPOT textures full support as core feature - if (strcmp(extList[i], (const char *)"GL_OES_texture_npot") == 0) RLGL.ExtSupported.texNPOT = true; - - // Check texture float support - if (strcmp(extList[i], (const char *)"GL_OES_texture_float") == 0) RLGL.ExtSupported.texFloat32 = true; - if (strcmp(extList[i], (const char *)"GL_OES_texture_half_float") == 0) RLGL.ExtSupported.texFloat16 = true; - - // Check depth texture support - if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true; - if (strcmp(extList[i], (const char *)"GL_WEBGL_depth_texture") == 0) RLGL.ExtSupported.texDepthWebGL = true; // WebGL requires unsized internal format - if (RLGL.ExtSupported.texDepthWebGL) RLGL.ExtSupported.texDepth = true; - - if (strcmp(extList[i], (const char *)"GL_OES_depth24") == 0) RLGL.ExtSupported.maxDepthBits = 24; // Not available on WebGL - if (strcmp(extList[i], (const char *)"GL_OES_depth32") == 0) RLGL.ExtSupported.maxDepthBits = 32; // Not available on WebGL - - // Check texture compression support: DXT - if ((strcmp(extList[i], (const char *)"GL_EXT_texture_compression_s3tc") == 0) || - (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_s3tc") == 0) || - (strcmp(extList[i], (const char *)"GL_WEBKIT_WEBGL_compressed_texture_s3tc") == 0)) RLGL.ExtSupported.texCompDXT = true; - - // Check texture compression support: ETC1 - if ((strcmp(extList[i], (const char *)"GL_OES_compressed_ETC1_RGB8_texture") == 0) || - (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_etc1") == 0)) RLGL.ExtSupported.texCompETC1 = true; - - // Check texture compression support: ETC2/EAC - if (strcmp(extList[i], (const char *)"GL_ARB_ES3_compatibility") == 0) RLGL.ExtSupported.texCompETC2 = true; - - // Check texture compression support: PVR - if (strcmp(extList[i], (const char *)"GL_IMG_texture_compression_pvrtc") == 0) RLGL.ExtSupported.texCompPVRT = true; - - // Check texture compression support: ASTC - if (strcmp(extList[i], (const char *)"GL_KHR_texture_compression_astc_hdr") == 0) RLGL.ExtSupported.texCompASTC = true; - - // Check anisotropic texture filter support - if (strcmp(extList[i], (const char *)"GL_EXT_texture_filter_anisotropic") == 0) RLGL.ExtSupported.texAnisoFilter = true; - - // Check clamp mirror wrap mode support - if (strcmp(extList[i], (const char *)"GL_EXT_texture_mirror_clamp") == 0) RLGL.ExtSupported.texMirrorClamp = true; - } - - // Free extensions pointers - RL_FREE(extList); - RL_FREE(extensionsDup); // Duplicated string must be deallocated -#endif // GRAPHICS_API_OPENGL_ES2 - - // Check OpenGL information and capabilities - //------------------------------------------------------------------------------ - // Show current OpenGL and GLSL version - TRACELOG(RL_LOG_INFO, "GL: OpenGL device information:"); - TRACELOG(RL_LOG_INFO, " > Vendor: %s", glGetString(GL_VENDOR)); - TRACELOG(RL_LOG_INFO, " > Renderer: %s", glGetString(GL_RENDERER)); - TRACELOG(RL_LOG_INFO, " > Version: %s", glGetString(GL_VERSION)); - TRACELOG(RL_LOG_INFO, " > GLSL: %s", glGetString(GL_SHADING_LANGUAGE_VERSION)); - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: Anisotropy levels capability is an extension - #ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT - #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF - #endif - glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &RLGL.ExtSupported.maxAnisotropyLevel); - -#if defined(RLGL_SHOW_GL_DETAILS_INFO) - // Show some OpenGL GPU capabilities - TRACELOG(RL_LOG_INFO, "GL: OpenGL capabilities:"); - GLint capability = 0; - glGetIntegerv(GL_MAX_TEXTURE_SIZE, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_SIZE: %i", capability); - glGetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_CUBE_MAP_TEXTURE_SIZE: %i", capability); - glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_IMAGE_UNITS: %i", capability); - glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIBS: %i", capability); - #if !defined(GRAPHICS_API_OPENGL_ES2) - glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_BLOCK_SIZE: %i", capability); - glGetIntegerv(GL_MAX_DRAW_BUFFERS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_DRAW_BUFFERS: %i", capability); - if (RLGL.ExtSupported.texAnisoFilter) TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_MAX_ANISOTROPY: %.0f", RLGL.ExtSupported.maxAnisotropyLevel); - #endif - glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &capability); - TRACELOG(RL_LOG_INFO, " GL_NUM_COMPRESSED_TEXTURE_FORMATS: %i", capability); - GLint *compFormats = (GLint *)RL_CALLOC(capability, sizeof(GLint)); - glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, compFormats); - for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(compFormats[i])); - RL_FREE(compFormats); - -#if defined(GRAPHICS_API_OPENGL_43) - glGetIntegerv(GL_MAX_VERTEX_ATTRIB_BINDINGS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIB_BINDINGS: %i", capability); - glGetIntegerv(GL_MAX_UNIFORM_LOCATIONS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_LOCATIONS: %i", capability); -#endif // GRAPHICS_API_OPENGL_43 -#else // RLGL_SHOW_GL_DETAILS_INFO - - // Show some basic info about GL supported features - if (RLGL.ExtSupported.vao) TRACELOG(RL_LOG_INFO, "GL: VAO extension detected, VAO functions loaded successfully"); - else TRACELOG(RL_LOG_WARNING, "GL: VAO extension not found, VAO not supported"); - if (RLGL.ExtSupported.texNPOT) TRACELOG(RL_LOG_INFO, "GL: NPOT textures extension detected, full NPOT textures supported"); - else TRACELOG(RL_LOG_WARNING, "GL: NPOT textures extension not found, limited NPOT support (no-mipmaps, no-repeat)"); - if (RLGL.ExtSupported.texCompDXT) TRACELOG(RL_LOG_INFO, "GL: DXT compressed textures supported"); - if (RLGL.ExtSupported.texCompETC1) TRACELOG(RL_LOG_INFO, "GL: ETC1 compressed textures supported"); - if (RLGL.ExtSupported.texCompETC2) TRACELOG(RL_LOG_INFO, "GL: ETC2/EAC compressed textures supported"); - if (RLGL.ExtSupported.texCompPVRT) TRACELOG(RL_LOG_INFO, "GL: PVRT compressed textures supported"); - if (RLGL.ExtSupported.texCompASTC) TRACELOG(RL_LOG_INFO, "GL: ASTC compressed textures supported"); - if (RLGL.ExtSupported.computeShader) TRACELOG(RL_LOG_INFO, "GL: Compute shaders supported"); - if (RLGL.ExtSupported.ssbo) TRACELOG(RL_LOG_INFO, "GL: Shader storage buffer objects supported"); -#endif // RLGL_SHOW_GL_DETAILS_INFO - -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 -} - -// Get current OpenGL version -int rlGetVersion(void) -{ - int glVersion = 0; -#if defined(GRAPHICS_API_OPENGL_11) - glVersion = RL_OPENGL_11; -#endif -#if defined(GRAPHICS_API_OPENGL_21) - glVersion = RL_OPENGL_21; -#elif defined(GRAPHICS_API_OPENGL_43) - glVersion = RL_OPENGL_43; -#elif defined(GRAPHICS_API_OPENGL_33) - glVersion = RL_OPENGL_33; -#endif -#if defined(GRAPHICS_API_OPENGL_ES3) - glVersion = RL_OPENGL_ES_30; -#elif defined(GRAPHICS_API_OPENGL_ES2) - glVersion = RL_OPENGL_ES_20; -#endif - - return glVersion; -} - -// Set current framebuffer width -void rlSetFramebufferWidth(int width) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.framebufferWidth = width; -#endif -} - -// Set current framebuffer height -void rlSetFramebufferHeight(int height) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.framebufferHeight = height; -#endif -} - -// Get default framebuffer width -int rlGetFramebufferWidth(void) -{ - int width = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - width = RLGL.State.framebufferWidth; -#endif - return width; -} - -// Get default framebuffer height -int rlGetFramebufferHeight(void) -{ - int height = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - height = RLGL.State.framebufferHeight; -#endif - return height; -} - -// Get default internal texture (white texture) -// NOTE: Default texture is a 1x1 pixel UNCOMPRESSED_R8G8B8A8 -unsigned int rlGetTextureIdDefault(void) -{ - unsigned int id = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - id = RLGL.State.defaultTextureId; -#endif - return id; -} - -// Get default shader id -unsigned int rlGetShaderIdDefault(void) -{ - unsigned int id = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - id = RLGL.State.defaultShaderId; -#endif - return id; -} - -// Get default shader locs -int *rlGetShaderLocsDefault(void) -{ - int *locs = NULL; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - locs = RLGL.State.defaultShaderLocs; -#endif - return locs; -} - -// Render batch management -//------------------------------------------------------------------------------------------------ -// Load render batch -rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) -{ - rlRenderBatch batch = { 0 }; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Initialize CPU (RAM) vertex buffers (position, texcoord, color data and indexes) - //-------------------------------------------------------------------------------------------- - batch.vertexBuffer = (rlVertexBuffer *)RL_MALLOC(numBuffers*sizeof(rlVertexBuffer)); - - for (int i = 0; i < numBuffers; i++) - { - batch.vertexBuffer[i].elementCount = bufferElements; - - batch.vertexBuffer[i].vertices = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad - batch.vertexBuffer[i].texcoords = (float *)RL_MALLOC(bufferElements*2*4*sizeof(float)); // 2 float by texcoord, 4 texcoord by quad - batch.vertexBuffer[i].normals = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad - batch.vertexBuffer[i].colors = (unsigned char *)RL_MALLOC(bufferElements*4*4*sizeof(unsigned char)); // 4 float by color, 4 colors by quad -#if defined(GRAPHICS_API_OPENGL_33) - batch.vertexBuffer[i].indices = (unsigned int *)RL_MALLOC(bufferElements*6*sizeof(unsigned int)); // 6 int by quad (indices) -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - batch.vertexBuffer[i].indices = (unsigned short *)RL_MALLOC(bufferElements*6*sizeof(unsigned short)); // 6 int by quad (indices) -#endif - - for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; - for (int j = 0; j < (2*4*bufferElements); j++) batch.vertexBuffer[i].texcoords[j] = 0.0f; - for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].normals[j] = 0.0f; - for (int j = 0; j < (4*4*bufferElements); j++) batch.vertexBuffer[i].colors[j] = 0; - - int k = 0; - - // Indices can be initialized right now - for (int j = 0; j < (6*bufferElements); j += 6) - { - batch.vertexBuffer[i].indices[j] = 4*k; - batch.vertexBuffer[i].indices[j + 1] = 4*k + 1; - batch.vertexBuffer[i].indices[j + 2] = 4*k + 2; - batch.vertexBuffer[i].indices[j + 3] = 4*k; - batch.vertexBuffer[i].indices[j + 4] = 4*k + 2; - batch.vertexBuffer[i].indices[j + 5] = 4*k + 3; - - k++; - } - - RLGL.State.vertexCounter = 0; - } - - TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)"); - //-------------------------------------------------------------------------------------------- - - // Upload to GPU (VRAM) vertex data and initialize VAOs/VBOs - //-------------------------------------------------------------------------------------------- - for (int i = 0; i < numBuffers; i++) - { - if (RLGL.ExtSupported.vao) - { - // Initialize Quads VAO - glGenVertexArrays(1, &batch.vertexBuffer[i].vaoId); - glBindVertexArray(batch.vertexBuffer[i].vaoId); - } - - // Quads - Vertex buffers binding and attributes enable - // Vertex position buffer (shader-location = 0) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[0]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[0]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].vertices, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); - - // Vertex texcoord buffer (shader-location = 1) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[1]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[1]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*2*4*sizeof(float), batch.vertexBuffer[i].texcoords, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); - - // Vertex normal buffer (shader-location = 2) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[2]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[2]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].normals, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); - - // Vertex color buffer (shader-location = 3) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*4*4*sizeof(unsigned char), batch.vertexBuffer[i].colors, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); - - // Fill index buffer - glGenBuffers(1, &batch.vertexBuffer[i].vboId[4]); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[4]); -#if defined(GRAPHICS_API_OPENGL_33) - glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(int), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(short), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); -#endif - } - - TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)"); - - // Unbind the current VAO - if (RLGL.ExtSupported.vao) glBindVertexArray(0); - //-------------------------------------------------------------------------------------------- - - // Init draw calls tracking system - //-------------------------------------------------------------------------------------------- - batch.draws = (rlDrawCall *)RL_MALLOC(RL_DEFAULT_BATCH_DRAWCALLS*sizeof(rlDrawCall)); - - for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) - { - batch.draws[i].mode = RL_QUADS; - batch.draws[i].vertexCount = 0; - batch.draws[i].vertexAlignment = 0; - //batch.draws[i].vaoId = 0; - //batch.draws[i].shaderId = 0; - batch.draws[i].textureId = RLGL.State.defaultTextureId; - //batch.draws[i].RLGL.State.projection = rlMatrixIdentity(); - //batch.draws[i].RLGL.State.modelview = rlMatrixIdentity(); - } - - batch.bufferCount = numBuffers; // Record buffer count - batch.drawCounter = 1; // Reset draws counter - batch.currentDepth = -1.0f; // Reset depth value - //-------------------------------------------------------------------------------------------- -#endif - - return batch; -} - -// Unload default internal buffers vertex data from CPU and GPU -void rlUnloadRenderBatch(rlRenderBatch batch) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Unbind everything - glBindBuffer(GL_ARRAY_BUFFER, 0); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); - - // Unload all vertex buffers data - for (int i = 0; i < batch.bufferCount; i++) - { - // Unbind VAO attribs data - if (RLGL.ExtSupported.vao) - { - glBindVertexArray(batch.vertexBuffer[i].vaoId); - glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); - glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); - glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); - glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); - glBindVertexArray(0); - } - - // Delete VBOs from GPU (VRAM) - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[0]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[2]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[3]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[4]); - - // Delete VAOs from GPU (VRAM) - if (RLGL.ExtSupported.vao) glDeleteVertexArrays(1, &batch.vertexBuffer[i].vaoId); - - // Free vertex arrays memory from CPU (RAM) - RL_FREE(batch.vertexBuffer[i].vertices); - RL_FREE(batch.vertexBuffer[i].texcoords); - RL_FREE(batch.vertexBuffer[i].normals); - RL_FREE(batch.vertexBuffer[i].colors); - RL_FREE(batch.vertexBuffer[i].indices); - } - - // Unload arrays - RL_FREE(batch.vertexBuffer); - RL_FREE(batch.draws); -#endif -} - -// Draw render batch -// NOTE: We require a pointer to reset batch and increase current buffer (multi-buffer) -void rlDrawRenderBatch(rlRenderBatch *batch) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Update batch vertex buffers - //------------------------------------------------------------------------------------------------------------ - // NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0) - // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (use a change detector flag?) - if (RLGL.State.vertexCounter > 0) - { - // Activate elements VAO - if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); - - // Vertex positions buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].vertices); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].vertices, GL_DYNAMIC_DRAW); // Update all buffer - - // Texture coordinates buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*2*sizeof(float), batch->vertexBuffer[batch->currentBuffer].texcoords); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].texcoords, GL_DYNAMIC_DRAW); // Update all buffer - - // Normals buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].normals); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].normals, GL_DYNAMIC_DRAW); // Update all buffer - - // Colors buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*4*sizeof(unsigned char), batch->vertexBuffer[batch->currentBuffer].colors); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].colors, GL_DYNAMIC_DRAW); // Update all buffer - - // NOTE: glMapBuffer() causes sync issue - // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job - // To avoid waiting (idle), you can call first glBufferData() with NULL pointer before glMapBuffer() - // If you do that, the previous data in PBO will be discarded and glMapBuffer() returns a new - // allocated pointer immediately even if GPU is still working with the previous data - - // Another option: map the buffer object into client's memory - // Probably this code could be moved somewhere else... - // batch->vertexBuffer[batch->currentBuffer].vertices = (float *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE); - // if (batch->vertexBuffer[batch->currentBuffer].vertices) - // { - // Update vertex data - // } - // glUnmapBuffer(GL_ARRAY_BUFFER); - - // Unbind the current VAO - if (RLGL.ExtSupported.vao) glBindVertexArray(0); - } - //------------------------------------------------------------------------------------------------------------ - - // Draw batch vertex buffers (considering VR stereo if required) - //------------------------------------------------------------------------------------------------------------ - Matrix matProjection = RLGL.State.projection; - Matrix matModelView = RLGL.State.modelview; - - int eyeCount = 1; - if (RLGL.State.stereoRender) eyeCount = 2; - - for (int eye = 0; eye < eyeCount; eye++) - { - if (eyeCount == 2) - { - // Setup current eye viewport (half screen width) - rlViewport(eye*RLGL.State.framebufferWidth/2, 0, RLGL.State.framebufferWidth/2, RLGL.State.framebufferHeight); - - // Set current eye view offset to modelview matrix - rlSetMatrixModelview(rlMatrixMultiply(matModelView, RLGL.State.viewOffsetStereo[eye])); - // Set current eye projection matrix - rlSetMatrixProjection(RLGL.State.projectionStereo[eye]); - } - - // Draw buffers - if (RLGL.State.vertexCounter > 0) - { - // Set current shader and upload current MVP matrix - glUseProgram(RLGL.State.currentShaderId); - - // Create modelview-projection matrix and upload to shader - Matrix matMVP = rlMatrixMultiply(RLGL.State.modelview, RLGL.State.projection); - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, rlMatrixToFloat(matMVP)); - - if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION] != -1) - { - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION], 1, false, rlMatrixToFloat(RLGL.State.projection)); - } - - // WARNING: For the following setup of the view, model, and normal matrices, it is expected that - // transformations and rendering occur between rlPushMatrix() and rlPopMatrix() - - if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW] != -1) - { - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW], 1, false, rlMatrixToFloat(RLGL.State.modelview)); - } - - if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL] != -1) - { - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL], 1, false, rlMatrixToFloat(RLGL.State.transform)); - } - - if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL] != -1) - { - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL], 1, false, rlMatrixToFloat(rlMatrixTranspose(rlMatrixInvert(RLGL.State.transform)))); - } - - if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); - else - { - // Bind vertex attrib: position (shader-location = 0) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); - - // Bind vertex attrib: texcoord (shader-location = 1) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); - - // Bind vertex attrib: normal (shader-location = 2) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); - - // Bind vertex attrib: color (shader-location = 3) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); - - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[4]); - } - - // Setup some default shader values - glUniform4f(RLGL.State.currentShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE], 1.0f, 1.0f, 1.0f, 1.0f); - glUniform1i(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE], 0); // Active default sampler2D: texture0 - - // Activate additional sampler textures - // Those additional textures will be common for all draw calls of the batch - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) - { - if (RLGL.State.activeTextureId[i] > 0) - { - glActiveTexture(GL_TEXTURE0 + 1 + i); - glBindTexture(GL_TEXTURE_2D, RLGL.State.activeTextureId[i]); - } - } - - // Activate default sampler2D texture0 (one texture is always active for default batch shader) - // NOTE: Batch system accumulates calls by texture0 changes, additional textures are enabled for all the draw calls - glActiveTexture(GL_TEXTURE0); - - for (int i = 0, vertexOffset = 0; i < batch->drawCounter; i++) - { - // Bind current draw call texture, activated as GL_TEXTURE0 and Bound to sampler2D texture0 by default - glBindTexture(GL_TEXTURE_2D, batch->draws[i].textureId); - - if ((batch->draws[i].mode == RL_LINES) || (batch->draws[i].mode == RL_TRIANGLES)) glDrawArrays(batch->draws[i].mode, vertexOffset, batch->draws[i].vertexCount); - else - { - #if defined(GRAPHICS_API_OPENGL_33) - // We need to define the number of indices to be processed: elementCount*6 - // NOTE: The final parameter tells the GPU the offset in bytes from the - // start of the index buffer to the location of the first index to process - glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_INT, (GLvoid *)(vertexOffset/4*6*sizeof(GLuint))); - #endif - #if defined(GRAPHICS_API_OPENGL_ES2) - glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_SHORT, (GLvoid *)(vertexOffset/4*6*sizeof(GLushort))); - #endif - } - - vertexOffset += (batch->draws[i].vertexCount + batch->draws[i].vertexAlignment); - } - - if (!RLGL.ExtSupported.vao) - { - glBindBuffer(GL_ARRAY_BUFFER, 0); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); - } - - glBindTexture(GL_TEXTURE_2D, 0); // Unbind textures - } - - if (RLGL.ExtSupported.vao) glBindVertexArray(0); // Unbind VAO - - glUseProgram(0); // Unbind shader program - } - - // Restore viewport to default measures - if (eyeCount == 2) rlViewport(0, 0, RLGL.State.framebufferWidth, RLGL.State.framebufferHeight); - //------------------------------------------------------------------------------------------------------------ - - // Reset batch buffers - //------------------------------------------------------------------------------------------------------------ - // Reset vertex counter for next frame - RLGL.State.vertexCounter = 0; - - // Reset depth for next draw - batch->currentDepth = -1.0f; - - // Restore projection/modelview matrices - RLGL.State.projection = matProjection; - RLGL.State.modelview = matModelView; - - // Reset RLGL.currentBatch->draws array - for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) - { - batch->draws[i].mode = RL_QUADS; - batch->draws[i].vertexCount = 0; - batch->draws[i].textureId = RLGL.State.defaultTextureId; - } - - // Reset active texture units for next batch - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) RLGL.State.activeTextureId[i] = 0; - - // Reset draws counter to one draw for the batch - batch->drawCounter = 1; - //------------------------------------------------------------------------------------------------------------ - - // Change to next buffer in the list (in case of multi-buffering) - batch->currentBuffer++; - if (batch->currentBuffer >= batch->bufferCount) batch->currentBuffer = 0; -#endif -} - -// Set the active render batch for rlgl -void rlSetRenderBatchActive(rlRenderBatch *batch) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - rlDrawRenderBatch(RLGL.currentBatch); - - if (batch != NULL) RLGL.currentBatch = batch; - else RLGL.currentBatch = &RLGL.defaultBatch; -#endif -} - -// Update and draw internal render batch -void rlDrawRenderBatchActive(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside -#endif -} - -// Check internal buffer overflow for a given number of vertex -// and force a rlRenderBatch draw call if required -bool rlCheckRenderBatchLimit(int vCount) -{ - bool overflow = false; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.vertexCounter + vCount) >= - (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4)) - { - overflow = true; - - // Store current primitive drawing mode and texture id - int currentMode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode; - int currentTexture = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId; - - rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside - - // Restore state of last batch so we can continue adding vertices - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = currentMode; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = currentTexture; - } -#endif - - return overflow; -} - -// Textures data management -//----------------------------------------------------------------------------------------- -// Convert image data to OpenGL texture (returns OpenGL valid Id) -unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount) -{ - unsigned int id = 0; - - glBindTexture(GL_TEXTURE_2D, 0); // Free any old binding - - // Check texture format support by OpenGL 1.1 (compressed textures not supported) -#if defined(GRAPHICS_API_OPENGL_11) - if (format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) - { - TRACELOG(RL_LOG_WARNING, "GL: OpenGL 1.1 does not support GPU compressed texture formats"); - return id; - } -#else - if ((!RLGL.ExtSupported.texCompDXT) && ((format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA) || - (format == RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: DXT compressed texture format not supported"); - return id; - } -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((!RLGL.ExtSupported.texCompETC1) && (format == RL_PIXELFORMAT_COMPRESSED_ETC1_RGB)) - { - TRACELOG(RL_LOG_WARNING, "GL: ETC1 compressed texture format not supported"); - return id; - } - - if ((!RLGL.ExtSupported.texCompETC2) && ((format == RL_PIXELFORMAT_COMPRESSED_ETC2_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: ETC2 compressed texture format not supported"); - return id; - } - - if ((!RLGL.ExtSupported.texCompPVRT) && ((format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: PVRT compressed texture format not supported"); - return id; - } - - if ((!RLGL.ExtSupported.texCompASTC) && ((format == RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: ASTC compressed texture format not supported"); - return id; - } -#endif -#endif // GRAPHICS_API_OPENGL_11 - - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - - glGenTextures(1, &id); // Generate texture id - - glBindTexture(GL_TEXTURE_2D, id); - - int mipWidth = width; - int mipHeight = height; - int mipOffset = 0; // Mipmap data offset, only used for tracelog - - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned char *dataPtr = NULL; - if (data != NULL) dataPtr = (unsigned char *)data; - - // Load the different mipmap levels - for (int i = 0; i < mipmapCount; i++) - { - unsigned int mipSize = rlGetPixelDataSize(mipWidth, mipHeight, format); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - - TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); - - if (glInternalFormat != 0) - { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, dataPtr); -#if !defined(GRAPHICS_API_OPENGL_11) - else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, dataPtr); -#endif - -#if defined(GRAPHICS_API_OPENGL_33) - if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) - { - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; - glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } - else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) - { -#if defined(GRAPHICS_API_OPENGL_21) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; -#elif defined(GRAPHICS_API_OPENGL_33) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; -#endif - glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } -#endif - } - - mipWidth /= 2; - mipHeight /= 2; - mipOffset += mipSize; // Increment offset position to next mipmap - if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap - - // Security check for NPOT textures - if (mipWidth < 1) mipWidth = 1; - if (mipHeight < 1) mipHeight = 1; - } - - // Texture parameters configuration - // NOTE: glTexParameteri does NOT affect texture uploading, just the way it's used -#if defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: OpenGL ES 2.0 with no GL_OES_texture_npot support (i.e. WebGL) has limited NPOT support, so CLAMP_TO_EDGE must be used - if (RLGL.ExtSupported.texNPOT) - { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis - } - else - { - // NOTE: If using negative texture coordinates (LoadOBJ()), it does not work! - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); // Set texture to clamp on x-axis - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); // Set texture to clamp on y-axis - } -#else - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis -#endif - - // Magnification and minification filters - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // Alternative: GL_LINEAR - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // Alternative: GL_LINEAR - -#if defined(GRAPHICS_API_OPENGL_33) - if (mipmapCount > 1) - { - // Activate Trilinear filtering if mipmaps are available - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - } -#endif - - // At this point we have the texture loaded in GPU and texture parameters configured - - // NOTE: If mipmaps were not in data, they are not generated automatically - - // Unbind current texture - glBindTexture(GL_TEXTURE_2D, 0); - - if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Texture loaded successfully (%ix%i | %s | %i mipmaps)", id, width, height, rlGetPixelFormatName(format), mipmapCount); - else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load texture"); - - return id; -} - -// Load depth texture/renderbuffer (to be attached to fbo) -// WARNING: OpenGL ES 2.0 requires GL_OES_depth_texture and WebGL requires WEBGL_depth_texture extensions -unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) -{ - unsigned int id = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // In case depth textures not supported, we force renderbuffer usage - if (!RLGL.ExtSupported.texDepth) useRenderBuffer = true; - - // NOTE: We let the implementation to choose the best bit-depth - // Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F - unsigned int glInternalFormat = GL_DEPTH_COMPONENT; - -#if (defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_ES3)) - // WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT) - // while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities - if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer) - { - if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES; - else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES; - else glInternalFormat = GL_DEPTH_COMPONENT16; - } -#endif - - if (!useRenderBuffer && RLGL.ExtSupported.texDepth) - { - glGenTextures(1, &id); - glBindTexture(GL_TEXTURE_2D, id); - glTexImage2D(GL_TEXTURE_2D, 0, glInternalFormat, width, height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - - glBindTexture(GL_TEXTURE_2D, 0); - - TRACELOG(RL_LOG_INFO, "TEXTURE: Depth texture loaded successfully"); - } - else - { - // Create the renderbuffer that will serve as the depth attachment for the framebuffer - // NOTE: A renderbuffer is simpler than a texture and could offer better performance on embedded devices - glGenRenderbuffers(1, &id); - glBindRenderbuffer(GL_RENDERBUFFER, id); - glRenderbufferStorage(GL_RENDERBUFFER, glInternalFormat, width, height); - - glBindRenderbuffer(GL_RENDERBUFFER, 0); - - TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Depth renderbuffer loaded successfully (%i bits)", id, (RLGL.ExtSupported.maxDepthBits >= 24)? RLGL.ExtSupported.maxDepthBits : 16); - } -#endif - - return id; -} - -// Load texture cubemap -// NOTE: Cubemap data is expected to be 6 images in a single data array (one after the other), -// expected the following convention: +X, -X, +Y, -Y, +Z, -Z -unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount) -{ - unsigned int id = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - int mipSize = size; - - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned char *dataPtr = NULL; - if (data != NULL) dataPtr = (unsigned char *)data; - - unsigned int dataSize = rlGetPixelDataSize(size, size, format); - - glGenTextures(1, &id); - glBindTexture(GL_TEXTURE_CUBE_MAP, id); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - - if (glInternalFormat != 0) - { - // Load cubemap faces/mipmaps - for (int i = 0; i < 6*mipmapCount; i++) - { - int mipmapLevel = i/6; - int face = i%6; - - if (data == NULL) - { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) - { - if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || - (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) || - (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || - (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); - else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, NULL); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format"); - } - else - { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, (unsigned char *)dataPtr + face*dataSize); - else glCompressedTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, dataSize, (unsigned char *)dataPtr + face*dataSize); - } - -#if defined(GRAPHICS_API_OPENGL_33) - if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) - { - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; - glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } - else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) - { -#if defined(GRAPHICS_API_OPENGL_21) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; -#elif defined(GRAPHICS_API_OPENGL_33) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; -#endif - glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } -#endif - if (face == 5) - { - mipSize /= 2; - if (data != NULL) dataPtr += dataSize*6; // Increment data pointer to next mipmap - - // Security check for NPOT textures - if (mipSize < 1) mipSize = 1; - - dataSize = rlGetPixelDataSize(mipSize, mipSize, format); - } - } - } - - // Set cubemap texture sampling parameters - if (mipmapCount > 1) glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - else glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); -#if defined(GRAPHICS_API_OPENGL_33) - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); // Flag not supported on OpenGL ES 2.0 -#endif - - glBindTexture(GL_TEXTURE_CUBE_MAP, 0); -#endif - - if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Cubemap texture loaded successfully (%ix%i)", id, size, size); - else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load cubemap texture"); - - return id; -} - -// Update already loaded texture in GPU with new data -// NOTE: We don't know safely if internal texture format is the expected one... -void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data) -{ - glBindTexture(GL_TEXTURE_2D, id); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - - if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) - { - glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX, offsetY, width, height, glFormat, glType, data); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to update for current texture format (%i)", id, format); -} - -// Get OpenGL internal formats and data type from raylib PixelFormat -void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType) -{ - *glInternalFormat = 0; - *glFormat = 0; - *glType = 0; - - switch (format) - { - #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_21) || defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: on OpenGL ES 2.0 (WebGL), internalFormat must match format and options allowed are: GL_LUMINANCE, GL_RGB, GL_RGBA - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_LUMINANCE_ALPHA; *glFormat = GL_LUMINANCE_ALPHA; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; - #if !defined(GRAPHICS_API_OPENGL_11) - #if defined(GRAPHICS_API_OPENGL_ES3) - case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F_EXT; *glFormat = GL_RED_EXT; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F_EXT; *glFormat = GL_RGB; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F_EXT; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F_EXT; *glFormat = GL_RED_EXT; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F_EXT; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F_EXT; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; - #else - case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - #if defined(GRAPHICS_API_OPENGL_21) - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_ARB; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_ARB; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_ARB; break; - #else // defined(GRAPHICS_API_OPENGL_ES2) - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float - #endif - #endif - #endif - #elif defined(GRAPHICS_API_OPENGL_33) - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_RG8; *glFormat = GL_RG; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB565; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB8; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGB5_A1; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA4; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA8; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F; *glFormat = GL_RED; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F; *glFormat = GL_RGB; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; - #endif - #if !defined(GRAPHICS_API_OPENGL_11) - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: if (RLGL.ExtSupported.texCompETC1) *glInternalFormat = GL_ETC1_RGB8_OES; break; // NOTE: Requires OpenGL ES 2.0 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGB8_ETC2; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGBA8_ETC2_EAC; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU - case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_4x4_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_8x8_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 - #endif - default: TRACELOG(RL_LOG_WARNING, "TEXTURE: Current format not supported (%i)", format); break; - } -} - -// Unload texture from GPU memory -void rlUnloadTexture(unsigned int id) -{ - glDeleteTextures(1, &id); -} - -// Generate mipmap data for selected texture -// NOTE: Only supports GPU mipmap generation -void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindTexture(GL_TEXTURE_2D, id); - - // Check if texture is power-of-two (POT) - bool texIsPOT = false; - - if (((width > 0) && ((width & (width - 1)) == 0)) && - ((height > 0) && ((height & (height - 1)) == 0))) texIsPOT = true; - - if ((texIsPOT) || (RLGL.ExtSupported.texNPOT)) - { - //glHint(GL_GENERATE_MIPMAP_HINT, GL_DONT_CARE); // Hint for mipmaps generation algorithm: GL_FASTEST, GL_NICEST, GL_DONT_CARE - glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically - - #define MIN(a,b) (((a)<(b))? (a):(b)) - #define MAX(a,b) (((a)>(b))? (a):(b)) - - *mipmaps = 1 + (int)floor(log(MAX(width, height))/log(2)); - TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Mipmaps generated automatically, total: %i", id, *mipmaps); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to generate mipmaps", id); - - glBindTexture(GL_TEXTURE_2D, 0); -#else - TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] GPU mipmap generation not supported", id); -#endif -} - -// Read texture pixel data -void *rlReadTexturePixels(unsigned int id, int width, int height, int format) -{ - void *pixels = NULL; - -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - glBindTexture(GL_TEXTURE_2D, id); - - // NOTE: Using texture id, we can retrieve some texture info (but not on OpenGL ES 2.0) - // Possible texture info: GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE - //int width, height, format; - //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); - //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); - //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); - - // NOTE: Each row written to or read from by OpenGL pixel operations like glGetTexImage are aligned to a 4 byte boundary by default, which may add some padding - // Use glPixelStorei to modify padding with the GL_[UN]PACK_ALIGNMENT setting - // GL_PACK_ALIGNMENT affects operations that read from OpenGL memory (glReadPixels, glGetTexImage, etc.) - // GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.) - glPixelStorei(GL_PACK_ALIGNMENT, 1); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - unsigned int size = rlGetPixelDataSize(width, height, format); - - if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) - { - pixels = RL_MALLOC(size); - glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Data retrieval not suported for pixel format (%i)", id, format); - - glBindTexture(GL_TEXTURE_2D, 0); -#endif - -#if defined(GRAPHICS_API_OPENGL_ES2) - // glGetTexImage() is not available on OpenGL ES 2.0 - // Texture width and height are required on OpenGL ES 2.0, there is no way to get it from texture id - // Two possible Options: - // 1 - Bind texture to color fbo attachment and glReadPixels() - // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() - // We are using Option 1, just need to care for texture format on retrieval - // NOTE: This behaviour could be conditioned by graphic driver... - unsigned int fboId = rlLoadFramebuffer(); - - glBindFramebuffer(GL_FRAMEBUFFER, fboId); - glBindTexture(GL_TEXTURE_2D, 0); - - // Attach our texture to FBO - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0); - - // We read data as RGBA because FBO texture is configured as RGBA, despite binding another texture format - pixels = (unsigned char *)RL_MALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8)); - glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels); - - glBindFramebuffer(GL_FRAMEBUFFER, 0); - - // Clean up temporal fbo - rlUnloadFramebuffer(fboId); -#endif - - return pixels; -} - -// Read screen pixel data (color buffer) -unsigned char *rlReadScreenPixels(int width, int height) -{ - unsigned char *screenData = (unsigned char *)RL_CALLOC(width*height*4, sizeof(unsigned char)); - - // NOTE 1: glReadPixels returns image flipped vertically -> (0,0) is the bottom left corner of the framebuffer - // NOTE 2: We are getting alpha channel! Be careful, it can be transparent if not cleared properly! - glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, screenData); - - // Flip image vertically! - unsigned char *imgData = (unsigned char *)RL_MALLOC(width*height*4*sizeof(unsigned char)); - - for (int y = height - 1; y >= 0; y--) - { - for (int x = 0; x < (width*4); x++) - { - imgData[((height - 1) - y)*width*4 + x] = screenData[(y*width*4) + x]; // Flip line - - // Set alpha component value to 255 (no trasparent image retrieval) - // NOTE: Alpha value has already been applied to RGB in framebuffer, we don't need it! - if (((x + 1)%4) == 0) imgData[((height - 1) - y)*width*4 + x] = 255; - } - } - - RL_FREE(screenData); - - return imgData; // NOTE: image data should be freed -} - -// Framebuffer management (fbo) -//----------------------------------------------------------------------------------------- -// Load a framebuffer to be used for rendering -// NOTE: No textures attached -unsigned int rlLoadFramebuffer(void) -{ - unsigned int fboId = 0; - -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glGenFramebuffers(1, &fboId); // Create the framebuffer object - glBindFramebuffer(GL_FRAMEBUFFER, 0); // Unbind any framebuffer -#endif - - return fboId; -} - -// Attach color buffer texture to an fbo (unloads previous attachment) -// NOTE: Attach type: 0-Color, 1-Depth renderbuffer, 2-Depth texture -void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBindFramebuffer(GL_FRAMEBUFFER, fboId); - - switch (attachType) - { - case RL_ATTACHMENT_COLOR_CHANNEL0: - case RL_ATTACHMENT_COLOR_CHANNEL1: - case RL_ATTACHMENT_COLOR_CHANNEL2: - case RL_ATTACHMENT_COLOR_CHANNEL3: - case RL_ATTACHMENT_COLOR_CHANNEL4: - case RL_ATTACHMENT_COLOR_CHANNEL5: - case RL_ATTACHMENT_COLOR_CHANNEL6: - case RL_ATTACHMENT_COLOR_CHANNEL7: - { - if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_2D, texId, mipLevel); - else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_RENDERBUFFER, texId); - else if (texType >= RL_ATTACHMENT_CUBEMAP_POSITIVE_X) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_CUBE_MAP_POSITIVE_X + texType, texId, mipLevel); - - } break; - case RL_ATTACHMENT_DEPTH: - { - if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); - else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, texId); - - } break; - case RL_ATTACHMENT_STENCIL: - { - if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); - else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, texId); - - } break; - default: break; - } - - glBindFramebuffer(GL_FRAMEBUFFER, 0); -#endif -} - -// Verify render texture is complete -bool rlFramebufferComplete(unsigned int id) -{ - bool result = false; - -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBindFramebuffer(GL_FRAMEBUFFER, id); - - GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); - - if (status != GL_FRAMEBUFFER_COMPLETE) - { - switch (status) - { - case GL_FRAMEBUFFER_UNSUPPORTED: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer is unsupported", id); break; - case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete attachment", id); break; -#if defined(GRAPHICS_API_OPENGL_ES2) - case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete dimensions", id); break; -#endif - case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has a missing attachment", id); break; - default: break; - } - } - - glBindFramebuffer(GL_FRAMEBUFFER, 0); - - result = (status == GL_FRAMEBUFFER_COMPLETE); -#endif - - return result; -} - -// Unload framebuffer from GPU memory -// NOTE: All attached textures/cubemaps/renderbuffers are also deleted -void rlUnloadFramebuffer(unsigned int id) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - // Query depth attachment to automatically delete texture/renderbuffer - int depthType = 0, depthId = 0; - glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type - glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType); - - // TODO: Review warning retrieving object name in WebGL - // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name - // https://registry.khronos.org/webgl/specs/latest/1.0/ - glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId); - - unsigned int depthIdU = (unsigned int)depthId; - if (depthType == GL_RENDERBUFFER) glDeleteRenderbuffers(1, &depthIdU); - else if (depthType == GL_TEXTURE) glDeleteTextures(1, &depthIdU); - - // NOTE: If a texture object is deleted while its image is attached to the *currently bound* framebuffer, - // the texture image is automatically detached from the currently bound framebuffer - - glBindFramebuffer(GL_FRAMEBUFFER, 0); - glDeleteFramebuffers(1, &id); - - TRACELOG(RL_LOG_INFO, "FBO: [ID %i] Unloaded framebuffer from VRAM (GPU)", id); -#endif -} - -// Vertex data management -//----------------------------------------------------------------------------------------- -// Load a new attributes buffer -unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic) -{ - unsigned int id = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glGenBuffers(1, &id); - glBindBuffer(GL_ARRAY_BUFFER, id); - glBufferData(GL_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); -#endif - - return id; -} - -// Load a new attributes element buffer -unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic) -{ - unsigned int id = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glGenBuffers(1, &id); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); -#endif - - return id; -} - -// Enable vertex buffer (VBO) -void rlEnableVertexBuffer(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ARRAY_BUFFER, id); -#endif -} - -// Disable vertex buffer (VBO) -void rlDisableVertexBuffer(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ARRAY_BUFFER, 0); -#endif -} - -// Enable vertex buffer element (VBO element) -void rlEnableVertexBufferElement(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); -#endif -} - -// Disable vertex buffer element (VBO element) -void rlDisableVertexBufferElement(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); -#endif -} - -// Update vertex buffer with new data -// NOTE: dataSize and offset must be provided in bytes -void rlUpdateVertexBuffer(unsigned int id, const void *data, int dataSize, int offset) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ARRAY_BUFFER, id); - glBufferSubData(GL_ARRAY_BUFFER, offset, dataSize, data); -#endif -} - -// Update vertex buffer elements with new data -// NOTE: dataSize and offset must be provided in bytes -void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); - glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, offset, dataSize, data); -#endif -} - -// Enable vertex array object (VAO) -bool rlEnableVertexArray(unsigned int vaoId) -{ - bool result = false; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) - { - glBindVertexArray(vaoId); - result = true; - } -#endif - return result; -} - -// Disable vertex array object (VAO) -void rlDisableVertexArray(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) glBindVertexArray(0); -#endif -} - -// Enable vertex attribute index -void rlEnableVertexAttribute(unsigned int index) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glEnableVertexAttribArray(index); -#endif -} - -// Disable vertex attribute index -void rlDisableVertexAttribute(unsigned int index) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDisableVertexAttribArray(index); -#endif -} - -// Draw vertex array -void rlDrawVertexArray(int offset, int count) -{ - glDrawArrays(GL_TRIANGLES, offset, count); -} - -// Draw vertex array elements -void rlDrawVertexArrayElements(int offset, int count, const void *buffer) -{ - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned short *bufferPtr = (unsigned short *)buffer; - if (offset > 0) bufferPtr += offset; - - glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr); -} - -// Draw vertex array instanced -void rlDrawVertexArrayInstanced(int offset, int count, int instances) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDrawArraysInstanced(GL_TRIANGLES, 0, count, instances); -#endif -} - -// Draw vertex array elements instanced -void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned short *bufferPtr = (unsigned short *)buffer; - if (offset > 0) bufferPtr += offset; - - glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances); -#endif -} - -#if defined(GRAPHICS_API_OPENGL_11) -// Enable vertex state pointer -void rlEnableStatePointer(int vertexAttribType, void *buffer) -{ - if (buffer != NULL) glEnableClientState(vertexAttribType); - switch (vertexAttribType) - { - case GL_VERTEX_ARRAY: glVertexPointer(3, GL_FLOAT, 0, buffer); break; - case GL_TEXTURE_COORD_ARRAY: glTexCoordPointer(2, GL_FLOAT, 0, buffer); break; - case GL_NORMAL_ARRAY: if (buffer != NULL) glNormalPointer(GL_FLOAT, 0, buffer); break; - case GL_COLOR_ARRAY: if (buffer != NULL) glColorPointer(4, GL_UNSIGNED_BYTE, 0, buffer); break; - //case GL_INDEX_ARRAY: if (buffer != NULL) glIndexPointer(GL_SHORT, 0, buffer); break; // Indexed colors - default: break; - } -} - -// Disable vertex state pointer -void rlDisableStatePointer(int vertexAttribType) -{ - glDisableClientState(vertexAttribType); -} -#endif - -// Load vertex array object (VAO) -unsigned int rlLoadVertexArray(void) -{ - unsigned int vaoId = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) - { - glGenVertexArrays(1, &vaoId); - } -#endif - return vaoId; -} - -// Set vertex attribute -void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT - // Additional types (depends on OpenGL version or extensions): - // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, - // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV - - size_t offsetNative = offset; - glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offsetNative); -#endif -} - -// Set vertex attribute divisor -void rlSetVertexAttributeDivisor(unsigned int index, int divisor) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glVertexAttribDivisor(index, divisor); -#endif -} - -// Unload vertex array object (VAO) -void rlUnloadVertexArray(unsigned int vaoId) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) - { - glBindVertexArray(0); - glDeleteVertexArrays(1, &vaoId); - TRACELOG(RL_LOG_INFO, "VAO: [ID %i] Unloaded vertex array data from VRAM (GPU)", vaoId); - } -#endif -} - -// Unload vertex buffer (VBO) -void rlUnloadVertexBuffer(unsigned int vboId) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDeleteBuffers(1, &vboId); - //TRACELOG(RL_LOG_INFO, "VBO: Unloaded vertex data from VRAM (GPU)"); -#endif -} - -// Shaders management -//----------------------------------------------------------------------------------------------- -// Load shader from code strings -// NOTE: If shader string is NULL, using default vertex/fragment shaders -unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) -{ - unsigned int id = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - unsigned int vertexShaderId = 0; - unsigned int fragmentShaderId = 0; - - // Compile vertex shader (if provided) - // NOTE: If not vertex shader is provided, use default one - if (vsCode != NULL) vertexShaderId = rlCompileShader(vsCode, GL_VERTEX_SHADER); - else vertexShaderId = RLGL.State.defaultVShaderId; - - // Compile fragment shader (if provided) - // NOTE: If not vertex shader is provided, use default one - if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER); - else fragmentShaderId = RLGL.State.defaultFShaderId; - - // In case vertex and fragment shader are the default ones, no need to recompile, we can just assign the default shader program id - if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId; - else if ((vertexShaderId > 0) && (fragmentShaderId > 0)) - { - // One of or both shader are new, we need to compile a new shader program - id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId); - - // We can detach and delete vertex/fragment shaders (if not default ones) - // NOTE: We detach shader before deletion to make sure memory is freed - if (vertexShaderId != RLGL.State.defaultVShaderId) - { - // WARNING: Shader program linkage could fail and returned id is 0 - if (id > 0) glDetachShader(id, vertexShaderId); - glDeleteShader(vertexShaderId); - } - if (fragmentShaderId != RLGL.State.defaultFShaderId) - { - // WARNING: Shader program linkage could fail and returned id is 0 - if (id > 0) glDetachShader(id, fragmentShaderId); - glDeleteShader(fragmentShaderId); - } - - // In case shader program loading failed, we assign default shader - if (id == 0) - { - // In case shader loading fails, we return the default shader - TRACELOG(RL_LOG_WARNING, "SHADER: Failed to load custom shader code, using default shader"); - id = RLGL.State.defaultShaderId; - } - /* - else - { - // Get available shader uniforms - // NOTE: This information is useful for debug... - int uniformCount = -1; - glGetProgramiv(id, GL_ACTIVE_UNIFORMS, &uniformCount); - - for (int i = 0; i < uniformCount; i++) - { - int namelen = -1; - int num = -1; - char name[256] = { 0 }; // Assume no variable names longer than 256 - GLenum type = GL_ZERO; - - // Get the name of the uniforms - glGetActiveUniform(id, i, sizeof(name) - 1, &namelen, &num, &type, name); - - name[namelen] = 0; - TRACELOGD("SHADER: [ID %i] Active uniform (%s) set at location: %i", id, name, glGetUniformLocation(id, name)); - } - } - */ - } -#endif - - return id; -} - -// Compile custom shader and return shader id -unsigned int rlCompileShader(const char *shaderCode, int type) -{ - unsigned int shader = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - shader = glCreateShader(type); - glShaderSource(shader, 1, &shaderCode, NULL); - - GLint success = 0; - glCompileShader(shader); - glGetShaderiv(shader, GL_COMPILE_STATUS, &success); - - if (success == GL_FALSE) - { - switch (type) - { - case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shader); break; - case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shader); break; - //case GL_GEOMETRY_SHADER: - #if defined(GRAPHICS_API_OPENGL_43) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shader); break; - #elif defined(GRAPHICS_API_OPENGL_33) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; - #endif - default: break; - } - - int maxLength = 0; - glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength); - - if (maxLength > 0) - { - int length = 0; - char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetShaderInfoLog(shader, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shader, log); - RL_FREE(log); - } - - shader = 0; - } - else - { - switch (type) - { - case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shader); break; - case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shader); break; - //case GL_GEOMETRY_SHADER: - #if defined(GRAPHICS_API_OPENGL_43) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shader); break; - #elif defined(GRAPHICS_API_OPENGL_33) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; - #endif - default: break; - } - } -#endif - - return shader; -} - -// Load custom shader strings and return program id -unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) -{ - unsigned int program = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - GLint success = 0; - program = glCreateProgram(); - - glAttachShader(program, vShaderId); - glAttachShader(program, fShaderId); - - // NOTE: Default attribute shader locations must be Bound before linking - glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); - glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); - glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); - glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); - glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); - glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); - -#ifdef RL_SUPPORT_MESH_GPU_SKINNING - glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS); - glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS); -#endif - - // NOTE: If some attrib name is no found on the shader, it locations becomes -1 - - glLinkProgram(program); - - // NOTE: All uniform variables are intitialised to 0 when a program links - - glGetProgramiv(program, GL_LINK_STATUS, &success); - - if (success == GL_FALSE) - { - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link shader program", program); - - int maxLength = 0; - glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); - - if (maxLength > 0) - { - int length = 0; - char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetProgramInfoLog(program, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); - RL_FREE(log); - } - - glDeleteProgram(program); - - program = 0; - } - else - { - // Get the size of compiled shader program (not available on OpenGL ES 2.0) - // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero - //GLint binarySize = 0; - //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Program shader loaded successfully", program); - } -#endif - return program; -} - -// Unload shader program -void rlUnloadShaderProgram(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDeleteProgram(id); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Unloaded shader program data from VRAM (GPU)", id); -#endif -} - -// Get shader location uniform -int rlGetLocationUniform(unsigned int shaderId, const char *uniformName) -{ - int location = -1; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - location = glGetUniformLocation(shaderId, uniformName); - - //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName); - //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location); -#endif - return location; -} - -// Get shader location attribute -int rlGetLocationAttrib(unsigned int shaderId, const char *attribName) -{ - int location = -1; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - location = glGetAttribLocation(shaderId, attribName); - - //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName); - //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location); -#endif - return location; -} - -// Set shader value uniform -void rlSetUniform(int locIndex, const void *value, int uniformType, int count) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - switch (uniformType) - { - case RL_SHADER_UNIFORM_FLOAT: glUniform1fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_VEC2: glUniform2fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_VEC3: glUniform3fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_VEC4: glUniform4fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_INT: glUniform1iv(locIndex, count, (int *)value); break; - case RL_SHADER_UNIFORM_IVEC2: glUniform2iv(locIndex, count, (int *)value); break; - case RL_SHADER_UNIFORM_IVEC3: glUniform3iv(locIndex, count, (int *)value); break; - case RL_SHADER_UNIFORM_IVEC4: glUniform4iv(locIndex, count, (int *)value); break; - #if !defined(GRAPHICS_API_OPENGL_ES2) - case RL_SHADER_UNIFORM_UINT: glUniform1uiv(locIndex, count, (unsigned int *)value); break; - case RL_SHADER_UNIFORM_UIVEC2: glUniform2uiv(locIndex, count, (unsigned int *)value); break; - case RL_SHADER_UNIFORM_UIVEC3: glUniform3uiv(locIndex, count, (unsigned int *)value); break; - case RL_SHADER_UNIFORM_UIVEC4: glUniform4uiv(locIndex, count, (unsigned int *)value); break; - #endif - case RL_SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; - default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); - - // TODO: Support glUniform1uiv(), glUniform2uiv(), glUniform3uiv(), glUniform4uiv() - } -#endif -} - -// Set shader value attribute -void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - switch (attribType) - { - case RL_SHADER_ATTRIB_FLOAT: if (count == 1) glVertexAttrib1fv(locIndex, (float *)value); break; - case RL_SHADER_ATTRIB_VEC2: if (count == 2) glVertexAttrib2fv(locIndex, (float *)value); break; - case RL_SHADER_ATTRIB_VEC3: if (count == 3) glVertexAttrib3fv(locIndex, (float *)value); break; - case RL_SHADER_ATTRIB_VEC4: if (count == 4) glVertexAttrib4fv(locIndex, (float *)value); break; - default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set attrib default value, data type not recognized"); - } -#endif -} - -// Set shader value uniform matrix -void rlSetUniformMatrix(int locIndex, Matrix mat) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - float matfloat[16] = { - mat.m0, mat.m1, mat.m2, mat.m3, - mat.m4, mat.m5, mat.m6, mat.m7, - mat.m8, mat.m9, mat.m10, mat.m11, - mat.m12, mat.m13, mat.m14, mat.m15 - }; - glUniformMatrix4fv(locIndex, 1, false, matfloat); -#endif -} - -// Set shader value uniform matrix -void rlSetUniformMatrices(int locIndex, const Matrix *matrices, int count) -{ -#if defined(GRAPHICS_API_OPENGL_33) - glUniformMatrix4fv(locIndex, count, true, (const float *)matrices); -#elif defined(GRAPHICS_API_OPENGL_ES2) - // WARNING: WebGL does not support Matrix transpose ("true" parameter) - // REF: https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/uniformMatrix - glUniformMatrix4fv(locIndex, count, false, (const float *)matrices); -#endif -} - -// Set shader value uniform sampler -void rlSetUniformSampler(int locIndex, unsigned int textureId) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Check if texture is already active - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) - { - if (RLGL.State.activeTextureId[i] == textureId) - { - glUniform1i(locIndex, 1 + i); - return; - } - } - - // Register a new active texture for the internal batch system - // NOTE: Default texture is always activated as GL_TEXTURE0 - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) - { - if (RLGL.State.activeTextureId[i] == 0) - { - glUniform1i(locIndex, 1 + i); // Activate new texture unit - RLGL.State.activeTextureId[i] = textureId; // Save texture id for binding on drawing - break; - } - } -#endif -} - -// Set shader currently active (id and locations) -void rlSetShader(unsigned int id, int *locs) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.State.currentShaderId != id) - { - rlDrawRenderBatch(RLGL.currentBatch); - RLGL.State.currentShaderId = id; - RLGL.State.currentShaderLocs = locs; - } -#endif -} - -// Load compute shader program -unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) -{ - unsigned int program = 0; - -#if defined(GRAPHICS_API_OPENGL_43) - GLint success = 0; - program = glCreateProgram(); - glAttachShader(program, shaderId); - glLinkProgram(program); - - // NOTE: All uniform variables are intitialised to 0 when a program links - - glGetProgramiv(program, GL_LINK_STATUS, &success); - - if (success == GL_FALSE) - { - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", program); - - int maxLength = 0; - glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); - - if (maxLength > 0) - { - int length = 0; - char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetProgramInfoLog(program, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); - RL_FREE(log); - } - - glDeleteProgram(program); - - program = 0; - } - else - { - // Get the size of compiled shader program (not available on OpenGL ES 2.0) - // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero - //GLint binarySize = 0; - //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", program); - } -#else - TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43"); -#endif - - return program; -} - -// Dispatch compute shader (equivalent to *draw* for graphics pilepine) -void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glDispatchCompute(groupX, groupY, groupZ); -#endif -} - -// Load shader storage buffer object (SSBO) -unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint) -{ - unsigned int ssbo = 0; - -#if defined(GRAPHICS_API_OPENGL_43) - glGenBuffers(1, &ssbo); - glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo); - glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); - if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0 - glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); -#else - TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); -#endif - - return ssbo; -} - -// Unload shader storage buffer object (SSBO) -void rlUnloadShaderBuffer(unsigned int ssboId) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glDeleteBuffers(1, &ssboId); -#else - TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); -#endif - -} - -// Update SSBO buffer data -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); - glBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, dataSize, data); -#endif -} - -// Get SSBO buffer size -unsigned int rlGetShaderBufferSize(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_43) - GLint64 size = 0; - glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); - glGetBufferParameteri64v(GL_SHADER_STORAGE_BUFFER, GL_BUFFER_SIZE, &size); - return (size > 0)? (unsigned int)size : 0; -#else - return 0; -#endif -} - -// 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); - glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, count, dest); -#endif -} - -// Bind SSBO buffer -void rlBindShaderBuffer(unsigned int id, unsigned int index) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, id); -#endif -} - -// Copy SSBO buffer data -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); - glBindBuffer(GL_COPY_WRITE_BUFFER, destId); - glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, srcOffset, destOffset, count); -#endif -} - -// Bind image texture -void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly) -{ -#if defined(GRAPHICS_API_OPENGL_43) - unsigned int glInternalFormat = 0, glFormat = 0, glType = 0; - - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); -#else - TRACELOG(RL_LOG_WARNING, "TEXTURE: Image texture binding not enabled. Define GRAPHICS_API_OPENGL_43"); -#endif -} - -// Matrix state management -//----------------------------------------------------------------------------------------- -// Get internal modelview matrix -Matrix rlGetMatrixModelview(void) -{ - Matrix matrix = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_11) - float mat[16]; - glGetFloatv(GL_MODELVIEW_MATRIX, mat); - matrix.m0 = mat[0]; - matrix.m1 = mat[1]; - matrix.m2 = mat[2]; - matrix.m3 = mat[3]; - matrix.m4 = mat[4]; - matrix.m5 = mat[5]; - matrix.m6 = mat[6]; - matrix.m7 = mat[7]; - matrix.m8 = mat[8]; - matrix.m9 = mat[9]; - matrix.m10 = mat[10]; - matrix.m11 = mat[11]; - matrix.m12 = mat[12]; - matrix.m13 = mat[13]; - matrix.m14 = mat[14]; - matrix.m15 = mat[15]; -#else - matrix = RLGL.State.modelview; -#endif - return matrix; -} - -// Get internal projection matrix -Matrix rlGetMatrixProjection(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) - float mat[16]; - glGetFloatv(GL_PROJECTION_MATRIX,mat); - Matrix m; - m.m0 = mat[0]; - m.m1 = mat[1]; - m.m2 = mat[2]; - m.m3 = mat[3]; - m.m4 = mat[4]; - m.m5 = mat[5]; - m.m6 = mat[6]; - m.m7 = mat[7]; - m.m8 = mat[8]; - m.m9 = mat[9]; - m.m10 = mat[10]; - m.m11 = mat[11]; - m.m12 = mat[12]; - m.m13 = mat[13]; - m.m14 = mat[14]; - m.m15 = mat[15]; - return m; -#else - return RLGL.State.projection; -#endif -} - -// Get internal accumulated transform matrix -Matrix rlGetMatrixTransform(void) -{ - Matrix mat = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // TODO: Consider possible transform matrices in the RLGL.State.stack - // Is this the right order? or should we start with the first stored matrix instead of the last one? - //Matrix matStackTransform = rlMatrixIdentity(); - //for (int i = RLGL.State.stackCounter; i > 0; i--) matStackTransform = rlMatrixMultiply(RLGL.State.stack[i], matStackTransform); - mat = RLGL.State.transform; -#endif - return mat; -} - -// Get internal projection matrix for stereo render (selected eye) -Matrix rlGetMatrixProjectionStereo(int eye) -{ - Matrix mat = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - mat = RLGL.State.projectionStereo[eye]; -#endif - return mat; -} - -// Get internal view offset matrix for stereo render (selected eye) -Matrix rlGetMatrixViewOffsetStereo(int eye) -{ - Matrix mat = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - mat = RLGL.State.viewOffsetStereo[eye]; -#endif - return mat; -} - -// Set a custom modelview matrix (replaces internal modelview matrix) -void rlSetMatrixModelview(Matrix view) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.modelview = view; -#endif -} - -// Set a custom projection matrix (replaces internal projection matrix) -void rlSetMatrixProjection(Matrix projection) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.projection = projection; -#endif -} - -// Set eyes projection matrices for stereo rendering -void rlSetMatrixProjectionStereo(Matrix right, Matrix left) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.projectionStereo[0] = right; - RLGL.State.projectionStereo[1] = left; -#endif -} - -// Set eyes view offsets matrices for stereo rendering -void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.viewOffsetStereo[0] = right; - RLGL.State.viewOffsetStereo[1] = left; -#endif -} - -// Load and draw a quad in NDC -void rlLoadDrawQuad(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - unsigned int quadVAO = 0; - unsigned int quadVBO = 0; - - float vertices[] = { - // Positions Texcoords - -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, - 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, - 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, - }; - - // Gen VAO to contain VBO - glGenVertexArrays(1, &quadVAO); - glBindVertexArray(quadVAO); - - // Gen and fill vertex buffer (VBO) - glGenBuffers(1, &quadVBO); - glBindBuffer(GL_ARRAY_BUFFER, quadVBO); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices, GL_STATIC_DRAW); - - // Bind vertex attributes (position, texcoords) - glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); - glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions - glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); - glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords - - // Draw quad - glBindVertexArray(quadVAO); - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - glBindVertexArray(0); - - // Delete buffers (VBO and VAO) - glDeleteBuffers(1, &quadVBO); - glDeleteVertexArrays(1, &quadVAO); -#endif -} - -// Load and draw a cube in NDC -void rlLoadDrawCube(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - unsigned int cubeVAO = 0; - unsigned int cubeVBO = 0; - - float vertices[] = { - // Positions Normals Texcoords - -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, - 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - -1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, - -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, - 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, - -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, - 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, - 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, - -1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, - -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, - -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, - 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, - -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f - }; - - // Gen VAO to contain VBO - glGenVertexArrays(1, &cubeVAO); - glBindVertexArray(cubeVAO); - - // Gen and fill vertex buffer (VBO) - glGenBuffers(1, &cubeVBO); - glBindBuffer(GL_ARRAY_BUFFER, cubeVBO); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); - - // Bind vertex attributes (position, normals, texcoords) - glBindVertexArray(cubeVAO); - glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); - glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions - glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); - glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals - glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); - glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords - glBindBuffer(GL_ARRAY_BUFFER, 0); - glBindVertexArray(0); - - // Draw cube - glBindVertexArray(cubeVAO); - glDrawArrays(GL_TRIANGLES, 0, 36); - glBindVertexArray(0); - - // Delete VBO and VAO - glDeleteBuffers(1, &cubeVBO); - glDeleteVertexArrays(1, &cubeVAO); -#endif -} - -// Get name string for pixel format -const char *rlGetPixelFormatName(unsigned int format) -{ - switch (format) - { - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: return "GRAYSCALE"; break; // 8 bit per pixel (no alpha) - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: return "GRAY_ALPHA"; break; // 8*2 bpp (2 channels) - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: return "R5G6B5"; break; // 16 bpp - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: return "R8G8B8"; break; // 24 bpp - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: return "R5G5B5A1"; break; // 16 bpp (1 bit alpha) - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: return "R4G4B4A4"; break; // 16 bpp (4 bit alpha) - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: return "R8G8B8A8"; break; // 32 bpp - case RL_PIXELFORMAT_UNCOMPRESSED_R32: return "R32"; break; // 32 bpp (1 channel - float) - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: return "R32G32B32"; break; // 32*3 bpp (3 channels - float) - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: return "R32G32B32A32"; break; // 32*4 bpp (4 channels - float) - case RL_PIXELFORMAT_UNCOMPRESSED_R16: return "R16"; break; // 16 bpp (1 channel - half float) - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: return "R16G16B16"; break; // 16*3 bpp (3 channels - half float) - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: return "R16G16B16A16"; break; // 16*4 bpp (4 channels - half float) - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: return "DXT1_RGB"; break; // 4 bpp (no alpha) - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: return "DXT1_RGBA"; break; // 4 bpp (1 bit alpha) - case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: return "DXT3_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: return "DXT5_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: return "ETC1_RGB"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: return "ETC2_RGB"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: return "ETC2_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: return "PVRT_RGB"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: return "PVRT_RGBA"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: return "ASTC_4x4_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: return "ASTC_8x8_RGBA"; break; // 2 bpp - default: return "UNKNOWN"; break; - } -} - -//---------------------------------------------------------------------------------- -// Module specific Functions Definition -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Load default shader (just vertex positioning and texture coloring) -// NOTE: This shader program is used for internal buffers -// NOTE: Loaded: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs -static void rlLoadShaderDefault(void) -{ - RLGL.State.defaultShaderLocs = (int *)RL_CALLOC(RL_MAX_SHADER_LOCATIONS, sizeof(int)); - - // NOTE: All locations must be reseted to -1 (no location) - for (int i = 0; i < RL_MAX_SHADER_LOCATIONS; i++) RLGL.State.defaultShaderLocs[i] = -1; - - // Vertex shader directly defined, no external file required - const char *defaultVShaderCode = -#if defined(GRAPHICS_API_OPENGL_21) - "#version 120 \n" - "attribute vec3 vertexPosition; \n" - "attribute vec2 vertexTexCoord; \n" - "attribute vec4 vertexColor; \n" - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" -#elif defined(GRAPHICS_API_OPENGL_33) - "#version 330 \n" - "in vec3 vertexPosition; \n" - "in vec2 vertexTexCoord; \n" - "in vec4 vertexColor; \n" - "out vec2 fragTexCoord; \n" - "out vec4 fragColor; \n" -#endif - -#if defined(GRAPHICS_API_OPENGL_ES3) - "#version 300 es \n" - "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) (on some browsers) - "in vec3 vertexPosition; \n" - "in vec2 vertexTexCoord; \n" - "in vec4 vertexColor; \n" - "out vec2 fragTexCoord; \n" - "out vec4 fragColor; \n" -#elif defined(GRAPHICS_API_OPENGL_ES2) - "#version 100 \n" - "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers) - "attribute vec3 vertexPosition; \n" - "attribute vec2 vertexTexCoord; \n" - "attribute vec4 vertexColor; \n" - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" -#endif - - "uniform mat4 mvp; \n" - "void main() \n" - "{ \n" - " fragTexCoord = vertexTexCoord; \n" - " fragColor = vertexColor; \n" - " gl_Position = mvp*vec4(vertexPosition, 1.0); \n" - "} \n"; - - // Fragment shader directly defined, no external file required - const char *defaultFShaderCode = -#if defined(GRAPHICS_API_OPENGL_21) - "#version 120 \n" - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" - " gl_FragColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#elif defined(GRAPHICS_API_OPENGL_33) - "#version 330 \n" - "in vec2 fragTexCoord; \n" - "in vec4 fragColor; \n" - "out vec4 finalColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture(texture0, fragTexCoord); \n" - " finalColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#endif - -#if defined(GRAPHICS_API_OPENGL_ES3) - "#version 300 es \n" - "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) - "in vec2 fragTexCoord; \n" - "in vec4 fragColor; \n" - "out vec4 finalColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture(texture0, fragTexCoord); \n" - " finalColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#elif defined(GRAPHICS_API_OPENGL_ES2) - "#version 100 \n" - "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" - " gl_FragColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#endif - - // NOTE: Compiled vertex/fragment shaders are not deleted, - // they are kept for re-use as default shaders in case some shader loading fails - RLGL.State.defaultVShaderId = rlCompileShader(defaultVShaderCode, GL_VERTEX_SHADER); // Compile default vertex shader - RLGL.State.defaultFShaderId = rlCompileShader(defaultFShaderCode, GL_FRAGMENT_SHADER); // Compile default fragment shader - - RLGL.State.defaultShaderId = rlLoadShaderProgram(RLGL.State.defaultVShaderId, RLGL.State.defaultFShaderId); - - if (RLGL.State.defaultShaderId > 0) - { - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader loaded successfully", RLGL.State.defaultShaderId); - - // Set default shader locations: attributes locations - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); - - // Set default shader locations: uniform locations - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_MVP); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0); - } - else TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to load default shader", RLGL.State.defaultShaderId); -} - -// Unload default shader -// NOTE: Unloads: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs -static void rlUnloadShaderDefault(void) -{ - glUseProgram(0); - - glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultVShaderId); - glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultFShaderId); - glDeleteShader(RLGL.State.defaultVShaderId); - glDeleteShader(RLGL.State.defaultFShaderId); - - glDeleteProgram(RLGL.State.defaultShaderId); - - RL_FREE(RLGL.State.defaultShaderLocs); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader unloaded successfully", RLGL.State.defaultShaderId); -} - -#if defined(RLGL_SHOW_GL_DETAILS_INFO) -// Get compressed format official GL identifier name -static const char *rlGetCompressedFormatName(int format) -{ - switch (format) - { - // GL_EXT_texture_compression_s3tc - case 0x83F0: return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT"; break; - case 0x83F1: return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"; break; - case 0x83F2: return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"; break; - case 0x83F3: return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"; break; - // GL_3DFX_texture_compression_FXT1 - case 0x86B0: return "GL_COMPRESSED_RGB_FXT1_3DFX"; break; - case 0x86B1: return "GL_COMPRESSED_RGBA_FXT1_3DFX"; break; - // GL_IMG_texture_compression_pvrtc - case 0x8C00: return "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"; break; - case 0x8C01: return "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"; break; - case 0x8C02: return "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"; break; - case 0x8C03: return "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"; break; - // GL_OES_compressed_ETC1_RGB8_texture - case 0x8D64: return "GL_ETC1_RGB8_OES"; break; - // GL_ARB_texture_compression_rgtc - case 0x8DBB: return "GL_COMPRESSED_RED_RGTC1"; break; - case 0x8DBC: return "GL_COMPRESSED_SIGNED_RED_RGTC1"; break; - case 0x8DBD: return "GL_COMPRESSED_RG_RGTC2"; break; - case 0x8DBE: return "GL_COMPRESSED_SIGNED_RG_RGTC2"; break; - // GL_ARB_texture_compression_bptc - case 0x8E8C: return "GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"; break; - case 0x8E8D: return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"; break; - case 0x8E8E: return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"; break; - case 0x8E8F: return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"; break; - // GL_ARB_ES3_compatibility - case 0x9274: return "GL_COMPRESSED_RGB8_ETC2"; break; - case 0x9275: return "GL_COMPRESSED_SRGB8_ETC2"; break; - case 0x9276: return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; - case 0x9277: return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; - case 0x9278: return "GL_COMPRESSED_RGBA8_ETC2_EAC"; break; - case 0x9279: return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"; break; - case 0x9270: return "GL_COMPRESSED_R11_EAC"; break; - case 0x9271: return "GL_COMPRESSED_SIGNED_R11_EAC"; break; - case 0x9272: return "GL_COMPRESSED_RG11_EAC"; break; - case 0x9273: return "GL_COMPRESSED_SIGNED_RG11_EAC"; break; - // GL_KHR_texture_compression_astc_hdr - case 0x93B0: return "GL_COMPRESSED_RGBA_ASTC_4x4_KHR"; break; - case 0x93B1: return "GL_COMPRESSED_RGBA_ASTC_5x4_KHR"; break; - case 0x93B2: return "GL_COMPRESSED_RGBA_ASTC_5x5_KHR"; break; - case 0x93B3: return "GL_COMPRESSED_RGBA_ASTC_6x5_KHR"; break; - case 0x93B4: return "GL_COMPRESSED_RGBA_ASTC_6x6_KHR"; break; - case 0x93B5: return "GL_COMPRESSED_RGBA_ASTC_8x5_KHR"; break; - case 0x93B6: return "GL_COMPRESSED_RGBA_ASTC_8x6_KHR"; break; - case 0x93B7: return "GL_COMPRESSED_RGBA_ASTC_8x8_KHR"; break; - case 0x93B8: return "GL_COMPRESSED_RGBA_ASTC_10x5_KHR"; break; - case 0x93B9: return "GL_COMPRESSED_RGBA_ASTC_10x6_KHR"; break; - case 0x93BA: return "GL_COMPRESSED_RGBA_ASTC_10x8_KHR"; break; - case 0x93BB: return "GL_COMPRESSED_RGBA_ASTC_10x10_KHR"; break; - case 0x93BC: return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR"; break; - case 0x93BD: return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR"; break; - case 0x93D0: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"; break; - case 0x93D1: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"; break; - case 0x93D2: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"; break; - case 0x93D3: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"; break; - case 0x93D4: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"; break; - case 0x93D5: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"; break; - case 0x93D6: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"; break; - case 0x93D7: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"; break; - case 0x93D8: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"; break; - case 0x93D9: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"; break; - case 0x93DA: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"; break; - case 0x93DB: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"; break; - case 0x93DC: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"; break; - case 0x93DD: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"; break; - default: return "GL_COMPRESSED_UNKNOWN"; break; - } -} -#endif // RLGL_SHOW_GL_DETAILS_INFO - -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -// Get pixel data size in bytes (image or texture) -// NOTE: Size depends on pixel format -static int rlGetPixelDataSize(int width, int height, int format) -{ - int dataSize = 0; // Size in bytes - int bpp = 0; // Bits per pixel - - switch (format) - { - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: bpp = 8; break; - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: bpp = 16; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: bpp = 32; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: bpp = 24; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32: bpp = 32; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: bpp = 32*3; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: bpp = 32*4; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16: bpp = 16; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: bpp = 16*3; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: bpp = 16*4; break; - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: - case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: - case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: bpp = 4; break; - case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: - case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: - case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: - case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: bpp = 8; break; - case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: bpp = 2; break; - default: break; - } - - double bytesPerPixel = (double)bpp/8.0; - dataSize = (int)(bytesPerPixel*width*height); // Total data size in bytes - - // Most compressed formats works on 4x4 blocks, - // if texture is smaller, minimum dataSize is 8 or 16 - if ((width < 4) && (height < 4)) - { - if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) && (format < RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA)) dataSize = 8; - else if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) && (format < RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA)) dataSize = 16; - } - - return dataSize; -} - -// Auxiliar math functions - -// Get float array of matrix data -static rl_float16 rlMatrixToFloatV(Matrix mat) -{ - rl_float16 result = { 0 }; - - result.v[0] = mat.m0; - result.v[1] = mat.m1; - result.v[2] = mat.m2; - result.v[3] = mat.m3; - result.v[4] = mat.m4; - result.v[5] = mat.m5; - result.v[6] = mat.m6; - result.v[7] = mat.m7; - result.v[8] = mat.m8; - result.v[9] = mat.m9; - result.v[10] = mat.m10; - result.v[11] = mat.m11; - result.v[12] = mat.m12; - result.v[13] = mat.m13; - result.v[14] = mat.m14; - result.v[15] = mat.m15; - - return result; -} - -// Get identity matrix -static Matrix rlMatrixIdentity(void) -{ - Matrix result = { - 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f - }; - - return result; -} - -// Get two matrix multiplication -// NOTE: When multiplying matrices... the order matters! -static Matrix rlMatrixMultiply(Matrix left, Matrix right) -{ - Matrix result = { 0 }; - - result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; - result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; - result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; - result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; - result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; - result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; - result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; - result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; - result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; - result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; - result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; - result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; - result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; - result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; - result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; - result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; - - return result; -} - -// Transposes provided matrix -static Matrix rlMatrixTranspose(Matrix mat) -{ - Matrix result = { 0 }; - - result.m0 = mat.m0; - result.m1 = mat.m4; - result.m2 = mat.m8; - result.m3 = mat.m12; - result.m4 = mat.m1; - result.m5 = mat.m5; - result.m6 = mat.m9; - result.m7 = mat.m13; - result.m8 = mat.m2; - result.m9 = mat.m6; - result.m10 = mat.m10; - result.m11 = mat.m14; - result.m12 = mat.m3; - result.m13 = mat.m7; - result.m14 = mat.m11; - result.m15 = mat.m15; - - return result; -} - -// Invert provided matrix -static Matrix rlMatrixInvert(Matrix mat) -{ - Matrix result = { 0 }; - - // Cache the matrix values (speed optimization) - float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; - float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; - float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; - float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; - - float b00 = a00*a11 - a01*a10; - float b01 = a00*a12 - a02*a10; - float b02 = a00*a13 - a03*a10; - float b03 = a01*a12 - a02*a11; - float b04 = a01*a13 - a03*a11; - float b05 = a02*a13 - a03*a12; - float b06 = a20*a31 - a21*a30; - float b07 = a20*a32 - a22*a30; - float b08 = a20*a33 - a23*a30; - float b09 = a21*a32 - a22*a31; - float b10 = a21*a33 - a23*a31; - float b11 = a22*a33 - a23*a32; - - // Calculate the invert determinant (inlined to avoid double-caching) - float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); - - result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; - result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; - result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; - result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; - result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; - result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; - result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; - result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; - result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; - result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; - result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; - result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; - result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; - result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; - result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; - result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; - - return result; -} - -#endif // RLGL_IMPLEMENTATION diff --git a/lab16 with raylib/lab16 with raylib/lab16 with raylib.vcxproj b/lab16 with raylib/lab16 with raylib/lab16 with raylib.vcxproj index 60a341f..50328ce 100644 --- a/lab16 with raylib/lab16 with raylib/lab16 with raylib.vcxproj +++ b/lab16 with raylib/lab16 with raylib/lab16 with raylib.vcxproj @@ -140,6 +140,7 @@ + diff --git a/lab16 with raylib/lab16 with raylib/lab16 with raylib.vcxproj.filters b/lab16 with raylib/lab16 with raylib/lab16 with raylib.vcxproj.filters index baa190f..33e015f 100644 --- a/lab16 with raylib/lab16 with raylib/lab16 with raylib.vcxproj.filters +++ b/lab16 with raylib/lab16 with raylib/lab16 with raylib.vcxproj.filters @@ -42,6 +42,9 @@ Файлы заголовков + + Файлы заголовков + diff --git a/lab16 with raylib/resources/blur.frag b/lab16 with raylib/resources/blur.frag index 6aa854a..7eba3d7 100644 --- a/lab16 with raylib/resources/blur.frag +++ b/lab16 with raylib/resources/blur.frag @@ -14,7 +14,7 @@ out vec4 finalColor; // NOTE: Add here your custom variables // NOTE: values must be passed from code -uniform float renderWidth; +uniform float renderWidth = 750; uniform float renderHeight; uniform float seconds; @@ -28,17 +28,17 @@ void main() for (int i = 1; i < 3; i++) { - texelColor += texture(texture0, fragTexCoord + vec2(offset[i], offset[i]) / renderWidth).rgba * weight[i] / 2; - texelColor += texture(texture0, fragTexCoord - vec2(offset[i], offset[i]) / renderWidth).rgba * weight[i] / 2; - texelColor += texture(texture0, fragTexCoord + vec2(-offset[i], offset[i]) / renderWidth).rgba * weight[i] / 2; - texelColor += texture(texture0, fragTexCoord - vec2(-offset[i], offset[i]) / renderWidth).rgba * weight[i] / 2; + texelColor += texture(texture0, fragTexCoord + vec2(offset[i], 0.0) / renderWidth).rgba * weight[i] / 2; + texelColor += texture(texture0, fragTexCoord + vec2(-offset[i], 0.0) / renderWidth).rgba * weight[i] / 2; + texelColor += texture(texture0, fragTexCoord + vec2(0.0, offset[i]) / renderWidth).rgba * weight[i] / 2; + texelColor += texture(texture0, fragTexCoord + vec2(0.0, -offset[i]) / renderWidth).rgba * weight[i] / 2; } vec4 red = vec4(1.0, 0.5, 0.5, 1.0); vec4 blue = vec4(0.0, 0.5, 0.5, 1.0); - finalColor = mix(red, blue, (sin(fragTexCoord.x * 24 + seconds * 4.0) + 1.0) / 2.0); + //finalColor = mix(red, blue, (sin(fragTexCoord.x * 24 + seconds * 4.0) + 1.0) / 2.0); - //finalColor = texelColor; + finalColor = texelColor; //finalColor = vec4((sin(fragTexCoord.x * 24 + seconds * 4.0) + 1.0) / 2.0, 0.5, 0.5, 1.0); } \ No newline at end of file diff --git a/lab16 with raylib/resources/color_mix.fs b/lab16 with raylib/resources/color_mix.fs new file mode 100644 index 0000000..e794d32 --- /dev/null +++ b/lab16 with raylib/resources/color_mix.fs @@ -0,0 +1,27 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec3 vertexPos; +in vec2 fragTexCoord; +in vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform sampler2D texture1; +uniform vec4 colDiffuse; + +uniform float divider = 0.5; + +out vec4 finalColor; + +void main() +{ + // Texel color fetching from texture sampler + vec4 texelColor0 = texture(texture0, fragTexCoord); + vec4 texelColor1 = texture(texture1, fragTexCoord); + + float x = fract(fragTexCoord.s); + float final = smoothstep(divider - 0.1, divider + 0.1, x); + + finalColor = mix(texelColor0, texelColor1, final); +} \ No newline at end of file diff --git a/lab16 with raylib/resources/distortnormals.png b/lab16 with raylib/resources/distortnormals.png new file mode 100644 index 0000000000000000000000000000000000000000..38127d3bc8b3816ecbcc06332f18c831ad93c479 GIT binary patch literal 403607 zcmW)n2RzjOAICr6bF#{otjHc2WzV}xW=1l~ZkeHwk#S#@tn7^JN+?2+QF4dMC_72Q z$tJl(4(GoA@9*#N;LgK?hvWPHyxy

-9~rwlqG#D#!`|IACgGXafKSeTo6h`_PAt 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ᐫ%H_U6j)DjpNvD)MJ8^ejuHba}n5Q#}e3 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 Y4PLJ)n3broxTbG2mFI%_W%F@ literal 0 HcmV?d00001 diff --git a/lab16 with raylib/resources/water.frag b/lab16 with raylib/resources/water.frag new file mode 100644 index 0000000..40aa9f1 --- /dev/null +++ b/lab16 with raylib/resources/water.frag @@ -0,0 +1,32 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec2 fragTexCoord; +in vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// Output fragment color +out vec4 finalColor; + +// Custom variables +uniform float renderWidth; +uniform float renderHeight; +uniform float seconds; +uniform float intensity; +uniform float waves; +uniform float speedV; +uniform float speedH; + +void main() +{ + vec2 texelCoord = fragTexCoord; + vec2 pixelSize = vec2(1.0 / renderWidth, 1.0 / renderHeight); + + texelCoord.x += sin(fragTexCoord.y * waves + seconds * speedV * 2.0 * 3.14) * pixelSize.x * intensity; + texelCoord.y += sin(fragTexCoord.x * waves + seconds * -speedH * 2.0 * 3.14) * pixelSize.y * intensity; + + finalColor = texture(texture0, texelCoord).rgba*colDiffuse*fragColor; +} diff --git a/lab16 with raylib/resources/waterbump.png b/lab16 with raylib/resources/waterbump.png new file mode 100644 index 0000000000000000000000000000000000000000..c19e9e9317020fffbb02ffcdf891121baa53654f GIT binary patch literal 452781 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%0APfcH=X=4dodq3pQaYw7~Swi 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 dzlb{*M6c-rN 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Ü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≤uxA`es;#RRO=n-7%#AE1kx2Jj#xAO>MZ=s2Na0}jgF8)fQmjG zMb_<@{L{ZvCZrs4>_3my(LCax>Xv&go=3lHV*2hu&n8hAp$}1xbdt13<_Hi7n7$r= zLI;W(!oEnxnBC3k3>SMAN`#B%mAW_jY=0^S)xOo+!`j+=WtndcfHd?~Xi|HGyL+tc z%1+2|uZ&JQoo(JUn-F@U@8d4KeqT(o1UC#q17GkVfKgNXU9$GS&AX!9N!_{csO9wq z`~Wz|w@^We%N6+J7vPv9P#VU+XKM)a3JPCx1b&4jo-Ht zRLnZE_iTaLewDiyc+iiiT=C~KF|76gK&%iF7J81KYi+XQHxvWje|CAw0=XnmcVzr+ zRlN4a)Mf-0AAOH?T`Trx`Q$VBLg;PQ-r5l`e>7TnD5>$us}b4VS(0&hs;Il28JMd_ z0a5hJ&;W(*cA2Gl<>YTHp8q)L3gI-_%cC$Bl8A{VSRRuLqeJ3x(1CTe8-2_yMAsfB z42V1i=oGbw!yWW4jIJBWarDMeE{D*H?F#3&AwpxCIwi8y)PMtA0KfUT~?-i zTWK*;y=0@(y5@ttm4sYLuP@#MkmetxC3NEDxuB6&yguPZZMVkYtq-_SK zyC)Zw-x%KKcOQ#?3J}LccVAy0yW(vRM}aNUEM!V0=LOV<0{~tlce2yxhwrLsc>ab1 z0E8N`C$+l(fd5?rWEdnDlA3hZ-dSlqW1b>MLC=;#p@Z^txT3+ZTxLt_g&qhf+0G87 zr9~7IFs*XUkDSg?`}s8}f0V~uI2{7oz3|C*%xHU!AfpwG;owmwz-=un_VttKosZNBxw*!DIgG$=Ka6%d6cta}4iCHD|Qd`oJtF^aG_5o80oPpfeV~dIpWd z)JH75$E(jz*C1dI<;$MQckqTn8yHZsZ%Oz#y(`UK;u~P(LI(`4Yo%W# z!Q0RKiGx7q6OVk&OEN;ig5d|d#yAVy(`e6f+|%1+SPv@63nOneetQkAmH)n3Nu5|s zmeGho)&5HH-_m&j$0s^Eq5sHS!aSvwlS;)_AF?4p$bIM70=?m_xXZD4TqObEkIi&( z-blS^tPp-a^Sxbulb5|i;8mpN<-O~=cL3)Vi+T;+JLZqB*6yDFIWDVNi>3yv3ylmq z>!Xt!QS$TpOor{fy_@F~{P-@v(80!bvB>et$n5+C)4<=WZd*+1&5*oRv_mQiP*Eyx zm1%9aRGQ~h5huv(H%>>crk^(BnIeJ~RAG9X6tJ|+*@7w5eeJCl^A zD-?)ruRj=I4SRogk%;S5<}T*Kcn*hm-R>Aqn$cC02Dc)ow<)h&;$NJQnaNNYX>klz zE%VX&dNX4HEUx+I5x;SO@h7Ix!Li6Il=+|M*H|GzCS-&+B;}K-=YMvTAU=v`n!F`m zyC+Rxu4xU@sR!g_N%^|ev5DQubN351kdr<2GIhbe#tpphYHW7I4S@R*Y4X~LQaIv0 zG84r0?m2B3V2cJo;K*Lck6J|mZ&8ru^BY~K4X^{%?HmG*>3FFs_yrYEgJ~|6p1zz8 zVJR>~2a>_30~`rC0-Y(T(&&RYGBWK9yy%ecr>HJZac3L%$%jbJn>4OJWc+*0i)1Ao&?GNa2hhH@-=%i z#mV)bIxCSeY#}Y3unzv$QORPEZvY6{&Cp#&yTLHG$u#DZjd5Y|=z2N@auS&d`+9=D zbjE^6;)QI|peLXH6NN}<)@%7GW&2(Hy?~7iKkKSN35gTZNbPIe@?&F-3qS)vJov~b zG@(IhP!Q*1nw0xAbneL=0Lb#?BpxP3n8ttiB@=zqY*=zsYN|p$Nc@9K&)+mb{ND`7 zKLO$Y{Hibb7_}aJMV~~-2z}DFIBOP2eeOdGuzW+A1AtA3O9YU_7e-pvuf_ZcK!<~c zd4(|TXyxlf5Mtvf1F=jTH9aM=`!WK?@?;oFkl6eAwiO1@7`mZlyN8@nCYVyMS^n5+pG;&2Zi}2Gc-n&A*d6jEZAxr;U@p$ns z(~+CtmYEOKi>PLgVs7JN7va7GFbKn=f-0;YbgzmA%B`2ZNy zHf@$M3JoxA$%xDlk9Xg(ZJSCYgwyyvZ$wA(g^;Mp%Lge;grnqq>xYc#6?4%o61Xy% zdu~1G9VNv^2*XTlF@@uL3qn$;!l4|rOn2o*?+l%Wgb&v3p*OB=B3@?6DWap-UTxRk zUc_+h!YDyw$13UT15p^k`KKEiWw|I@%TWs(ZXQ4tCcqQth|xVzM>+WdBjWHK65Qu0 z$4Hc-XO9F*|FqZXzU7m-DoLiZefEQp9{s--fGn^lvoX4+jPCRAe+-8!q@Mf=Dg0#^yIAOMT#lHj}TyWAh)t0AZ{zD{x*H?8Y`tH*HT44Wu=Zig;298 z3Llb-Qwlv>#Z7)2?v(Z-1gv(ARtpAaZ>AZ&D2>(k?Z=d7w%Svx9kS{rqJ6W%KK1T2i3G-G4(vlM87Q zMDJk%5`A)X_5>o`B2Lzg4ptx5@b4lq}6}QqiuV zUq$5x6=faYy<4OWQ1~0=KI0=IW%_Y@zjYy}j*=!PsA}cE9Bi7MJW0UoX}_Nrr2~8B z+I?Mx)Gle+ z{TdpqWwxY;0PhRN#aJL&NN-tBXp?pML0-LR4BT@PSLgi+X(uzF0H^80XG9>Arl#Vf z{sQo94RG+f%IWW7Ejdmf${1%&Ah^<6=|2$Rlc#{7T$QB$+;?a z6eN5fwD4qIzWrhF8*E$1`i;Z8FT7Y6dU463*yd((oB#pI4O>^(gnAv*3JNnKffUBd zd$%MaM^^l`*bZS?UY5fPy~ji_>{8F&e3ktq*#Ssr>pogpJ*KGQI#wtpIPzqbV55`d zZN2{QM?V$->F01+GrSq7m2bs~x%$%-EAySm-5|#AO+B%Xub?Kgt0G?PyQLI6BW=Oo za`i{c7dMXB&oLlL z5*SQp{Qw4hDaOqCqE(x+jh|7=buACB>xncNZ+-57ad~;q#6nZiM*905p0$a$`P#a~ zK<=vNuF!|u+@k}c2fUt7=}Hk#e&?@7cp^h%?i>(~9l>Is+br&6Y7;nMekL{wJc5U> zaOd$JtV*^e=Bp$)+zIWwX>bZ(p&1Qh+c4z394Fxj>v&rQG89r|)4*!< zuipY+5&j&6sVlLsmldaL)Z>G%?5Vqxax69cuC?AjoQUH8D;vvEUH96VRH8H20JM4D zUPI3GYh|3#JnRE5;lpjC@a2}C<}g$g7o?}}83aI{SwJ0N07(D+N7x+{I*!(nThMlB z0>G22-M^qt^-LQQ0dO0kT_cuzE3B}4>doawLD!#}%~BZmk(NjHB)rL7}leEiPobAOO zTfmn%lbG0mC*kAuVX5#!jmZ)|;IfO=fsY0_0m(u4_V=Dv5uU~M=m5k?wdx1tbY8L# zS)(-hh+goNIPzOC)XueIjH+GdUM8*1{fOFl8L;atTSh}Rm-PS-TwKfg?5ZJ9lGbFbcZBb{QCKD1#A#Ut=OF&2_*lFJ^Q9SU9ENCJsO}O z&jJDlUhuO7qW%u*e@e3$ZnBp>%O*nxsp5dA188CE>+ADuv9AYEiQpN5Oc)H9)!q`8 zk9FfEv4SKhSHGIbat{-?i3j;sjIGK?7sT(GO@Fs3$~cV9Lx3u`j7y=c%oaK_4*2`w zLlM!)X)?vx41mr?3nB*3NlgWJP+Emf3w4;PH)PN=4W}?pnwA-k!7&CpKNmd#ARdsd zJ%orD8;G}>1b}^3z#<<9Ul9)jZ8O#TN9wpKfpf5^g&c3T1wA%9=v^V8W`gl+uL_thyxl8Z{1k{=Q6P`b+ zjbo*UDn!m+L$+0pPIgmA$YAXuIc>C6~5WNbVLaL_d3JE?oKTC)pAaZ!3V zoDG-5Frs(L-z-sbA2*gCHda`T(;;ABmTv4DiWiXa*E}uy#58atE*x2mPVYar5}hnC zj1NrHkjGT}AM9)@i;Jp?P6`2$BfK5W>nm9Qjh}o3%N<@zfe<^-eZ2^f>9NEII_tryyY@3 zwLtxuBlNr3ufTKX(O~L_qjtR#5x##ZFTvksT?L5ZGRXiOv5;0sxOgDMxg!GrGSL>l zFSgCj9HRhOh1QSzGff=&gaWz@A)?n^Hl+MgoglZB9-mEg~;W3QR=y{CeyLFFu^R-p6Q={A`CIYe016!>?$CyFD#>ABi{@|&sqUsx%X z%~b5?Er%43Q$*zP=iv4<3~(dk{TPwq-l@?~{3#g`G&tHwrEd`0AFp4B7Hd;DX!GY) zF${`4(aX6`dsplSbfY*Lbj}l7E{LgHV2aVTV7^FgX&0iCm8U4w31Ru|+LR&bn)NLC zKwHC=U4{tZn}cE*0tD4LAZr#3)-7Clp>}Pb3rgsED8K9LMd>}QviY8hnHzQb}OYaUSR>^Ci|M*$QNjh=Z(A<;|p zANzU<4}ZVCHB#bDKa9N*S6Jqu+B^gm<*IDNgzQ`&bW4XZo4Vu3-E*CR8q5RgpRVk2 z04g^2Ec;CH8QB{pDm zwe&#Zr?bF;gXWrzs=Ch8o~YGYPW?6t;GwDq2^E^E}+v!#JTJT|e%~@{UL=(UGOd90G$9)3=#Fu;dbBbwme39itaKWj- zVBnQ7w6CEms0V|93BE1@)crycg{6ZSC{x6q$Q@PYv3yHN&iR{%5aA-p z{z}+2{-fuLZZpr%iCrHQOs2neW6~rv@Opdo8QMC=92u`SFjT{%J1q{mcgN?AFj5A{Thk;a_{fjs05XTX!H$$tkE24_7tgMhZQ z-k*36UFAewjdfqBD~HpK2N$}2vzL?2DWozJ{-jga`WA)YM*8I%F@dTvCgAb77JF$- z@G!fMX=pG?#VRRw?O#0rJQF+ARhG9`mN&Z%nRYl}V$|#S;IJ+ZHAszSK>%0D8r=CV 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%0DBtnlt9`gP+JCZBm}L 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�K6Stp}G%u@@L*K33KZ0KC%6 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 b?DBsDqX&NqUgR8j00000NkvXXu0mjf{#8@| literal 0 HcmV?d00001 diff --git a/lab16 with raylib/resources/watershader.frag b/lab16 with raylib/resources/watershader.frag new file mode 100644 index 0000000..7e2695a --- /dev/null +++ b/lab16 with raylib/resources/watershader.frag @@ -0,0 +1,48 @@ +#version 330 + +in vec2 fragTexCoord; // Fragment input attribute: texture coordinate +in vec4 fragColor; // Fragment input attribute: color +out vec4 finalColor; // Fragment output: color +uniform sampler2D texture0; // Fragment input texture (always required, could be a white pixel) +uniform vec4 colDiffuse; // Fragment input color diffuse (multiplied by texture color) + +// Custom variables +uniform sampler2D texture1; // water bump map +//uniform vec2 xBumpPos; +//uniform vec2 xBumpScale; +//uniform vec2 xUvOffset; + +uniform float xBlurDistance = 0.6 / 750; +uniform float xWaveWidth = 0.1; +uniform float xWaveHeight = 0.1; +uniform float seconds; + +uniform vec4 waterColor = vec4(180.0 / 255.0, 230.0 / 255.0, 255.0 / 255.0, 255.0 / 255.0); + +void main() +{ + //vec4 bumpColor = texture(xWaterBumpMap, xUvOffset + xBumpPos * xBumpScale); + //bumpColor = (bumpColor + texture(xWaterBumpMap, xUvOffset + xBumpPos*2 * xBumpScale)) * 0.5; + vec4 bumpColor = texture(texture1, fragTexCoord + sin(seconds / 2.0) / 20.0); + bumpColor = (bumpColor + texture(texture1, fragTexCoord*2 + cos(seconds / 2.0) / 20.0)) * 0.5; + + vec2 samplePos = fragTexCoord; + + samplePos.x += (bumpColor.r - 0.5) * xWaveWidth * fragColor.r; + samplePos.y += (bumpColor.g - 0.5) * xWaveHeight * fragColor.g; + + vec4 result; + result = texture(texture0, vec2(samplePos.x + xBlurDistance, samplePos.y + xBlurDistance)); + result += texture(texture0, vec2(samplePos.x - xBlurDistance, samplePos.y - xBlurDistance)); + result += texture(texture0, vec2(samplePos.x + xBlurDistance, samplePos.y - xBlurDistance)); + result += texture(texture0, vec2(samplePos.x - xBlurDistance, samplePos.y + xBlurDistance)); + + result = result * 0.25; + + //vec4 result = texture(texture0, samplePos); + + result.a = fragColor.a; + result = mix(result, result * waterColor, fragColor.b); + + finalColor = result; +} diff --git a/lab16 with raylib/resources/watershader.fx b/lab16 with raylib/resources/watershader.fx new file mode 100644 index 0000000..a8f053e --- /dev/null +++ b/lab16 with raylib/resources/watershader.fx @@ -0,0 +1,143 @@ +float xBlurDistance; + +Texture2D xWaterBumpMap; +sampler WaterBumpSampler = +sampler_state +{ + Texture = ; + MagFilter = LINEAR; + MinFilter = LINEAR; + MipFilter = LINEAR; + AddressU = WRAP; + AddressV = WRAP; +}; + +Texture2D xTexture; +sampler TextureSampler = sampler_state { Texture = ; }; + +float4x4 xTransform; +float4x4 xUvTransform; + +struct VertexShaderInput +{ + float4 Position : POSITION0; + float4 Color : COLOR0; + float2 TexCoords: TEXCOORD0; // added +}; + +struct VertexShaderOutput +{ + float4 Position : POSITION0; + float4 Color : COLOR0; + float2 TexCoords: TEXCOORD0; // added +}; + + +float xWaveWidth; +float xWaveHeight; +float2 xBumpPos; +float2 xBumpScale; + +float2 xUvOffset; + +float4 waterColor; + +VertexShaderOutput mainVS(in VertexShaderInput input) +{ + VertexShaderOutput output = (VertexShaderOutput)0; + + output.Position = mul(input.Position, xTransform); + output.Color = input.Color; + output.TexCoords = mul(input.Position, xUvTransform).xy; + + return output; +} + +float4 mainPS(VertexShaderOutput input) : COLOR +{ + float4 bumpColor = xWaterBumpMap.Sample(WaterBumpSampler, xUvOffset + (input.TexCoords+xBumpPos) * xBumpScale); + bumpColor = (bumpColor + xWaterBumpMap.Sample(WaterBumpSampler, xUvOffset + (input.TexCoords-xBumpPos*2) * xBumpScale)) * 0.5f; + + float2 samplePos = input.TexCoords; + + samplePos.x += (bumpColor.r - 0.5f) * xWaveWidth * input.Color.r; + samplePos.y += (bumpColor.g - 0.5f) * xWaveHeight * input.Color.g; + + float4 sample = xTexture.Sample(TextureSampler, samplePos); + + sample.a = input.Color.a; + sample = lerp(sample, sample * waterColor, input.Color.b); + + return sample; +} + +float4 mainPSBlurred(VertexShaderOutput input) : COLOR +{ + float4 bumpColor = xWaterBumpMap.Sample(WaterBumpSampler, xUvOffset + (input.TexCoords + xBumpPos) * xBumpScale); + bumpColor = (bumpColor + xWaterBumpMap.Sample(WaterBumpSampler, xUvOffset + (input.TexCoords - xBumpPos * 2) * xBumpScale)) * 0.5f; + + float2 samplePos = input.TexCoords; + + samplePos.x += (bumpColor.r - 0.5f) * xWaveWidth * input.Color.r; + samplePos.y += (bumpColor.g - 0.5f) * xWaveHeight * input.Color.g; + + float4 sample; + sample = xTexture.Sample(TextureSampler, float2(samplePos.x + xBlurDistance, samplePos.y + xBlurDistance)); + sample += xTexture.Sample(TextureSampler, float2(samplePos.x - xBlurDistance, samplePos.y - xBlurDistance)); + sample += xTexture.Sample(TextureSampler, float2(samplePos.x + xBlurDistance, samplePos.y - xBlurDistance)); + sample += xTexture.Sample(TextureSampler, float2(samplePos.x - xBlurDistance, samplePos.y + xBlurDistance)); + + sample = sample * 0.25; + + sample.a = input.Color.a; + sample = lerp(sample, sample * waterColor, input.Color.b); + + return sample; +} + +float4 mainPostProcess(float4 position : POSITION0, float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0 +{ + float4 bumpColor = tex2D(WaterBumpSampler, texCoord + xUvOffset + xBumpPos); + bumpColor = (bumpColor + tex2D(WaterBumpSampler, texCoord - xUvOffset * 2.0f + xBumpPos)) * 0.5f; + + float2 samplePos = texCoord; + + samplePos.x += (bumpColor.r - 0.5f) * xWaveWidth; + samplePos.y += (bumpColor.g - 0.5f) * xWaveHeight; + + float4 sample; + sample = tex2D(TextureSampler, float2(samplePos.x + xBlurDistance, samplePos.y + xBlurDistance)); + sample += tex2D(TextureSampler, float2(samplePos.x - xBlurDistance, samplePos.y - xBlurDistance)); + sample += tex2D(TextureSampler, float2(samplePos.x + xBlurDistance, samplePos.y - xBlurDistance)); + sample += tex2D(TextureSampler, float2(samplePos.x - xBlurDistance, samplePos.y + xBlurDistance)); + + sample = sample * 0.25; + + return sample; +} + +technique WaterShader +{ + pass Pass1 + { + VertexShader = compile vs_4_0_level_9_1 mainVS(); + PixelShader = compile ps_4_0_level_9_1 mainPS(); + } +} + +technique WaterShaderBlurred +{ + pass Pass1 + { + VertexShader = compile vs_4_0_level_9_1 mainVS(); + PixelShader = compile ps_4_0_level_9_1 mainPSBlurred(); + } +} + +technique WaterShaderPostProcess +{ + pass Pass1 + { + PixelShader = compile ps_4_0_level_9_1 mainPostProcess(); + } +} diff --git a/lab16 with raylib/src/main.c b/lab16 with raylib/src/main.c index 45d65a5..b7be954 100644 --- a/lab16 with raylib/src/main.c +++ b/lab16 with raylib/src/main.c @@ -24,7 +24,7 @@ #define N 15 #define HEIGHT 50 #define WIDTH 50 -#define VOFFSET 50 +#define VOFFSET 52 #define FWIDTH (float)WIDTH #define FHEIGHT (float)HEIGHT @@ -528,13 +528,39 @@ int main() //SetTextureFilter(Arial.texture, TEXTURE_FILTER_BILINEAR); RenderTexture2D canvas = LoadRenderTexture(screenWidth, screenHeight); + SetTextureFilter(canvas.texture, TEXTURE_FILTER_BILINEAR); + SetTextureWrap(canvas.texture, TEXTURE_WRAP_CLAMP); Shader blur = LoadShader(0, "blur.frag"); - int renderWidthLoc = GetShaderLocation(blur, "renderWidth"); - int renderHeightLoc = GetShaderLocation(blur, "renderHeight"); - int secondsLoc = GetShaderLocation(blur, "seconds"); - SetShaderValue(blur, renderWidthLoc, &screenWidthF, SHADER_UNIFORM_FLOAT); - SetShaderValue(blur, renderHeightLoc, &screenHeightF, SHADER_UNIFORM_FLOAT); + int blurRenderWidthLoc = GetShaderLocation(blur, "renderWidth"); + int blurRenderHeightLoc = GetShaderLocation(blur, "renderHeight"); + int blurSecondsLoc = GetShaderLocation(blur, "seconds"); + SetShaderValue(blur, blurRenderWidthLoc, &screenWidthF, SHADER_UNIFORM_FLOAT); + SetShaderValue(blur, blurRenderHeightLoc, &screenHeightF, SHADER_UNIFORM_FLOAT); + + Shader water = LoadShader(0, "water.frag"); + int waterRenderWidthLoc = GetShaderLocation(water, "renderWidth"); + int waterRenderHeightLoc = GetShaderLocation(water, "renderHeight"); + int intensityLoc = GetShaderLocation(water, "intensity"); + int wavesLoc = GetShaderLocation(water, "waves"); + int speedVLoc = GetShaderLocation(water, "speedV"); + int speedHLoc = GetShaderLocation(water, "speedH"); + int waterSecondsLoc = GetShaderLocation(water, "seconds"); + float waves = 60.0f; + float intensity = 1.0f; + float speedV = 2.0f; + float speedH = 2.0f; + SetShaderValue(water, wavesLoc, &waves, SHADER_UNIFORM_FLOAT); + SetShaderValue(water, intensityLoc, &intensity, SHADER_UNIFORM_FLOAT); + SetShaderValue(water, speedVLoc, &speedV, SHADER_UNIFORM_FLOAT); + SetShaderValue(water, speedHLoc, &speedH, SHADER_UNIFORM_FLOAT); + SetShaderValue(water, waterRenderWidthLoc, &screenWidthF, SHADER_UNIFORM_FLOAT); + SetShaderValue(water, waterRenderHeightLoc, &screenHeightF, SHADER_UNIFORM_FLOAT); + + Texture waterbump = LoadTexture("waterbump.png"); + Shader watershader = LoadShader(0, "watershader.frag"); + int xWaterBumpMapLoc = GetShaderLocation(watershader, "texture1"); + int watershaderSecondsLoc = GetShaderLocation(watershader, "seconds"); GuiSetFont(InconsolataBold); GuiSetStyle(DEFAULT, TEXT_SIZE, 24); @@ -556,6 +582,24 @@ int main() // Update game logic //------------------------------------------------------------------ + float frametime = GetFrameTime(); + + if (IsKeyPressed(KEY_I)) { + speedV -= 1.0f; + } + if (IsKeyPressed(KEY_K)) { + speedV += 1.0f; + } + if (IsKeyPressed(KEY_J)) { + speedH -= 1.0f; + } + if (IsKeyPressed(KEY_L)) { + speedH += 1.0f; + } + SetShaderValue(water, speedVLoc, &speedV, SHADER_UNIFORM_FLOAT); + SetShaderValue(water, speedHLoc, &speedH, SHADER_UNIFORM_FLOAT); + + if (errorCode == OK) { handleKeys(); @@ -590,9 +634,9 @@ int main() //------------------------------------------------------------------ BeginDrawing(); // Setup the back buffer for drawing (clear color and depth buffers) - //ClearBackground(WHITE); + //ClearBackground(BLACK); - //BeginTextureMode(canvas); + BeginTextureMode(canvas); drawMap(); drawPlayer(); @@ -627,9 +671,9 @@ int main() //drawRayguiErrorBoxes(); } - BeginTextureMode(canvas); + //BeginTextureMode(canvas); { - ClearBackground((Color) { 255, 255, 255, 0 }); + //ClearBackground((Color) { 255, 255, 255, 0 }); //ClearBackground(BLANK); Rectangle roundRect = { 100, 260, 185, 36 }; DrawRectangleRounded(roundRect, 0.5f, 6, BLACK); @@ -638,18 +682,21 @@ int main() EndTextureMode(); float timeF = (float)GetTime(); - SetShaderValue(blur, secondsLoc, &timeF, SHADER_UNIFORM_FLOAT); + SetShaderValue(blur, blurSecondsLoc, &timeF, SHADER_UNIFORM_FLOAT); + SetShaderValue(water, waterSecondsLoc, &timeF, SHADER_UNIFORM_FLOAT); + SetShaderValue(watershader, watershaderSecondsLoc, &timeF, SHADER_UNIFORM_FLOAT); - BeginShaderMode(blur); + Rectangle rec = { 0, 0, (float)canvas.texture.width, (float)(-canvas.texture.height) }; + BeginShaderMode(watershader); { - Rectangle rec = { 0, 0, canvas.texture.width, -canvas.texture.height }; + SetShaderValueTexture(watershader, xWaterBumpMapLoc, waterbump); DrawTextureRec(canvas.texture, rec, (Vector2) { 0.0f, 0.0f }, WHITE); } EndShaderMode(); //drawBottomBar(InconsolataBold, 24); - //DrawTextureEx(canvas.texture, (Vector2) { 0.0f, 0.0f }, 0.0f, 1.0f, WHITE); + //DrawTextureRec(canvas.texture, rec, (Vector2) { 0.0f, 0.0f }, SKYBLUE); //DrawTextEx(Consolas, u8"Файл не найден\nПопробуйте сначала сохранить игру", (Vector2) { 100, 100 }, 24, 0, BLACK); @@ -670,9 +717,13 @@ int main() //UnloadFont(Arial); //UnloadFont(InconsolataBold); - UnloadShader(blur); UnloadRenderTexture(canvas); + UnloadShader(blur); + UnloadShader(water); + UnloadShader(watershader); + UnloadTexture(waterbump); + // De-initialize the Nuklear GUI UnloadNuklear(ctx);