BsVulkanTexture.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. namespace BansheeEngine
  7. {
  8. /** @addtogroup Vulkan
  9. * @{
  10. */
  11. /** Vulkan implementation of a texture. */
  12. class VulkanTextureCore : public TextureCore
  13. {
  14. public:
  15. ~VulkanTextureCore();
  16. protected:
  17. friend class VulkanTextureCoreManager;
  18. VulkanTextureCore(const TEXTURE_DESC& desc, const SPtr<PixelData>& initialData, GpuDeviceFlags deviceMask);
  19. /** @copydoc CoreObjectCore::initialize() */
  20. void initialize() override;
  21. /** @copydoc TextureCore::lockImpl */
  22. PixelData lockImpl(GpuLockOptions options, UINT32 mipLevel = 0, UINT32 face = 0) override;
  23. /** @copydoc TextureCore::unlockImpl */
  24. void unlockImpl() override;
  25. /** @copydoc TextureCore::copyImpl */
  26. void copyImpl(UINT32 srcFace, UINT32 srcMipLevel, UINT32 destFace, UINT32 destMipLevel, const SPtr<TextureCore>& target) override;
  27. /** @copydoc TextureCore::readData */
  28. void readData(PixelData& dest, UINT32 mipLevel = 0, UINT32 face = 0) override;
  29. /** @copydoc TextureCore::writeData */
  30. void writeData(const PixelData& src, UINT32 mipLevel = 0, UINT32 face = 0, bool discardWholeBuffer = false) override;
  31. protected:
  32. };
  33. /** @} */
  34. }