MythTV master
mythvisualcirclesvulkan.cpp
Go to the documentation of this file.
1// MythTV
4
5#define CircleVertex450 (VK_SHADER_STAGE_VERTEX_BIT | (1 << 6))
6#define CircleFragment450 (VK_SHADER_STAGE_FRAGMENT_BIT | (1 << 7))
7
10 { VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
11 { { 0, { 0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1, VK_SHADER_STAGE_VERTEX_BIT, nullptr } } },
12 { },
13 { },
14 { VK_SHADER_STAGE_VERTEX_BIT, 0, sizeof(CirclesBuffer) } }
15 },
17 { VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
18 { },
19 { },
20 { },
21 { } }
22 }
23};
24
26{
28{
29"#version 450\n"
30"#extension GL_ARB_separate_shader_objects : enable\n"
31"layout(set = 0, binding = 0) uniform Projection { mat4 projection; } proj;\n"
32"layout(push_constant) uniform ComboBuffer {\n"
33" mat4 transform;\n"
34" vec4 positions;\n"
35" vec4 params;\n"
36" vec4 color;\n"
37"} cb;\n"
38"layout(location = 0) out vec4 circleColor;\n"
39"layout(location = 1) out vec4 circleParams;\n"
40"void main() {\n"
41" vec2 vertices[4] = { vec2(cb.positions[0], cb.positions[1]),\n"
42" vec2(cb.positions[0], cb.positions[3]),\n"
43" vec2(cb.positions[2], cb.positions[1]),\n"
44" vec2(cb.positions[2], cb.positions[3]) };\n"
45" gl_Position = proj.projection * cb.transform * vec4(vertices[gl_VertexIndex], 0.0, 1.0);\n"
46" circleColor = cb.color;\n"
47" circleParams = cb.params;\n"
48" circleParams.x = (cb.positions[0] + cb.positions[2]) / 2.0;\n"
49" circleParams.y = (cb.positions[1] + cb.positions[3]) / 2.0;\n"
50"}\n",
51{
520x07230203, 0x00010300, 0x00080008, 0x00000064, 0x00000000, 0x00020011,
530x00000001, 0x0006000B, 0x00000001, 0x4C534C47, 0x6474732E, 0x3035342E,
540x00000000, 0x0003000E, 0x00000000, 0x00000001, 0x0009000F, 0x00000000,
550x00000004, 0x6E69616D, 0x00000000, 0x00000031, 0x0000003E, 0x0000004B,
560x00000050, 0x00030003, 0x00000002, 0x000001C2, 0x00090004, 0x415F4C47,
570x735F4252, 0x72617065, 0x5F657461, 0x64616873, 0x6F5F7265, 0x63656A62,
580x00007374, 0x00040005, 0x00000004, 0x6E69616D, 0x00000000, 0x00050005,
590x0000000C, 0x74726576, 0x73656369, 0x00000000, 0x00050005, 0x0000000F,
600x626D6F43, 0x6675426F, 0x00726566, 0x00060006, 0x0000000F, 0x00000000,
610x6E617274, 0x726F6673, 0x0000006D, 0x00060006, 0x0000000F, 0x00000001,
620x69736F70, 0x6E6F6974, 0x00000073, 0x00050006, 0x0000000F, 0x00000002,
630x61726170, 0x0000736D, 0x00050006, 0x0000000F, 0x00000003, 0x6F6C6F63,
640x00000072, 0x00030005, 0x00000011, 0x00006263, 0x00060005, 0x0000002F,
650x505F6C67, 0x65567265, 0x78657472, 0x00000000, 0x00060006, 0x0000002F,
660x00000000, 0x505F6C67, 0x7469736F, 0x006E6F69, 0x00070006, 0x0000002F,
670x00000001, 0x505F6C67, 0x746E696F, 0x657A6953, 0x00000000, 0x00070006,
680x0000002F, 0x00000002, 0x435F6C67, 0x4470696C, 0x61747369, 0x0065636E,
690x00070006, 0x0000002F, 0x00000003, 0x435F6C67, 0x446C6C75, 0x61747369,
700x0065636E, 0x00030005, 0x00000031, 0x00000000, 0x00050005, 0x00000033,
710x6A6F7250, 0x69746365, 0x00006E6F, 0x00060006, 0x00000033, 0x00000000,
720x6A6F7270, 0x69746365, 0x00006E6F, 0x00040005, 0x00000035, 0x6A6F7270,
730x00000000, 0x00060005, 0x0000003E, 0x565F6C67, 0x65747265, 0x646E4978,
740x00007865, 0x00050005, 0x0000004B, 0x63726963, 0x6F43656C, 0x00726F6C,
750x00060005, 0x00000050, 0x63726963, 0x6150656C, 0x736D6172, 0x00000000,
760x00040048, 0x0000000F, 0x00000000, 0x00000005, 0x00050048, 0x0000000F,
770x00000000, 0x00000023, 0x00000000, 0x00050048, 0x0000000F, 0x00000000,
780x00000007, 0x00000010, 0x00050048, 0x0000000F, 0x00000001, 0x00000023,
790x00000040, 0x00050048, 0x0000000F, 0x00000002, 0x00000023, 0x00000050,
800x00050048, 0x0000000F, 0x00000003, 0x00000023, 0x00000060, 0x00030047,
810x0000000F, 0x00000002, 0x00050048, 0x0000002F, 0x00000000, 0x0000000B,
820x00000000, 0x00050048, 0x0000002F, 0x00000001, 0x0000000B, 0x00000001,
830x00050048, 0x0000002F, 0x00000002, 0x0000000B, 0x00000003, 0x00050048,
840x0000002F, 0x00000003, 0x0000000B, 0x00000004, 0x00030047, 0x0000002F,
850x00000002, 0x00040048, 0x00000033, 0x00000000, 0x00000005, 0x00050048,
860x00000033, 0x00000000, 0x00000023, 0x00000000, 0x00050048, 0x00000033,
870x00000000, 0x00000007, 0x00000010, 0x00030047, 0x00000033, 0x00000002,
880x00040047, 0x00000035, 0x00000022, 0x00000000, 0x00040047, 0x00000035,
890x00000021, 0x00000000, 0x00040047, 0x0000003E, 0x0000000B, 0x0000002A,
900x00040047, 0x0000004B, 0x0000001E, 0x00000000, 0x00040047, 0x00000050,
910x0000001E, 0x00000001, 0x00020013, 0x00000002, 0x00030021, 0x00000003,
920x00000002, 0x00030016, 0x00000006, 0x00000020, 0x00040017, 0x00000007,
930x00000006, 0x00000002, 0x00040015, 0x00000008, 0x00000020, 0x00000000,
940x0004002B, 0x00000008, 0x00000009, 0x00000004, 0x0004001C, 0x0000000A,
950x00000007, 0x00000009, 0x00040020, 0x0000000B, 0x00000007, 0x0000000A,
960x00040017, 0x0000000D, 0x00000006, 0x00000004, 0x00040018, 0x0000000E,
970x0000000D, 0x00000004, 0x0006001E, 0x0000000F, 0x0000000E, 0x0000000D,
980x0000000D, 0x0000000D, 0x00040020, 0x00000010, 0x00000009, 0x0000000F,
990x0004003B, 0x00000010, 0x00000011, 0x00000009, 0x00040015, 0x00000012,
1000x00000020, 0x00000001, 0x0004002B, 0x00000012, 0x00000013, 0x00000001,
1010x0004002B, 0x00000008, 0x00000014, 0x00000000, 0x00040020, 0x00000015,
1020x00000009, 0x00000006, 0x0004002B, 0x00000008, 0x00000018, 0x00000001,
1030x0004002B, 0x00000008, 0x0000001E, 0x00000003, 0x0004002B, 0x00000008,
1040x00000022, 0x00000002, 0x0004001C, 0x0000002E, 0x00000006, 0x00000018,
1050x0006001E, 0x0000002F, 0x0000000D, 0x00000006, 0x0000002E, 0x0000002E,
1060x00040020, 0x00000030, 0x00000003, 0x0000002F, 0x0004003B, 0x00000030,
1070x00000031, 0x00000003, 0x0004002B, 0x00000012, 0x00000032, 0x00000000,
1080x0003001E, 0x00000033, 0x0000000E, 0x00040020, 0x00000034, 0x00000002,
1090x00000033, 0x0004003B, 0x00000034, 0x00000035, 0x00000002, 0x00040020,
1100x00000036, 0x00000002, 0x0000000E, 0x00040020, 0x00000039, 0x00000009,
1110x0000000E, 0x00040020, 0x0000003D, 0x00000001, 0x00000012, 0x0004003B,
1120x0000003D, 0x0000003E, 0x00000001, 0x00040020, 0x00000040, 0x00000007,
1130x00000007, 0x0004002B, 0x00000006, 0x00000043, 0x00000000, 0x0004002B,
1140x00000006, 0x00000044, 0x3F800000, 0x00040020, 0x00000049, 0x00000003,
1150x0000000D, 0x0004003B, 0x00000049, 0x0000004B, 0x00000003, 0x0004002B,
1160x00000012, 0x0000004C, 0x00000003, 0x00040020, 0x0000004D, 0x00000009,
1170x0000000D, 0x0004003B, 0x00000049, 0x00000050, 0x00000003, 0x0004002B,
1180x00000012, 0x00000051, 0x00000002, 0x0004002B, 0x00000006, 0x00000059,
1190x40000000, 0x00040020, 0x0000005B, 0x00000003, 0x00000006, 0x00050036,
1200x00000002, 0x00000004, 0x00000000, 0x00000003, 0x000200F8, 0x00000005,
1210x0004003B, 0x0000000B, 0x0000000C, 0x00000007, 0x00060041, 0x00000015,
1220x00000016, 0x00000011, 0x00000013, 0x00000014, 0x0004003D, 0x00000006,
1230x00000017, 0x00000016, 0x00060041, 0x00000015, 0x00000019, 0x00000011,
1240x00000013, 0x00000018, 0x0004003D, 0x00000006, 0x0000001A, 0x00000019,
1250x00050050, 0x00000007, 0x0000001B, 0x00000017, 0x0000001A, 0x00060041,
1260x00000015, 0x0000001C, 0x00000011, 0x00000013, 0x00000014, 0x0004003D,
1270x00000006, 0x0000001D, 0x0000001C, 0x00060041, 0x00000015, 0x0000001F,
1280x00000011, 0x00000013, 0x0000001E, 0x0004003D, 0x00000006, 0x00000020,
1290x0000001F, 0x00050050, 0x00000007, 0x00000021, 0x0000001D, 0x00000020,
1300x00060041, 0x00000015, 0x00000023, 0x00000011, 0x00000013, 0x00000022,
1310x0004003D, 0x00000006, 0x00000024, 0x00000023, 0x00060041, 0x00000015,
1320x00000025, 0x00000011, 0x00000013, 0x00000018, 0x0004003D, 0x00000006,
1330x00000026, 0x00000025, 0x00050050, 0x00000007, 0x00000027, 0x00000024,
1340x00000026, 0x00060041, 0x00000015, 0x00000028, 0x00000011, 0x00000013,
1350x00000022, 0x0004003D, 0x00000006, 0x00000029, 0x00000028, 0x00060041,
1360x00000015, 0x0000002A, 0x00000011, 0x00000013, 0x0000001E, 0x0004003D,
1370x00000006, 0x0000002B, 0x0000002A, 0x00050050, 0x00000007, 0x0000002C,
1380x00000029, 0x0000002B, 0x00070050, 0x0000000A, 0x0000002D, 0x0000001B,
1390x00000021, 0x00000027, 0x0000002C, 0x0003003E, 0x0000000C, 0x0000002D,
1400x00050041, 0x00000036, 0x00000037, 0x00000035, 0x00000032, 0x0004003D,
1410x0000000E, 0x00000038, 0x00000037, 0x00050041, 0x00000039, 0x0000003A,
1420x00000011, 0x00000032, 0x0004003D, 0x0000000E, 0x0000003B, 0x0000003A,
1430x00050092, 0x0000000E, 0x0000003C, 0x00000038, 0x0000003B, 0x0004003D,
1440x00000012, 0x0000003F, 0x0000003E, 0x00050041, 0x00000040, 0x00000041,
1450x0000000C, 0x0000003F, 0x0004003D, 0x00000007, 0x00000042, 0x00000041,
1460x00050051, 0x00000006, 0x00000045, 0x00000042, 0x00000000, 0x00050051,
1470x00000006, 0x00000046, 0x00000042, 0x00000001, 0x00070050, 0x0000000D,
1480x00000047, 0x00000045, 0x00000046, 0x00000043, 0x00000044, 0x00050091,
1490x0000000D, 0x00000048, 0x0000003C, 0x00000047, 0x00050041, 0x00000049,
1500x0000004A, 0x00000031, 0x00000032, 0x0003003E, 0x0000004A, 0x00000048,
1510x00050041, 0x0000004D, 0x0000004E, 0x00000011, 0x0000004C, 0x0004003D,
1520x0000000D, 0x0000004F, 0x0000004E, 0x0003003E, 0x0000004B, 0x0000004F,
1530x00050041, 0x0000004D, 0x00000052, 0x00000011, 0x00000051, 0x0004003D,
1540x0000000D, 0x00000053, 0x00000052, 0x0003003E, 0x00000050, 0x00000053,
1550x00060041, 0x00000015, 0x00000054, 0x00000011, 0x00000013, 0x00000014,
1560x0004003D, 0x00000006, 0x00000055, 0x00000054, 0x00060041, 0x00000015,
1570x00000056, 0x00000011, 0x00000013, 0x00000022, 0x0004003D, 0x00000006,
1580x00000057, 0x00000056, 0x00050081, 0x00000006, 0x00000058, 0x00000055,
1590x00000057, 0x00050088, 0x00000006, 0x0000005A, 0x00000058, 0x00000059,
1600x00050041, 0x0000005B, 0x0000005C, 0x00000050, 0x00000014, 0x0003003E,
1610x0000005C, 0x0000005A, 0x00060041, 0x00000015, 0x0000005D, 0x00000011,
1620x00000013, 0x00000018, 0x0004003D, 0x00000006, 0x0000005E, 0x0000005D,
1630x00060041, 0x00000015, 0x0000005F, 0x00000011, 0x00000013, 0x0000001E,
1640x0004003D, 0x00000006, 0x00000060, 0x0000005F, 0x00050081, 0x00000006,
1650x00000061, 0x0000005E, 0x00000060, 0x00050088, 0x00000006, 0x00000062,
1660x00000061, 0x00000059, 0x00050041, 0x0000005B, 0x00000063, 0x00000050,
1670x00000018, 0x0003003E, 0x00000063, 0x00000062, 0x000100FD, 0x00010038
168} } },
169{
171{
172"#version 450\n"
173"#extension GL_ARB_separate_shader_objects : enable\n"
174"layout(location = 0) in vec4 circleColor;\n"
175"layout(location = 1) in vec4 circleParams;\n"
176"layout(location = 0) out vec4 fragColor;\n"
177"void main() {\n"
178" float dis = distance(circleParams.xy, gl_FragCoord.xy);\n"
179" float mult1 = smoothstep(circleParams.z + 0.5, circleParams.z - 0.5, dis);\n"
180" float mult2 = smoothstep((circleParams.z - circleParams.w) - 0.5, (circleParams.z - circleParams.w) + 0.5, dis);\n"
181" fragColor = circleColor * vec4(1.0, 1.0, 1.0, mult1 * mult2);\n"
182"}\n",
183{
1840x07230203, 0x00010300, 0x00080008, 0x0000003A, 0x00000000, 0x00020011,
1850x00000001, 0x0006000B, 0x00000001, 0x4C534C47, 0x6474732E, 0x3035342E,
1860x00000000, 0x0003000E, 0x00000000, 0x00000001, 0x0009000F, 0x00000004,
1870x00000004, 0x6E69616D, 0x00000000, 0x0000000B, 0x0000000F, 0x00000031,
1880x00000032, 0x00030010, 0x00000004, 0x00000007, 0x00030003, 0x00000002,
1890x000001C2, 0x00090004, 0x415F4C47, 0x735F4252, 0x72617065, 0x5F657461,
1900x64616873, 0x6F5F7265, 0x63656A62, 0x00007374, 0x00040005, 0x00000004,
1910x6E69616D, 0x00000000, 0x00030005, 0x00000008, 0x00736964, 0x00060005,
1920x0000000B, 0x63726963, 0x6150656C, 0x736D6172, 0x00000000, 0x00060005,
1930x0000000F, 0x465F6C67, 0x43676172, 0x64726F6F, 0x00000000, 0x00040005,
1940x00000013, 0x746C756D, 0x00000031, 0x00040005, 0x00000020, 0x746C756D,
1950x00000032, 0x00050005, 0x00000031, 0x67617266, 0x6F6C6F43, 0x00000072,
1960x00050005, 0x00000032, 0x63726963, 0x6F43656C, 0x00726F6C, 0x00040047,
1970x0000000B, 0x0000001E, 0x00000001, 0x00040047, 0x0000000F, 0x0000000B,
1980x0000000F, 0x00040047, 0x00000031, 0x0000001E, 0x00000000, 0x00040047,
1990x00000032, 0x0000001E, 0x00000000, 0x00020013, 0x00000002, 0x00030021,
2000x00000003, 0x00000002, 0x00030016, 0x00000006, 0x00000020, 0x00040020,
2010x00000007, 0x00000007, 0x00000006, 0x00040017, 0x00000009, 0x00000006,
2020x00000004, 0x00040020, 0x0000000A, 0x00000001, 0x00000009, 0x0004003B,
2030x0000000A, 0x0000000B, 0x00000001, 0x00040017, 0x0000000C, 0x00000006,
2040x00000002, 0x0004003B, 0x0000000A, 0x0000000F, 0x00000001, 0x00040015,
2050x00000014, 0x00000020, 0x00000000, 0x0004002B, 0x00000014, 0x00000015,
2060x00000002, 0x00040020, 0x00000016, 0x00000001, 0x00000006, 0x0004002B,
2070x00000006, 0x00000019, 0x3F000000, 0x0004002B, 0x00000014, 0x00000023,
2080x00000003, 0x00040020, 0x00000030, 0x00000003, 0x00000009, 0x0004003B,
2090x00000030, 0x00000031, 0x00000003, 0x0004003B, 0x0000000A, 0x00000032,
2100x00000001, 0x0004002B, 0x00000006, 0x00000034, 0x3F800000, 0x00050036,
2110x00000002, 0x00000004, 0x00000000, 0x00000003, 0x000200F8, 0x00000005,
2120x0004003B, 0x00000007, 0x00000008, 0x00000007, 0x0004003B, 0x00000007,
2130x00000013, 0x00000007, 0x0004003B, 0x00000007, 0x00000020, 0x00000007,
2140x0004003D, 0x00000009, 0x0000000D, 0x0000000B, 0x0007004F, 0x0000000C,
2150x0000000E, 0x0000000D, 0x0000000D, 0x00000000, 0x00000001, 0x0004003D,
2160x00000009, 0x00000010, 0x0000000F, 0x0007004F, 0x0000000C, 0x00000011,
2170x00000010, 0x00000010, 0x00000000, 0x00000001, 0x0007000C, 0x00000006,
2180x00000012, 0x00000001, 0x00000043, 0x0000000E, 0x00000011, 0x0003003E,
2190x00000008, 0x00000012, 0x00050041, 0x00000016, 0x00000017, 0x0000000B,
2200x00000015, 0x0004003D, 0x00000006, 0x00000018, 0x00000017, 0x00050081,
2210x00000006, 0x0000001A, 0x00000018, 0x00000019, 0x00050041, 0x00000016,
2220x0000001B, 0x0000000B, 0x00000015, 0x0004003D, 0x00000006, 0x0000001C,
2230x0000001B, 0x00050083, 0x00000006, 0x0000001D, 0x0000001C, 0x00000019,
2240x0004003D, 0x00000006, 0x0000001E, 0x00000008, 0x0008000C, 0x00000006,
2250x0000001F, 0x00000001, 0x00000031, 0x0000001A, 0x0000001D, 0x0000001E,
2260x0003003E, 0x00000013, 0x0000001F, 0x00050041, 0x00000016, 0x00000021,
2270x0000000B, 0x00000015, 0x0004003D, 0x00000006, 0x00000022, 0x00000021,
2280x00050041, 0x00000016, 0x00000024, 0x0000000B, 0x00000023, 0x0004003D,
2290x00000006, 0x00000025, 0x00000024, 0x00050083, 0x00000006, 0x00000026,
2300x00000022, 0x00000025, 0x00050083, 0x00000006, 0x00000027, 0x00000026,
2310x00000019, 0x00050041, 0x00000016, 0x00000028, 0x0000000B, 0x00000015,
2320x0004003D, 0x00000006, 0x00000029, 0x00000028, 0x00050041, 0x00000016,
2330x0000002A, 0x0000000B, 0x00000023, 0x0004003D, 0x00000006, 0x0000002B,
2340x0000002A, 0x00050083, 0x00000006, 0x0000002C, 0x00000029, 0x0000002B,
2350x00050081, 0x00000006, 0x0000002D, 0x0000002C, 0x00000019, 0x0004003D,
2360x00000006, 0x0000002E, 0x00000008, 0x0008000C, 0x00000006, 0x0000002F,
2370x00000001, 0x00000031, 0x00000027, 0x0000002D, 0x0000002E, 0x0003003E,
2380x00000020, 0x0000002F, 0x0004003D, 0x00000009, 0x00000033, 0x00000032,
2390x0004003D, 0x00000006, 0x00000035, 0x00000013, 0x0004003D, 0x00000006,
2400x00000036, 0x00000020, 0x00050085, 0x00000006, 0x00000037, 0x00000035,
2410x00000036, 0x00070050, 0x00000009, 0x00000038, 0x00000034, 0x00000034,
2420x00000034, 0x00000037, 0x00050085, 0x00000009, 0x00000039, 0x00000033,
2430x00000038, 0x0003003E, 0x00000031, 0x00000039, 0x000100FD, 0x00010038
244} } }
245};
246
248 : VideoVisualCircles(Audio, Render),
249 MythVisualVulkan(Render,
252{
253}
254
256{
258}
259
260void MythVisualCirclesVulkan::DrawPriv(MythPainter* /*Painter*/, QPaintDevice* /*Device*/)
261{
263 return;
264
265 // Retrieve current command buffer
266 auto *currentcmdbuf = m_vulkanWindow->currentCommandBuffer();
267
268 // Bind our pipeline and retrieve layout
269 m_vulkanFuncs->vkCmdBindPipeline(currentcmdbuf, VK_PIPELINE_BIND_POINT_GRAPHICS, m_pipeline);
270 VkPipelineLayout layout = m_vulkanShader->GetPipelineLayout();
271
272 // Bind projection descriptor set
273 m_vulkanFuncs->vkCmdBindDescriptorSets(currentcmdbuf, VK_PIPELINE_BIND_POINT_GRAPHICS,
274 layout, 0, 1, &m_projectionDescriptor, 0, nullptr);
275
276 auto range = static_cast<float>(m_range);
277 float red = 0.0F;
278 float green = 0.8F;
279 int count = m_scale.range();
280 float incr = 0.8F / count;
281 float rad = range;
282
283 for (int i = 0; i < count; i++)
284 {
285 float mag = static_cast<float>(qAbs((m_magnitudes[i] + m_magnitudes[i + count]) / 2.0));
286 if (mag > 1.0F)
287 {
288 // Setup circle and push constants
289 m_pushBuffer.color[0] = red;
290 m_pushBuffer.color[1] = green;
291 m_pushBuffer.params[2] = rad;
292 m_pushBuffer.params[3] = mag;
293 m_vulkanFuncs->vkCmdPushConstants(currentcmdbuf, layout, VK_SHADER_STAGE_VERTEX_BIT,
294 0, sizeof(CirclesBuffer), &m_pushBuffer);
295
296 // Draw
297 m_vulkanFuncs->vkCmdDraw(currentcmdbuf, 4, 1, 0, 0);
298 }
299 rad += range;
300 red += incr;
301 green -= incr;
302 }
303}
304
306{
307 if (m_disabled)
308 return nullptr;
309
310 if (!IsValidVulkan())
311 return nullptr;
312
313 if ((Area == m_vulkanArea) && m_vulkanShader && m_pipeline &&
315 {
316 return m_vulkanRender;
317 }
318
320 m_vulkanArea = Area;
321
322 // Common init
324 return nullptr;
325
326 QMatrix4x4 transform;
327 memcpy(&m_pushBuffer.transform[0], transform.constData(), sizeof(float) * 16);
328 m_pushBuffer.positions[0] = m_area.left();
329 m_pushBuffer.positions[1] = m_area.top();
330 m_pushBuffer.positions[2] = m_area.right();
331 m_pushBuffer.positions[3] = m_area.bottom();
332 m_pushBuffer.color[2] = 0.0;
333 m_pushBuffer.color[3] = 0.8F;
334
335 return m_vulkanRender;
336}
337
339{
340 m_vulkanArea = {};
342}
343
int range() const
VkPipelineLayout GetPipelineLayout(void) const
MythRenderVulkan * InitialiseVulkan(QRect Area) override
void DrawPriv(MythPainter *, QPaintDevice *) override
MythVisualCirclesVulkan(AudioPlayer *Audio, MythRenderVulkan *Render)
virtual void TearDownVulkan()
VkDescriptorPool m_descriptorPool
VkPipeline m_pipeline
virtual MythRenderVulkan * InitialiseVulkan(QRect)
MythUniformBufferVulkan * m_projectionUniform
VkDescriptorSet m_projectionDescriptor
MythShaderVulkan * m_vulkanShader
QVulkanDeviceFunctions * m_vulkanFuncs
MythRenderVulkan * m_vulkanRender
MythWindowVulkan * m_vulkanWindow
bool IsValidVulkan() const
QVector< double > m_magnitudes
bool m_disabled
Definition: videovisual.h:70
QRect m_area
Definition: videovisual.h:71
std::map< int, std::pair< QString, std::vector< uint32_t > > > MythShaderMap
std::map< int, MythBindingDesc > MythBindingMap
#define CircleFragment450
#define CircleVertex450
static const MythShaderMap k450CircleShaders
static const MythBindingMap k450CircleBindings