Fix scissor offset being negative

This commit is contained in:
Marcell Kiss 2017-02-11 12:09:31 +01:00
parent 509df3e279
commit e0244c8f62

View File

@ -301,8 +301,8 @@ void ImGui_ImplGlfwVulkan_RenderDrawLists(ImDrawData* draw_data)
else else
{ {
VkRect2D scissor; VkRect2D scissor;
scissor.offset.x = (int32_t)(pcmd->ClipRect.x); scissor.offset.x = (int32_t)(pcmd->ClipRect.x) > 0 ? (int32_t)(pcmd->ClipRect.x) : 0; // clamp these to 0, scissor offset.xy must be > 0
scissor.offset.y = (int32_t)(pcmd->ClipRect.y); scissor.offset.y = (int32_t)(pcmd->ClipRect.y) > 0 ? (int32_t)(pcmd->ClipRect.y) : 0;
scissor.extent.width = (uint32_t)(pcmd->ClipRect.z - pcmd->ClipRect.x); scissor.extent.width = (uint32_t)(pcmd->ClipRect.z - pcmd->ClipRect.x);
scissor.extent.height = (uint32_t)(pcmd->ClipRect.w - pcmd->ClipRect.y + 1); // TODO: + 1?????? scissor.extent.height = (uint32_t)(pcmd->ClipRect.w - pcmd->ClipRect.y + 1); // TODO: + 1??????
vkCmdSetScissor(g_CommandBuffer, 0, 1, &scissor); vkCmdSetScissor(g_CommandBuffer, 0, 1, &scissor);