1 /****************************************************************************
3 * Mesa 3-D graphics library
4 * Direct3D Driver Interface
6 * ========================================================================
8 * Copyright (C) 1991-2004 SciTech Software, Inc. All rights reserved.
10 * Permission is hereby granted, free of charge, to any person obtaining a
11 * copy of this software and associated documentation files (the "Software"),
12 * to deal in the Software without restriction, including without limitation
13 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 * and/or sell copies of the Software, and to permit persons to whom the
15 * Software is furnished to do so, subject to the following conditions:
17 * The above copyright notice and this permission notice shall be included
18 * in all copies or substantial portions of the Software.
20 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
23 * SCITECH SOFTWARE INC BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
25 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28 * ======================================================================
31 * Environment: Windows 9x/2000/XP/XBox (Win32)
33 * Description: Driver functions and interfaces
35 ****************************************************************************/
40 // This file is only useful is we're using the new GLD3 WGL code.
43 #include "dglcontext.h"
45 // Same as DX8 D3DDISPLAYMODE
54 // Returns a string for a given HRESULT error code.
55 BOOL (*GetDXErrorString
)(HRESULT hr
, char *buf
, int nBufSize
);
57 // Driver functions for managing drawables.
58 // Functions must respect persistant buffers / persistant interface.
59 // NOTE: Persistant interface is: DirectDraw, pre-DX8; Direct3D, DX8 and above.
60 BOOL (*CreateDrawable
)(DGL_ctx
*ctx
, BOOL bPersistantInterface
, BOOL bPersistantBuffers
);
61 BOOL (*ResizeDrawable
)(DGL_ctx
*ctx
, BOOL bDefaultDriver
, BOOL bPersistantInterface
, BOOL bPersistantBuffers
);
62 BOOL (*DestroyDrawable
)(DGL_ctx
*ctx
);
64 // Create/Destroy private globals belonging to driver
65 BOOL (*CreatePrivateGlobals
)(void);
66 BOOL (*DestroyPrivateGlobals
)(void);
68 // Build pixelformat list
69 BOOL (*BuildPixelformatList
)(void);
71 // Initialise Mesa's driver pointers
72 BOOL (*InitialiseMesa
)(DGL_ctx
*ctx
);
75 BOOL (*SwapBuffers
)(DGL_ctx
*ctx
, HDC hDC
, HWND hWnd
);
77 // wglGetProcAddress()
78 PROC (*wglGetProcAddress
)(LPCSTR a
);
80 BOOL (*GetDisplayMode
)(DGL_ctx
*ctx
, GLD_displayMode
*glddm
);
83 extern GLD_driver _gldDriver
;
85 BOOL
gldInitDriverPointers(DWORD dwDriver
);
86 const GLubyte
* _gldGetStringGeneric(GLcontext
*ctx
, GLenum name
);
88 #endif // _USE_GLD3_WGL
90 #endif // _GLD_DRIVER_H