Refactoring, added text overlay

This commit is contained in:
saschawillems 2016-06-05 20:28:39 +02:00
parent dd5b64e356
commit 332d4a6fef

View file

@ -88,6 +88,7 @@ public:
rotationSpeed = 0.5f; rotationSpeed = 0.5f;
rotation = { -0.5f, -112.75f, 0.0f }; rotation = { -0.5f, -112.75f, 0.0f };
cameraPos = { 0.1f, 1.1f, 0.0f }; cameraPos = { 0.1f, 1.1f, 0.0f };
enableTextOverlay = true;
title = "Vulkan Example - Mesh rendering"; title = "Vulkan Example - Mesh rendering";
} }
@ -170,27 +171,6 @@ public:
} }
} }
void draw()
{
// Get next image in the swap chain (back/front buffer)
VK_CHECK_RESULT(swapChain.acquireNextImage(semaphores.presentComplete, &currentBuffer));
submitPostPresentBarrier(swapChain.buffers[currentBuffer].image);
// Command buffer to be sumitted to the queue
submitInfo.commandBufferCount = 1;
submitInfo.pCommandBuffers = &drawCmdBuffers[currentBuffer];
// Submit to queue
VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE));
submitPrePresentBarrier(swapChain.buffers[currentBuffer].image);
VK_CHECK_RESULT(swapChain.queuePresent(queue, currentBuffer, semaphores.renderComplete));
VK_CHECK_RESULT(vkQueueWaitIdle(queue));
}
// Load a mesh based on data read via assimp // Load a mesh based on data read via assimp
// The other example will use the VulkanMesh loader which has some additional functionality for loading meshes // The other example will use the VulkanMesh loader which has some additional functionality for loading meshes
void loadMesh() void loadMesh()
@ -562,8 +542,9 @@ public:
// Vertex shader uniform buffer block // Vertex shader uniform buffer block
createBuffer( createBuffer(
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
sizeof(uboVS), sizeof(uboVS),
&uboVS, nullptr,
&uniformData.vsScene.buffer, &uniformData.vsScene.buffer,
&uniformData.vsScene.memory, &uniformData.vsScene.memory,
&uniformData.vsScene.descriptor); &uniformData.vsScene.descriptor);
@ -587,6 +568,20 @@ public:
vkUnmapMemory(device, uniformData.vsScene.memory); vkUnmapMemory(device, uniformData.vsScene.memory);
} }
void draw()
{
VulkanExampleBase::prepareFrame();
// Command buffer to be sumitted to the queue
submitInfo.commandBufferCount = 1;
submitInfo.pCommandBuffers = &drawCmdBuffers[currentBuffer];
// Submit to queue
VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE));
VulkanExampleBase::submitFrame();
}
void prepare() void prepare()
{ {
VulkanExampleBase::prepare(); VulkanExampleBase::prepare();
@ -611,7 +606,6 @@ public:
virtual void viewChanged() virtual void viewChanged()
{ {
vkDeviceWaitIdle(device);
updateUniformBuffers(); updateUniformBuffers();
} }
@ -626,6 +620,15 @@ public:
break; break;
} }
} }
virtual void getOverlayText(VulkanTextOverlay *textOverlay)
{
#if defined(__ANDROID__)
textOverlay->addText("Press \"Button A\" to toggle wireframe", 5.0f, 85.0f, VulkanTextOverlay::alignLeft);
#else
textOverlay->addText("Press \"w\" to toggle wireframe", 5.0f, 85.0f, VulkanTextOverlay::alignLeft);
#endif
}
}; };
VulkanExample *vulkanExample; VulkanExample *vulkanExample;