From f582eb80d73a1d0b735503c8894636782406228c Mon Sep 17 00:00:00 2001 From: ladevieq Date: Mon, 14 Feb 2022 12:45:52 +0100 Subject: High level buffer class --- src/scene.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'src/scene.cpp') diff --git a/src/scene.cpp b/src/scene.cpp index f538292..44c8f8e 100644 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -123,24 +123,24 @@ scene::scene(camera cam, uint32_t width, uint32_t height, vkrenderer &renderer) bvh builder(triangles, packed_nodes); // bvh builder(spheres, packed_nodes); - scene_buffer = renderer.api.create_buffer(sizeof(meta), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - std::memcpy(scene_buffer.alloc_info.pMappedData, &meta, sizeof(meta)); + scene_buffer = renderer.create_buffer(sizeof(meta), false); + std::memcpy(scene_buffer->ptr(), &meta, sizeof(meta)); - indices_buffer = renderer.api.create_buffer(indices.size() * sizeof(indices[0]), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - std::memcpy(indices_buffer.alloc_info.pMappedData, indices.data(), indices.size() * sizeof(indices[0])); + indices_buffer = renderer.create_buffer(indices.size() * sizeof(indices[0]), true); + std::memcpy(indices_buffer->ptr(), indices.data(), indices.size() * sizeof(indices[0])); - positions_buffer = renderer.api.create_buffer(positions.size() * sizeof(positions[0]), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - std::memcpy(positions_buffer.alloc_info.pMappedData, positions.data(), positions.size() * sizeof(positions[0])); + positions_buffer = renderer.create_buffer(positions.size() * sizeof(positions[0]), true); + std::memcpy(positions_buffer->ptr(), positions.data(), positions.size() * sizeof(positions[0])); - normals_buffer = renderer.api.create_buffer(normals.size() * sizeof(normals[0]), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - std::memcpy(normals_buffer.alloc_info.pMappedData, normals.data(), normals.size() * sizeof(normals[0])); + normals_buffer = renderer.create_buffer(normals.size() * sizeof(normals[0]), true); + std::memcpy(normals_buffer->ptr(), normals.data(), normals.size() * sizeof(normals[0])); - uvs_buffer = renderer.api.create_buffer(uvs.size() * sizeof(uvs[0]), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - std::memcpy(uvs_buffer.alloc_info.pMappedData, uvs.data(), uvs.size() * sizeof(uvs[0])); + uvs_buffer = renderer.create_buffer(uvs.size() * sizeof(uvs[0]), true); + std::memcpy(uvs_buffer->ptr(), uvs.data(), uvs.size() * sizeof(uvs[0])); - bvh_buffer = renderer.api.create_buffer(packed_nodes.size() * sizeof(packed_nodes[0]), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - std::memcpy(bvh_buffer.alloc_info.pMappedData, packed_nodes.data(), packed_nodes.size() * sizeof(packed_nodes[0])); + bvh_buffer = renderer.create_buffer(packed_nodes.size() * sizeof(packed_nodes[0]), true); + std::memcpy(bvh_buffer->ptr(), packed_nodes.data(), packed_nodes.size() * sizeof(packed_nodes[0])); - materials_buffer = renderer.api.create_buffer(materials.size() * sizeof(materials[0]), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VMA_MEMORY_USAGE_CPU_TO_GPU); - std::memcpy(materials_buffer.alloc_info.pMappedData, materials.data(), materials.size() * sizeof(materials[0])); + materials_buffer = renderer.create_buffer(materials.size() * sizeof(materials[0]), true); + std::memcpy(materials_buffer->ptr(), materials.data(), materials.size() * sizeof(materials[0])); } -- cgit v1.3