Buffer.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright (C) 2009-2021, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #include <AnKi/Gr/Buffer.h>
  6. #include <AnKi/Gr/Vulkan/BufferImpl.h>
  7. #include <AnKi/Gr/GrManager.h>
  8. namespace anki {
  9. Buffer* Buffer::newInstance(GrManager* manager, const BufferInitInfo& init)
  10. {
  11. BufferImpl* impl = manager->getAllocator().newInstance<BufferImpl>(manager, init.getName());
  12. const Error err = impl->init(init);
  13. if(err)
  14. {
  15. manager->getAllocator().deleteInstance(impl);
  16. impl = nullptr;
  17. }
  18. return impl;
  19. }
  20. void* Buffer::map(PtrSize offset, PtrSize range, BufferMapAccessBit access)
  21. {
  22. ANKI_VK_SELF(BufferImpl);
  23. return self.map(offset, range, access);
  24. }
  25. void Buffer::unmap()
  26. {
  27. ANKI_VK_SELF(BufferImpl);
  28. self.unmap();
  29. }
  30. void Buffer::flush(PtrSize offset, PtrSize range) const
  31. {
  32. ANKI_VK_SELF_CONST(BufferImpl);
  33. self.flush(offset, range);
  34. }
  35. void Buffer::invalidate(PtrSize offset, PtrSize range) const
  36. {
  37. ANKI_VK_SELF_CONST(BufferImpl);
  38. self.invalidate(offset, range);
  39. }
  40. } // end namespace anki