BsD3D9MultiRenderTexture.h 1.9 KB

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