/* Environment detection and initialization */

MGL_addCustomMode
MGL_availablePages
MGL_disableDriver
MGL_enableAllDrivers
MGL_enableOpenGLDrivers
MGL_errorMsg
MGL_exit
MGL_fatalError
MGL_findMode
MGL_init
MGL_modeDriverName
MGL_modeFlags
MGL_modeResolution
MGL_quickInit
MGL_result
MGL_selectDisplayDevice
MGL_setBufSize
MGL_setResult

/* Device context creation and management */

MGL_createCustomDC
MGL_createDisplayDC
MGL_createMemoryDC
MGL_createOffscreenDC
MGL_createScrollingDC
MGL_createStereoDisplayDC
MGL_createWindowedDC
MGL_destroyDC
MGL_getHardwareFlags
MGL_isDisplayDC
MGL_isMemoryDC
MGL_isOffscreenDC
MGL_isOverlayDC
MGL_isStereoDC
MGL_isWindowedDC
MGL_surfaceAccessType

/* Device context information and manipulation */

MGL_computePixelAddr
MGL_defaultAttributes
MGL_getAlphaValue
MGL_getAspectRatio
MGL_getAttributes
MGL_getBackMode
MGL_getBitsPerPixel
MGL_getBlendFunc
MGL_getFontBlendMode
MGL_getLineStipple
MGL_getLineStippleCount
MGL_getLineStyle
MGL_getPenBitmapPattern
MGL_getPenPixmapPattern
MGL_getPenPixmapTransparent
MGL_getPenSize
MGL_getPenStyle
MGL_getPixelFormat
MGL_getPlaneMask
MGL_getPolygonType
MGL_isCurrentDC
MGL_makeCurrentDC
MGL_maxPage
MGL_restoreAttributes
MGL_setAlphaValue
MGL_setAspectRatio
MGL_setBackMode
MGL_setBlendFunc
MGL_setFontBlendMode
MGL_setLineStipple
MGL_setLineStippleCount
MGL_setLineStyle
MGL_setPenBitmapPattern
MGL_setPenPixmapPattern
MGL_setPenPixmapTransparent
MGL_setPenSize
MGL_setPenStyle
MGL_setPlaneMask
MGL_setPolygonType
MGL_setWriteMode
MGL_sizex
MGL_sizey
MGL_usePenBitmapPattern
MGL_usePenPixmapPattern

/* TODO: Color and palette manipulation */

MGL_checkIdentityPalette
MGL_defaultColor
MGL_fadePalette
MGL_getBackColor
MGL_getColor
MGL_getDefaultPalette
MGL_getDitherMode
MGL_getFontAntiAliasPalette
MGL_getGammaRamp
MGL_getPalette
MGL_getPaletteEntry
MGL_getPaletteSize
MGL_getPaletteSnowLevel
MGL_getWriteMode
MGL_haveWidePalette
MGL_mapToPalette
MGL_maxColor
MGL_packColor
MGL_packColorExt
MGL_packColorFast
MGL_packColorFastExt
MGL_realColor
MGL_realizePalette
MGL_rgbColor
MGL_rotatePalette
MGL_setBackColor
MGL_setColor
MGL_setColorCI
MGL_setColorRGB
MGL_setDefaultPalette
MGL_setDitherMode
MGL_setFontAntiAliasPalette
MGL_setGammaRamp
MGL_setPalette
MGL_setPaletteEntry
MGL_setPaletteSnowLevel
MGL_unpackColor
MGL_unpackColorExt
MGL_unpackColorFast
MGL_unpackColorFastExt

/* Viewport and clip rectangle manipulation */

MGL_getClipRect
MGL_getClipRectDC
MGL_getClipRegion
MGL_getClipRegionDC
MGL_getViewport
MGL_getViewportDC
MGL_getViewportOrg
MGL_getViewportOrgDC
MGL_globalToLocal
MGL_globalToLocalDC
MGL_localToGlobal
MGL_localToGlobalDC
MGL_maxx
MGL_maxxDC
MGL_maxy
MGL_maxyDC
MGL_setClipRect
MGL_setClipRectDC
MGL_setClipRegion
MGL_setClipRegionDC
MGL_setRelViewport
MGL_setRelViewportDC
MGL_setViewport
MGL_setViewportDC
MGL_setViewportOrg
MGL_setViewportOrgDC

/* Double buffering support */

MGL_doubleBuffer
MGL_getActivePage
MGL_getCurrentScanLine
MGL_getDisplayStart
MGL_getVisualPage
MGL_isVSync
MGL_lockToFrameRate
MGL_setActivePage
MGL_setDisplayStart
MGL_setVisualPage
MGL_singleBuffer
MGL_swapBuffers
MGL_vSync

/* Device clearing */

MGL_clearDevice
MGL_clearViewport

/* Direct framebuffer access functions */

MGL_beginDirectAccess
MGL_beginDirectAccessDC
MGL_endDirectAccess
MGL_endDirectAccessDC

/* TODO: Pixel plotting */

MGL_beginPixel
MGL_endPixel
MGL_getPixel
MGL_getPixelCoord
MGL_getPixelCoordFast
MGL_getPixelFast
MGL_pixel
MGL_pixelCoord
MGL_pixelCoordFast
MGL_pixelFast

/* TODO: Line drawing and clipping */

MGL_getCP
MGL_getX
MGL_getY
MGL_line
MGL_lineCoord
MGL_lineCoordExt
MGL_lineEngine
MGL_lineExt
MGL_lineRel
MGL_lineRelCoord
MGL_lineTo
MGL_lineToCoord
MGL_moveRel
MGL_moveRelCoord
MGL_moveTo
MGL_moveToCoord
MGL_scanLine

/* Polygon drawing */

MGL_fillPolygon
MGL_fillPolygonCnvx
MGL_fillPolygonCnvxFX
MGL_fillPolygonFX

/* Polyline drawing */

MGL_polyLine
MGL_polyPoint

/* TODO: Rectangle drawing */

MGL_fillRect
MGL_fillRectCoord
MGL_fillRectPt
MGL_rect
MGL_rectCoord
MGL_rectPt

/* Ellipse drawing */

MGL_ellipse
MGL_ellipseArc
MGL_ellipseArcCoord
MGL_ellipseArcEngine
MGL_ellipseCoord
MGL_ellipseEngine
MGL_fillEllipse
MGL_fillEllipseArc
MGL_fillEllipseArcCoord
MGL_fillEllipseCoord
MGL_getArcCoords

/* Text attribute manipulation */

MGL_charWidth
MGL_getCharMetrics
MGL_getFontMetrics
MGL_getSpaceExtra
MGL_getTextDirection
MGL_getTextJustify
MGL_getTextSettings
MGL_getTextSize
MGL_maxCharWidth
MGL_setSpaceExtra
MGL_setTextDirection
MGL_setTextEncoding
MGL_setTextJustify
MGL_setTextSettings
MGL_setTextSize
MGL_textBounds
MGL_textHeight
MGL_textWidth
MGL_underScoreLocation

/* Text drawing */

MGL_drawStr
MGL_drawStrXY
MGL_getFont
MGL_useFont
MGL_vecFontEngine

/* Unicode text drawing */

MGL_charWidth_W
MGL_drawStrXY_W
MGL_drawStr_W
MGL_getCharMetrics_W
MGL_textBounds_W
MGL_textWidth_W
MGL_underScoreLocation_W

/* BitBlt support */

MGL_bitBlt
MGL_bitBltCoord
MGL_bitBltFx
MGL_bitBltFxCoord
MGL_bitBltPatt
MGL_bitBltPattCoord
MGL_copyPage
MGL_copyPageCoord
MGL_divotSize
MGL_divotSizeCoord
MGL_dstTransBlt
MGL_dstTransBltCoord
MGL_getDivot
MGL_getDivotCoord
MGL_putDivot
MGL_putMonoImage
MGL_srcTransBlt
MGL_srcTransBltCoord
MGL_stretchBlt
MGL_stretchBltCoord
MGL_stretchBltFx
MGL_stretchBltFxCoord

/* Bitmap drawing support */

MGL_putBitmap
MGL_putBitmapDstTrans
MGL_putBitmapDstTransSection
MGL_putBitmapFx
MGL_putBitmapFxSection
MGL_putBitmapMask
MGL_putBitmapPatt
MGL_putBitmapPattSection
MGL_putBitmapSection
MGL_putBitmapSrcTrans
MGL_putBitmapSrcTransSection
MGL_putIcon
MGL_stretchBitmap
MGL_stretchBitmapFx
MGL_stretchBitmapFxSection
MGL_stretchBitmapSection

/* Monochrome bitmap manipulation */

MGL_drawGlyph
MGL_getGlyphHeight
MGL_getGlyphWidth
MGL_mirrorGlyph
MGL_rotateGlyph

/* Lightweight offscreen buffer support */

MGL_copyBitmapToBuffer
MGL_copyToBuffer
MGL_createBuffer
MGL_destroyBuffer
MGL_lockBuffer
MGL_putBuffer
MGL_putBufferDstTrans
MGL_putBufferDstTransSection
MGL_putBufferFx
MGL_putBufferFxSection
MGL_putBufferPatt
MGL_putBufferPattSection
MGL_putBufferSection
MGL_putBufferSrcTrans
MGL_putBufferSrcTransSection
MGL_stretchBuffer
MGL_stretchBufferFx
MGL_stretchBufferFxSection
MGL_stretchBufferSection
MGL_unlockBuffer
MGL_updateBufferCache
MGL_updateFromBufferCache

/* Region management */

MGL_clearRegion
MGL_copyIntoRegion
MGL_copyRegion
MGL_drawRegion
MGL_freeRegion
MGL_isSimpleRegion
MGL_newRegion
MGL_rgnEllipse
MGL_rgnEllipseArc
MGL_rgnGetArcCoords
MGL_rgnLine
MGL_rgnLineCoord
MGL_rgnPolygon
MGL_rgnPolygonCnvx
MGL_rgnPolygonCnvxFX
MGL_rgnPolygonFX
MGL_rgnSolidEllipse
MGL_rgnSolidEllipseArc
MGL_rgnSolidRect
MGL_rgnSolidRectCoord
MGL_rgnSolidRectPt
MGL_traverseRegion

/* Region alegbra */

MGL_diffRegion
MGL_diffRegionRect
MGL_emptyRegion
MGL_equalRegion
MGL_offsetRegion
MGL_optimizeRegion
MGL_ptInRegionCoord
MGL_sectRegion
MGL_sectRegionRect
MGL_unionRegion
MGL_unionRegionOfs
MGL_unionRegionRect

/* RGB to 8/15/16 bit halftone dithering routines */

MGL_getHalfTonePalette
MGL_halfTonePixel
MGL_halfTonePixel555
MGL_halfTonePixel565

/* Font loading and unloading functions */

MGL_closeFontLib
MGL_enumerateFonts
MGL_getDotsPerInch
MGL_loadFontInstance
MGL_openFontLib
MGL_openFontLibExt
MGL_setDotsPerInch
MGL_unloadFontInstance

/* Obsolete bitmap font loading functions */

MGL_availableFont
MGL_loadFont
MGL_loadFontExt
MGL_unloadFont

/* Mouse cursor resource loading and unloading */

MGL_availableCursor
MGL_loadCursor
MGL_loadCursorExt
MGL_unloadCursor

/* Icon resource loading and unloading */

MGL_availableIcon
MGL_loadIcon
MGL_loadIconExt
MGL_unloadIcon

/* Windows BMP bitmap loading, unloading and saving */

MGL_availableBitmap
MGL_buildMonoMask
MGL_getBitmapFromDC
MGL_getBitmapSize
MGL_getBitmapSizeExt
MGL_loadBitmap
MGL_loadBitmapExt
MGL_loadBitmapIntoDC
MGL_loadBitmapIntoDCExt
MGL_saveBitmapFromDC
MGL_unloadBitmap

/* PCX bitmap loading, unloading and saving */

MGL_availablePCX
MGL_getPCXSize
MGL_getPCXSizeExt
MGL_loadPCX
MGL_loadPCXExt
MGL_loadPCXIntoDC
MGL_loadPCXIntoDCExt
MGL_savePCXFromDC

/* JPEG bitmap loading, unloading and saving */

MGL_availableJPEG
MGL_getJPEGSize
MGL_getJPEGSizeExt
MGL_loadJPEG
MGL_loadJPEGExt
MGL_loadJPEGIntoDC
MGL_loadJPEGIntoDCExt
MGL_saveJPEGFromDC

/* PNG bitmap loading, unloading and saving */

MGL_availablePNG
MGL_getPNGSize
MGL_getPNGSizeExt
MGL_loadPNG
MGL_loadPNGExt
MGL_loadPNGIntoDC
MGL_loadPNGIntoDCExt
MGL_savePNGFromDC
MGL_savePNGFromDCExt

/* Random number generation routines */

MGL_random
MGL_randoml
MGL_srand

/* Rectangle and Point manipulation */

MGL_defRect
MGL_defRectPt
MGL_disjointRect
MGL_emptyRect
MGL_equalPoint
MGL_equalRect
MGL_insetRect
MGL_offsetRect
MGL_ptInRect
MGL_ptInRectCoord
MGL_ptInRegion
MGL_sectRect
MGL_sectRect
MGL_sectRectCoord
MGL_sectRectCoord
MGL_sectRectFast
MGL_sectRectFastCoord
MGL_unionRect
MGL_unionRect
MGL_unionRectCoord
MGL_unionRectCoord

/* Window manager functions */

MGL_wmBeginPaint
MGL_wmCaptureEvents
MGL_wmCoordGlobalToLocal
MGL_wmCoordLocalToGlobal
MGL_wmCreate
MGL_wmCreateWindow
MGL_wmDestroy
MGL_wmDestroyWindow
MGL_wmEndPaint
MGL_wmGetRootWindow
MGL_wmGetWindowAtPosition
MGL_wmGetWindowFlags
MGL_wmGetWindowParent
MGL_wmGetWindowUserData
MGL_wmInvalidateRect
MGL_wmInvalidateRegion
MGL_wmInvalidateWindow
MGL_wmInvalidateWindowRect
MGL_wmInvalidateWindowRegion
MGL_wmLowerWindow
MGL_wmPopGlobalEventHandler
MGL_wmPopWindowEventHandler
MGL_wmProcessEvent
MGL_wmPushGlobalEventHandler
MGL_wmPushWindowEventHandler
MGL_wmRaiseWindow
MGL_wmRemoveGlobalEventHandler
MGL_wmRemoveWindowEventHandler
MGL_wmReparentWindow
MGL_wmSetGlobalCursor
MGL_wmSetWindowCursor
MGL_wmSetWindowDestructor
MGL_wmSetWindowFlags
MGL_wmSetWindowPainter
MGL_wmSetWindowPosition
MGL_wmSetWindowUserData
MGL_wmShowWindow
MGL_wmUncaptureEvents
MGL_wmUpdateDC

/* OpenGL binding functions */

MGL_glChooseVisual
MGL_glCreateContext
MGL_glDeleteContext
MGL_glDisableMGLFuncs
MGL_glEnableMGLFuncs
MGL_glEnumerateDrivers
MGL_glGetProcAddress
MGL_glGetVisual
MGL_glHaveHWOpenGL
MGL_glMakeCurrent
MGL_glRealizePalette
MGL_glResizeBuffers
MGL_glSetDriver
MGL_glSetOpenGLType
MGL_glSetPalette
MGL_glSetVisual
MGL_glSwapBuffers

/* Event handling */

EVT_allowLEDS
EVT_flush
EVT_getCodePage
EVT_getHeartBeatCallback
EVT_getMousePos
EVT_getNext
EVT_halt
EVT_isKeyDown
EVT_joyIsPresent
EVT_joySetCenter
EVT_joySetLowerRight
EVT_joySetUpperLeft
EVT_peekNext
EVT_pollJoystick
EVT_post
EVT_setCodePage
EVT_setHeartBeatCallback
EVT_setMousePos
EVT_setUserEventFilter

/* Mouse handling */

MS_getPos
MS_hide
MS_moveTo
MS_obscure
MS_setCursor
MS_setCursorColor
MS_setCursorColorExt
MS_show

/* Game Framework */

GM_chooseMode
GM_cleanup
GM_exit
GM_findMode
GM_getDoDraw
GM_getExitMainLoop
GM_getHaveWin95
GM_getHaveWinNT
GM_init
GM_initPath
GM_initSysPalNoStatic
GM_initWindowPos
GM_mainLoop
GM_processEvents
GM_realizePalette
GM_setAppActivate
GM_setDrawFunc
GM_setDriverOptions
GM_setEventFunc
GM_setExitFunc
GM_setGameLogicFunc
GM_setKeyDownFunc
GM_setKeyRepeatFunc
GM_setKeyUpFunc
GM_setLeftBuffer
GM_setMode
GM_setModeExt
GM_setModeFilterFunc
GM_setModeSwitchFunc
GM_setMouseDownFunc
GM_setMouseMoveFunc
GM_setMouseUpFunc
GM_setPalette
GM_setPreModeSwitchFunc
GM_setRightBuffer
GM_setSuspendAppCallback
GM_startOpenGL
GM_startStereo
GM_stopStereo
GM_swapBuffers
GM_swapDirtyBuffers

/* Sprite manager */

SPR_destroyBitmap
SPR_draw
SPR_drawExt
SPR_drawSection
SPR_drawSectionExt
SPR_mgrAddOpaqueBitmap
SPR_mgrAddTransparentBitmap
SPR_mgrEmpty
SPR_mgrExit
SPR_mgrInit

/* Windows specific */

MGL_beginPaint
MGL_endPaint
MGL_getFullScreenWindow
MGL_registerEventProc
MGL_registerFullScreenWindow

