ConstantBufferVK.cpp 937 B

1234567891011121314151617181920212223242526272829303132
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2024 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #include <TestFramework.h>
  5. #include <Renderer/VK/ConstantBufferVK.h>
  6. #include <Renderer/VK/RendererVK.h>
  7. #include <Renderer/VK/FatalErrorIfFailedVK.h>
  8. ConstantBufferVK::ConstantBufferVK(RendererVK *inRenderer, VkDeviceSize inBufferSize) :
  9. mRenderer(inRenderer)
  10. {
  11. mRenderer->CreateBuffer(inBufferSize, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, mBuffer);
  12. }
  13. ConstantBufferVK::~ConstantBufferVK()
  14. {
  15. mRenderer->FreeBuffer(mBuffer);
  16. }
  17. void *ConstantBufferVK::MapInternal()
  18. {
  19. void *data = nullptr;
  20. FatalErrorIfFailed(vkMapMemory(mRenderer->GetDevice(), mBuffer.mMemory, mBuffer.mOffset, mBuffer.mSize, 0, &data));
  21. return data;
  22. }
  23. void ConstantBufferVK::Unmap()
  24. {
  25. vkUnmapMemory(mRenderer->GetDevice(), mBuffer.mMemory);
  26. }