• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// GENERATED FILE - DO NOT EDIT.
2// Generated by gen_vk_internal_shaders.py.
3//
4// Copyright 2018 The ANGLE Project Authors. All rights reserved.
5// Use of this source code is governed by a BSD-style license that can be
6// found in the LICENSE file.
7//
8// shaders/gen/OverlayDraw.comp.00000001.inc:
9//   Pre-generated shader for the ANGLE Vulkan back-end.
10
11#pragma once
12constexpr uint8_t kOverlayDraw_comp_00000001[] = {
13    0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x75,0x58,0x79,0x8c,0x57,0xd5,
14    0x15,0x7e,0xe7,0xfe,0x86,0x59,0x60,0x2a,0xb4,0x0a,0xad,0x76,0x44,0x61,0xc4,0x42,
15    0xc0,0x61,0x09,0x0c,0x53,0x87,0x6d,0xd8,0x06,0x2c,0x91,0xbd,0x49,0x9d,0xb4,0x20,
16    0x63,0x5b,0x95,0x40,0x21,0x2c,0x16,0xc2,0x36,0x80,0x16,0xa5,0x50,0x4d,0x2b,0x30,
17    0x20,0x20,0x91,0x46,0xaa,0xa4,0x22,0x7f,0x35,0x6d,0x93,0xb6,0xd0,0x74,0x61,0xb1,
18    0x10,0x2b,0x8b,0xa5,0xb6,0x6c,0xb5,0xa0,0x52,0x84,0x5a,0x65,0xef,0xfd,0xde,0xf9,
19    0x0e,0xbf,0x33,0x2f,0xc3,0x2f,0xb9,0x79,0xef,0x7e,0x67,0xfb,0xee,0xbd,0xe7,0xde,
20    0x7b,0x7e,0x2f,0x17,0xca,0x8b,0x92,0x44,0x92,0x96,0x49,0x71,0x72,0x7b,0x2e,0x49,
21    0x7f,0x9f,0x4f,0x42,0x44,0x92,0xa4,0x55,0x52,0x98,0x3e,0x6b,0x47,0x8d,0x1f,0x55,
22    0x31,0x6b,0xf6,0x63,0x15,0xbd,0xfb,0xf4,0x80,0xfc,0xb6,0x44,0x15,0x21,0x6b,0x9d,
23    0x14,0x25,0x2d,0xe2,0xb3,0x20,0xb6,0x69,0x8f,0x3e,0x31,0x1d,0xf8,0x91,0xd8,0xce,
24    0xc7,0xd6,0x26,0xda,0x17,0xa4,0xfe,0x92,0xe8,0x5d,0x5b,0xea,0x2f,0xa2,0x83,0xe2,
25    0xb3,0x30,0xd5,0x49,0x92,0x11,0xd1,0x43,0x8d,0x86,0x4e,0xca,0xf9,0x34,0x4c,0x88,
26    0x79,0xbd,0x40,0xec,0x5e,0x87,0xe5,0x88,0xf5,0xa0,0xff,0x21,0xf4,0xdf,0x43,0x54,
27    0x67,0x68,0xc6,0x7f,0x6d,0xb4,0x18,0x4a,0x5f,0xd0,0x1f,0x1e,0x9f,0x1d,0x6f,0xca,
28    0xb4,0xdf,0xc1,0xf1,0x5d,0x96,0x91,0x2f,0xa3,0xbc,0x80,0xfd,0x75,0x99,0xf1,0x34,
29    0x36,0x33,0x9e,0xc6,0x66,0xc6,0xd3,0xd8,0xcc,0x78,0x1a,0x9b,0x19,0xcf,0x7a,0x1b,
30    0x4f,0x81,0xea,0x6c,0x68,0x66,0x3c,0x1b,0xdc,0x78,0x36,0x66,0xf8,0x6e,0x24,0x5f,
31    0x93,0x1f,0x49,0xd7,0x37,0x49,0xca,0x18,0xf3,0x58,0x33,0x7c,0x8f,0x39,0xbe,0xc5,
32    0x8c,0x71,0xcc,0xf9,0x38,0x97,0x89,0x71,0x8e,0x31,0x72,0xec,0x9f,0x67,0x8c,0xbb,
33    0xd8,0x7f,0x5f,0x9a,0xea,0xa3,0xdf,0xc1,0xf5,0xaf,0x88,0xea,0xdf,0x19,0xdb,0xed,
34    0x31,0x4a,0x48,0xfd,0xe5,0x52,0x7f,0x78,0x6f,0x1b,0x75,0x0a,0x39,0x4f,0xf8,0x7d,
35    0x31,0xf6,0x8b,0x38,0x2f,0x81,0xfd,0x62,0xf6,0xb1,0x2e,0x77,0x44,0xb4,0x24,0x3e,
36    0xdb,0x45,0x0f,0x6d,0x69,0x07,0x9d,0x8e,0xa9,0x2f,0xd5,0x41,0xbf,0x4b,0x7c,0x96,
37    0xd0,0x47,0x57,0xc6,0xa8,0x64,0x0c,0xeb,0x57,0x53,0xdf,0xfa,0x03,0xb9,0x86,0x65,
38    0xcc,0xe5,0x62,0x62,0xed,0xa3,0xb4,0x86,0xfd,0x8e,0x7c,0x0e,0x72,0x76,0x83,0xc9,
39    0xa3,0x8c,0x39,0x5a,0x43,0xac,0x3d,0xf3,0x71,0x48,0x2a,0x2f,0x48,0x86,0x91,0xcf,
40    0xd0,0x34,0xb6,0xf6,0x87,0xbb,0x79,0xa8,0xa5,0x1f,0xa1,0xef,0xda,0x74,0xcd,0xf2,
41    0x9c,0xd1,0x1f,0xc9,0xb5,0x80,0xbf,0x51,0xb4,0x2d,0x76,0x5c,0xea,0x9c,0x3d,0xfa,
42    0xf5,0x99,0x39,0x98,0x91,0xd1,0x9f,0x13,0xdb,0x8d,0x74,0x7d,0x4a,0x92,0x06,0xce,
43    0xa1,0x30,0x66,0xf6,0x89,0x98,0x4b,0xf9,0xde,0xc0,0x31,0xa0,0xbf,0xcc,0xad,0xdd,
44    0x8a,0x74,0xdd,0xf3,0x6b,0xb7,0x92,0xfd,0x9c,0x8b,0xb9,0x96,0xf3,0x57,0xc6,0x3d,
45    0x56,0x4c,0x0c,0xf3,0xdc,0x98,0x99,0xe7,0x75,0xd4,0xc3,0x5e,0x69,0x74,0xf3,0x8a,
46    0x7d,0xb1,0x9e,0x9c,0x5e,0x62,0xbc,0x0d,0xe4,0x84,0xfe,0x46,0xc7,0xe1,0x77,0x1c,
47    0x97,0x71,0xc0,0xfb,0xee,0x94,0xf1,0x92,0x81,0x90,0x1f,0x62,0x7e,0xd9,0xbc,0x1e,
48    0xe6,0x98,0x0f,0xd1,0xdf,0x61,0x9e,0x7f,0x92,0xc6,0x2e,0x48,0xf7,0x8b,0xe5,0x28,
49    0xf4,0xff,0xce,0x5c,0x3b,0x46,0x7d,0xf4,0xdf,0x23,0x06,0xf9,0x3f,0xf8,0x5e,0xe4,
50    0xe2,0x9f,0xe1,0x9c,0x75,0x8b,0x28,0xc6,0x7a,0x96,0x98,0xb5,0xdd,0x5c,0x93,0x0f,
51    0x19,0xc7,0xd6,0x20,0x69,0x66,0x4d,0x3e,0xe2,0xfb,0x87,0x8c,0x8f,0xfe,0x39,0x62,
52    0xc6,0xff,0x7c,0x26,0xaf,0x8a,0x44,0xfb,0x16,0xbf,0x9f,0x34,0x8d,0x7f,0xc6,0xe9,
53    0x0e,0x13,0x9d,0x4b,0xc4,0x1a,0xce,0x77,0x1b,0xfb,0xf7,0xd9,0xef,0xe8,0xd6,0xf7,
54    0x8d,0x88,0x4d,0x76,0x63,0xfd,0x55,0xec,0xef,0xdf,0xb7,0x6f,0x80,0xc5,0xfa,0x75,
55    0x26,0x16,0xe4,0xf0,0xb5,0x4f,0x74,0x9e,0x0a,0x39,0xf6,0xd3,0xd2,0x34,0x1f,0xed,
56    0x17,0x88,0xc1,0xe6,0x5f,0x14,0x42,0xb7,0x9a,0xfd,0xf7,0xc5,0xe6,0xb6,0x30,0x5d,
57    0x43,0x9c,0x41,0x33,0x98,0xfb,0xd8,0x1f,0x15,0x71,0xa5,0xb1,0x16,0x5f,0xc8,0xe1,
58    0x4c,0x68,0x91,0xfa,0x2b,0xa0,0x6f,0xe4,0xc0,0x67,0x11,0xc1,0xfd,0xf7,0x69,0xec,
59    0x5d,0xa5,0xaf,0x2b,0xf1,0x1d,0xe7,0xc7,0x35,0x51,0x39,0x9e,0xfd,0x99,0x3b,0x47,
60    0x99,0x1f,0xa3,0xa3,0x57,0xf8,0x7d,0x97,0xd8,0x51,0xb7,0x56,0x35,0xd1,0x23,0xf2,
61    0xe0,0x9f,0xcc,0x0d,0xec,0xeb,0xfe,0x3c,0xeb,0x8e,0x13,0xff,0x79,0xd4,0xc1,0xb9,
62    0x75,0x82,0x3e,0x8e,0xa7,0x39,0x5e,0x90,0xce,0xc9,0x49,0xe2,0xe0,0x74,0x9a,0x7e,
63    0x2f,0x47,0x19,0xf0,0x53,0x18,0x3f,0x79,0xe3,0xfd,0x52,0x7c,0x5e,0x25,0xcf,0xd3,
64    0x8c,0x83,0xdc,0xf8,0x0f,0xf3,0xc2,0x78,0x7f,0xcc,0xbc,0x30,0xde,0x17,0x88,0x7d,
65    0xec,0x78,0x2f,0xe0,0x9e,0xbe,0x48,0xf9,0xa4,0xa8,0x89,0x7d,0xf9,0x5f,0xfa,0xbb,
66    0xc8,0xf5,0xc0,0x78,0xc6,0x46,0xfe,0x85,0x29,0x0f,0x95,0x27,0x0e,0xbb,0x42,0x4c,
67    0x8c,0x1f,0xf9,0xe2,0xf9,0x09,0xf3,0xe2,0x60,0xd0,0x7d,0x00,0xce,0x05,0x39,0x3d,
68    0x97,0x20,0x83,0xfd,0xfe,0xa0,0x3e,0x20,0x2b,0x15,0x95,0xbd,0x1e,0x7d,0xa7,0x67,
69    0xbc,0xa8,0x1c,0xeb,0xf3,0xbf,0xc8,0xf7,0x3a,0xcf,0x34,0x9b,0x23,0xc8,0xaf,0xc5,
70    0xf7,0xeb,0x8c,0x89,0xf7,0xd2,0xe8,0x15,0xb9,0xdd,0x82,0xfb,0x60,0x24,0x63,0x2c,
71    0x60,0x0e,0x17,0x8a,0xca,0x7e,0x1f,0x63,0x40,0xaf,0x44,0x74,0xcf,0x00,0x37,0x9d,
72    0x96,0xa2,0xf8,0x1f,0x38,0xc6,0x52,0xf2,0x00,0x5e,0x13,0x79,0xe3,0x7c,0x6e,0x2d,
73    0x7a,0x16,0x8d,0xa0,0x4f,0x5b,0x77,0xcc,0x61,0x1b,0x51,0xb9,0xcd,0x7f,0x71,0x50,
74    0xac,0x8d,0xe4,0xe7,0xdf,0x72,0xa2,0x24,0x68,0x4e,0x40,0x67,0x03,0x73,0xa2,0x65,
75    0x50,0x1c,0x39,0xd1,0x3a,0xe4,0xc7,0x0b,0xbc,0x55,0x6c,0xc0,0x30,0x5e,0xbc,0x5b,
76    0x8c,0x52,0x17,0x23,0x30,0xdf,0x77,0x30,0xc6,0xe7,0x18,0xa3,0xd4,0xc5,0xb8,0x2d,
77    0x28,0x8e,0x35,0x33,0x7f,0x78,0x62,0x5d,0x20,0x6f,0x13,0x94,0xc7,0x35,0xea,0x22,
78    0xd6,0x36,0xda,0xde,0x21,0x2a,0x07,0xbf,0x76,0x92,0xe7,0x07,0xbc,0x6d,0x6c,0xed,
79    0x98,0xa3,0x78,0x87,0xff,0x1b,0x5c,0x1f,0xe0,0x96,0x37,0x77,0x4a,0x7e,0x1f,0x19,
80    0xf6,0x65,0x37,0x47,0xaf,0x31,0x07,0xca,0x44,0x75,0x21,0xb3,0xf8,0x77,0x8b,0xe2,
81    0x88,0x7f,0x8f,0x8b,0x0f,0xbc,0x7d,0x6c,0xf7,0x30,0x7e,0x7b,0x17,0xaf,0x03,0xe3,
82    0x89,0x8b,0x57,0xce,0x78,0xe2,0xe2,0xdd,0x27,0xaa,0x5b,0x4e,0xee,0xe6,0x0b,0x4f,
83    0x9b,0x9b,0x4e,0x8c,0x8f,0xf1,0xdc,0xc7,0x98,0xc6,0xed,0x7e,0x51,0x39,0xb8,0x75,
84    0x76,0xdc,0x80,0x7f,0x25,0xb6,0xce,0xf4,0x87,0xf7,0x25,0xe4,0xd1,0x95,0x63,0xac,
85    0x73,0xdc,0x1e,0x70,0x6b,0x69,0xdc,0x2a,0x44,0x75,0x1f,0x20,0x37,0xf3,0xd5,0xd9,
86    0x71,0xeb,0xce,0xf8,0xe0,0x5b,0xc1,0x98,0xc6,0x0d,0xf5,0x75,0x77,0x72,0xeb,0xe5,
87    0xb8,0x01,0xef,0x19,0x5b,0x2f,0xfa,0xeb,0xe9,0xe6,0xad,0xb7,0x9b,0x37,0xe3,0xdb,
88    0x47,0x14,0xf7,0x7c,0xfb,0x92,0x6f,0xce,0xf1,0xad,0x12,0xd5,0xed,0x4b,0xbe,0xe6,
89    0xbf,0x97,0xe3,0xfb,0x55,0x72,0xc2,0x18,0xaa,0xc8,0x03,0xfc,0xaa,0x1d,0x3f,0xe8,
90    0x3c,0x88,0x7b,0x80,0xf6,0x0f,0x66,0xf2,0x0a,0xf8,0xd2,0x18,0x13,0xfb,0x60,0xb0,
91    0xe4,0xf7,0x53,0x4d,0xdc,0x8d,0xb8,0xd7,0x6a,0x33,0x7b,0x15,0xf7,0x5e,0x25,0xf7,
92    0x2b,0xb8,0x8f,0xa0,0x0e,0xe2,0x56,0x85,0xa6,0xf7,0xc2,0x97,0xb8,0x37,0xf0,0xbc,
93    0x99,0xbb,0x41,0xe3,0xe0,0xf7,0x0c,0xb1,0xbb,0x82,0xe2,0xf0,0x65,0x58,0x59,0x50,
94    0xbc,0x3a,0x51,0x2e,0x38,0x37,0xee,0x0e,0x4d,0xb9,0x8c,0xa4,0x9e,0x9d,0x1d,0xed,
95    0x83,0xea,0x3c,0x4b,0x1f,0xf7,0x3a,0x1f,0x36,0xaf,0x1d,0x83,0xe2,0x95,0xbc,0x37,
96    0xfa,0xba,0x33,0x02,0xb2,0xf2,0xd8,0xee,0x27,0x6f,0x3c,0xcd,0xae,0x33,0xed,0xea,
97    0x68,0x57,0xe9,0xec,0x20,0xeb,0x12,0x5b,0x37,0xda,0x75,0x73,0x76,0x15,0xb4,0xab,
98    0xa7,0x5d,0x1f,0x67,0x07,0x59,0xf7,0xd8,0x7a,0xd1,0xae,0x97,0x9b,0xa7,0xde,0x41,
99    0xc7,0x93,0xe3,0xdd,0x50,0x45,0x9d,0xee,0x4e,0xa7,0x27,0x75,0x42,0x46,0x07,0x31,
100    0x6e,0xc4,0xac,0xc3,0x7b,0x17,0xa7,0xdf,0x95,0xfa,0x92,0xd1,0xaf,0x74,0xfa,0xe5,
101    0x4e,0xbf,0x13,0xf5,0x93,0x8c,0x7e,0x5f,0xa7,0x5f,0x95,0x9e,0x7b,0xad,0x52,0xfd,
102    0x53,0x41,0x79,0x63,0x1c,0x3d,0x39,0xb6,0xae,0x9c,0x9b,0x4e,0x9c,0x5b,0xf3,0x3d,
103    0xd6,0xe5,0xbc,0x61,0xe3,0xdd,0x99,0xb2,0x94,0xd8,0x04,0x51,0x5d,0xc8,0xb6,0x73,
104    0x4e,0xbf,0x21,0x1a,0x6b,0x02,0xf3,0xae,0xce,0xe5,0x3b,0x64,0x8f,0x60,0x7f,0x31,
105    0xdf,0x1f,0x71,0xfb,0xf1,0x9b,0xa2,0xb9,0xe7,0xf7,0xe3,0xb7,0x44,0xf1,0x6a,0xde,
106    0x2b,0xf0,0x3f,0x59,0x14,0x9f,0xc0,0xbd,0x62,0xbe,0xea,0xdc,0xde,0x7b,0x54,0x94,
107    0x07,0xc6,0x3f,0x99,0x31,0xc1,0xa5,0xde,0x71,0x81,0xce,0x94,0xd8,0xea,0x69,0x3f,
108    0xc5,0x71,0xf9,0xae,0xe3,0x62,0x77,0xe5,0xe3,0xa2,0xfb,0x00,0xb2,0x3f,0x12,0x7b,
109    0x42,0x14,0xaf,0x73,0x39,0xfc,0xa4,0x28,0x5e,0xc9,0x75,0x31,0xff,0xf5,0x8e,0xdf,
110    0x54,0x51,0x8e,0xe0,0xfc,0x24,0x79,0x58,0xec,0xe9,0x2e,0xb6,0xcd,0xf3,0xf7,0x38,
111    0x5e,0xc8,0x76,0x30,0xce,0x4c,0x51,0xfc,0x94,0xbb,0xbf,0x66,0x89,0xfa,0x7e,0x95,
112    0x3a,0xb3,0x45,0xf5,0x66,0x71,0xfc,0x73,0xdd,0xf8,0x21,0x9b,0x13,0xdb,0x5c,0xf2,
113    0x9b,0xc3,0x1a,0x00,0xf5,0xf1,0xbc,0xcc,0xb9,0x52,0xc4,0xda,0x11,0x35,0xcf,0x7c,
114    0xca,0x47,0xc7,0x5d,0x8d,0xff,0x29,0xfd,0x82,0xd6,0x41,0x07,0x43,0xbe,0x06,0x08,
115    0xcc,0x1b,0xd4,0xc2,0xfd,0x83,0xda,0xe4,0xd2,0xff,0x5d,0x8a,0x0d,0x08,0xfa,0x7f,
116    0x01,0xb2,0xd5,0x11,0x83,0x9f,0x81,0x41,0x7d,0x0d,0x08,0x79,0xdf,0x83,0x68,0x3b,
117    0x5f,0x9a,0xfa,0x36,0x9b,0xc1,0x41,0x75,0xe0,0xa7,0x81,0xd8,0x90,0xa0,0xbe,0x06,
118    0x87,0x3c,0x87,0xa1,0xe4,0x07,0x0e,0x4f,0x13,0xab,0x0d,0x8a,0x0f,0x70,0x7a,0x23,
119    0x82,0xda,0x27,0x8e,0xff,0x48,0x62,0xe2,0xb0,0x87,0x88,0x41,0x75,0x0c,0x6b,0xc1,
120    0xaf,0x05,0xb5,0x87,0x3e,0xe4,0xb5,0xac,0x41,0x6c,0x7e,0xe7,0x4a,0xbe,0x6e,0x6c,
121    0x91,0x53,0x3e,0xc8,0x09,0xd8,0xcd,0xc9,0x9c,0xfb,0x5a,0x47,0x96,0xa4,0xba,0x05,
122    0xd4,0x45,0xcd,0xd1,0x8f,0xf7,0x05,0xec,0xe7,0x4a,0xd3,0xba,0xf4,0x3a,0xf3,0x6d,
123    0x11,0xe3,0x2d,0x72,0xf1,0x0e,0x70,0xfc,0xd0,0x29,0x8c,0xb6,0x0d,0x92,0xaf,0x53,
124    0xdf,0x0a,0x5a,0xff,0x42,0xb6,0x4a,0x54,0x66,0x75,0xea,0x72,0x51,0xb9,0xd5,0xa9,
125    0x4b,0x28,0xb7,0x1c,0x82,0x7c,0x31,0xee,0x7b,0xc6,0xc4,0xbb,0xd5,0xa9,0x3f,0x70,
126    0x75,0xea,0x5b,0xae,0x4e,0x5d,0x21,0x2a,0xb3,0x3a,0xf5,0x39,0xe6,0xd7,0x0a,0x57,
127    0xa7,0xae,0x14,0xc5,0x6d,0xef,0xad,0x22,0x8f,0x95,0xae,0x4e,0x7d,0x5e,0xf4,0x5b,
128    0xc4,0x08,0xfa,0xf4,0x75,0xea,0x0b,0xa2,0x72,0xab,0x21,0x1f,0x0e,0x8a,0xbd,0xd0,
129    0x4c,0x9d,0x3a,0x9a,0x35,0xe4,0xc3,0xae,0x86,0x1c,0x13,0x14,0xc7,0x9e,0x99,0xe8,
130    0xee,0x04,0xe0,0x63,0x63,0x9b,0xc8,0xb3,0x76,0xac,0xab,0x53,0xc7,0xb9,0x18,0xd9,
131    0x3a,0x75,0x3c,0x63,0x8c,0x73,0x31,0x26,0x04,0xc5,0xb1,0x66,0xe6,0x6f,0xa2,0xab,
132    0x53,0xbf,0x1e,0x94,0x07,0xe6,0x74,0x02,0xe3,0xda,0x3e,0x7f,0x51,0x54,0x0e,0x7e,
133    0x6b,0xdd,0x7a,0x00,0x5f,0x13,0xdb,0x5a,0xae,0xc7,0x1a,0xe6,0x48,0x03,0xfb,0x6b,
134    0x5d,0x3d,0xb1,0x51,0xf2,0xe3,0xb6,0x39,0x7d,0x39,0x33,0xa7,0xc3,0x24,0x3f,0xa7,
135    0x5b,0x44,0xe5,0x36,0xde,0xad,0xa2,0xd8,0x16,0x37,0xa7,0x76,0x86,0xbd,0x4a,0x3c,
136    0x38,0x6c,0xbb,0xd3,0x35,0x6c,0x52,0x50,0x1e,0xbe,0xde,0x98,0x1c,0x14,0xdf,0xee,
137    0xea,0x8d,0x29,0x41,0xf1,0x6a,0xa7,0xf7,0x58,0x50,0xdc,0xd7,0x20,0xdf,0x0e,0x4d,
138    0xf9,0x8f,0xa4,0x9e,0x8d,0xe1,0x3b,0x41,0x75,0xac,0x06,0x79,0xdc,0xf9,0xb8,0x79,
139    0x7e,0x07,0xc5,0xad,0x06,0x59,0xec,0xd6,0x1f,0xb2,0xa9,0xb1,0x4d,0xe7,0x7a,0x4d,
140    0x77,0xb5,0xc4,0x0c,0xda,0x59,0x0d,0xb2,0xc8,0xd9,0x41,0x36,0x33,0xb6,0xd9,0xb4,
141    0x9b,0xed,0xec,0xe6,0xd2,0xce,0x6a,0x90,0x85,0xce,0x0e,0xb2,0xa7,0x70,0x06,0xd2,
142    0x6e,0xbe,0xbb,0xa3,0x17,0x04,0x1d,0x8f,0xd5,0x20,0x0b,0xa9,0xf3,0x94,0xd3,0x99,
143    0x47,0x9d,0x90,0xd1,0x59,0x18,0xf2,0xfb,0xff,0x6f,0x41,0x7d,0xc1,0xf7,0x3c,0xc6,
144    0x4b,0xcf,0x11,0xea,0xce,0x74,0xfe,0x66,0xd1,0x9f,0xd5,0x28,0xa6,0xb3,0xc8,0xf9,
145    0x7b,0x37,0xa8,0x4f,0xc4,0x98,0xc5,0x71,0x43,0x77,0x31,0x75,0xa7,0x3a,0x7f,0xd3,
146    0xe8,0xcf,0x6a,0x18,0xd3,0x59,0xec,0xfc,0x1d,0x0d,0xea,0x13,0x31,0xa6,0x71,0xfe,
147    0x6d,0xfd,0x1a,0x5c,0x5e,0x2c,0x27,0xb6,0x34,0x28,0x8e,0x6f,0x27,0xbb,0x88,0x3d,
148    0x1d,0xd4,0x0f,0x64,0x76,0x77,0x3f,0x13,0x14,0x9f,0x93,0xe4,0xef,0xd4,0x1d,0xa2,
149    0xf8,0x1b,0xbc,0x2f,0x77,0xba,0xbd,0x05,0xd9,0x9b,0xb1,0xed,0xe4,0x5e,0xc2,0xfb,
150    0xb3,0xdc,0x4b,0x2b,0x99,0xc7,0x5b,0x25,0xcf,0xed,0x87,0x41,0x7d,0x0d,0x76,0x39,
151    0xbb,0xca,0x61,0x63,0x68,0xbb,0x3a,0xa8,0x2e,0x64,0xcb,0x89,0xfd,0x28,0xa8,0xaf,
152    0xd5,0xcc,0x5d,0x7c,0xbb,0x7c,0x3e,0xe8,0x77,0xcb,0x25,0xd4,0xf9,0x71,0x50,0xbd,
153    0x95,0x21,0xff,0xcd,0xe3,0x27,0x41,0xf1,0x05,0xfc,0x0e,0xf6,0x62,0xd0,0xbd,0x38,
154    0x96,0x67,0xed,0x9a,0xa0,0x3a,0xb6,0x07,0x81,0xad,0x25,0x26,0x29,0xa7,0xc2,0xf4,
155    0xfb,0xe7,0xba,0xa0,0xba,0x90,0xc1,0xc7,0x24,0xde,0x23,0x8d,0x41,0x79,0xac,0x0b,
156    0x4d,0xbf,0xa1,0xe0,0x4e,0x5c,0x1f,0x54,0x9e,0x24,0xf9,0x3a,0xe2,0x37,0x99,0xf3,
157    0xc4,0xd7,0x11,0xbf,0xa5,0xdc,0xee,0xcf,0x5d,0xa2,0x3e,0x7c,0x2b,0x8d,0xbb,0x16,
158    0xb2,0xdd,0xbc,0x4b,0x2a,0xf8,0x2d,0x0e,0xb6,0xbb,0x5c,0x0d,0xb2,0x31,0xe8,0x1d,
159    0x77,0xe0,0x16,0x35,0xc8,0xa6,0xa0,0x3e,0x7c,0x0d,0xb2,0x99,0x35,0xc8,0x26,0x57,
160    0x83,0xbc,0x1c,0xd4,0xd7,0x66,0x57,0x83,0x6c,0xa1,0xed,0xee,0x5b,0xd4,0x20,0xaf,
161    0x04,0xd5,0xd9,0xe4,0x6a,0x90,0xad,0x41,0x7d,0xbd,0xe2,0x6a,0x8b,0x9f,0x92,0x9f,
162    0xaf,0x41,0xb6,0x05,0xc5,0x37,0x3b,0xbd,0x9f,0x05,0xb5,0xf7,0x35,0xc8,0x6b,0xc4,
163    0x7c,0x0d,0xf2,0x3a,0x31,0x5f,0x83,0x6c,0x0f,0x6a,0x0f,0x7d,0xc8,0xb7,0x71,0xef,
164    0x59,0xce,0xee,0x74,0x35,0x41,0x51,0x4e,0xf9,0x60,0xaf,0xc1,0xee,0xcd,0xcc,0x5d,
165    0xd1,0xe0,0x74,0x0b,0xa9,0x8b,0xfb,0x04,0x76,0x3b,0xa5,0x69,0xad,0xb1,0x44,0xf2,
166    0xbc,0xfe,0x24,0xf9,0x71,0xfe,0x82,0xfb,0xea,0xcf,0xa2,0xf8,0x6e,0x9e,0x71,0x7b,
167    0xdd,0xbe,0x82,0x6c,0x4f,0x6c,0x7b,0xe9,0x6b,0x8f,0xe8,0xb7,0x47,0x7c,0x5b,0xdd,
168    0x2f,0xfa,0xed,0xd1,0xf2,0x26,0xad,0x57,0x88,0x5b,0x8d,0xf2,0x17,0x51,0xcc,0xce,
169    0xeb,0x83,0xce,0x37,0x64,0x07,0x62,0x3b,0x48,0xdf,0x07,0xdc,0xfd,0xf5,0x36,0xff,
170    0xff,0xe3,0x9b,0xaa,0x7d,0xaf,0xad,0x89,0x11,0x10,0xf7,0xaf,0x92,0xff,0xe6,0x59,
171    0xe7,0xfe,0x4f,0xbf,0x43,0x99,0xd5,0xe5,0x87,0x44,0x31,0xff,0xbd,0xe0,0x88,0xfb,
172    0xae,0x60,0x7a,0x47,0x45,0x75,0x21,0x1b,0x17,0x11,0xc4,0xdf,0x13,0x14,0x7f,0x5b,
173    0xf2,0xe7,0x9f,0xf1,0x3c,0xc8,0xb9,0x87,0xde,0x3b,0xac,0x1d,0x30,0x2f,0xb0,0x39,
174    0xe0,0xf2,0xfe,0x3d,0x69,0x3e,0xef,0x7f,0xc9,0xb9,0x39,0xce,0x79,0x3f,0xc3,0xb9,
175    0x39,0xe9,0xe6,0x06,0xb2,0x13,0xb1,0x9d,0x64,0xcc,0x13,0x9c,0x63,0x7c,0x97,0xfe,
176    0x37,0xbf,0x49,0xdb,0xb9,0x72,0x56,0x94,0xc7,0x94,0xe8,0x17,0xf9,0xf0,0x01,0x75,
177    0xce,0x3a,0x2e,0x1f,0x89,0xe2,0x1f,0xdc,0x62,0x9f,0x9c,0x17,0xd5,0x01,0x1f,0xdb,
178    0x27,0x17,0x44,0xc7,0x70,0x9e,0xf9,0x64,0x5c,0x4e,0x72,0xfc,0xd0,0x39,0x1c,0x54,
179    0x07,0x73,0x72,0x81,0x9c,0x8d,0xe7,0xc5,0x0c,0xcf,0x4f,0xc8,0xd3,0x72,0xf1,0x53,
180    0x51,0x7b,0xbf,0x97,0x3e,0x23,0xe6,0xf7,0xd2,0x25,0x62,0x7e,0x2f,0x5d,0x16,0xb5,
181    0x87,0xfe,0x25,0xe6,0x6e,0x7d,0x8c,0x83,0x98,0x88,0x73,0x99,0x9c,0x2d,0x6f,0xf7,
182    0x4a,0xd3,0xef,0xd8,0x57,0xd3,0x6f,0xb8,0x92,0x54,0xc5,0xf6,0x7f,0xe4,0xca,0xf4,
183    0x21,0xe0,0x1e,0x00,0x00
184};
185
186// Generated from:
187//
188// #version 450 core
189//
190// #extension GL_EXT_samplerless_texture_functions : require
191//
192// layout(local_size_x = 8, local_size_y = 8, local_size_z = 1)in;
193//
194// struct TextWidgetData
195// {
196//     uvec4 coordinates;
197//     vec4 color;
198//     uvec4 fontSize;
199//     uvec4 text[256 / 16];
200// };
201//
202// struct GraphWidgetData
203// {
204//     uvec4 coordinates;
205//     vec4 color;
206//     uvec4 valueWidth;
207//     uvec4 values[256 / 4];
208// };
209//
210// layout(set = 0, binding = 0, rgba32f)uniform image2D blendOutput;
211//
212// layout(set = 0, binding = 1)uniform TextWidgets
213// {
214//     TextWidgetData textWidgetsData[32];
215// };
216//
217// layout(set = 0, binding = 2)uniform GraphWidgets
218// {
219//     GraphWidgetData graphWidgetsData[32];
220// };
221//
222// layout(set = 0, binding = 3)uniform utexture2D culledWidgets;
223// layout(set = 0, binding = 4)uniform texture2DArray font;
224//
225// layout(push_constant)uniform PushConstants
226// {
227//     uvec2 outputSize;
228//
229//     bool rotateXY;
230// } params;
231//
232// bool intersects(const uvec2 imageCoords, const uvec4 widgetCoords)
233// {
234//     return all(greaterThanEqual(imageCoords, widgetCoords . xy))&&
235//            all(lessThan(imageCoords, widgetCoords . zw));
236// }
237//
238// uint getChar(const uint textWidget, const uvec2 coordInWidget, const uint fontGlyphWidth)
239// {
240//     const uint charIndex = coordInWidget . x / fontGlyphWidth;
241//     const uint packIndex = charIndex / 4;
242//     const uvec4 arrayItem = textWidgetsData[textWidget]. text[packIndex / 4];
243//     const uint col = packIndex % 4;
244//
245//     uint packedChars;
246//     if(col == 0)
247//     {
248//         packedChars = arrayItem[0];
249//     }
250//     else if(col == 1)
251//     {
252//         packedChars = arrayItem[1];
253//     }
254//     else if(col == 2)
255//     {
256//         packedChars = arrayItem[2];
257//     }
258//     else
259//     {
260//         packedChars = arrayItem[3];
261//     }
262//
263//     const uint shift =(charIndex % 4)* 8;
264//
265//     return(packedChars >> shift)& 0xFF;
266//
267// }
268//
269// float sampleFont(const uint textChar,
270//                  const uvec2 coordInWidget,
271//                  const uvec2 fontGlyphSize,
272//                  const uint fontLayer)
273// {
274//     const uvec2 coordInGlyph = coordInWidget % fontGlyphSize;
275//     const uvec2 glyphOffset = fontGlyphSize *
276//         uvec2(textChar % 32, textChar / 32);
277//
278//     return texelFetch(font, ivec3(glyphOffset + coordInGlyph, fontLayer), 0). x;
279// }
280//
281// uint getValue(const uint graphWidget, const uvec2 coordInWidget, const uint valueWidth)
282// {
283//     const uint valueIndex = coordInWidget . x / valueWidth . x;
284//     const uvec4 arrayItem = graphWidgetsData[graphWidget]. values[valueIndex / 4];
285//     const uint col = valueIndex % 4;
286//
287//     if(col == 0)
288//     {
289//         return arrayItem[0];
290//     }
291//     else if(col == 1)
292//     {
293//         return arrayItem[1];
294//     }
295//     else if(col == 2)
296//     {
297//         return arrayItem[2];
298//     }
299//     else
300//     {
301//         return arrayItem[3];
302//     }
303// }
304//
305// vec4 blend(const vec4 blendedSoFar, const vec4 color)
306// {
307//
308//     return vec4(blendedSoFar . rgb *(1 - color . a)+ color . rgb * color . a,
309//                 blendedSoFar . a *(1 - color . a));
310// }
311//
312// void main()
313// {
314//     uvec2 imageCoords = gl_GlobalInvocationID . xy;
315//     if(any(greaterThanEqual(imageCoords, params . outputSize)))
316//     {
317//         return;
318//     }
319//
320//     vec4 blendedWidgets = vec4(0, 0, 0, 1);
321//
322//     const uvec2 subgroupWidgets = texelFetch(culledWidgets, ivec2(gl_WorkGroupID . xy), 0). xy;
323//     uint textWidgets = subgroupWidgets . x;
324//     uint graphWidgets = subgroupWidgets . y;
325//
326//     while(graphWidgets != 0)
327//     {
328//         const uint graphWidget = findLSB(graphWidgets);
329//         graphWidgets ^= 1 << graphWidget;
330//
331//         const uvec4 widgetCoords = graphWidgetsData[graphWidget]. coordinates;
332//         if(! intersects(imageCoords, widgetCoords))
333//         {
334//             continue;
335//         }
336//
337//         if(imageCoords . x == widgetCoords . x || imageCoords . y == widgetCoords . y ||
338//             imageCoords . x + 1 == widgetCoords . z || imageCoords . y + 1 == widgetCoords . w)
339//         {
340//
341//             blendedWidgets = vec4(0);
342//             continue;
343//         }
344//
345//         const uvec2 coordInWidget = imageCoords - widgetCoords . xy;
346//         const uint valueWidth = graphWidgetsData[graphWidget]. valueWidth . x;
347//
348//         const uint value = getValue(graphWidget, coordInWidget, valueWidth);
349//
350//         vec4 color = vec4(0);
351//         const uint widgetHeight = widgetCoords . w - widgetCoords . y;
352//
353//         bool indicateOverflow = value > widgetHeight && coordInWidget . y + 4 >= widgetHeight
354//                 &&((coordInWidget . x ^ coordInWidget . y)& 1)== 0;
355//
356//         if((widgetHeight - coordInWidget . y)< value && ! indicateOverflow)
357//         {
358//             color = graphWidgetsData[graphWidget]. color;
359//             blendedWidgets = blend(blendedWidgets, color);
360//         }
361//     }
362//
363//     while(textWidgets != 0)
364//     {
365//         const uint textWidget = findLSB(textWidgets);
366//         textWidgets ^= 1 << textWidget;
367//
368//         const uvec4 widgetCoords = textWidgetsData[textWidget]. coordinates;
369//         if(! intersects(imageCoords, widgetCoords))
370//         {
371//             continue;
372//         }
373//
374//         const uvec2 coordInWidget = imageCoords - widgetCoords . xy;
375//         const uvec4 fontSizePacked = textWidgetsData[textWidget]. fontSize;
376//         const uvec2 fontGlyphSize = fontSizePacked . xy;
377//         const uint fontLayer = fontSizePacked . z;
378//
379//         const uint textChar = getChar(textWidget, coordInWidget, fontGlyphSize . x);
380//
381//         if(textChar <(32 * 3))
382//         {
383//
384//             const float sampleValue = sampleFont(textChar, coordInWidget, fontGlyphSize, fontLayer);
385//
386//             vec4 color = vec4(0, 0, 0, 0.4);
387//             color = mix(color, textWidgetsData[textWidget]. color, sampleValue);
388//
389//             blendedWidgets = blend(blendedWidgets, color);
390//         }
391//     }
392//
393//     if(blendedWidgets . a < 1)
394//     {
395//
396//         if(params . rotateXY)
397//         {
398//
399//             imageCoords . xy = imageCoords . yx;
400//             imageCoords . x = params . outputSize . y - 1 - imageCoords . x;
401//         }
402//
403//         vec3 blendedColor = blendedWidgets . rgb;
404//         if(blendedWidgets . a > 0)
405//         {
406//             const vec4 color = imageLoad(blendOutput, ivec2(imageCoords));
407//
408//             blendedColor += color . rgb * blendedWidgets . a;
409//         }
410//
411//         imageStore(blendOutput, ivec2(imageCoords), vec4(blendedColor, 1));
412//     }
413// }
414