| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -589,6 +589,7 @@ RLAPI Texture2D GenTextureBRDF(Shader shader, int size);                  // Gen | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void BeginShaderMode(Shader shader);              // Begin custom shader drawing | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void EndShaderMode(void);                         // End custom shader drawing (use default shader) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void BeginBlendMode(int mode);                    // Begin blending mode (alpha, additive, multiplied) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void BeginBlendModeEx(int sFactor, int dFactor, int equation);    // Begin blending mode (full options) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			RLAPI void EndBlendMode(void);                          // End blending mode (reset to default: alpha blending) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// VR control functions | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -3608,26 +3609,40 @@ Texture2D GenTextureBRDF(Shader shader, int size) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return brdf; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void BeginBlendModeEx(int sFactor, int dFactor, int equation) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    static int glSFactor = 0;   // Track current blending mode | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    static int glDFactor = 0;   // Track current blending mode | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    static int glEquation = 0;   // Track current blending mode | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (glSFactor != sFactor || glDFactor != dFactor || glEquation != equation) { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        rlglDraw(); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glBlendFunc(sFactor, dFactor); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glBlendEquation(equation); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glSFactor = sFactor; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glDFactor = dFactor; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        glEquation = equation; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Begin blending mode (alpha, additive, multiplied) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// NOTE: Only 3 blending modes supported, default blend mode is alpha | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void BeginBlendMode(int mode) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    static int blendMode = 0;   // Track current blending mode | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if ((blendMode != mode) && (mode < 4)) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (mode < 5) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        rlglDraw(); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        switch (mode) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case BLEND_ALPHA: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case BLEND_ADDITIVE: glBlendFunc(GL_SRC_ALPHA, GL_ONE); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case BLEND_MULTIPLIED: glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case BLEND_ADD_COLORS: glBlendFunc(GL_ONE, GL_ONE); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            default: break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case BLEND_ALPHA: BeginBlendModeEx(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_FUNC_ADD); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case BLEND_ADDITIVE: BeginBlendModeEx(GL_SRC_ALPHA, GL_ONE, GL_FUNC_ADD); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case BLEND_MULTIPLIED: BeginBlendModeEx(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA, GL_FUNC_ADD); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case BLEND_ADD_COLORS: BeginBlendModeEx(GL_ONE, GL_ONE, GL_FUNC_ADD); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        case BLEND_SUBTRACT_COLORS: BeginBlendModeEx(GL_ONE, GL_ONE, GL_FUNC_SUBTRACT); break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        default: break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        blendMode = mode; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |