28 #ifndef __D3D11PREREQUISITES_H__
29 #define __D3D11PREREQUISITES_H__
34 #if OGRE_THREAD_SUPPORT
35 #define OGRE_LOCK_RECURSIVE_MUTEX(name) name.lock();
36 #define OGRE_UNLOCK_RECURSIVE_MUTEX(name) name.unlock();
38 #define OGRE_LOCK_RECURSIVE_MUTEX(name)
39 #define OGRE_UNLOCK_RECURSIVE_MUTEX(name)
43 #if OGRE_THREAD_SUPPORT == 1
44 #define D3D11_DEVICE_ACCESS_LOCK OGRE_LOCK_RECURSIVE_MUTEX(msDeviceAccessMutex);
45 #define D3D11_DEVICE_ACCESS_UNLOCK OGRE_UNLOCK_RECURSIVE_MUTEX(msDeviceAccessMutex);
46 #define D3D11_DEVICE_ACCESS_CRITICAL_SECTION OGRE_LOCK_MUTEX(msDeviceAccessMutex)
48 #define D3D11_DEVICE_ACCESS_LOCK
49 #define D3D11_DEVICE_ACCESS_UNLOCK
50 #define D3D11_DEVICE_ACCESS_CRITICAL_SECTION
54 #define DIRECT3D_VERSION 0x1100
57 #define SAFE_DELETE(p) { if(p) { delete (p); (p)=NULL; } }
58 #define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p); (p)=NULL; } }
59 #define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }
63 #define NOMINMAX // required to stop windows.h screwing up std::min definition
66 #include <d3d11shader.h>
67 #include <D3Dcompiler.h>
73 class D3D11RenderSystem;
74 class D3D11RenderWindow;
76 class D3D11TextureManager;
77 class D3D11DepthBuffer;
79 class D3D11DriverList;
81 class D3D11VideoModeList;
82 class D3D11GpuProgram;
83 class D3D11GpuProgramManager;
84 class D3D11HardwareBufferManager;
85 class D3D11HardwareIndexBuffer;
86 class D3D11HLSLProgramFactory;
87 class D3D11HLSLProgram;
88 class D3D11VertexDeclaration;
90 class D3D11HardwareBuffer;
91 class D3D11HardwarePixelBuffer;
96 #define OGRE_D3D_MANAGE_BUFFERS 1
101 #if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32) && !defined(OGRE_STATIC_LIB)
102 # ifdef OGRED3DENGINEDLL_EXPORTS
103 # define _OgreD3D11Export __declspec(dllexport)
105 # if defined( __MINGW32__ )
106 # define _OgreD3D11Export
108 # define _OgreD3D11Export __declspec(dllimport)
112 # define _OgreD3D11Export