|  |  | @ -758,7 +758,9 @@ void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color co | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | #if defined(SUPPORT_QUADS_DRAW_MODE) | 
		
	
		
			
			|  |  |  | if (rlCheckBufferLimit(16*segments/2 + 5*4)) rlglDraw(); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | rlEnableTexture(GetShapesTexture().id); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | rlBegin(RL_QUADS); | 
		
	
		
			
			|  |  |  | // Draw all of the 4 corners: [1] Upper Left Corner, [3] Upper Right Corner, [5] Lower Right Corner, [7] Lower Left Corner | 
		
	
		
			
			|  |  |  | for (int k = 0; k < 4; ++k) // Hope the compiler is smart enough to unroll this loop | 
		
	
	
		
			
				|  |  | @ -769,9 +771,13 @@ void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color co | 
		
	
		
			
			|  |  |  | for (int i = 0; i < segments/2; i++) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x, center.y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x + sinf(DEG2RAD*angle)*radius, center.y + cosf(DEG2RAD*angle)*radius); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x + sinf(DEG2RAD*(angle + stepLength))*radius, center.y + cosf(DEG2RAD*(angle + stepLength))*radius); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x + sinf(DEG2RAD*(angle + stepLength*2))*radius, center.y + cosf(DEG2RAD*(angle + stepLength*2))*radius); | 
		
	
		
			
			|  |  |  | angle += (stepLength*2); | 
		
	
		
			
			|  |  |  | } | 
		
	
	
		
			
				|  |  | @ -779,49 +785,74 @@ void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color co | 
		
	
		
			
			|  |  |  | if (segments%2) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x, center.y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x + sinf(DEG2RAD*angle)*radius, center.y + cosf(DEG2RAD*angle)*radius); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x + sinf(DEG2RAD*(angle + stepLength))*radius, center.y + cosf(DEG2RAD*(angle + stepLength))*radius); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x, center.y); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // [2] Upper Rectangle | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[0].x, point[0].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[8].x, point[8].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[9].x, point[9].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[1].x, point[1].y); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // [4] Right Rectangle | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[2].x, point[2].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[9].x, point[9].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[10].x, point[10].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[3].x, point[3].y); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // [6] Bottom Rectangle | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[11].x, point[11].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[5].x, point[5].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[4].x, point[4].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[10].x, point[10].y); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // [8] Left Rectangle | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[7].x, point[7].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[6].x, point[6].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[11].x, point[11].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[8].x, point[8].y); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // [9] Middle Rectangle | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[8].x, point[8].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[11].x, point[11].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[10].x, point[10].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[9].x, point[9].y); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | rlEnd(); | 
		
	
		
			
			|  |  |  | rlDisableTexture(); | 
		
	
		
			
			|  |  |  | #else | 
		
	
		
			
			|  |  |  | if (rlCheckBufferLimit(12*segments + 5*6)) rlglDraw(); // 4 corners with 3 vertices per segment + 5 rectangles with 6 vertices each | 
		
	
		
			
			|  |  |  |  | 
		
	
	
		
			
				|  |  | @ -960,7 +991,9 @@ void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, int | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | #if defined(SUPPORT_QUADS_DRAW_MODE) | 
		
	
		
			
			|  |  |  | if (rlCheckBufferLimit(4*4*segments + 4*4)) rlglDraw(); // 4 corners with 4 vertices for each segment + 4 rectangles with 4 vertices each | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | rlEnableTexture(GetShapesTexture().id); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | rlBegin(RL_QUADS); | 
		
	
		
			
			|  |  |  | // Draw all of the 4 corners first: Upper Left Corner, Upper Right Corner, Lower Right Corner, Lower Left Corner | 
		
	
		
			
			|  |  |  | for (int k = 0; k < 4; ++k) // Hope the compiler is smart enough to unroll this loop | 
		
	
	
		
			
				|  |  | @ -970,9 +1003,13 @@ void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, int | 
		
	
		
			
			|  |  |  | for (int i = 0; i < segments; i++) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x + sinf(DEG2RAD*angle)*innerRadius, center.y + cosf(DEG2RAD*angle)*innerRadius); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x + sinf(DEG2RAD*angle)*outerRadius, center.y + cosf(DEG2RAD*angle)*outerRadius); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x + sinf(DEG2RAD*(angle + stepLength))*outerRadius, center.y + cosf(DEG2RAD*(angle + stepLength))*outerRadius); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(center.x + sinf(DEG2RAD*(angle + stepLength))*innerRadius, center.y + cosf(DEG2RAD*(angle + stepLength))*innerRadius); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | angle += stepLength; | 
		
	
	
		
			
				|  |  | @ -981,33 +1018,50 @@ void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, int | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Upper rectangle | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[0].x, point[0].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[8].x, point[8].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[9].x, point[9].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[1].x, point[1].y); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Right rectangle | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[2].x, point[2].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[10].x, point[10].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[11].x, point[11].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[3].x, point[3].y); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Lower rectangle | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[13].x, point[13].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[5].x, point[5].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[4].x, point[4].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[12].x, point[12].y); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Left rectangle | 
		
	
		
			
			|  |  |  | rlColor4ub(color.r, color.g, color.b, color.a); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[15].x, point[15].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[7].x, point[7].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[6].x, point[6].y); | 
		
	
		
			
			|  |  |  | rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); | 
		
	
		
			
			|  |  |  | rlVertex2f(point[14].x, point[14].y); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | rlEnd(); | 
		
	
		
			
			|  |  |  | rlDisableTexture(); | 
		
	
		
			
			|  |  |  | #else | 
		
	
		
			
			|  |  |  | if (rlCheckBufferLimit(4*6*segments + 4*6)) rlglDraw(); // 4 corners with 6(2*3) vertices for each segment + 4 rectangles with 6 vertices each | 
		
	
		
			
			|  |  |  |  | 
		
	
	
		
			
				|  |  |  |