MythTV  master
mythcombobuffervulkan.h
Go to the documentation of this file.
1 #ifndef MYTHCOMBOBUFFERVULKAN_H
2 #define MYTHCOMBOBUFFERVULKAN_H
3 
4 // Qt
5 #include <QRect>
6 #include <QMatrix4x4>
7 
8 // MythTV
9 #include "libmythui/mythuiexp.h"
10 
11 // Total Buffer size of 112bytes.
12 // Vulkan spec guarantees 128 bytes for push constants
13 // Prevent clang-tidy modernize-avoid-c-arrays warnings.
14 extern "C" {
15 struct alignas(16) VulkanComboBuffer
16 {
17  float transform [16];
18  float position [4];
19  float texcoords [4];
20  float color [4];
21 };
22 }
23 
24 #define MYTH_PUSHBUFFER_SIZE (sizeof(VulkanComboBuffer))
25 
27 {
28  public:
29  MythComboBufferVulkan(float Width, float Height);
30 
31  const void* Data(void) const;
32  void PushData(const QMatrix4x4 &Transform, QRect Source,
33  QRect Destination, int Alpha);
34  void PopData(void);
35 
36  std::vector<VulkanComboBuffer> m_data;
37  float m_width { 0.0F };
38  float m_height { 0.0F };
39 };
40 
41 #endif
Transform
static void Transform(SIMI *Simi, F_PT xo, F_PT yo, F_PT *x, F_PT *y)
Definition: ifs.cpp:290
MUI_PUBLIC
#define MUI_PUBLIC
Definition: mythuiexp.h:9
VulkanComboBuffer
Definition: mythcombobuffervulkan.h:15
VulkanComboBuffer::position
float position[4]
Definition: mythcombobuffervulkan.h:18
Source
Definition: channelsettings.cpp:93
VulkanComboBuffer::color
float color[4]
Definition: mythcombobuffervulkan.h:20
MythComboBufferVulkan
Definition: mythcombobuffervulkan.h:26
VulkanComboBuffer::transform
float transform[16]
Definition: mythcombobuffervulkan.h:17
VulkanComboBuffer::texcoords
float texcoords[4]
Definition: mythcombobuffervulkan.h:19
MythComboBufferVulkan::m_data
std::vector< VulkanComboBuffer > m_data
Definition: mythcombobuffervulkan.h:36
mythuiexp.h