Line data Source code
1 : // Copyright (C) 2002-2012 Nikolaus Gebhardt
2 : // This file is part of the "Irrlicht Engine".
3 : // For conditions of distribution and use, see copyright notice in irrlicht.h
4 :
5 : #ifndef __S_EXPOSED_VIDEO_DATA_H_INCLUDED__
6 : #define __S_EXPOSED_VIDEO_DATA_H_INCLUDED__
7 :
8 : // forward declarations for internal pointers
9 : struct IDirect3D9;
10 : struct IDirect3DDevice9;
11 : struct IDirect3D8;
12 : struct IDirect3DDevice8;
13 :
14 : namespace irr
15 : {
16 : namespace video
17 : {
18 :
19 : //! structure for holding data describing a driver and operating system specific data.
20 : /** This data can be retrived by IVideoDriver::getExposedVideoData(). Use this with caution.
21 : This only should be used to make it possible to extend the engine easily without
22 : modification of its source. Note that this structure does not contain any valid data, if
23 : you are using the software or the null device.
24 : */
25 : struct SExposedVideoData
26 : {
27 1333 : SExposedVideoData() {OpenGLWin32.HDc=0; OpenGLWin32.HRc=0; OpenGLWin32.HWnd=0;}
28 : explicit SExposedVideoData(void* Window) {OpenGLWin32.HDc=0; OpenGLWin32.HRc=0; OpenGLWin32.HWnd=Window;}
29 :
30 : union
31 : {
32 : struct
33 : {
34 : //! Pointer to the IDirect3D9 interface
35 : IDirect3D9* D3D9;
36 :
37 : //! Pointer to the IDirect3DDevice9 interface
38 : IDirect3DDevice9* D3DDev9;
39 :
40 : //! Window handle.
41 : /** Get with for example HWND h = reinterpret_cast<HWND>(exposedData.D3D9.HWnd) */
42 : void* HWnd;
43 :
44 : } D3D9;
45 :
46 : struct
47 : {
48 : //! Pointer to the IDirect3D8 interface
49 : IDirect3D8* D3D8;
50 :
51 : //! Pointer to the IDirect3DDevice8 interface
52 : IDirect3DDevice8* D3DDev8;
53 :
54 : //! Window handle.
55 : /** Get with for example with: HWND h = reinterpret_cast<HWND>(exposedData.D3D8.HWnd) */
56 : void* HWnd;
57 :
58 : } D3D8;
59 :
60 : struct
61 : {
62 : //! Private GDI Device Context.
63 : /** Get if for example with: HDC h = reinterpret_cast<HDC>(exposedData.OpenGLWin32.HDc) */
64 : void* HDc;
65 :
66 : //! Permanent Rendering Context.
67 : /** Get if for example with: HGLRC h = reinterpret_cast<HGLRC>(exposedData.OpenGLWin32.HRc) */
68 : void* HRc;
69 :
70 : //! Window handle.
71 : /** Get with for example with: HWND h = reinterpret_cast<HWND>(exposedData.OpenGLWin32.HWnd) */
72 : void* HWnd;
73 : } OpenGLWin32;
74 :
75 : struct
76 : {
77 : // XWindow handles
78 : void* X11Display;
79 : void* X11Context;
80 : unsigned long X11Window;
81 : } OpenGLLinux;
82 : };
83 : };
84 :
85 : } // end namespace video
86 : } // end namespace irr
87 :
88 :
89 : #endif
90 :
|