mirror of
https://github.com/antopilo/Nuake.git
synced 2026-09-15 20:08:54 +03:00
No more random textures when resizing viewport
This commit is contained in:
@@ -77,14 +77,18 @@ void ViewportWidget::Draw()
|
||||
// This is important for make UI mouse coord relative to viewport
|
||||
// Nuake::Input::SetViewportDimensions(m_ViewportPos, viewportPanelSize);
|
||||
|
||||
VkDescriptorSet textureDesc = sceneViewport->GetRenderTarget()->GetImGuiDescriptorSet();
|
||||
|
||||
ImVec2 imagePos = ImGui::GetWindowPos() + ImGui::GetCursorPos();
|
||||
ImVec2 viewportMin = ImGui::GetCursorScreenPos();
|
||||
// Input::SetEditorViewportSize(m_ViewportPos, viewportPanelSize);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
||||
//m_ViewportPos = { imagePos.x, imagePos.y };
|
||||
ImGui::Image(textureDesc, regionAvail, { 0, 1 }, { 1, 0 });
|
||||
|
||||
VkDescriptorSet textureDesc = sceneViewport->GetRenderTarget()->GetImGuiDescriptorSet();
|
||||
if (!needsResize)
|
||||
{
|
||||
ImGui::Image(textureDesc, regionAvail, { 0, 1 }, { 1, 0 });
|
||||
}
|
||||
|
||||
ImGui::PopStyleVar();
|
||||
|
||||
float title_bar_height = ImGui::GetFontSize() + ImGui::GetStyle().FramePadding.y * 2;
|
||||
@@ -470,7 +474,7 @@ void ViewportWidget::OnDebugDraw(DebugCmd& debugCmd)
|
||||
{
|
||||
auto [transform, light] = scene->m_Registry.get<TransformComponent, LightComponent>(e);
|
||||
|
||||
auto selection = editorContext.GetSelection();
|
||||
const auto& selection = editorContext.GetSelection();
|
||||
bool isSelected = selection.Type == EditorSelectionType::Entity && selection.Entity.GetHandle() == (int)e;
|
||||
|
||||
std::string texturePath = "Resources/Gizmos/";
|
||||
|
||||
@@ -29,8 +29,19 @@ bool Viewport::Resize()
|
||||
{
|
||||
viewportSize = queuedResize;
|
||||
|
||||
renderTarget = CreateRef<VulkanImage>(ImageFormat::RGBA16F, viewportSize);
|
||||
renderTarget->GetImGuiDescriptorSet();
|
||||
auto newRenderTarget = CreateRef<VulkanImage>(ImageFormat::RGBA16F, viewportSize);
|
||||
VkRenderer::Get().ImmediateSubmit([&](VkCommandBuffer cmd)
|
||||
{
|
||||
Cmd command(cmd);
|
||||
command.TransitionImageLayout(renderTarget, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
|
||||
command.TransitionImageLayout(newRenderTarget, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
|
||||
command.CopyImageToImage(renderTarget, newRenderTarget);
|
||||
command.TransitionImageLayout(renderTarget, VK_IMAGE_LAYOUT_GENERAL);
|
||||
command.TransitionImageLayout(newRenderTarget, VK_IMAGE_LAYOUT_GENERAL);
|
||||
});
|
||||
|
||||
renderTarget = newRenderTarget;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -722,6 +722,7 @@ bool VkRenderer::Draw()
|
||||
{
|
||||
//viewport->Resize();
|
||||
}
|
||||
ResizeViewports();
|
||||
|
||||
FrameSkipped = false;
|
||||
|
||||
@@ -768,6 +769,7 @@ bool VkRenderer::Draw()
|
||||
|
||||
void VkRenderer::EndDraw()
|
||||
{
|
||||
|
||||
if (FrameSkipped)
|
||||
{
|
||||
return;
|
||||
@@ -822,10 +824,10 @@ void VkRenderer::EndDraw()
|
||||
|
||||
presentInfo.pImageIndices = &swapchainImageIndex;
|
||||
|
||||
ResizeViewports();
|
||||
|
||||
VK_CALL(vkQueuePresentKHR(GPUQueue, &presentInfo));
|
||||
|
||||
|
||||
auto& io = ImGui::GetIO();
|
||||
//io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable;
|
||||
//Update and Render additional Platform Windows
|
||||
|
||||
Reference in New Issue
Block a user