diff options
Diffstat (limited to 'QW/scitech/include/mglwin.h')
| -rw-r--r-- | QW/scitech/include/mglwin.h | 152 |
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 */ |
