windows-nt/Source/XPSP1/NT/multimedia/opengl/test/profiler/skeltest.h
2020-09-26 16:20:57 +08:00

87 lines
2.5 KiB
C++

#ifndef PROFILETEST_H
#define PROFILETEST_H
// without windows.h, gl/gl.h causes errors.
// without gl/gl.h, test.h causes errors.
// technically, you should have both of these includes in your .c file...
#include <windows.h>
#include <commctrl.h>
#include <gl/gl.h>
#include "buffers.h"
#define MAXNAMELENGTH 32
#define MAXSTATLENGTH 32
#define MAXABOUTLENGTH 128
#define MAXTYPELENGTH 32
#define TOTALVERLENGTH 256
typedef struct {
char acDummy1[16];
// General stuff
int iX,iY,iH,iW; // window position and size
BOOL swapbuffers; // Double buffered?
char acName[MAXNAMELENGTH]; // name of test
char acAbout[MAXABOUTLENGTH]; // a discription of the test
char acTestStatName[MAXSTATLENGTH]; // statistic to be tested
int iDuration; // duration (ms) of test
double dResult;
char acDummy2[16];
} TESTDATA;
#define CNFGFUNCTION() cnfgfunct(HWND hwndParent)
#define INITFUNCTION() initfunct(GLsizei w, GLsizei h)
#define IDLEFUNCTION() idlefunct(void)
#define RENDFUNCTION() rendfunct(void)
#define DESTFUNCTION() destfunct(void)
class SkeletonTest {
public:
SkeletonTest();
~SkeletonTest(void) {};
virtual BOOL CNFGFUNCTION(); // if an error occurred FALSE else TRUE
virtual void INITFUNCTION() {}; // called once, when creating window
virtual void IDLEFUNCTION() {}; // the idle function
virtual void RENDFUNCTION() {}; // the rendering function (WM_PAINT)
virtual void DESTFUNCTION() {}; // called once, when destroying window
virtual void ReadExtraData(char *) {};
void SetThisType(const char *szType);
void SetThisVersion(const char *szVer);
void AddPropertyPages(int, PROPSHEETPAGE*);
void Rename(char *szNew) { sprintf(td.acName,"%s",szNew); };
// I want to get ride of these functions soon, as the should be redundant
virtual void SaveData();
virtual void RestoreSaved();
virtual void ForgetSaved();
virtual int Save(HANDLE hFile);
virtual int Load(HANDLE hFile);
const char *QueryName() { return td.acName; };
const char *QueryType() { return szTypeName; };
const char *QueryVersion() { return szVersion; };
TESTDATA td;
protected:
BUFFERDATA bd;
friend void SetDCPixelFormat(HDC hDC);
private:
char szTypeName[MAXTYPELENGTH];
char szVersion[TOTALVERLENGTH];
PROPSHEETPAGE *aPSpages;
int iNumConfigPages;
};
#endif // PROFILETEST_H