I'm implementing some controls for my GUI system, and now its time to do a RadioButton class, whereas I'll not using textures, but pure primitive shapes.
Its very simple: what I'll do is render a unfilled external circle and if RadioButton is clicked/checked, will be rendered a filled one inside.
Since Triangle Fan is marked as deprecated for D3D10+, can achieve it using Triangle Strips?
Model circle;
float position_x = 50;
float position_y = 350;
float radius_x = 30;
float radius_y = 30;
const int degrees = 360;
const float degrees_to_radians = 3.14159265f / 180.0f;
circle.ResizeVertices(degrees);
//Direct3D Triangle Strip
//circle.SetPrimitiveType(TriangleStrip);
//Direct3D Line Strip
circle.SetPrimitiveType(LineStrip);
circle.SetPrimitiveCount(circle.GetVertexTotal() - 1);
for (int i = 0; i < degrees; i++)
{
const float rad = i * degrees_to_radians;
circle.SetVertexPosition(i,position_x + (cos(rad) * radius_x),position_y + (sin(rad) * radius_y));
circle.SetVertexColor(i,Color::Black);
}
Using LineStrip top result and TriangleStrip bottom result: