BsD3D11MultiRenderTexture.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include "BsD3D11Prerequisites.h"
  3. #include "BsMultiRenderTexture.h"
  4. namespace BansheeEngine
  5. {
  6. class D3D11MultiRenderTexture;
  7. /**
  8. * @brief DirectX 11 implementation of a render texture with multiple color surfaces.
  9. *
  10. * @note Core thread only.
  11. */
  12. class BS_D3D11_EXPORT D3D11MultiRenderTextureCore : public MultiRenderTextureCore
  13. {
  14. public:
  15. D3D11MultiRenderTextureCore(D3D11MultiRenderTexture* parent, MultiRenderTextureProperties* properties, const MULTI_RENDER_TEXTURE_DESC& desc);
  16. virtual ~D3D11MultiRenderTextureCore();
  17. /**
  18. * @copydoc MultiRenderTextureCore::getCustomAttribute
  19. */
  20. void getCustomAttribute(const String& name, void* pData) const;
  21. protected:
  22. friend class D3D11MultiRenderTexture;
  23. };
  24. /**
  25. * @brief DirectX 11 implementation of a render texture with multiple color surfaces.
  26. *
  27. * @note Sim thread only.
  28. */
  29. class BS_D3D11_EXPORT D3D11MultiRenderTexture : public MultiRenderTexture
  30. {
  31. public:
  32. virtual ~D3D11MultiRenderTexture() { }
  33. protected:
  34. friend class D3D11TextureManager;
  35. D3D11MultiRenderTexture() { }
  36. /**
  37. * @copydoc MultiRenderTexture::createProperties
  38. */
  39. virtual RenderTargetProperties* createProperties() const;
  40. /**
  41. * @copydoc MultiRenderTexture::createCore
  42. */
  43. virtual MultiRenderTextureCore* createCore(MultiRenderTextureProperties* properties, const MULTI_RENDER_TEXTURE_DESC& desc);
  44. };
  45. }