From 572c53c0f4d3520c83074f0610dccb382fc7afdf Mon Sep 17 00:00:00 2001 From: xiangsilian Date: Sun, 19 Oct 2025 17:07:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=83=B3=E6=89=8B=E5=8A=A8=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=20device=20=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vulkan/Application.cpp | 2 ++ vulkan/Application.h | 2 ++ vulkan/FaceApp.cpp | 20 ++++++++++---------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/vulkan/Application.cpp b/vulkan/Application.cpp index 6e1b900..8ffcdd3 100644 --- a/vulkan/Application.cpp +++ b/vulkan/Application.cpp @@ -178,6 +178,8 @@ void Application::createLogicalDevice() { throw std::runtime_error("failed to create logical device!"); } + v_device = std::make_unique(v_gpu, device, surface); + vkGetDeviceQueue(device, indices.graphicsFamily.value(), 0, &graphicsQueue); vkGetDeviceQueue(device, indices.presentFamily.value(), 0, &presentQueue); } diff --git a/vulkan/Application.h b/vulkan/Application.h index 669ddf6..81e02de 100644 --- a/vulkan/Application.h +++ b/vulkan/Application.h @@ -47,6 +47,8 @@ public: bool isInited() { return inited; } protected: + std::unique_ptr< vkb::core::InstanceC> v_instance; + std::unique_ptr v_gpu; std::unique_ptr v_device; VkPhysicalDevice physicalDevice = VK_NULL_HANDLE; // 物理设备 VkDevice device; // 逻辑设备 diff --git a/vulkan/FaceApp.cpp b/vulkan/FaceApp.cpp index 84c2d67..8f78fa2 100644 --- a/vulkan/FaceApp.cpp +++ b/vulkan/FaceApp.cpp @@ -18,20 +18,20 @@ void FaceApp::initVulkan() void FaceApp::generate_quad() { - std::vector& vertices = obj_vertices; - std::vector indices = obj_indices; + //std::vector& vertices = obj_vertices; + //std::vector indices = obj_indices; - index_count = static_cast(indices.size()); + //index_count = static_cast(indices.size()); - auto vertex_buffer_size = vkb::to_u32(vertices.size() * sizeof(TextureLoadingVertexStructure)); - auto index_buffer_size = vkb::to_u32(indices.size() * sizeof(uint32_t)); + //auto vertex_buffer_size = vkb::to_u32(vertices.size() * sizeof(TextureLoadingVertexStructure)); + //auto index_buffer_size = vkb::to_u32(indices.size() * sizeof(uint32_t)); - vkb::core::DeviceC& cDevice = reinterpret_cast(*v_device); + //vkb::core::DeviceC& cDevice = reinterpret_cast(*v_device); - auto vertex_buffer = std::make_unique(cDevice, vertex_buffer_size,VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,VMA_MEMORY_USAGE_CPU_TO_GPU); - vertex_buffer->update(vertices.data(), vertex_buffer_size); + //auto vertex_buffer = std::make_unique(cDevice, vertex_buffer_size,VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,VMA_MEMORY_USAGE_CPU_TO_GPU); + //vertex_buffer->update(vertices.data(), vertex_buffer_size); - index_buffer = std::make_unique(cDevice,index_buffer_size,VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT,VMA_MEMORY_USAGE_CPU_TO_GPU); + //index_buffer = std::make_unique(cDevice,index_buffer_size,VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT,VMA_MEMORY_USAGE_CPU_TO_GPU); - index_buffer->update(indices.data(), index_buffer_size); + //index_buffer->update(indices.data(), index_buffer_size); }