BsD3D11RenderTexture.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #pragma once
  2. #include "BsD3D11Prerequisites.h"
  3. #include "BsTexture.h"
  4. #include "BsRenderTexture.h"
  5. namespace BansheeEngine
  6. {
  7. class D3D11RenderTexture;
  8. /**
  9. * @brief DirectX 11 implementation of a render texture.
  10. *
  11. * @note Core thread only.
  12. */
  13. class D3D11RenderTextureCore : public RenderTextureCore
  14. {
  15. public:
  16. D3D11RenderTextureCore(D3D11RenderTexture* parent, RenderTextureProperties* properties, const RENDER_SURFACE_DESC& colorSurfaceDesc,
  17. const RENDER_SURFACE_DESC& depthStencilSurfaceDesc);
  18. virtual ~D3D11RenderTextureCore() { }
  19. /**
  20. * @copydoc RenderTextureCore::getCustomAttribute
  21. */
  22. void getCustomAttribute(const String& name, void* pData) const;
  23. protected:
  24. friend class D3D11RenderTexture;
  25. };
  26. /**
  27. * @brief DirectX 11 implementation of a render texture.
  28. *
  29. * @note Sim thread only.
  30. */
  31. class D3D11RenderTexture : public RenderTexture
  32. {
  33. public:
  34. virtual ~D3D11RenderTexture() { }
  35. protected:
  36. friend class D3D11TextureManager;
  37. D3D11RenderTexture() { }
  38. /**
  39. * @copydoc RenderTexture::createProperties
  40. */
  41. virtual RenderTargetProperties* createProperties() const;
  42. /**
  43. * @copydoc RenderTexture::createCore
  44. */
  45. virtual RenderTextureCore* createCore(RenderTextureProperties* properties, const RENDER_SURFACE_DESC& colorSurfaceDesc,
  46. const RENDER_SURFACE_DESC& depthStencilSurfaceDesc);
  47. };
  48. }