Skip to content

Commit

Permalink
Fixed ImGui viewport/scissor
Browse files Browse the repository at this point in the history
  • Loading branch information
nepp95 committed Dec 28, 2024
1 parent c788a5a commit 9190c8c
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 24 deletions.
45 changes: 24 additions & 21 deletions EppoEngine/Source/Platform/Vulkan/VulkanRenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ namespace Eppo
m_CommandQueue.AddCommand(std::move(command));
}

void VulkanRenderer::BeginRenderPass(const Ref<CommandBuffer>& commandBuffer, const Ref<Pipeline>& pipeline)
void VulkanRenderer::BeginRenderPass(const Ref<CommandBuffer>& commandBuffer, const Ref<Pipeline>& pipeline, bool bindPipeline)
{
EPPO_PROFILE_FUNCTION("VulkanRenderer::BeginRenderPass");

Expand Down Expand Up @@ -149,26 +149,29 @@ namespace Eppo
const VkCommandBuffer cb = cmd->GetCurrentCommandBuffer();
vkCmdBeginRendering(cb, &renderingInfo);

// Bind pipeline
vkCmdBindPipeline(cb, VK_PIPELINE_BIND_POINT_GRAPHICS, vkPipeline->GetPipeline());

// Set viewport
VkViewport viewport;
viewport.x = 0.0f;
viewport.y = 0.0f;
viewport.width = static_cast<float>(spec.Width);
viewport.height = static_cast<float>(spec.Height);
viewport.minDepth = 0.0f;
viewport.maxDepth = 1.0f;

vkCmdSetViewport(cb, 0, 1, &viewport);

// Set scissor
VkRect2D scissor;
scissor.offset = { 0, 0 };
scissor.extent = { spec.Width, spec.Height };

vkCmdSetScissor(cb, 0, 1, &scissor);
if (bindPipeline)
{
// Bind pipeline
vkCmdBindPipeline(cb, VK_PIPELINE_BIND_POINT_GRAPHICS, vkPipeline->GetPipeline());

// Set viewport
VkViewport viewport;
viewport.x = 0.0f;
viewport.y = 0.0f;
viewport.width = static_cast<float>(spec.Width);
viewport.height = static_cast<float>(spec.Height);
viewport.minDepth = 0.0f;
viewport.maxDepth = 1.0f;

vkCmdSetViewport(cb, 0, 1, &viewport);

// Set scissor
VkRect2D scissor;
scissor.offset = { 0, 0 };
scissor.extent = { spec.Width, spec.Height };

vkCmdSetScissor(cb, 0, 1, &scissor);
}
}

void VulkanRenderer::EndRenderPass(const Ref<CommandBuffer>& commandBuffer)
Expand Down
2 changes: 1 addition & 1 deletion EppoEngine/Source/Platform/Vulkan/VulkanRenderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace Eppo
void SubmitCommand(RenderCommand command) override;

// Render passes
void BeginRenderPass(const Ref<CommandBuffer>& commandBuffer, const Ref<Pipeline>& pipeline) override;
void BeginRenderPass(const Ref<CommandBuffer>& commandBuffer, const Ref<Pipeline>& pipeline, bool bindPipeline = true) override;
void EndRenderPass(const Ref<CommandBuffer>& commandBuffer) override;

// Shaders
Expand Down
2 changes: 1 addition & 1 deletion EppoEngine/Source/Platform/Vulkan/VulkanSceneRenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -929,7 +929,7 @@ namespace Eppo
VulkanImage::TransitionImage(commandBuffer, swapchain->GetCurrentImage(), VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);

// Begin rendering
renderer->BeginRenderPass(cmd, pipeline);
renderer->BeginRenderPass(cmd, pipeline, false);

ImDrawData* data = ImGui::GetDrawData();
ImGui_ImplVulkan_RenderDrawData(data, commandBuffer);
Expand Down
2 changes: 1 addition & 1 deletion EppoEngine/Source/Renderer/Renderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace Eppo
virtual void SubmitCommand(RenderCommand command) = 0;

// Render passes
virtual void BeginRenderPass(const Ref<CommandBuffer>& commandBuffer, const Ref<Pipeline>& pipeline) = 0;
virtual void BeginRenderPass(const Ref<CommandBuffer>& commandBuffer, const Ref<Pipeline>& pipeline, bool bindPipeline = true) = 0;
virtual void EndRenderPass(const Ref<CommandBuffer>& commandBuffer) = 0;

// Shaders
Expand Down

0 comments on commit 9190c8c

Please sign in to comment.