rendered paste bodyvoid InvertFill(const SeedStack & points, const S_RGBA & color)
{
S_Point bodA;
S_Point bodB;
char invert=0;
float deltax=0,deltay=0,pomocnyx=0,rust=0;
unsigned int i=0;
//nulovani masky
if(fill_buffer != NULL)
for(int i=0;i!=frame_w*frame_h;i++)
fill_buffer[i]=0;
//pruchod body
for (i=0;i<points.size();i++)
{
bodA=points[i];
bodB=points[(i+1)%points.size()];
if(bodA.y<bodB.y)
{
SWAP(bodA.x, bodB.x);
SWAP(bodA.y, bodB.y);
}
deltax=(float)bodA.x-(float)bodB.x;
// mozna jeste obratit aby nebyl zaporny
deltay=(float)bodA.y-(float)bodB.y;
rust=deltax/deltay;
pomocnyx=bodA.x-rust;
for(int y=bodA.y;y>bodB.y;y--)
{
pomocnyx+=rust;
int sazenix=ROUND(pomocnyx);
while(sazenix<=frame_w)
{
invert=fill_buffer[sazenix+(y-1)*frame_w];
if (invert==0)
fill_buffer[sazenix+(y-1)*frame_w]=1;
else
fill_buffer[sazenix+(y-1)*frame_w]=0;
sazenix++;
}
}
}
for(int i=0;i!=frame_w*frame_h;i++)
{
if(fill_buffer[i]==1)
{
PutPixel(i%frame_w,i/frame_w,color);
}
}
}