@ -1456,11 +1456,23 @@ void rlDeleteTextures(unsigned int id)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			void  rlDeleteRenderTextures ( RenderTexture2D  target )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(SUPPORT_RENDER_TEXTURES_HINT)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( target . texture . id  >  0 )  glDeleteTextures ( 1 ,  & target . texture . id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( target . texture . id  >  0 )    
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        glFramebufferTexture2D ( GL_FRAMEBUFFER ,  GL_COLOR_ATTACHMENT0 ,  GL_TEXTURE_2D ,  0 ,  0 ) ;   / /  Detach  texture  from  FBO   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        glDeleteTextures ( 1 ,  & target . texture . id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( target . depth . id  >  0 )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( target . depthTexture )  glDeleteTextures ( 1 ,  & target . depth . id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        else  glDeleteRenderbuffers ( 1 ,  & target . depth . id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( target . depthTexture )    
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            glFramebufferTexture2D ( GL_FRAMEBUFFER ,  GL_DEPTH_ATTACHMENT ,  GL_TEXTURE_2D ,  0 ,  0 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            glDeleteTextures ( 1 ,  & target . depth . id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        else    
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            glFramebufferRenderbuffer ( GL_FRAMEBUFFER ,  GL_DEPTH_ATTACHMENT ,  GL_RENDERBUFFER ,  0 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            glDeleteRenderbuffers ( 1 ,  & target . depth . id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( target . id  >  0 )  glDeleteFramebuffers ( 1 ,  & target . id ) ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -1483,8 +1495,12 @@ void rlDeleteVertexArrays(unsigned int id)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( RLGL . ExtSupported . vao )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( id  ! =  0 )  glDeleteVertexArrays ( 1 ,  & id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        TRACELOG ( LOG_INFO ,  " VAO: [ID %i] Unloaded vertex data from VRAM (GPU) " ,  id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( id  ! =  0 )    
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            glBindVertexArray ( 0 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            glDeleteVertexArrays ( 1 ,  & id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            TRACELOG ( LOG_INFO ,  " VAO: [ID %i] Unloaded vertex data from VRAM (GPU) " ,  id ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3094,8 +3110,18 @@ Shader LoadShaderCode(const char *vsCode, const char *fsCode)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        shader . id  =  LoadShaderProgram ( vertexShaderId ,  fragmentShaderId ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( vertexShaderId  ! =  RLGL . State . defaultVShaderId )  glDeleteShader ( vertexShaderId ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( fragmentShaderId  ! =  RLGL . State . defaultFShaderId )  glDeleteShader ( fragmentShaderId ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( vertexShaderId  ! =  RLGL . State . defaultVShaderId )    
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / /  Detach  shader  before  deletion  to  make  sure  memory  is  freed   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            glDetachShader ( shader . id ,  vertexShaderId ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            glDeleteShader ( vertexShaderId ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( fragmentShaderId  ! =  RLGL . State . defaultFShaderId )    
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / /  Detach  shader  before  deletion  to  make  sure  memory  is  freed   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            glDetachShader ( shader . id ,  fragmentShaderId ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            glDeleteShader ( fragmentShaderId ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( shader . id  = =  0 )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {