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 #ifndef ROSPERF_H_INCLUDED 20 #define ROSPERF_H_INCLUDED 21 22 typedef struct tagPERF_INFO 23 { 24 HWND Wnd; 25 unsigned Seconds; 26 unsigned Repeats; 27 COLORREF ForegroundColor; 28 COLORREF BackgroundColor; 29 HDC ForegroundDc; 30 HDC BackgroundDc; 31 INT WndWidth; 32 INT WndHeight; 33 } PERF_INFO, *PPERF_INFO; 34 35 typedef unsigned (*INITTESTPROC)(void **Context, PPERF_INFO PerfInfo, unsigned Reps); 36 typedef void (*TESTPROC)(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 37 typedef void (*CLEANUPTESTPROC)(void *Context, PPERF_INFO PerfInfo); 38 39 typedef struct tagTEST 40 { 41 LPCWSTR Option; 42 LPCWSTR Label; 43 INITTESTPROC Init; 44 TESTPROC Proc; 45 CLEANUPTESTPROC PassCleanup; 46 CLEANUPTESTPROC Cleanup; 47 } TEST, *PTEST; 48 49 void GetTests(unsigned *TestCount, PTEST *Tests); 50 51 /* Tests */ 52 unsigned NullInit(void **Context, PPERF_INFO PerfInfo, unsigned Reps); 53 void NullCleanup(void *Context, PPERF_INFO PerfInfo); 54 55 void FillProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 56 void FillSmallProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 57 58 void LinesHorizontalProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 59 void LinesVerticalProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 60 void LinesProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 61 62 void TextProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 63 64 unsigned AlphaBlendInit(void **Context, PPERF_INFO PerfInfo, unsigned Reps); 65 void AlphaBlendCleanup(void *Context, PPERF_INFO PerfInfo); 66 void AlphaBlendProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 67 68 void GradientHorizontalProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 69 void GradientVerticalProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 70 void GradientProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 71 72 void ScrollProc(void *Context, PPERF_INFO PerfInfo, unsigned Reps); 73 74 #endif /* ROSPERF_H_INCLUDED */ 75 76 /* EOF */ 77