aboutsummaryrefslogtreecommitdiffstats
path: root/QW/scitech/include/mglwin.h
diff options
context:
space:
mode:
Diffstat (limited to 'QW/scitech/include/mglwin.h')
-rw-r--r--QW/scitech/include/mglwin.h152
1 files changed, 152 insertions, 0 deletions
diff --git a/QW/scitech/include/mglwin.h b/QW/scitech/include/mglwin.h
new file mode 100644
index 0000000..c5b9c30
--- /dev/null
+++ b/QW/scitech/include/mglwin.h
@@ -0,0 +1,152 @@
+/****************************************************************************
+*
+* MegaGraph Graphics Library
+*
+* Copyright (C) 1996 SciTech Software.
+* All rights reserved.
+*
+* Filename: $Workfile: mglwin.h $
+* Version: $Revision: 1.14 $
+*
+* Language: ANSI C
+* Environment: IBM PC (MS DOS)
+*
+* Description: Header file for the MGLWIN bindings for MS Windows using
+* WinG in a window and WinDirect for full screen. The MGLWIN
+* binding only targets Win32 applications, so cannot be used
+* for 16 bit Windows development.
+*
+* $Date: 14 Mar 1997 16:09:34 $ $Author: KendallB $
+*
+****************************************************************************/
+
+#ifndef __MGLWIN_H
+#define __MGLWIN_H
+
+#ifndef MGLWIN
+#define MGLWIN
+#endif
+
+/*---------------------- Macros and type definitions ----------------------*/
+
+typedef HWND MGL_HWND;
+typedef HDC MGL_HDC;
+typedef HINSTANCE MGL_HINSTANCE;
+
+/*------------------------- Function Prototypes ---------------------------*/
+
+#ifdef __cplusplus
+extern "C" { /* Use "C" linkage when in C++ mode */
+#endif
+
+/* Initialise the MGL for fullscreen output */
+
+bool MGLAPI MGL_init(m_int *driver,m_int *mode,const char *mglpath);
+
+/* Initialise the MGL just for Windowed output, not full screen */
+
+bool MGLAPI MGL_initWindowed(const char *mglpath);
+
+/* Function to register a fullscreen window with the MGL. If you wish
+ * for the MGL to use your own window for fullscreen modes, you can
+ * register it with this function. Note that when the MGL goes into
+ * fullscreen modes, the attributes, size and position of the window are
+ * modified to make it into a fullscreen Window necessary to cover the
+ * entire desktop, and the state of the window will be restore to the original
+ * format on return to normal GDI mode.
+ *
+ * Note that if you are using a common window for Windowed mode and fullscreen
+ * modes of your application, you will need to ensure that certain messages
+ * that you window normally handles in windowed modes are ignored when in
+ * fullscreen modes.
+ */
+
+void MGLAPI MGL_registerFullScreenWindow(HWND hwndFullScreen);
+
+/* Function to register a fullscreen event handling window procedure.
+ * If you wish to do your own event handling, you can register your window
+ * procedure with the MGL using this function and it will be called
+ * when there are messages to be handled. You can still call the MGL_event()
+ * functions even if you have registered an event handling procedure.
+ */
+
+void MGLAPI MGL_registerEventProc(WNDPROC userWndProc);
+
+/* Change the active display mode. You must destroy all display device
+ * contexts before calling this function, and re-create them again with
+ * the new display mode. Does not affect any event handling hooks.
+ */
+
+bool MGLAPI MGL_changeDisplayMode(m_int mode);
+
+/* Obtain the handle to the MGL fullscreen window when in fullscreen modes */
+
+MGL_HWND MGLAPI MGL_getFullScreenWindow(void);
+
+/* Tell the MGL what your applications main window is */
+
+void MGLAPI MGL_setMainWindow(MGL_HWND hwnd);
+
+/* Tell the MGL your applications instance handle (call before all funcs!) */
+
+void MGLAPI MGL_setAppInstance(MGL_HINSTANCE hInstApp);
+
+/* Device context management */
+
+MGLDC * MGLAPI MGL_createDisplayDC(m_int numBuffers);
+MGLDC * MGLAPI MGL_createSrollingDC(m_int virtualX,m_int virtualY,m_int numBuffers);
+MGLDC * MGLAPI MGL_createOffscreenDC(void);
+MGLDC * MGLAPI MGL_createLinearOffscreenDC(void);
+MGLDC * MGLAPI MGL_createWindowedDC(MGL_HWND hwnd);
+MGLDC * MGLAPI MGL_createMemoryDC(m_int xSize,m_int ySize,m_int bitsPerPixel,pixel_format_t *pf);
+bool MGLAPI MGL_destroyDC(MGLDC *dc);
+
+/* Get a Windows HDC for the MGL device context. You can use this returned
+ * HDC to get GDI to draw to the device context surface, such as rendering
+ * and using TrueType fonts with the MGL. If a Windows compatible HDC is not
+ * available, this function will return NULL.
+ */
+
+HDC MGLAPI MGL_getWinDC(MGLDC *dc);
+
+/* Associate a Window manager DC with the MGLDC for painting */
+
+bool MGLAPI MGL_setWinDC(MGLDC *dc,MGL_HDC hdc);
+
+/* Activate the WindowDC's palette */
+
+bool MGLAPI MGL_activatePalette(MGLDC *dc,bool unrealize);
+
+/* Let the MGL know when your application is being activated or deactivated.
+ * This function only needs to be called when running in Windowed modes and
+ * you have set the system palette to SYSPAL_NOSTATIC mode, to ensure
+ * that the MGL can properly re-map your application palette when your
+ * app is not active and allow Windows to re-map your bitmap colors on the
+ * fly. This function should be passed a pointer to the currently active
+ * MGL Windowed DC and a flag to indicate whether the app is in the background
+ * or not.
+ */
+
+void MGLAPI MGL_appActivate(MGLDC *winDC,bool active);
+
+/* Generic helper functions */
+
+ulong MGLAPI MGL_getTicks(void);
+ulong MGLAPI MGL_getTickResolution(void);
+void MGLAPI MGL_delay(m_int millseconds);
+void MGLAPI MGL_beep(m_int freq,m_int milliseconds);
+
+/* Fullscreen specific routines */
+
+void MGLAPI MGL_setPaletteSnowLevel(MGLDC *dc,m_int level);
+m_int MGLAPI MGL_getPaletteSnowLevel(MGLDC *dc);
+
+/* Determine if a specific scancode'ed key is held down (PC specific) */
+
+bool MGLAPI EVT_isKeyDown(uchar scanCode);
+
+#ifdef __cplusplus
+} /* End of "C" linkage for C++ */
+#endif
+
+#endif /* __MGLWIN_H */