2
0

BsVulkanRenderTexture.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsVulkanPrerequisites.h"
  5. #include "BsTexture.h"
  6. #include "BsRenderTexture.h"
  7. namespace BansheeEngine
  8. {
  9. /** @addtogroup Vulkan
  10. * @{
  11. */
  12. class VulkanRenderTexture;
  13. /**
  14. * Vulkan implementation of a render texture.
  15. *
  16. * @note Core thread only.
  17. */
  18. class VulkanRenderTextureCore : public RenderTextureCore
  19. {
  20. public:
  21. VulkanRenderTextureCore(const RENDER_TEXTURE_DESC_CORE& desc, GpuDeviceFlags deviceMask);
  22. virtual ~VulkanRenderTextureCore() { }
  23. /** @copydoc RenderTextureCore::getCustomAttribute */
  24. void getCustomAttribute(const String& name, void* data) const override;
  25. protected:
  26. /** @copydoc RenderTextureCore::getProperties */
  27. const RenderTargetProperties& getPropertiesInternal() const override { return mProperties; }
  28. RenderTextureProperties mProperties;
  29. };
  30. /**
  31. * Vulkan implementation of a render texture.
  32. *
  33. * @note Sim thread only.
  34. */
  35. class VulkanRenderTexture : public RenderTexture
  36. {
  37. public:
  38. virtual ~VulkanRenderTexture() { }
  39. protected:
  40. friend class VulkanTextureManager;
  41. VulkanRenderTexture(const RENDER_TEXTURE_DESC& desc);
  42. /** @copydoc RenderTexture::getProperties */
  43. const RenderTargetProperties& getPropertiesInternal() const override { return mProperties; }
  44. RenderTextureProperties mProperties;
  45. };
  46. /** @} */
  47. }