HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
PipelineFlat_Vertex.hpp
1// Copyright 2019 Pokitec
2// All rights reserved.
3
4#pragma once
5
6#include "TTauri/Foundation/vspan.hpp"
7#include "TTauri/Foundation/vec.hpp"
8#include "TTauri/Foundation/aarect.hpp"
9#include "TTauri/Foundation/R16G16B16A16SFloat.hpp"
10#include "TTauri/Foundation/R32G32B32A32SFloat.hpp"
11#include "TTauri/Foundation/R32G32B32SFloat.hpp"
12#include <vulkan/vulkan.hpp>
13#include <nonstd/span>
14
15namespace tt::PipelineFlat {
16
20struct Vertex {
23
26
29
30
31 tt_force_inline Vertex(vec position, aarect clippingRectangle, vec color) noexcept :
34 color(color) {}
35
36 static vk::VertexInputBindingDescription inputBindingDescription()
37 {
38 return {
39 0, sizeof(Vertex), vk::VertexInputRate::eVertex
40 };
41 }
42
43 static std::vector<vk::VertexInputAttributeDescription> inputAttributeDescriptions()
44 {
45 return {
46 { 0, 0, vk::Format::eR32G32B32Sfloat, offsetof(Vertex, position) },
47 { 1, 0, vk::Format::eR32G32B32A32Sfloat, offsetof(Vertex, clippingRectangle) },
48 { 3, 0, vk::Format::eR16G16B16A16Sfloat, offsetof(Vertex, color) }
49 };
50 }
51};
52
53}
Class which represents an axis-aligned rectangle.
Definition aarect.hpp:13
Definition R16G16B16A16SFloat.hpp:15
Definition R32G32B32A32SFloat.hpp:13
Definition R32G32B32SFloat.hpp:13
A 4D vector.
Definition vec.hpp:37
Definition PipelineFlat_Vertex.hpp:20
R32G32B32SFloat position
The pixel-coordinates where the origin is located relative to the bottom-left corner of the window.
Definition PipelineFlat_Vertex.hpp:22
R16G16B16A16SFloat color
transparency of the image.
Definition PipelineFlat_Vertex.hpp:28
R32G32B32A32SFloat clippingRectangle
The position in pixels of the clipping rectangle relative to the bottom-left corner of the window,...
Definition PipelineFlat_Vertex.hpp:25