BsD3D9Prerequisites.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #pragma once
  2. #include "BsCorePrerequisites.h"
  3. #define D3D9_DEVICE_ACCESS_LOCK
  4. #define D3D9_DEVICE_ACCESS_UNLOCK
  5. #define D3D9_DEVICE_ACCESS_CRITICAL_SECTION
  6. #define DIRECT3D_VERSION 0x0900
  7. #define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }
  8. #if BS_DEBUG_MODE
  9. # define D3D_DEBUG_INFO
  10. #endif
  11. #define WIN32_LEAN_AND_MEAN
  12. #if !defined(NOMINMAX) && defined(_MSC_VER)
  13. # define NOMINMAX // required to stop windows.h messing up std::min
  14. #endif
  15. #include <d3d9.h>
  16. #include <d3dx9.h>
  17. #include <DxErr.h>
  18. namespace BansheeEngine
  19. {
  20. // Predefine classes
  21. class D3D9RenderSystem;
  22. class D3D9RenderWindow;
  23. class D3D9RenderWindowCore;
  24. class D3D9Texture;
  25. class D3D9TextureManager;
  26. class D3D9Driver;
  27. class D3D9DriverList;
  28. class D3D9VideoMode;
  29. class D3D9VideoModeList;
  30. class D3D9Device;
  31. class D3D9DeviceManager;
  32. class D3D9ResourceManager;
  33. class D3D9GpuProgram;
  34. class D3D9GpuProgramManager;
  35. class D3D9HardwareBufferManager;
  36. class D3D9IndexBuffer;
  37. class D3D9HLSLProgramFactory;
  38. class D3D9HLSLProgram;
  39. class D3D9VertexDeclaration;
  40. class D3D9Resource;
  41. typedef std::shared_ptr<D3D9RenderWindow> D3D9RenderWindowPtr;
  42. typedef std::shared_ptr<D3D9Texture> D3D9TexturePtr;
  43. /**
  44. * @brief Type IDs used for RTTI.
  45. */
  46. enum TypeID_D3D9
  47. {
  48. TID_D3D9_GpuProgram = 10000,
  49. TID_D3D9_GpuVertexProgram = 10001,
  50. TID_D3D9_GpuFragmentProgram = 10002
  51. };
  52. /**
  53. * @brief DirectX 9 specific types to track resource statistics for.
  54. */
  55. enum D3D9RenderStatResourceType
  56. {
  57. RenderStatObject_VertexDeclaration = 100
  58. };
  59. #if (BS_PLATFORM == BS_PLATFORM_WIN32) && !defined(BS_STATIC_LIB)
  60. # ifdef BS_RSD3D9_EXPORTS
  61. # define BS_D3D9_EXPORT __declspec(dllexport)
  62. # else
  63. # if defined( __MINGW32__ )
  64. # define BS_D3D9_EXPORT
  65. # else
  66. # define BS_D3D9_EXPORT __declspec(dllimport)
  67. # endif
  68. # endif
  69. #else
  70. # define BS_D3D9_EXPORT
  71. #endif
  72. }