CmD3D11Prerequisites.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. // some D3D commonly used macros
  4. #define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }
  5. // enable extended d3d debug
  6. #if CM_DEBUG_MODE
  7. # define D3D_DEBUG_INFO
  8. #endif
  9. #define WIN32_LEAN_AND_MEAN
  10. #if !defined(NOMINMAX) && defined(_MSC_VER)
  11. # define NOMINMAX // required to stop windows.h messing up std::min
  12. #endif
  13. #include <d3d11.h>
  14. #include <d3d11shader.h>
  15. #include <D3Dcompiler.h>
  16. namespace CamelotFramework
  17. {
  18. // Predefine classes
  19. class D3D11RenderSystem;
  20. class D3D11RenderWindow;
  21. class D3D11Texture;
  22. class D3D11TextureManager;
  23. class D3D11DepthBuffer;
  24. class D3D11Driver;
  25. class D3D11DriverList;
  26. class D3D11VideoMode;
  27. class D3D11VideoModeList;
  28. class D3D11GpuProgram;
  29. class D3D11GpuProgramManager;
  30. class D3D11HardwareBufferManager;
  31. class D3D11IndexBuffer;
  32. class D3D11HardwareConstantBuffer;
  33. class D3D11HLSLProgramFactory;
  34. class D3D11HLSLProgram;
  35. class D3D11VertexDeclaration;
  36. class D3D11Device;
  37. class D3D11HardwareBuffer;
  38. class D3D11GpuVertexProgram;
  39. class D3D11GpuFragmentProgram;
  40. class D3D11GpuGeometryProgram;
  41. class D3D11GpuHullProgram;
  42. class D3D11GpuDomainProgram;
  43. class D3D11BlendState;
  44. class D3D11RasterizerState;
  45. class D3D11SamplerState;
  46. class D3D11DepthStencilState;
  47. class D3D11InputLayoutManager;
  48. class D3D11GpuBuffer;
  49. class D3D11RenderUtility;
  50. enum TypeID_D3D11
  51. {
  52. TID_D3D11_HLSLProgram = 12000
  53. };
  54. typedef Vector<char*>::type HLSLMicroCode;
  55. typedef std::shared_ptr<D3D11GpuVertexProgram> D3D11GpuVertexProgramPtr;
  56. typedef std::shared_ptr<D3D11GpuFragmentProgram> D3D11GpuFragmentProgramPtr;
  57. typedef std::shared_ptr<D3D11GpuGeometryProgram> D3D11GpuGeometryProgramPtr;
  58. typedef std::shared_ptr<D3D11GpuHullProgram> D3D11GpuHullProgramPtr;
  59. typedef std::shared_ptr<D3D11GpuDomainProgram> D3D11GpuDomainProgramPtr;
  60. typedef std::shared_ptr<D3D11BlendState> D3D11BlendStatePtr;
  61. typedef std::shared_ptr<D3D11RasterizerState> D3D11RasterizerStatePtr;
  62. typedef std::shared_ptr<D3D11SamplerState> D3D11SamplerStatePtr;
  63. typedef std::shared_ptr<D3D11DepthStencilState> D3D11DepthStencilStatePtr;
  64. typedef std::shared_ptr<D3D11RenderWindow> D3D11RenderWindowPtr;
  65. typedef std::shared_ptr<D3D11HLSLProgram> D3D11HLSLProgramPtr;
  66. //-------------------------------------------
  67. // Windows setttings
  68. //-------------------------------------------
  69. #if (CM_PLATFORM == CM_PLATFORM_WIN32) && !defined(CM_STATIC_LIB)
  70. # ifdef CM_RSD3D11_EXPORTS
  71. # define CM_D3D11_EXPORT __declspec(dllexport)
  72. # else
  73. # if defined( __MINGW32__ )
  74. # define CM_D3D11_EXPORT
  75. # else
  76. # define CM_D3D11_EXPORT __declspec(dllimport)
  77. # endif
  78. # endif
  79. #else
  80. # define CM_D3D11_EXPORT
  81. #endif // CM_PLATFORM_WIN32
  82. }