Program Listing for File ViewportHelper.hpp

Program Listing for File ViewportHelper.hpp#

↰ Return to documentation for file (Src/GraphicsEngineVulkan/common/ViewportHelper.hpp)

#pragma once

#include <vulkan/vulkan.hpp>

namespace Kataglyphis {

// Full extent, unflipped y, [0, 1] depth; a pass needing anything else builds its own and says why.
constexpr vk::Viewport fullExtentViewport(vk::Extent2D extent)
{ return vk::Viewport{ 0.0F, 0.0F, static_cast<float>(extent.width), static_cast<float>(extent.height), 0.0F, 1.0F }; }

constexpr vk::Rect2D fullExtentScissor(vk::Extent2D extent) { return vk::Rect2D{ vk::Offset2D{ 0, 0 }, extent }; }

inline void setFullExtentViewportAndScissor(vk::CommandBuffer commandBuffer, vk::Extent2D extent)
{
    const vk::Viewport viewport = fullExtentViewport(extent);
    commandBuffer.setViewport(0, viewport);
    const vk::Rect2D scissor = fullExtentScissor(extent);
    commandBuffer.setScissor(0, scissor);
}

}// namespace Kataglyphis