| 
				
				
				
				 | 
			
			 | 
			
			@ -1,6 +1,6 @@ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			/******************************************************************************************* | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			* | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			*   raylib [shaders] example - Rounded Rectangle | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			*   raylib [shaders] example - rounded rectangle | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			* | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			*   Example complexity rating: [★★★☆] 3/4 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			* | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -24,9 +24,8 @@ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//------------------------------------------------------------------------------------ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Declare custom Structs | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Structs definition | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//------------------------------------------------------------------------------------ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Rounded rectangle data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			typedef struct { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    Vector4 cornerRadius; // Individual corner radius (top-left, top-right, bottom-left, bottom-right) | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -54,7 +53,6 @@ typedef struct { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//------------------------------------------------------------------------------------ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Module Functions Declaration | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//------------------------------------------------------------------------------------ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Create a rounded rectangle and set uniform locations | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static RoundedRectangle CreateRoundedRectangle(Vector4 cornerRadius, float shadowRadius, Vector2 shadowOffset, float shadowScale, float borderThickness, Shader shader); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -71,11 +69,7 @@ int main(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    const int screenWidth = 800; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    const int screenHeight = 450; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    const Color rectangleColor = BLUE; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    const Color shadowColor = DARKBLUE; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    const Color borderColor = SKYBLUE; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    InitWindow(screenWidth, screenHeight, "raylib [shaders] example - Rounded Rectangle"); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    InitWindow(screenWidth, screenHeight, "raylib [shaders] example - rounded rectangle"); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // Load the shader | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    Shader shader = LoadShader(TextFormat("resources/shaders/glsl%i/base.vs", GLSL_VERSION), | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -94,6 +88,10 @@ int main(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // Update shader uniforms | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    UpdateRoundedRectangle(roundedRectangle, shader); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    const Color rectangleColor = BLUE; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    const Color shadowColor = DARKBLUE; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    const Color borderColor = SKYBLUE; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    SetTargetFPS(60); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    //-------------------------------------------------------------------------------------- | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -124,8 +122,6 @@ int main(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                DrawRectangle(0, 0, screenWidth, screenHeight, WHITE); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            EndShaderMode(); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            // Draw rectangle shadow using shader | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            rec = (Rectangle){ 50, 200, 110, 60 }; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            DrawRectangleLines((int)rec.x - 20, (int)rec.y - 20, (int)rec.width + 40, (int)rec.height + 40, DARKGRAY); | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -143,8 +139,6 @@ int main(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                DrawRectangle(0, 0, screenWidth, screenHeight, WHITE); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            EndShaderMode(); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            // Draw rectangle's border using shader | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            rec = (Rectangle){ 50, 330, 110, 60 }; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            DrawRectangleLines((int)rec.x - 20, (int)rec.y - 20, (int)rec.width + 40, (int)rec.height + 40, DARKGRAY); | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -162,8 +156,6 @@ int main(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                DrawRectangle(0, 0, screenWidth, screenHeight, WHITE); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            EndShaderMode(); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            // Draw one more rectangle with all three colors | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            rec = (Rectangle){ 240, 80, 500, 300 }; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            DrawRectangleLines((int)rec.x - 30, (int)rec.y - 30, (int)rec.width + 60, (int)rec.height + 60, DARKGRAY); | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |