BsD3D9MultiRenderTexture.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. #include "BsD3D9Prerequisites.h"
  3. #include "BsMultiRenderTexture.h"
  4. namespace BansheeEngine
  5. {
  6. class D3D9MultiRenderTexture;
  7. /**
  8. * @brief DirectX 9 implementation of a render texture with multiple color surfaces.
  9. *
  10. * @note Core thread only.
  11. */
  12. class BS_D3D9_EXPORT D3D9MultiRenderTextureCore : public MultiRenderTextureCore
  13. {
  14. public:
  15. D3D9MultiRenderTextureCore(const MULTI_RENDER_TEXTURE_CORE_DESC& desc);
  16. virtual ~D3D9MultiRenderTextureCore();
  17. /**
  18. * @copydoc MultiRenderTextureCore::getCustomAttribute
  19. */
  20. void getCustomAttribute(const String& name, void* pData) const;
  21. protected:
  22. friend class D3D9MultiRenderTexture;
  23. /**
  24. * @copydoc CoreObjectCore::initialize
  25. */
  26. virtual void initialize();
  27. /**
  28. * @copydoc MultiRenderTextureCore::getProperties
  29. */
  30. const RenderTargetProperties& getPropertiesInternal() const { return mProperties; }
  31. Vector<IDirect3DSurface9*> mDX9ColorSurfaces;
  32. IDirect3DSurface9* mDX9DepthStencilSurface;
  33. MultiRenderTextureProperties mProperties;
  34. };
  35. /**
  36. * @brief DirectX 9 implementation of a render texture with multiple color surfaces.
  37. *
  38. * @note Sim thread only.
  39. */
  40. class BS_D3D9_EXPORT D3D9MultiRenderTexture : public MultiRenderTexture
  41. {
  42. public:
  43. virtual ~D3D9MultiRenderTexture() { }
  44. protected:
  45. friend class D3D9TextureManager;
  46. D3D9MultiRenderTexture(const MULTI_RENDER_TEXTURE_DESC& desc);
  47. /**
  48. * @copydoc MultiRenderTexture::getProperties
  49. */
  50. const RenderTargetProperties& getPropertiesInternal() const { return mProperties; }
  51. MultiRenderTextureProperties mProperties;
  52. };
  53. }