| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -413,7 +413,8 @@ typedef enum { | 
															
														
														
													
														
															
																 | 
																 | 
																    RL_BLEND_ADD_COLORS,                // Blend textures adding colors (alternative) | 
																 | 
																 | 
																    RL_BLEND_ADD_COLORS,                // Blend textures adding colors (alternative) | 
															
														
														
													
														
															
																 | 
																 | 
																    RL_BLEND_SUBTRACT_COLORS,           // Blend textures subtracting colors (alternative) | 
																 | 
																 | 
																    RL_BLEND_SUBTRACT_COLORS,           // Blend textures subtracting colors (alternative) | 
															
														
														
													
														
															
																 | 
																 | 
																    RL_BLEND_ALPHA_PREMULTIPLY,         // Blend premultiplied textures considering alpha | 
																 | 
																 | 
																    RL_BLEND_ALPHA_PREMULTIPLY,         // Blend premultiplied textures considering alpha | 
															
														
														
													
														
															
																 | 
																 | 
																    RL_BLEND_CUSTOM                     // Blend textures using custom src/dst factors (use rlSetBlendFactors()) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    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; | 
																 | 
																 | 
																} rlBlendMode; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																// Shader location point type | 
																 | 
																 | 
																// Shader location point type | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -595,6 +596,7 @@ RLAPI void rlClearScreenBuffers(void);                  // Clear used screen buf | 
															
														
														
													
														
															
																 | 
																 | 
																RLAPI void rlCheckErrors(void);                         // Check and log OpenGL error codes | 
																 | 
																 | 
																RLAPI void rlCheckErrors(void);                         // Check and log OpenGL error codes | 
															
														
														
													
														
															
																 | 
																 | 
																RLAPI void rlSetBlendMode(int mode);                    // Set blending mode | 
																 | 
																 | 
																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 rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation); // Set blending mode factor and equation (using OpenGL factors) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																RLAPI void rlSetBlendFactorsSeparate(int srgb, int drgb, int salpha, int dalpha, int ergb, int ealpha); // Set blending mode factors and equations separately (using OpenGL factors) | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																//------------------------------------------------------------------------------------ | 
																 | 
																 | 
																//------------------------------------------------------------------------------------ | 
															
														
														
													
														
															
																 | 
																 | 
																// Functions Declaration - rlgl functionality | 
																 | 
																 | 
																// Functions Declaration - rlgl functionality | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -930,6 +932,13 @@ typedef struct rlglData { | 
															
														
														
													
														
															
																 | 
																 | 
																        int glBlendSrcFactor;               // Blending source factor | 
																 | 
																 | 
																        int glBlendSrcFactor;               // Blending source factor | 
															
														
														
													
														
															
																 | 
																 | 
																        int glBlendDstFactor;               // Blending destination factor | 
																 | 
																 | 
																        int glBlendDstFactor;               // Blending destination factor | 
															
														
														
													
														
															
																 | 
																 | 
																        int glBlendEquation;                // Blending equation | 
																 | 
																 | 
																        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 framebufferWidth;               // Current framebuffer width | 
															
														
														
													
														
															
																 | 
																 | 
																        int framebufferHeight;              // Current framebuffer height | 
																 | 
																 | 
																        int framebufferHeight;              // Current framebuffer height | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1788,7 +1797,7 @@ void rlCheckErrors() | 
															
														
														
													
														
															
																 | 
																 | 
																void rlSetBlendMode(int mode) | 
																 | 
																 | 
																void rlSetBlendMode(int mode) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) | 
																 | 
																 | 
																#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) | 
															
														
														
													
														
															
																 | 
																 | 
																    if (RLGL.State.currentBlendMode != mode) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if (RLGL.State.currentBlendMode != mode || ((mode == RL_BLEND_CUSTOM || mode == RL_BLEND_CUSTOM_SEPARATE) && RLGL.State.glCustomBlendModeModified)) | 
															
														
														
													
														
															
																 | 
																 | 
																    { | 
																 | 
																 | 
																    { | 
															
														
														
													
														
															
																 | 
																 | 
																        rlDrawRenderBatch(RLGL.currentBatch); | 
																 | 
																 | 
																        rlDrawRenderBatch(RLGL.currentBatch); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -1805,21 +1814,52 @@ void rlSetBlendMode(int mode) | 
															
														
														
													
														
															
																 | 
																 | 
																                // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() | 
																 | 
																 | 
																                // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() | 
															
														
														
													
														
															
																 | 
																 | 
																                glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); | 
																 | 
																 | 
																                glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); | 
															
														
														
													
														
															
																 | 
																 | 
																            } break; | 
																 | 
																 | 
																            } 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; | 
																 | 
																 | 
																            default: break; | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																        RLGL.State.currentBlendMode = mode; | 
																 | 
																 | 
																        RLGL.State.currentBlendMode = mode; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        RLGL.State.glCustomBlendModeModified = false; | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																#endif | 
																 | 
																 | 
																#endif | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																// Set blending mode factor and equation used by glBlendFuncSeparate and glBlendEquationSeparate | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																void rlSetBlendFactorsSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha, int modeRGB, int modeAlpha) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if (RLGL.State.glBlendSrcFactorRGB == srcRGB | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        && RLGL.State.glBlendDestFactorRGB == dstRGB | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        && RLGL.State.glBlendSrcFactorAlpha == srcAlpha | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        && RLGL.State.glBlendDestFactorAlpha == destAlpha | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        && RLGL.State.glBlendEquationRGB == modeRGB | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        && RLGL.State.glBlendEquationAlpha == modeAlpha) return; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    RLGL.State.glBlendSrcFactorRGB = srcRGB; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    RLGL.State.glBlendDestFactorRGB = destRGB; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    RLGL.State.glBlendSrcFactorAlpha = srcAlpha; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    RLGL.State.glBlendDestFactorAlpha = dstAlpha; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    RLGL.State.glBlendEquationRGB = modeRGB; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    RLGL.State.glBlendEquationAlpha = modeAlpha; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    RLGL.State.glCustomBlendModeModified = true; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#endif | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																// Set blending mode factor and equation | 
																 | 
																 | 
																// Set blending mode factor and equation | 
															
														
														
													
														
															
																 | 
																 | 
																void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) | 
																 | 
																 | 
																void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) | 
																 | 
																 | 
																#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if (RLGL.State.glBlendSrcFactor == glSrcFactor | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        && RLGL.State.glBlendDstFactor == glDstFactor | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        && RLGL.State.glBlendEquation == glEquation) return; | 
															
														
														
													
														
															
																 | 
																 | 
																    RLGL.State.glBlendSrcFactor = glSrcFactor; | 
																 | 
																 | 
																    RLGL.State.glBlendSrcFactor = glSrcFactor; | 
															
														
														
													
														
															
																 | 
																 | 
																    RLGL.State.glBlendDstFactor = glDstFactor; | 
																 | 
																 | 
																    RLGL.State.glBlendDstFactor = glDstFactor; | 
															
														
														
													
														
															
																 | 
																 | 
																    RLGL.State.glBlendEquation = glEquation; | 
																 | 
																 | 
																    RLGL.State.glBlendEquation = glEquation; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    RLGL.State.glCustomBlendModeModified = true; | 
															
														
														
													
														
															
																 | 
																 | 
																#endif | 
																 | 
																 | 
																#endif | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1969,6 +2009,9 @@ void rlglInit(int width, int height) | 
															
														
														
													
														
															
																 | 
																 | 
																    //---------------------------------------------------------- | 
																 | 
																 | 
																    //---------------------------------------------------------- | 
															
														
														
													
														
															
																 | 
																 | 
																#endif | 
																 | 
																 | 
																#endif | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    // Init state: custom blend factor and equation modification flag | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    RLGL.State.glCustomBlendModeModified = false; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    // Init state: Color/Depth buffers clear | 
																 | 
																 | 
																    // Init state: Color/Depth buffers clear | 
															
														
														
													
														
															
																 | 
																 | 
																    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);                   // Set clear color (black) | 
																 | 
																 | 
																    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);                   // Set clear color (black) | 
															
														
														
													
														
															
																 | 
																 | 
																    glClearDepth(1.0f);                                     // Set clear depth value (default) | 
																 | 
																 | 
																    glClearDepth(1.0f);                                     // Set clear depth value (default) | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
 |