BsD3D9MultiRenderTexture.h 1.9 KB

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