BsD3D9MultiRenderTexture.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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(D3D9MultiRenderTexture* parent, MultiRenderTextureProperties* properties, const MULTI_RENDER_TEXTURE_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. Vector<IDirect3DSurface9*> mDX9ColorSurfaces;
  24. IDirect3DSurface9* mDX9DepthStencilSurface;
  25. };
  26. /**
  27. * @brief DirectX 9 implementation of a render texture with multiple color surfaces.
  28. *
  29. * @note Sim thread only.
  30. */
  31. class BS_D3D9_EXPORT D3D9MultiRenderTexture : public MultiRenderTexture
  32. {
  33. public:
  34. virtual ~D3D9MultiRenderTexture() { }
  35. protected:
  36. friend class D3D9TextureManager;
  37. D3D9MultiRenderTexture() { }
  38. /**
  39. * @copydoc MultiRenderTexture::createProperties
  40. */
  41. virtual RenderTargetProperties* createProperties() const;
  42. /**
  43. * @copydoc MultiRenderTexture::createCore
  44. */
  45. virtual MultiRenderTextureCore* createCore(MultiRenderTextureProperties* properties, const MULTI_RENDER_TEXTURE_DESC& desc);
  46. };
  47. }