summaryrefslogtreecommitdiff
path: root/src/gx.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gx.h')
-rw-r--r--src/gx.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/gx.h b/src/gx.h
new file mode 100644
index 0000000..0547d30
--- /dev/null
+++ b/src/gx.h
@@ -0,0 +1,83 @@
+
+// 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();
+//The following two lines modified by Dan East to make this header C compatible:
+//Added "struct" to the following two prototypes:
+GXDLL_API struct GXDisplayProperties GXGetDisplayProperties();
+GXDLL_API struct 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
+