📄 dglglobals.h
字号:
/****************************************************************************** Mesa 3-D graphics library* Direct3D Driver Interface** ========================================================================** Copyright (C) 1991-2004 SciTech Software, Inc. All rights reserved.** Permission is hereby granted, free of charge, to any person obtaining a* copy of this software and associated documentation files (the "Software"),* to deal in the Software without restriction, including without limitation* the rights to use, copy, modify, merge, publish, distribute, sublicense,* and/or sell copies of the Software, and to permit persons to whom the* Software is furnished to do so, subject to the following conditions:** The above copyright notice and this permission notice shall be included* in all copies or substantial portions of the Software.** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL* SCITECH SOFTWARE INC BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE* SOFTWARE.** ======================================================================** Language: ANSI C* Environment: Windows 9x (Win32)** Description: Globals.*****************************************************************************/#ifndef __DGLGLOBALS_H#define __DGLGLOBALS_H#include "dglcontext.h"#include "dglpf.h" // Pixel format#ifndef _USE_GLD3_WGL#include "d3dtexture.h"#endif/*---------------------- Macros and type definitions ----------------------*/typedef enum { DGL_RENDER_MESASW = 0, DGL_RENDER_D3D = 1, DGL_RENDER_FORCE_DWORD = 0x7ffffff,} DGL_renderType;#ifdef _USE_GLD3_WGL// Same as DGL_renderType? KeithHtypedef enum { GLDS_DRIVER_MESA_SW = 0, // Mesa SW rendering GLDS_DRIVER_REF = 1, // Direct3D Reference Rasteriser GLDS_DRIVER_HAL = 2, // Direct3D HW rendering} GLDS_DRIVER;typedef enum { GLDS_TNL_DEFAULT = 0, // Choose best TnL method GLDS_TNL_MESA = 1, // Mesa TnL GLDS_TNL_D3DSW = 2, // D3D Software TnL GLDS_TNL_D3DHW = 3, // D3D Hardware TnL} GLDS_TNL;typedef enum { GLDS_MULTISAMPLE_NONE = 0, GLDS_MULTISAMPLE_FASTEST = 1, GLDS_MULTISAMPLE_NICEST = 2,} GLDS_MULTISAMPLE;#endiftypedef struct { // Registry settings char szDDName[MAX_DDDEVICEID_STRING]; // DirectDraw device name char szD3DName[MAX_DDDEVICEID_STRING]; // Direct3D driver name BOOL bPrimary; // Is ddraw device the Primary device? BOOL bHardware; // Is the d3d driver a Hardware driver?#ifndef _USE_GLD3_WGL GUID ddGuid; // GUID of the ddraw device GUID d3dGuid; // GUID of the direct3d driver#endif // _USE_GLD3_WGL// BOOL bFullscreen; // Force fullscreen - only useful for primary adaptors. BOOL bSquareTextures; // Does this driver require square textures? DWORD dwRendering; // Type of rendering required BOOL bWaitForRetrace; // Sync to vertical retrace BOOL bFullscreenBlit; // Use Blt instead of Flip in fullscreen modes // Multitexture BOOL bMultitexture; BOOL bUseMipmaps; DWORD dwMemoryType; // Sysmem or Vidmem // Global palette BOOL bPAL8; DDPIXELFORMAT ddpfPAL8; // Multitexture WORD wMaxSimultaneousTextures; // Win32 internals BOOL bAppActive; // Keep track of Alt-Tab LONG lpfnWndProc; // WndProc of calling app // Pixel Format Descriptior list. int nPixelFormatCount; DGL_pixelFormat *lpPF;#ifndef _USE_GLD3_WGL // ZBuffer pixel formats int nZBufferPFCount; // Count of Zbuffer pixel formats DDPIXELFORMAT *lpZBufferPF; // ZBuffer pixel formats // Display modes (for secondary devices) int nDisplayModeCount; DDSURFACEDESC2 *lpDisplayModes; // Texture pixel formats int nTextureFormatCount; DGL_textureFormat *lpTextureFormat;#endif // _USE_GLD3_WGL // Alpha emulation via chroma key BOOL bEmulateAlphaTest; // Geom pipeline override. // If this is set TRUE then the D3D pipeline will never be used, // and the Mesa pipline will always be used. BOOL bForceMesaPipeline;#ifdef _USE_GLD3_WGL BOOL bPixelformatsDirty; // Signal a list rebuild#endif // Additional globals to support multiple GL rendering contexts, GLRCs BOOL bDirectDraw; // DirectDraw interface exists ? BOOL bDirectDrawPrimary; // DirectDraw primary surface exists ? BOOL bDirect3D; // Direct3D interface exists ? BOOL bDirect3DDevice; // Direct3D device exists ? BOOL bDirectDrawStereo; // DirectDraw Stereo driver started ? int iDirectDrawStereo; // DirectDraw Stereo driver reference count HWND hWndActive; // copy of active window // Copies of DirectX COM interfaces for re-referencing across multiple GLRCs// IDirectDraw4 *lpDD4; // copy of DirectDraw interface// IDirectDrawSurface4 *lpPrimary4; // copy of DirectDraw primary surface// IDirectDrawSurface4 *lpBack4;// IDirectDrawSurface4 *lpDepth4;// IDirectDrawPalette *lpGlobalPalette; // Aids for heavy-duty MFC-windowed OGL apps, like AutoCAD BOOL bMessageBoxWarnings; // popup message box warning BOOL bDirectDrawPersistant; // DirectDraw is persisitant BOOL bPersistantBuffers; // DirectDraw buffers persisitant // FPU setup option for CAD precision (AutoCAD) vs GAME speed (Quake) BOOL bFastFPU; // single-precision-only FPU ? // Hot-Key support, like for real-time stereo parallax adjustments BOOL bHotKeySupport; // hot-key support ? // Multi-threaded support, for apps like 3DStudio BOOL bMultiThreaded; // multi-threaded ? // Detect and use app-specific customizations for apps like 3DStudio BOOL bAppCustomizations; // app customizations ?#ifdef _USE_GLD3_WGL DWORD dwAdapter; // Primary DX8 adapter DWORD dwTnL; // MesaSW TnL DWORD dwMultisample; // Multisample Off DWORD dwDriver; // Direct3D HW void *pDrvPrivate; // Driver-specific data#endif} DGL_globals;/*------------------------- Function Prototypes ---------------------------*/#ifdef __cplusplusextern "C" {#endifDGL_globals glb;void dglInitGlobals();#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -