blob: c633e3bcfabf4340254e2484498b041c5b3f86a5 [file] [log] [blame]
/****************************************************************************
*
* 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: Global variables.
*
****************************************************************************/
#include "dglglobals.h"
// =======================================================================
// Global Variables
// =======================================================================
char szCopyright[] = "Copyright (c) 1998 SciTech Software, Inc.";
char szDllName[] = "Scitech GLDirect";
char szErrorTitle[] = "GLDirect Error";
DGL_globals glb;
// Shared result variable
HRESULT hResult;
// ***********************************************************************
// Patch function for missing function in Mesa
int finite(
double x)
{
return _finite(x);
};
// ***********************************************************************
void dglInitGlobals()
{
// Zero all fields just in case
memset(&glb, 0, sizeof(glb));
// Set the global defaults
glb.bPrimary = FALSE; // Not the primary device
glb.bHardware = FALSE; // Not a hardware device
// glb.bFullscreen = FALSE; // Not running fullscreen
glb.bSquareTextures = FALSE; // Device does not need sq
glb.bPAL8 = FALSE; // Device cannot do 8bit
glb.dwMemoryType = DDSCAPS_SYSTEMMEMORY;
glb.dwRendering = DGL_RENDER_D3D;
glb.bWaitForRetrace = TRUE; // Sync to vertical retrace
glb.bFullscreenBlit = FALSE;
glb.nPixelFormatCount = 0;
glb.lpPF = NULL; // Pixel format list
#ifndef _USE_GLD3_WGL
glb.nZBufferPFCount = 0;
glb.lpZBufferPF = NULL;
glb.nDisplayModeCount = 0;
glb.lpDisplayModes = NULL;
glb.nTextureFormatCount = 0;
glb.lpTextureFormat = NULL;
#endif // _USE_GLD3_WGL
glb.wMaxSimultaneousTextures = 1;
// Enable support for multitexture, if available.
glb.bMultitexture = TRUE;
// Enable support for mipmapping
glb.bUseMipmaps = TRUE;
// Alpha emulation via chroma key
glb.bEmulateAlphaTest = FALSE;
// Use Mesa pipeline always (for compatibility)
glb.bForceMesaPipeline = FALSE;
// Init support for multiple GLRCs
glb.bDirectDraw = FALSE;
glb.bDirectDrawPrimary = FALSE;
glb.bDirect3D = FALSE;
glb.bDirect3DDevice = FALSE;
glb.bDirectDrawStereo = FALSE;
glb.iDirectDrawStereo = 0;
glb.hWndActive = NULL;
// Init DirectX COM interfaces for multiple GLRCs
// glb.lpDD4 = NULL;
// glb.lpPrimary4 = NULL;
// glb.lpBack4 = NULL;
// glb.lpDepth4 = NULL;
// glb.lpGlobalPalette = NULL;
// Init special support options
glb.bMessageBoxWarnings = TRUE;
glb.bDirectDrawPersistant = FALSE;
glb.bPersistantBuffers = FALSE;
// Do not assume single-precision-only FPU (for compatibility)
glb.bFastFPU = FALSE;
// Allow hot-key support
glb.bHotKeySupport = TRUE;
// Default to single-threaded support (for simplicity)
glb.bMultiThreaded = FALSE;
// Use application-specific customizations (for end-user convenience)
glb.bAppCustomizations = TRUE;
#ifdef _USE_GLD3_WGL
// Registry/ini-file settings for GLDirect 3.x
glb.dwAdapter = 0; // Primary DX8 adapter
glb.dwTnL = 1; // MesaSW TnL
glb.dwMultisample = 0; // Multisample Off
glb.dwDriver = 2; // Direct3D HW
// Signal a pixelformat list rebuild
glb.bPixelformatsDirty = TRUE;
#endif
}
// ***********************************************************************