void Oval(int x,int y,int radius)
{
if(radius<0)return;
float iter = (sqrtf((float)radius * 0.5f) + 2);
float a = 0;
float da = 3.1415f / iter;
float vsin,vcos;
glBegin(GL_TRIANGLE_FAN);
while(a<2*3.1415f)
{
sgSinCos(a,vsin,vcos);
glVertex2f(x + vsin * radius,
y + vcos * radius);
a+=da;
}
glEnd();
}
__forceinline void sgSinCos(float Angle,float & SinValue,float & CosValue )
{
__asm
{
fld Angle;
fsincos;
mov eax,[CosValue];
fstp [eax];
mov eax,[SinValue];
fstp [eax];
}
}