Code cleanup, rename ui overlay property

This commit is contained in:
Sascha Willems 2024-05-23 21:56:42 +02:00
parent 9a8710a57c
commit fb881ab76f
8 changed files with 69 additions and 69 deletions

View file

@ -233,14 +233,14 @@ void VulkanExampleBase::prepare()
setupFrameBuffer();
settings.overlay = settings.overlay && (!benchmark.active);
if (settings.overlay) {
UIOverlay.device = vulkanDevice;
UIOverlay.queue = queue;
UIOverlay.shaders = {
loadShader(getShadersPath() + "base/uioverlay.vert.spv", VK_SHADER_STAGE_VERTEX_BIT),
loadShader(getShadersPath() + "base/uioverlay.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT),
ui.device = vulkanDevice;
ui.queue = queue;
ui.shaders = {
loadShader(getShadersPath() + "base/ui.vert.spv", VK_SHADER_STAGE_VERTEX_BIT),
loadShader(getShadersPath() + "base/ui.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT),
};
UIOverlay.prepareResources();
UIOverlay.preparePipeline(pipelineCache, renderPass, swapChain.colorFormat, depthFormat);
ui.prepareResources();
ui.preparePipeline(pipelineCache, renderPass, swapChain.colorFormat, depthFormat);
}
}
@ -691,12 +691,12 @@ void VulkanExampleBase::updateOverlay()
// The overlay does not need to be updated with each frame, so we limit the update rate
// Not only does this save performance but it also makes display of fast changig values like fps more stable
UIOverlay.updateTimer -= frameTimer;
if (UIOverlay.updateTimer >= 0.0f) {
ui.updateTimer -= frameTimer;
if (ui.updateTimer >= 0.0f) {
return;
}
// Update at max. rate of 30 fps
UIOverlay.updateTimer = 1.0f / 30.0f;
ui.updateTimer = 1.0f / 30.0f;
ImGuiIO& io = ImGui::GetIO();
@ -704,14 +704,14 @@ void VulkanExampleBase::updateOverlay()
io.DeltaTime = frameTimer;
io.MousePos = ImVec2(mouseState.position.x, mouseState.position.y);
io.MouseDown[0] = mouseState.buttons.left && UIOverlay.visible;
io.MouseDown[1] = mouseState.buttons.right && UIOverlay.visible;
io.MouseDown[2] = mouseState.buttons.middle && UIOverlay.visible;
io.MouseDown[0] = mouseState.buttons.left && ui.visible;
io.MouseDown[1] = mouseState.buttons.right && ui.visible;
io.MouseDown[2] = mouseState.buttons.middle && ui.visible;
ImGui::NewFrame();
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0);
ImGui::SetNextWindowPos(ImVec2(10 * UIOverlay.scale, 10 * UIOverlay.scale));
ImGui::SetNextWindowPos(ImVec2(10 * ui.scale, 10 * ui.scale));
ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiSetCond_FirstUseEver);
ImGui::Begin("Vulkan Example", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove);
ImGui::TextUnformatted(title.c_str());
@ -719,10 +719,10 @@ void VulkanExampleBase::updateOverlay()
ImGui::Text("%.2f ms/frame (%.1d fps)", (1000.0f / lastFPS), lastFPS);
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0.0f, 5.0f * UIOverlay.scale));
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0.0f, 5.0f * ui.scale));
#endif
ImGui::PushItemWidth(110.0f * UIOverlay.scale);
OnUpdateUIOverlay(&UIOverlay);
ImGui::PushItemWidth(110.0f * ui.scale);
OnUpdateUIOverlay(&ui);
ImGui::PopItemWidth();
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
ImGui::PopStyleVar();
@ -732,9 +732,9 @@ void VulkanExampleBase::updateOverlay()
ImGui::PopStyleVar();
ImGui::Render();
if (UIOverlay.update() || UIOverlay.updated) {
if (ui.update() || ui.updated) {
buildCommandBuffers();
UIOverlay.updated = false;
ui.updated = false;
}
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
@ -746,13 +746,13 @@ void VulkanExampleBase::updateOverlay()
void VulkanExampleBase::drawUI(const VkCommandBuffer commandBuffer)
{
if (settings.overlay && UIOverlay.visible) {
if (settings.overlay && ui.visible) {
const VkViewport viewport = vks::initializers::viewport((float)width, (float)height, 0.0f, 1.0f);
const VkRect2D scissor = vks::initializers::rect2D(width, height, 0, 0);
vkCmdSetViewport(commandBuffer, 0, 1, &viewport);
vkCmdSetScissor(commandBuffer, 0, 1, &scissor);
UIOverlay.draw(commandBuffer);
ui.draw(commandBuffer);
}
}
@ -940,7 +940,7 @@ VulkanExampleBase::~VulkanExampleBase()
}
if (settings.overlay) {
UIOverlay.freeResources();
ui.freeResources();
}
delete vulkanDevice;
@ -1290,8 +1290,8 @@ void VulkanExampleBase::handleMessages(HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
paused = !paused;
break;
case KEY_F1:
UIOverlay.visible = !UIOverlay.visible;
UIOverlay.updated = true;
ui.visible = !ui.visible;
ui.updated = true;
break;
case KEY_F2:
if (camera.type == Camera::CameraType::lookat) {
@ -1477,7 +1477,7 @@ int32_t VulkanExampleBase::handleAppInput(struct android_app* app, AInputEvent*
bool handled = false;
if (vulkanExample->settings.overlay) {
ImGuiIO& io = ImGui::GetIO();
handled = io.WantCaptureMouse && vulkanExample->UIOverlay.visible;
handled = io.WantCaptureMouse && vulkanExample->ui.visible;
}
if (!handled) {
int32_t eventX = AMotionEvent_getX(event, 0);
@ -1530,8 +1530,8 @@ int32_t VulkanExampleBase::handleAppInput(struct android_app* app, AInputEvent*
case AKEYCODE_1: // support keyboards with no function keys
case AKEYCODE_F1:
case AKEYCODE_BUTTON_L1:
vulkanExample->UIOverlay.visible = !vulkanExample->UIOverlay.visible;
vulkanExample->UIOverlay.updated = true;
vulkanExample->ui.visible = !vulkanExample->ui.visible;
vulkanExample->ui.updated = true;
break;
case AKEYCODE_BUTTON_R1:
vulkanExample->keyPressed(GAMEPAD_BUTTON_R1);
@ -1734,8 +1734,8 @@ static CVReturn displayLinkOutputCallback(CVDisplayLinkRef displayLink, const CV
break;
case KEY_1: // support keyboards with no function keys
case KEY_F1:
vulkanExample->UIOverlay.visible = !vulkanExample->UIOverlay.visible;
vulkanExample->UIOverlay.updated = true;
vulkanExample->ui.visible = !vulkanExample->ui.visible;
vulkanExample->ui.updated = true;
break;
case KEY_DELETE: // support keyboards with no escape key
case KEY_ESCAPE:
@ -2130,8 +2130,8 @@ void VulkanExampleBase::handleEvent(const DFBWindowEvent *event)
paused = !paused;
break;
case KEY_F1:
UIOverlay.visible = !UIOverlay.visible;
UIOverlay.updated = true;
ui.visible = !ui.visible;
ui.updated = true;
break;
default:
break;
@ -2305,8 +2305,8 @@ void VulkanExampleBase::keyboardKey(struct wl_keyboard *keyboard,
break;
case KEY_F1:
if (state) {
UIOverlay.visible = !UIOverlay.visible;
UIOverlay.updated = true;
ui.visible = !ui.visible;
ui.updated = true;
}
break;
case KEY_ESCAPE:
@ -2667,8 +2667,8 @@ void VulkanExampleBase::handleEvent(const xcb_generic_event_t *event)
paused = !paused;
break;
case KEY_F1:
UIOverlay.visible = !UIOverlay.visible;
UIOverlay.updated = true;
ui.visible = !ui.visible;
ui.updated = true;
break;
}
}
@ -2793,8 +2793,8 @@ void VulkanExampleBase::handleEvent()
paused = !paused;
break;
case KEYCODE_F1:
UIOverlay.visible = !UIOverlay.visible;
UIOverlay.updated = true;
ui.visible = !ui.visible;
ui.updated = true;
break;
default:
break;
@ -3198,7 +3198,7 @@ void VulkanExampleBase::windowResize()
if ((width > 0.0f) && (height > 0.0f)) {
if (settings.overlay) {
UIOverlay.resize(width, height);
ui.resize(width, height);
}
}
@ -3235,7 +3235,7 @@ void VulkanExampleBase::handleMouseMove(int32_t x, int32_t y)
if (settings.overlay) {
ImGuiIO& io = ImGui::GetIO();
handled = io.WantCaptureMouse && UIOverlay.visible;
handled = io.WantCaptureMouse && ui.visible;
}
mouseMoved((float)x, (float)y, handled);

View file

@ -161,7 +161,7 @@ public:
uint32_t width = 1280;
uint32_t height = 720;
vks::UIOverlay UIOverlay;
vks::UIOverlay ui;
CommandLineParser commandLineParser;
/** @brief Last frame time measured using a high performance timer (if available) */

View file

@ -1,7 +1,7 @@
/*
* Vulkan Example - imGui (https://github.com/ocornut/imgui)
*
* Copyright (C) 2017-2023 by Sascha Willems - www.saschawillems.de
* Copyright (C) 2017-2024 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
@ -61,9 +61,9 @@ public:
//SRS - Set ImGui font and style scale factors to handle retina and other HiDPI displays
ImGuiIO& io = ImGui::GetIO();
io.FontGlobalScale = example->UIOverlay.scale;
io.FontGlobalScale = example->ui.scale;
ImGuiStyle& style = ImGui::GetStyle();
style.ScaleAllSizes(example->UIOverlay.scale);
style.ScaleAllSizes(example->ui.scale);
};
~ImGUI()
@ -380,8 +380,8 @@ public:
// Init imGui windows and elements
// Debug window
ImGui::SetWindowPos(ImVec2(20 * example->UIOverlay.scale, 20 * example->UIOverlay.scale), ImGuiSetCond_FirstUseEver);
ImGui::SetWindowSize(ImVec2(300 * example->UIOverlay.scale, 300 * example->UIOverlay.scale), ImGuiSetCond_Always);
ImGui::SetWindowPos(ImVec2(20 * example->ui.scale, 20 * example->ui.scale), ImGuiSetCond_FirstUseEver);
ImGui::SetWindowSize(ImVec2(300 * example->ui.scale, 300 * example->ui.scale), ImGuiSetCond_Always);
ImGui::TextUnformatted(example->title.c_str());
ImGui::TextUnformatted(device->properties.deviceName);
@ -409,8 +409,8 @@ public:
ImGui::InputFloat3("rotation", &example->camera.rotation.x, 2);
// Example settings window
ImGui::SetNextWindowPos(ImVec2(20 * example->UIOverlay.scale, 360 * example->UIOverlay.scale), ImGuiSetCond_FirstUseEver);
ImGui::SetNextWindowSize(ImVec2(300 * example->UIOverlay.scale, 200 * example->UIOverlay.scale), ImGuiSetCond_FirstUseEver);
ImGui::SetNextWindowPos(ImVec2(20 * example->ui.scale, 360 * example->ui.scale), ImGuiSetCond_FirstUseEver);
ImGui::SetNextWindowSize(ImVec2(300 * example->ui.scale, 200 * example->ui.scale), ImGuiSetCond_FirstUseEver);
ImGui::Begin("Example settings");
ImGui::Checkbox("Render models", &uiSettings.displayModels);
ImGui::Checkbox("Display logos", &uiSettings.displayLogos);
@ -638,7 +638,7 @@ public:
}
// Render imGui
if (UIOverlay.visible) {
if (ui.visible) {
imGui->drawFrame(drawCmdBuffers[i]);
}
@ -794,9 +794,9 @@ public:
io.DeltaTime = frameTimer;
io.MousePos = ImVec2(mouseState.position.x, mouseState.position.y);
io.MouseDown[0] = mouseState.buttons.left && UIOverlay.visible;
io.MouseDown[1] = mouseState.buttons.right && UIOverlay.visible;
io.MouseDown[2] = mouseState.buttons.middle && UIOverlay.visible;
io.MouseDown[0] = mouseState.buttons.left && ui.visible;
io.MouseDown[1] = mouseState.buttons.right && ui.visible;
io.MouseDown[2] = mouseState.buttons.middle && ui.visible;
draw();
}
@ -804,7 +804,7 @@ public:
virtual void mouseMoved(double x, double y, bool &handled)
{
ImGuiIO& io = ImGui::GetIO();
handled = io.WantCaptureMouse && UIOverlay.visible;
handled = io.WantCaptureMouse && ui.visible;
}
// Input handling is platform specific, to show how it's basically done this sample implements it for Windows

View file

@ -1,7 +1,7 @@
/*
* Vulkan Example - Using input attachments
*
* Copyright (C) 2018-2023 by Sascha Willems - www.saschawillems.de
* Copyright (C) 2018-2024 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*
@ -77,7 +77,7 @@ public:
camera.setPosition(glm::vec3(1.65f, 1.75f, -6.15f));
camera.setRotation(glm::vec3(-12.75f, 380.0f, 0.0f));
camera.setPerspective(60.0f, (float)width / (float)height, 0.1f, 256.0f);
UIOverlay.subpass = 1;
ui.subpass = 1;
}
~VulkanExample()

View file

@ -4,7 +4,7 @@
* This sample shows how to do multisampled anti aliasing using built-in hardware via resolve attachments
* These are special attachments that a multi-sampled is resolved to using a fixed sample pattern
*
* Copyright (C) 2016-2023 by Sascha Willems - www.saschawillems.de
* Copyright (C) 2016-2024 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
@ -508,7 +508,7 @@ public:
void prepare()
{
sampleCount = getMaxAvailableSampleCount();
UIOverlay.rasterizationSamples = sampleCount;
ui.rasterizationSamples = sampleCount;
VulkanExampleBase::prepare();
loadAssets();
prepareUniformBuffers();

View file

@ -1,7 +1,7 @@
/*
* Vulkan Example - Multi threaded command buffer generation and rendering
*
* Copyright (C) 2016-2023 by Sascha Willems - www.saschawillems.de
* Copyright (C) 2016-2024 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
@ -388,7 +388,7 @@ public:
}
// Render ui last
if (UIOverlay.visible) {
if (ui.visible) {
commandBuffers.push_back(secondaryCommandBuffers.ui);
}

View file

@ -1,7 +1,7 @@
/*
* Vulkan Example - Using subpasses for G-Buffer compositing
*
* Copyright (C) 2016-2023 by Sascha Willems - www.saschawillems.de
* Copyright (C) 2016-2024 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*
@ -98,7 +98,7 @@ public:
camera.setPosition(glm::vec3(-3.2f, 1.0f, 5.9f));
camera.setRotation(glm::vec3(0.5f, 210.05f, 0.0f));
camera.setPerspective(60.0f, (float)width / (float)height, 0.1f, 256.0f);
UIOverlay.subpass = 2;
ui.subpass = 2;
}
~VulkanExample()

View file

@ -4,7 +4,7 @@
* This sample renders a basic text overlay on top of a 3D scene that can be used e.g. for debug purposes
* For a more complete GUI sample see the ImGui sample
*
* Copyright (C) 2016-2023 by Sascha Willems - www.saschawillems.de
* Copyright (C) 2016-2024 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
@ -535,23 +535,23 @@ public:
textOverlay->beginTextUpdate();
textOverlay->addText(title, 5.0f * UIOverlay.scale, 5.0f * UIOverlay.scale, TextOverlay::alignLeft);
textOverlay->addText(title, 5.0f * ui.scale, 5.0f * ui.scale, TextOverlay::alignLeft);
std::stringstream ss;
ss << std::fixed << std::setprecision(2) << (frameTimer * 1000.0f) << "ms (" << lastFPS << " fps)";
textOverlay->addText(ss.str(), 5.0f * UIOverlay.scale, 25.0f * UIOverlay.scale, TextOverlay::alignLeft);
textOverlay->addText(ss.str(), 5.0f * ui.scale, 25.0f * ui.scale, TextOverlay::alignLeft);
textOverlay->addText(deviceProperties.deviceName, 5.0f * UIOverlay.scale, 45.0f * UIOverlay.scale, TextOverlay::alignLeft);
textOverlay->addText(deviceProperties.deviceName, 5.0f * ui.scale, 45.0f * ui.scale, TextOverlay::alignLeft);
// Display current model view matrix
textOverlay->addText("model view matrix", (float)width - 5.0f * UIOverlay.scale, 5.0f * UIOverlay.scale, TextOverlay::alignRight);
textOverlay->addText("model view matrix", (float)width - 5.0f * ui.scale, 5.0f * ui.scale, TextOverlay::alignRight);
for (uint32_t i = 0; i < 4; i++)
{
ss.str("");
ss << std::fixed << std::setprecision(2) << std::showpos;
ss << uniformData.modelView[0][i] << " " << uniformData.modelView[1][i] << " " << uniformData.modelView[2][i] << " " << uniformData.modelView[3][i];
textOverlay->addText(ss.str(), (float)width - 5.0f * UIOverlay.scale, (25.0f + (float)i * 20.0f) * UIOverlay.scale, TextOverlay::alignRight);
textOverlay->addText(ss.str(), (float)width - 5.0f * ui.scale, (25.0f + (float)i * 20.0f) * ui.scale, TextOverlay::alignRight);
}
glm::vec3 projected = glm::project(glm::vec3(0.0f), uniformData.modelView, uniformData.projection, glm::vec4(0, 0, (float)width, (float)height));
@ -559,8 +559,8 @@ public:
#if defined(__ANDROID__)
#else
textOverlay->addText("Press \"space\" to toggle text overlay", 5.0f * UIOverlay.scale, 65.0f * UIOverlay.scale, TextOverlay::alignLeft);
textOverlay->addText("Hold middle mouse button and drag to move", 5.0f * UIOverlay.scale, 85.0f * UIOverlay.scale, TextOverlay::alignLeft);
textOverlay->addText("Press \"space\" to toggle text overlay", 5.0f * ui.scale, 65.0f * ui.scale, TextOverlay::alignLeft);
textOverlay->addText("Hold middle mouse button and drag to move", 5.0f * ui.scale, 85.0f * ui.scale, TextOverlay::alignLeft);
#endif
textOverlay->endTextUpdate();
@ -666,7 +666,7 @@ public:
renderPass,
&width,
&height,
UIOverlay.scale,
ui.scale,
shaderStages
);
updateTextOverlay();