You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.6 KiB
C
82 lines
2.6 KiB
C
|
|
// The following ifdef block is the standard way of creating macros which make exporting
|
|
// from a DLL simpler. All files within this DLL are compiled with the GXDLL_EXPORTS
|
|
// symbol defined on the command line. this symbol should not be defined on any project
|
|
// that uses this DLL. This way any other project whose source files include this file see
|
|
// GXDLL_API functions as being imported from a DLL, wheras this DLL sees symbols
|
|
// defined with this macro as being exported.
|
|
|
|
#ifdef GXDLL_EXPORTS
|
|
#define GXDLL_API __declspec(dllexport)
|
|
#else
|
|
#define GXDLL_API __declspec(dllimport)
|
|
#endif
|
|
|
|
struct GXDisplayProperties {
|
|
DWORD cxWidth;
|
|
DWORD cyHeight; // notice lack of 'th' in the word height.
|
|
long cbxPitch; // number of bytes to move right one x pixel - can be negative.
|
|
long cbyPitch; // number of bytes to move down one y pixel - can be negative.
|
|
long cBPP; // # of bits in each pixel
|
|
DWORD ffFormat; // format flags.
|
|
};
|
|
|
|
struct GXKeyList {
|
|
short vkUp; // key for up
|
|
POINT ptUp; // x,y position of key/button. Not on screen but in screen coordinates.
|
|
short vkDown;
|
|
POINT ptDown;
|
|
short vkLeft;
|
|
POINT ptLeft;
|
|
short vkRight;
|
|
POINT ptRight;
|
|
short vkA;
|
|
POINT ptA;
|
|
short vkB;
|
|
POINT ptB;
|
|
short vkC;
|
|
POINT ptC;
|
|
short vkStart;
|
|
POINT ptStart;
|
|
};
|
|
|
|
struct GXScreenRect {
|
|
DWORD dwTop;
|
|
DWORD dwLeft;
|
|
DWORD dwWidth;
|
|
DWORD dwHeight;
|
|
};
|
|
|
|
GXDLL_API int GXOpenDisplay(HWND hWnd, DWORD dwFlags);
|
|
GXDLL_API int GXCloseDisplay();
|
|
GXDLL_API void * GXBeginDraw();
|
|
GXDLL_API int GXEndDraw();
|
|
GXDLL_API int GXOpenInput();
|
|
GXDLL_API int GXCloseInput();
|
|
GXDLL_API GXDisplayProperties GXGetDisplayProperties();
|
|
GXDLL_API GXKeyList GXGetDefaultKeys(int iOptions);
|
|
GXDLL_API int GXSuspend();
|
|
GXDLL_API int GXResume();
|
|
GXDLL_API int GXSetViewport( DWORD dwTop, DWORD dwHeight, DWORD dwReserved1, DWORD dwReserved2 );
|
|
GXDLL_API BOOL GXIsDisplayDRAMBuffer();
|
|
|
|
|
|
// Although these flags can be unrelated they still
|
|
// have unique values.
|
|
|
|
#define GX_FULLSCREEN 0x01 // for OpenDisplay()
|
|
#define GX_NORMALKEYS 0x02
|
|
#define GX_LANDSCAPEKEYS 0x03
|
|
|
|
#ifndef kfLandscape
|
|
#define kfLandscape 0x8 // Screen is rotated 270 degrees
|
|
#define kfPalette 0x10 // Pixel values are indexes into a palette
|
|
#define kfDirect 0x20 // Pixel values contain actual level information
|
|
#define kfDirect555 0x40 // 5 bits each for red, green and blue values in a pixel.
|
|
#define kfDirect565 0x80 // 5 red bits, 6 green bits and 5 blue bits per pixel
|
|
#define kfDirect888 0x100 // 8 bits each for red, green and blue values in a pixel.
|
|
#define kfDirect444 0x200 // 4 red, 4 green, 4 blue
|
|
#define kfDirectInverted 0x400
|
|
#endif
|
|
|