1 /*
2  *  ReactOS RosPerf - ReactOS GUI performance test program
3  *
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, write to the Free Software
16  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17  */
18 
19 #include <windows.h>
20 #include "rosperf.h"
21 
22 void
23 LinesProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps)
24 {
25   unsigned Rep;
26   int Dest;
27   HDC Dc;
28 
29   for (Rep = 0; Rep < Reps; )
30     {
31       Dc = (Rep & 0x1000) ? PerfInfo->BackgroundDc : PerfInfo->ForegroundDc;
32 
33       for (Dest = 2; Dest < PerfInfo->WndHeight && Rep < Reps; Rep++, Dest += 2)
34         {
35           MoveToEx(Dc, 0, 0, NULL);
36           LineTo(Dc, PerfInfo->WndWidth, Dest);
37         }
38 
39       for (Dest = PerfInfo->WndWidth - 2; 0 <= Dest && Rep < Reps; Rep++, Dest -= 2)
40         {
41           MoveToEx(Dc, PerfInfo->WndWidth, 0, NULL);
42           LineTo(Dc, Dest, PerfInfo->WndHeight);
43         }
44 
45       for (Dest = PerfInfo->WndHeight - 2; 0 <= Dest && Rep < Reps; Rep++, Dest -= 2)
46         {
47           MoveToEx(Dc, PerfInfo->WndWidth, PerfInfo->WndHeight, NULL);
48           LineTo(Dc, 0, Dest);
49         }
50 
51       for (Dest = 2; Dest < PerfInfo->WndWidth && Rep < Reps; Rep++, Dest += 2)
52         {
53           MoveToEx(Dc, 0, PerfInfo->WndHeight, NULL);
54           LineTo(Dc, Dest, 0);
55         }
56     }
57 }
58 
59 void
60 LinesHorizontalProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps)
61 {
62   unsigned Rep;
63   int y;
64   HDC Dc;
65 
66   for (Rep = 0; Rep < Reps; )
67     {
68       Dc = (Rep & 0x10000) ? PerfInfo->BackgroundDc : PerfInfo->ForegroundDc;
69 
70       for (y = 0; y < PerfInfo->WndHeight && Rep < Reps; Rep++, y += 3)
71         {
72           MoveToEx(Dc, 0, y, NULL);
73           LineTo(Dc, PerfInfo->WndWidth, y);
74         }
75     }
76 }
77 
78 void
79 LinesVerticalProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps)
80 {
81   unsigned Rep;
82   int x;
83   HDC Dc;
84 
85   for (Rep = 0; Rep < Reps; )
86     {
87       Dc = (Rep & 0x1000) ? PerfInfo->BackgroundDc : PerfInfo->ForegroundDc;
88 
89       for (x = 0; x < PerfInfo->WndWidth && Rep < Reps; Rep++, x += 3)
90         {
91           MoveToEx(Dc, x, 0, NULL);
92           LineTo(Dc, x, PerfInfo->WndHeight);
93         }
94     }
95 }
96 
97 /* EOF */
98