1 typedef struct _RenderInfo RenderInfo;
2 struct _RenderInfo
3 {
4     int y;
5     float scaley;
6     int src_y;
7 };
8 
bar(void)9 static void bar(void) { }
10 
11 static int
render_image_rgb_a(RenderInfo * info)12 render_image_rgb_a (RenderInfo * info)
13 {
14   int y, ye;
15   float error;
16   float step;
17 
18   y = info->y;
19   ye = 256;
20 
21   step = 1.0 / info->scaley;
22 
23   error = y * step;
24   error -= ((int) error) - step;
25 
26   for (; y < ye; y++) {
27       if (error >= 1.0) {
28 	  info->src_y += (int) error;
29 	  error -= (int) error;
30 	  bar();
31       }
32       error += step;
33   }
34   return info->src_y;
35 }
36 
main(void)37 int main (void)
38 {
39     RenderInfo info;
40 
41     info.y = 0;
42     info.src_y = 0;
43     info.scaley = 1.0;
44 
45     if (render_image_rgb_a(&info) != 256)
46        abort ();
47     exit(0);
48 }
49