1 module shaders.mrt; 2 import sg = sokol.gfx; 3 import m = handmade.math; 4 extern(C): 5 6 /* 7 #version:1# (machine generated, don't edit!) 8 9 Generated by sokol-shdc (https://github.com/floooh/sokol-tools) 10 11 Cmdline: 12 sokol-shdc -i examples/shaders/mrt.glsl -o examples/shaders/mrt.d -l glsl410:glsl300es:metal_macos:hlsl5:wgsl -f sokol_d 13 14 Overview: 15 ========= 16 Shader program: 'dbg': 17 Get shader desc: dbgShaderDesc(sg.queryBackend()); 18 Vertex Shader: vs_dbg 19 Fragment Shader: fs_dbg 20 Attributes: 21 ATTR_DBG_POS => 0 22 Shader program: 'fsq': 23 Get shader desc: fsqShaderDesc(sg.queryBackend()); 24 Vertex Shader: vs_fsq 25 Fragment Shader: fs_fsq 26 Attributes: 27 ATTR_FSQ_POS => 0 28 Shader program: 'offscreen': 29 Get shader desc: offscreenShaderDesc(sg.queryBackend()); 30 Vertex Shader: vs_offscreen 31 Fragment Shader: fs_offscreen 32 Attributes: 33 ATTR_OFFSCREEN_POS => 0 34 ATTR_OFFSCREEN_BRIGHT0 => 1 35 Bindings: 36 Uniform block 'fsq_params': 37 D struct: FsqParams 38 Bind slot: UB_FSQ_PARAMS => 0 39 Uniform block 'offscreen_params': 40 D struct: OffscreenParams 41 Bind slot: UB_OFFSCREEN_PARAMS => 0 42 Image 'tex': 43 Image type: sg.ImageType._2d 44 Sample type: sg.ImageSampleType.Float 45 Multisampled: false 46 Bind slot: IMG_TEX => 0 47 Image 'tex0': 48 Image type: sg.ImageType._2d 49 Sample type: sg.ImageSampleType.Float 50 Multisampled: false 51 Bind slot: IMG_TEX0 => 0 52 Image 'tex1': 53 Image type: sg.ImageType._2d 54 Sample type: sg.ImageSampleType.Float 55 Multisampled: false 56 Bind slot: IMG_TEX1 => 1 57 Image 'tex2': 58 Image type: sg.ImageType._2d 59 Sample type: sg.ImageSampleType.Float 60 Multisampled: false 61 Bind slot: IMG_TEX2 => 2 62 Sampler 'smp': 63 Type: sg.SamplerType.Filtering 64 Bind slot: SMP_SMP => 0 65 */ 66 enum ATTR_DBG_POS = 0; 67 enum ATTR_FSQ_POS = 0; 68 enum ATTR_OFFSCREEN_POS = 0; 69 enum ATTR_OFFSCREEN_BRIGHT0 = 1; 70 enum UB_FSQ_PARAMS = 0; 71 enum UB_OFFSCREEN_PARAMS = 0; 72 enum IMG_TEX = 0; 73 enum IMG_TEX0 = 0; 74 enum IMG_TEX1 = 1; 75 enum IMG_TEX2 = 2; 76 enum SMP_SMP = 0; 77 struct FsqParams { 78 align(16) m.Vec2 offset; 79 align(1) ubyte[8] _pad_8 = 0; 80 } 81 struct OffscreenParams { 82 align(16) m.Mat4 mvp; 83 } 84 /* 85 #version 410 86 87 uniform vec4 offscreen_params[4]; 88 layout(location = 0) in vec4 pos; 89 layout(location = 0) out float bright; 90 layout(location = 1) in float bright0; 91 92 void main() 93 { 94 gl_Position = mat4(offscreen_params[0], offscreen_params[1], offscreen_params[2], offscreen_params[3]) * pos; 95 bright = bright0; 96 } 97 98 */ 99 __gshared char[315] VS_OFFSCREEN_SOURCE_GLSL410 = [ 100 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x75,0x6e, 101 0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x6f,0x66,0x66,0x73,0x63, 102 0x72,0x65,0x65,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x34,0x5d,0x3b,0x0a, 103 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, 104 0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73, 105 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, 106 0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, 107 0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, 108 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e, 109 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x30,0x3b,0x0a, 110 0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20, 111 0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d, 112 0x20,0x6d,0x61,0x74,0x34,0x28,0x6f,0x66,0x66,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f, 113 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x6f,0x66,0x66,0x73,0x63, 114 0x72,0x65,0x65,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x2c,0x20, 115 0x6f,0x66,0x66,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, 116 0x5b,0x32,0x5d,0x2c,0x20,0x6f,0x66,0x66,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x70, 117 0x61,0x72,0x61,0x6d,0x73,0x5b,0x33,0x5d,0x29,0x20,0x2a,0x20,0x70,0x6f,0x73,0x3b, 118 0x0a,0x20,0x20,0x20,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x62,0x72, 119 0x69,0x67,0x68,0x74,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 120 ]; 121 /* 122 #version 410 123 124 layout(location = 0) out vec4 frag_color_0; 125 layout(location = 0) in float bright; 126 layout(location = 1) out vec4 frag_color_1; 127 layout(location = 2) out vec4 frag_color_2; 128 129 void main() 130 { 131 frag_color_0 = vec4(bright, 0.0, 0.0, 1.0); 132 frag_color_1 = vec4(0.0, bright, 0.0, 1.0); 133 frag_color_2 = vec4(0.0, 0.0, bright, 1.0); 134 } 135 136 */ 137 __gshared char[347] FS_OFFSCREEN_SOURCE_GLSL410 = [ 138 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x6c,0x61, 139 0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20, 140 0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67, 141 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, 142 0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69, 143 0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x3b,0x0a, 144 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, 145 0x3d,0x20,0x31,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72, 146 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x3b,0x0a,0x6c,0x61,0x79,0x6f, 147 0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29, 148 0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, 149 0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61, 150 0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, 151 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x62, 152 0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, 153 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, 154 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30, 155 0x2e,0x30,0x2c,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x30,0x2e,0x30,0x2c, 156 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, 157 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30, 158 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x2c, 159 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 160 ]; 161 /* 162 #version 410 163 164 uniform vec4 fsq_params[1]; 165 layout(location = 0) in vec2 pos; 166 layout(location = 0) out vec2 uv0; 167 layout(location = 1) out vec2 uv1; 168 layout(location = 2) out vec2 uv2; 169 170 void main() 171 { 172 gl_Position = vec4((pos * 2.0) - vec2(1.0), 0.5, 1.0); 173 uv0 = pos + vec2(fsq_params[0].x, 0.0); 174 uv1 = pos + vec2(0.0, fsq_params[0].y); 175 uv2 = pos; 176 gl_Position.y = -gl_Position.y; 177 } 178 179 */ 180 __gshared char[398] VS_FSQ_SOURCE_GLSL410 = [ 181 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x75,0x6e, 182 0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x73,0x71,0x5f,0x70, 183 0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, 184 0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69, 185 0x6e,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f, 186 0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29, 187 0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x30,0x3b,0x0a,0x6c, 188 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, 189 0x20,0x31,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x31, 190 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, 191 0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20, 192 0x75,0x76,0x32,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28, 193 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74, 194 0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x70,0x6f,0x73,0x20, 195 0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2d,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e, 196 0x30,0x29,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20, 197 0x20,0x20,0x20,0x75,0x76,0x30,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x76, 198 0x65,0x63,0x32,0x28,0x66,0x73,0x71,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30, 199 0x5d,0x2e,0x78,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75, 200 0x76,0x31,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28, 201 0x30,0x2e,0x30,0x2c,0x20,0x66,0x73,0x71,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b, 202 0x30,0x5d,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x76,0x32,0x20,0x3d, 203 0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73, 204 0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x20,0x3d,0x20,0x2d,0x67,0x6c,0x5f,0x50,0x6f, 205 0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 206 ]; 207 /* 208 #version 410 209 210 uniform sampler2D tex0_smp; 211 uniform sampler2D tex1_smp; 212 uniform sampler2D tex2_smp; 213 214 layout(location = 0) in vec2 uv0; 215 layout(location = 1) in vec2 uv1; 216 layout(location = 2) in vec2 uv2; 217 layout(location = 0) out vec4 frag_color; 218 219 void main() 220 { 221 frag_color = vec4((texture(tex0_smp, uv0).xyz + texture(tex1_smp, uv1).xyz) + texture(tex2_smp, uv2).xyz, 1.0); 222 } 223 224 */ 225 __gshared char[378] FS_FSQ_SOURCE_GLSL410 = [ 226 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x75,0x6e, 227 0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20, 228 0x74,0x65,0x78,0x30,0x5f,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72, 229 0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x65,0x78,0x31, 230 0x5f,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61, 231 0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x65,0x78,0x32,0x5f,0x73,0x6d,0x70, 232 0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, 233 0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x32,0x20, 234 0x75,0x76,0x30,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61, 235 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63, 236 0x32,0x20,0x75,0x76,0x31,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f, 237 0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x69,0x6e,0x20,0x76, 238 0x65,0x63,0x32,0x20,0x75,0x76,0x32,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, 239 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75, 240 0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, 241 0x72,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a, 242 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 243 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65, 244 0x28,0x74,0x65,0x78,0x30,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x75,0x76,0x30,0x29,0x2e, 245 0x78,0x79,0x7a,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x74,0x65, 246 0x78,0x31,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x75,0x76,0x31,0x29,0x2e,0x78,0x79,0x7a, 247 0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x74,0x65,0x78,0x32, 248 0x5f,0x73,0x6d,0x70,0x2c,0x20,0x75,0x76,0x32,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20, 249 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 250 ]; 251 /* 252 #version 410 253 254 layout(location = 0) in vec2 pos; 255 layout(location = 0) out vec2 uv; 256 257 void main() 258 { 259 gl_Position = vec4((pos * 2.0) - vec2(1.0), 0.5, 1.0); 260 uv = pos; 261 gl_Position.y = -gl_Position.y; 262 } 263 264 */ 265 __gshared char[210] VS_DBG_SOURCE_GLSL410 = [ 266 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x6c,0x61, 267 0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20, 268 0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x6f,0x73,0x3b,0x0a, 269 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, 270 0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76, 271 0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b, 272 0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, 273 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x70,0x6f,0x73,0x20,0x2a,0x20,0x32, 274 0x2e,0x30,0x29,0x20,0x2d,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x2c, 275 0x20,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 276 0x75,0x76,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c, 277 0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x20,0x3d,0x20,0x2d,0x67, 278 0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x3b,0x0a,0x7d,0x0a, 279 0x0a,0x00, 280 ]; 281 /* 282 #version 410 283 284 uniform sampler2D tex_smp; 285 286 layout(location = 0) out vec4 frag_color; 287 layout(location = 0) in vec2 uv; 288 289 void main() 290 { 291 frag_color = vec4(texture(tex_smp, uv).xyz, 1.0); 292 } 293 294 */ 295 __gshared char[190] FS_DBG_SOURCE_GLSL410 = [ 296 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x75,0x6e, 297 0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20, 298 0x74,0x65,0x78,0x5f,0x73,0x6d,0x70,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, 299 0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f, 300 0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, 301 0x6f,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74, 302 0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x32, 303 0x20,0x75,0x76,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28, 304 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, 305 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x74,0x65,0x78,0x74,0x75,0x72, 306 0x65,0x28,0x74,0x65,0x78,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x75,0x76,0x29,0x2e,0x78, 307 0x79,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 308 ]; 309 /* 310 #version 300 es 311 312 uniform vec4 offscreen_params[4]; 313 layout(location = 0) in vec4 pos; 314 out float bright; 315 layout(location = 1) in float bright0; 316 317 void main() 318 { 319 gl_Position = mat4(offscreen_params[0], offscreen_params[1], offscreen_params[2], offscreen_params[3]) * pos; 320 bright = bright0; 321 } 322 323 */ 324 __gshared char[297] VS_OFFSCREEN_SOURCE_GLSL300ES = [ 325 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 326 0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x6f,0x66, 327 0x66,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x34, 328 0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, 329 0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20, 330 0x70,0x6f,0x73,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62, 331 0x72,0x69,0x67,0x68,0x74,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f, 332 0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x66, 333 0x6c,0x6f,0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x30,0x3b,0x0a,0x0a,0x76, 334 0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, 335 0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d, 336 0x61,0x74,0x34,0x28,0x6f,0x66,0x66,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x70,0x61, 337 0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x6f,0x66,0x66,0x73,0x63,0x72,0x65, 338 0x65,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x2c,0x20,0x6f,0x66, 339 0x66,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x32, 340 0x5d,0x2c,0x20,0x6f,0x66,0x66,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x70,0x61,0x72, 341 0x61,0x6d,0x73,0x5b,0x33,0x5d,0x29,0x20,0x2a,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20, 342 0x20,0x20,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x62,0x72,0x69,0x67, 343 0x68,0x74,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 344 ]; 345 /* 346 #version 300 es 347 precision mediump float; 348 precision highp int; 349 350 layout(location = 0) out highp vec4 frag_color_0; 351 in highp float bright; 352 layout(location = 1) out highp vec4 frag_color_1; 353 layout(location = 2) out highp vec4 frag_color_2; 354 355 void main() 356 { 357 frag_color_0 = vec4(bright, 0.0, 0.0, 1.0); 358 frag_color_1 = vec4(0.0, bright, 0.0, 1.0); 359 frag_color_2 = vec4(0.0, 0.0, bright, 1.0); 360 } 361 362 */ 363 __gshared char[399] FS_OFFSCREEN_SOURCE_GLSL300ES = [ 364 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 365 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d, 366 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69, 367 0x6f,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x69,0x6e,0x74,0x3b,0x0a,0x0a,0x6c, 368 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, 369 0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 370 0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x3b, 371 0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 372 0x62,0x72,0x69,0x67,0x68,0x74,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c, 373 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x6f,0x75,0x74, 374 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67, 375 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, 376 0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x6f, 377 0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72, 378 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x3b,0x0a,0x0a,0x76,0x6f,0x69, 379 0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, 380 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x20,0x3d,0x20,0x76,0x65, 381 0x63,0x34,0x28,0x62,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, 382 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 383 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20,0x3d,0x20,0x76,0x65, 384 0x63,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x2c,0x20, 385 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 386 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x20,0x3d,0x20,0x76,0x65, 387 0x63,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x62,0x72,0x69, 388 0x67,0x68,0x74,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 389 ]; 390 /* 391 #version 300 es 392 393 uniform vec4 fsq_params[1]; 394 layout(location = 0) in vec2 pos; 395 out vec2 uv0; 396 out vec2 uv1; 397 out vec2 uv2; 398 399 void main() 400 { 401 gl_Position = vec4((pos * 2.0) - vec2(1.0), 0.5, 1.0); 402 uv0 = pos + vec2(fsq_params[0].x, 0.0); 403 uv1 = pos + vec2(0.0, fsq_params[0].y); 404 uv2 = pos; 405 gl_Position.y = -gl_Position.y; 406 } 407 408 */ 409 __gshared char[338] VS_FSQ_SOURCE_GLSL300ES = [ 410 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 411 0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x73, 412 0x71,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x6c,0x61,0x79, 413 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30, 414 0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x6f, 415 0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x30,0x3b,0x0a,0x6f,0x75,0x74, 416 0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x31,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76, 417 0x65,0x63,0x32,0x20,0x75,0x76,0x32,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d, 418 0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50, 419 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28, 420 0x70,0x6f,0x73,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2d,0x20,0x76,0x65,0x63, 421 0x32,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30, 422 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x76,0x30,0x20,0x3d,0x20,0x70,0x6f,0x73, 423 0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x66,0x73,0x71,0x5f,0x70,0x61,0x72,0x61, 424 0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, 425 0x20,0x20,0x20,0x75,0x76,0x31,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x76, 426 0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x66,0x73,0x71,0x5f,0x70,0x61,0x72, 427 0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75, 428 0x76,0x32,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c, 429 0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x20,0x3d,0x20,0x2d,0x67, 430 0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x3b,0x0a,0x7d,0x0a, 431 0x0a,0x00, 432 ]; 433 /* 434 #version 300 es 435 precision mediump float; 436 precision highp int; 437 438 uniform highp sampler2D tex0_smp; 439 uniform highp sampler2D tex1_smp; 440 uniform highp sampler2D tex2_smp; 441 442 in highp vec2 uv0; 443 in highp vec2 uv1; 444 in highp vec2 uv2; 445 layout(location = 0) out highp vec4 frag_color; 446 447 void main() 448 { 449 frag_color = vec4((texture(tex0_smp, uv0).xyz + texture(tex1_smp, uv1).xyz) + texture(tex2_smp, uv2).xyz, 1.0); 450 } 451 452 */ 453 __gshared char[406] FS_FSQ_SOURCE_GLSL300ES = [ 454 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 455 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d, 456 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69, 457 0x6f,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x69,0x6e,0x74,0x3b,0x0a,0x0a,0x75, 458 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d, 459 0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x65,0x78,0x30,0x5f,0x73,0x6d,0x70,0x3b, 460 0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73, 461 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x65,0x78,0x31,0x5f,0x73,0x6d, 462 0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70, 463 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x65,0x78,0x32,0x5f, 464 0x73,0x6d,0x70,0x3b,0x0a,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 465 0x65,0x63,0x32,0x20,0x75,0x76,0x30,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68, 466 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x31,0x3b,0x0a,0x69,0x6e,0x20,0x68, 467 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x32,0x3b,0x0a,0x6c, 468 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, 469 0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 470 0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x0a, 471 0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20, 472 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76, 473 0x65,0x63,0x34,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x74,0x65,0x78, 474 0x30,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x75,0x76,0x30,0x29,0x2e,0x78,0x79,0x7a,0x20, 475 0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x74,0x65,0x78,0x31,0x5f,0x73, 476 0x6d,0x70,0x2c,0x20,0x75,0x76,0x31,0x29,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2b,0x20, 477 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x74,0x65,0x78,0x32,0x5f,0x73,0x6d,0x70, 478 0x2c,0x20,0x75,0x76,0x32,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29, 479 0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 480 ]; 481 /* 482 #version 300 es 483 484 layout(location = 0) in vec2 pos; 485 out vec2 uv; 486 487 void main() 488 { 489 gl_Position = vec4((pos * 2.0) - vec2(1.0), 0.5, 1.0); 490 uv = pos; 491 gl_Position.y = -gl_Position.y; 492 } 493 494 */ 495 __gshared char[192] VS_DBG_SOURCE_GLSL300ES = [ 496 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 497 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, 498 0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x6f, 499 0x73,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x3b,0x0a, 500 0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20, 501 0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d, 502 0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x70,0x6f,0x73,0x20,0x2a,0x20,0x32,0x2e,0x30, 503 0x29,0x20,0x2d,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x30, 504 0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x76, 505 0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50, 506 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x20,0x3d,0x20,0x2d,0x67,0x6c,0x5f, 507 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 508 509 ]; 510 /* 511 #version 300 es 512 precision mediump float; 513 precision highp int; 514 515 uniform highp sampler2D tex_smp; 516 517 layout(location = 0) out highp vec4 frag_color; 518 in highp vec2 uv; 519 520 void main() 521 { 522 frag_color = vec4(texture(tex_smp, uv).xyz, 1.0); 523 } 524 525 */ 526 __gshared char[236] FS_DBG_SOURCE_GLSL300ES = [ 527 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 528 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d, 529 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69, 530 0x6f,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x69,0x6e,0x74,0x3b,0x0a,0x0a,0x75, 531 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d, 532 0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x65,0x78,0x5f,0x73,0x6d,0x70,0x3b,0x0a, 533 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, 534 0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 535 0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b, 536 0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x75, 537 0x76,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a, 538 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 539 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, 540 0x74,0x65,0x78,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x75,0x76,0x29,0x2e,0x78,0x79,0x7a, 541 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 542 ]; 543 /* 544 cbuffer offscreen_params : register(b0) 545 { 546 row_major float4x4 _19_mvp : packoffset(c0); 547 }; 548 549 550 static float4 gl_Position; 551 static float4 pos; 552 static float bright; 553 static float bright0; 554 555 struct SPIRV_Cross_Input 556 { 557 float4 pos : TEXCOORD0; 558 float bright0 : TEXCOORD1; 559 }; 560 561 struct SPIRV_Cross_Output 562 { 563 float bright : TEXCOORD0; 564 float4 gl_Position : SV_Position; 565 }; 566 567 void vert_main() 568 { 569 gl_Position = mul(pos, _19_mvp); 570 bright = bright0; 571 } 572 573 SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) 574 { 575 pos = stage_input.pos; 576 bright0 = stage_input.bright0; 577 vert_main(); 578 SPIRV_Cross_Output stage_output; 579 stage_output.gl_Position = gl_Position; 580 stage_output.bright = bright; 581 return stage_output; 582 } 583 */ 584 __gshared char[736] VS_OFFSCREEN_SOURCE_HLSL5 = [ 585 0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x6f,0x66,0x66,0x73,0x63,0x72,0x65,0x65, 586 0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73, 587 0x74,0x65,0x72,0x28,0x62,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f, 588 0x77,0x5f,0x6d,0x61,0x6a,0x6f,0x72,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34, 589 0x20,0x5f,0x31,0x39,0x5f,0x6d,0x76,0x70,0x20,0x3a,0x20,0x70,0x61,0x63,0x6b,0x6f, 590 0x66,0x66,0x73,0x65,0x74,0x28,0x63,0x30,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x0a, 591 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c, 592 0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69, 593 0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x73,0x74, 594 0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68, 595 0x74,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 596 0x62,0x72,0x69,0x67,0x68,0x74,0x30,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74, 597 0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70, 598 0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, 599 0x70,0x6f,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b, 600 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68, 601 0x74,0x30,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x3b,0x0a, 602 0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56, 603 0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x0a,0x7b,0x0a, 604 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68,0x74, 605 0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a,0x20,0x20, 606 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69, 607 0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20,0x53,0x56,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69, 608 0x6f,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x76,0x65,0x72, 609 0x74,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67, 610 0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d,0x75,0x6c, 611 0x28,0x70,0x6f,0x73,0x2c,0x20,0x5f,0x31,0x39,0x5f,0x6d,0x76,0x70,0x29,0x3b,0x0a, 612 0x20,0x20,0x20,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x62,0x72,0x69, 613 0x67,0x68,0x74,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x53,0x50,0x49,0x52,0x56,0x5f,0x43, 614 0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e, 615 0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70, 616 0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a, 617 0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67, 618 0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20, 619 0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x30,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65, 620 0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x62,0x72,0x69,0x67,0x68,0x74,0x30,0x3b,0x0a, 621 0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x74,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x3b, 622 0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73, 623 0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75, 624 0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, 625 0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69, 626 0x6f,0x6e,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, 627 0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70, 628 0x75,0x74,0x2e,0x62,0x72,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x62,0x72,0x69,0x67, 629 0x68,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73, 630 0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, 631 632 ]; 633 /* 634 static float4 frag_color_0; 635 static float bright; 636 static float4 frag_color_1; 637 static float4 frag_color_2; 638 639 struct SPIRV_Cross_Input 640 { 641 float bright : TEXCOORD0; 642 }; 643 644 struct SPIRV_Cross_Output 645 { 646 float4 frag_color_0 : SV_Target0; 647 float4 frag_color_1 : SV_Target1; 648 float4 frag_color_2 : SV_Target2; 649 }; 650 651 void frag_main() 652 { 653 frag_color_0 = float4(bright, 0.0f, 0.0f, 1.0f); 654 frag_color_1 = float4(0.0f, bright, 0.0f, 1.0f); 655 frag_color_2 = float4(0.0f, 0.0f, bright, 1.0f); 656 } 657 658 SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) 659 { 660 bright = stage_input.bright; 661 frag_main(); 662 SPIRV_Cross_Output stage_output; 663 stage_output.frag_color_0 = frag_color_0; 664 stage_output.frag_color_1 = frag_color_1; 665 stage_output.frag_color_2 = frag_color_2; 666 return stage_output; 667 } 668 */ 669 __gshared char[804] FS_OFFSCREEN_SOURCE_HLSL5 = [ 670 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72, 671 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x3b,0x0a,0x73,0x74,0x61,0x74, 672 0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x3b, 673 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66, 674 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x3b,0x0a,0x73,0x74,0x61, 675 0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f, 676 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74, 677 0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70, 678 0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62, 679 0x72,0x69,0x67,0x68,0x74,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44, 680 0x30,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50, 681 0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74, 682 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72, 683 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x20,0x3a,0x20,0x53,0x56,0x5f, 684 0x54,0x61,0x72,0x67,0x65,0x74,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 685 0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31, 686 0x20,0x3a,0x20,0x53,0x56,0x5f,0x54,0x61,0x72,0x67,0x65,0x74,0x31,0x3b,0x0a,0x20, 687 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, 688 0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x20,0x3a,0x20,0x53,0x56,0x5f,0x54,0x61,0x72,0x67, 689 0x65,0x74,0x32,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x66,0x72, 690 0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 691 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x20,0x3d,0x20,0x66, 692 0x6c,0x6f,0x61,0x74,0x34,0x28,0x62,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x30,0x2e, 693 0x30,0x66,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b, 694 0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f, 695 0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x66,0x2c, 696 0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31, 697 0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, 698 0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, 699 0x30,0x2e,0x30,0x66,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x62,0x72,0x69,0x67, 700 0x68,0x74,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x53,0x50, 701 0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74, 702 0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73, 703 0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e, 704 0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x72,0x69,0x67,0x68, 705 0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e, 706 0x62,0x72,0x69,0x67,0x68,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, 707 0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49, 708 0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20, 709 0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20, 710 0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x66, 711 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x20,0x3d,0x20,0x66,0x72, 712 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, 713 0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x66,0x72,0x61, 714 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20,0x3d,0x20,0x66,0x72,0x61,0x67, 715 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74, 716 0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f, 717 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, 718 0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, 719 0x72,0x6e,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b, 720 0x0a,0x7d,0x0a,0x00, 721 ]; 722 /* 723 cbuffer fsq_params : register(b0) 724 { 725 float2 _36_offset : packoffset(c0); 726 }; 727 728 729 static float4 gl_Position; 730 static float2 pos; 731 static float2 uv0; 732 static float2 uv1; 733 static float2 uv2; 734 735 struct SPIRV_Cross_Input 736 { 737 float2 pos : TEXCOORD0; 738 }; 739 740 struct SPIRV_Cross_Output 741 { 742 float2 uv0 : TEXCOORD0; 743 float2 uv1 : TEXCOORD1; 744 float2 uv2 : TEXCOORD2; 745 float4 gl_Position : SV_Position; 746 }; 747 748 void vert_main() 749 { 750 gl_Position = float4((pos * 2.0f) - 1.0f.xx, 0.5f, 1.0f); 751 uv0 = pos + float2(_36_offset.x, 0.0f); 752 uv1 = pos + float2(0.0f, _36_offset.y); 753 uv2 = pos; 754 } 755 756 SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) 757 { 758 pos = stage_input.pos; 759 vert_main(); 760 SPIRV_Cross_Output stage_output; 761 stage_output.gl_Position = gl_Position; 762 stage_output.uv0 = uv0; 763 stage_output.uv1 = uv1; 764 stage_output.uv2 = uv2; 765 return stage_output; 766 } 767 */ 768 __gshared char[879] VS_FSQ_SOURCE_HLSL5 = [ 769 0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x66,0x73,0x71,0x5f,0x70,0x61,0x72,0x61, 770 0x6d,0x73,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x62,0x30, 771 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f, 772 0x33,0x36,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x3a,0x20,0x70,0x61,0x63,0x6b, 773 0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x63,0x30,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a, 774 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67, 775 0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x73,0x74,0x61,0x74, 776 0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x73, 777 0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x30, 778 0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, 779 0x75,0x76,0x31,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61, 780 0x74,0x32,0x20,0x75,0x76,0x32,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, 781 0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75, 782 0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, 783 0x6f,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a, 784 0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56, 785 0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x0a,0x7b,0x0a, 786 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x30,0x20,0x3a, 787 0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, 788 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x31,0x20,0x3a,0x20,0x54,0x45,0x58, 789 0x43,0x4f,0x4f,0x52,0x44,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 790 0x74,0x32,0x20,0x75,0x76,0x32,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52, 791 0x44,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67, 792 0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20,0x53,0x56,0x5f, 793 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x6f, 794 0x69,0x64,0x20,0x76,0x65,0x72,0x74,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b, 795 0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, 796 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x70,0x6f,0x73,0x20,0x2a, 797 0x20,0x32,0x2e,0x30,0x66,0x29,0x20,0x2d,0x20,0x31,0x2e,0x30,0x66,0x2e,0x78,0x78, 798 0x2c,0x20,0x30,0x2e,0x35,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20, 799 0x20,0x20,0x20,0x75,0x76,0x30,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x66, 800 0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x33,0x36,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74, 801 0x2e,0x78,0x2c,0x20,0x30,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75, 802 0x76,0x31,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, 803 0x32,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20,0x5f,0x33,0x36,0x5f,0x6f,0x66,0x66,0x73, 804 0x65,0x74,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x76,0x32,0x20,0x3d, 805 0x20,0x70,0x6f,0x73,0x3b,0x0a,0x7d,0x0a,0x0a,0x53,0x50,0x49,0x52,0x56,0x5f,0x43, 806 0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e, 807 0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70, 808 0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a, 809 0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67, 810 0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20, 811 0x20,0x76,0x65,0x72,0x74,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20, 812 0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75, 813 0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75, 814 0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74, 815 0x70,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20, 816 0x3d,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20, 817 0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e, 818 0x75,0x76,0x30,0x20,0x3d,0x20,0x75,0x76,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73, 819 0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x75,0x76,0x31,0x20, 820 0x3d,0x20,0x75,0x76,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65, 821 0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x75,0x76,0x32,0x20,0x3d,0x20,0x75,0x76, 822 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74, 823 0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, 824 ]; 825 /* 826 Texture2D<float4> tex0 : register(t0); 827 SamplerState smp : register(s0); 828 Texture2D<float4> tex1 : register(t1); 829 Texture2D<float4> tex2 : register(t2); 830 831 static float2 uv0; 832 static float2 uv1; 833 static float2 uv2; 834 static float4 frag_color; 835 836 struct SPIRV_Cross_Input 837 { 838 float2 uv0 : TEXCOORD0; 839 float2 uv1 : TEXCOORD1; 840 float2 uv2 : TEXCOORD2; 841 }; 842 843 struct SPIRV_Cross_Output 844 { 845 float4 frag_color : SV_Target0; 846 }; 847 848 void frag_main() 849 { 850 frag_color = float4((tex0.Sample(smp, uv0).xyz + tex1.Sample(smp, uv1).xyz) + tex2.Sample(smp, uv2).xyz, 1.0f); 851 } 852 853 SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) 854 { 855 uv0 = stage_input.uv0; 856 uv1 = stage_input.uv1; 857 uv2 = stage_input.uv2; 858 frag_main(); 859 SPIRV_Cross_Output stage_output; 860 stage_output.frag_color = frag_color; 861 return stage_output; 862 } 863 */ 864 __gshared char[818] FS_FSQ_SOURCE_HLSL5 = [ 865 0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x44,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x34, 866 0x3e,0x20,0x74,0x65,0x78,0x30,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65, 867 0x72,0x28,0x74,0x30,0x29,0x3b,0x0a,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x53,0x74, 868 0x61,0x74,0x65,0x20,0x73,0x6d,0x70,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74, 869 0x65,0x72,0x28,0x73,0x30,0x29,0x3b,0x0a,0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x32, 870 0x44,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x34,0x3e,0x20,0x74,0x65,0x78,0x31,0x20,0x3a, 871 0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x74,0x31,0x29,0x3b,0x0a,0x54, 872 0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x44,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x34,0x3e, 873 0x20,0x74,0x65,0x78,0x32,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72, 874 0x28,0x74,0x32,0x29,0x3b,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c, 875 0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x30,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63, 876 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x31,0x3b,0x0a,0x73,0x74,0x61, 877 0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x32,0x3b,0x0a, 878 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72, 879 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63, 880 0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e, 881 0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, 882 0x20,0x75,0x76,0x30,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30, 883 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x31, 884 0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x3b,0x0a,0x20,0x20, 885 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x32,0x20,0x3a,0x20,0x54, 886 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74, 887 0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73, 888 0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 889 0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, 890 0x3a,0x20,0x53,0x56,0x5f,0x54,0x61,0x72,0x67,0x65,0x74,0x30,0x3b,0x0a,0x7d,0x3b, 891 0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e, 892 0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, 893 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x74,0x65, 894 0x78,0x30,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c,0x20,0x75, 895 0x76,0x30,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20,0x74,0x65,0x78,0x31,0x2e,0x53, 896 0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c,0x20,0x75,0x76,0x31,0x29,0x2e, 897 0x78,0x79,0x7a,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x32,0x2e,0x53,0x61,0x6d,0x70, 898 0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c,0x20,0x75,0x76,0x32,0x29,0x2e,0x78,0x79,0x7a, 899 0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x53,0x50,0x49,0x52, 900 0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x6d, 901 0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f, 902 0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75, 903 0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x75,0x76,0x30,0x20,0x3d,0x20,0x73, 904 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x75,0x76,0x30,0x3b,0x0a, 905 0x20,0x20,0x20,0x20,0x75,0x76,0x31,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, 906 0x69,0x6e,0x70,0x75,0x74,0x2e,0x75,0x76,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75, 907 0x76,0x32,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74, 908 0x2e,0x75,0x76,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d, 909 0x61,0x69,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56, 910 0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74, 911 0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20, 912 0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x66,0x72,0x61, 913 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, 914 0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, 915 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d, 916 0x0a,0x00, 917 ]; 918 /* 919 static float4 gl_Position; 920 static float2 pos; 921 static float2 uv; 922 923 struct SPIRV_Cross_Input 924 { 925 float2 pos : TEXCOORD0; 926 }; 927 928 struct SPIRV_Cross_Output 929 { 930 float2 uv : TEXCOORD0; 931 float4 gl_Position : SV_Position; 932 }; 933 934 void vert_main() 935 { 936 gl_Position = float4((pos * 2.0f) - 1.0f.xx, 0.5f, 1.0f); 937 uv = pos; 938 } 939 940 SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) 941 { 942 pos = stage_input.pos; 943 vert_main(); 944 SPIRV_Cross_Output stage_output; 945 stage_output.gl_Position = gl_Position; 946 stage_output.uv = uv; 947 return stage_output; 948 } 949 */ 950 __gshared char[555] VS_DBG_SOURCE_HLSL5 = [ 951 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c, 952 0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69, 953 0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x73,0x74, 954 0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x3b,0x0a, 955 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72, 956 0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 957 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x6f,0x73,0x20,0x3a,0x20,0x54,0x45,0x58, 958 0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75, 959 0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f, 960 0x75,0x74,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 961 0x74,0x32,0x20,0x75,0x76,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44, 962 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c, 963 0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20,0x53,0x56,0x5f,0x50, 964 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x6f,0x69, 965 0x64,0x20,0x76,0x65,0x72,0x74,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a, 966 0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20, 967 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x70,0x6f,0x73,0x20,0x2a,0x20, 968 0x32,0x2e,0x30,0x66,0x29,0x20,0x2d,0x20,0x31,0x2e,0x30,0x66,0x2e,0x78,0x78,0x2c, 969 0x20,0x30,0x2e,0x35,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20, 970 0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x7d,0x0a,0x0a,0x53, 971 0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75, 972 0x74,0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f, 973 0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69, 974 0x6e,0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20, 975 0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x70,0x6f, 976 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x74,0x5f,0x6d,0x61,0x69,0x6e, 977 0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72, 978 0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65, 979 0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61, 980 0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73, 981 0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74, 982 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f, 983 0x75,0x74,0x70,0x75,0x74,0x2e,0x75,0x76,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20, 984 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, 985 0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, 986 ]; 987 /* 988 Texture2D<float4> tex : register(t0); 989 SamplerState smp : register(s0); 990 991 static float4 frag_color; 992 static float2 uv; 993 994 struct SPIRV_Cross_Input 995 { 996 float2 uv : TEXCOORD0; 997 }; 998 999 struct SPIRV_Cross_Output 1000 { 1001 float4 frag_color : SV_Target0; 1002 }; 1003 1004 void frag_main() 1005 { 1006 frag_color = float4(tex.Sample(smp, uv).xyz, 1.0f); 1007 } 1008 1009 SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) 1010 { 1011 uv = stage_input.uv; 1012 frag_main(); 1013 SPIRV_Cross_Output stage_output; 1014 stage_output.frag_color = frag_color; 1015 return stage_output; 1016 } 1017 */ 1018 __gshared char[527] FS_DBG_SOURCE_HLSL5 = [ 1019 0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x44,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x34, 1020 0x3e,0x20,0x74,0x65,0x78,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72, 1021 0x28,0x74,0x30,0x29,0x3b,0x0a,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x53,0x74,0x61, 1022 0x74,0x65,0x20,0x73,0x6d,0x70,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65, 1023 0x72,0x28,0x73,0x30,0x29,0x3b,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66, 1024 0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 1025 0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, 1026 0x75,0x76,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52, 1027 0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x0a,0x7b,0x0a, 1028 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x20,0x3a,0x20, 1029 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73, 1030 0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73, 1031 0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, 1032 0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 1033 0x20,0x3a,0x20,0x53,0x56,0x5f,0x54,0x61,0x72,0x67,0x65,0x74,0x30,0x3b,0x0a,0x7d, 1034 0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69, 1035 0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, 1036 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x74,0x65, 1037 0x78,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c,0x20,0x75,0x76, 1038 0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x7d,0x0a, 1039 0x0a,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74, 1040 0x70,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43, 1041 0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65, 1042 0x5f,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x75,0x76, 1043 0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x75, 1044 0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e, 1045 0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72, 1046 0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65, 1047 0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61, 1048 0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63, 1049 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, 1050 0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74, 1051 0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, 1052 ]; 1053 /* 1054 #include <metal_stdlib> 1055 #include <simd/simd.h> 1056 1057 using namespace metal; 1058 1059 struct offscreen_params 1060 { 1061 float4x4 mvp; 1062 }; 1063 1064 struct main0_out 1065 { 1066 float bright [[user(locn0)]]; 1067 float4 gl_Position [[position]]; 1068 }; 1069 1070 struct main0_in 1071 { 1072 float4 pos [[attribute(0)]]; 1073 float bright0 [[attribute(1)]]; 1074 }; 1075 1076 vertex main0_out main0(main0_in in [[stage_in]], constant offscreen_params& _19 [[buffer(0)]]) 1077 { 1078 main0_out out = {}; 1079 out.gl_Position = _19.mvp * in.pos; 1080 out.bright = in.bright0; 1081 return out; 1082 } 1083 1084 */ 1085 __gshared char[515] VS_OFFSCREEN_SOURCE_METAL_MACOS = [ 1086 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 1087 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 1088 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, 1089 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20, 1090 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6f, 1091 0x66,0x66,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a, 1092 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,0x6d, 1093 0x76,0x70,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d, 1094 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, 1095 0x6c,0x6f,0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x20,0x5b,0x5b,0x75,0x73, 1096 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, 1097 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74, 1098 0x69,0x6f,0x6e,0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d, 1099 0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69, 1100 0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 1101 0x74,0x34,0x20,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75, 1102 0x74,0x65,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 1103 0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x30,0x20,0x5b,0x5b,0x61,0x74,0x74, 1104 0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a, 1105 0x0a,0x76,0x65,0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, 1106 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e, 1107 0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d, 1108 0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x6f,0x66,0x66,0x73,0x63, 1109 0x72,0x65,0x65,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x31,0x39, 1110 0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a, 1111 0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20, 1112 0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75, 1113 0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20, 1114 0x5f,0x31,0x39,0x2e,0x6d,0x76,0x70,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x70,0x6f,0x73, 1115 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x62,0x72,0x69,0x67,0x68,0x74, 1116 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x62,0x72,0x69,0x67,0x68,0x74,0x30,0x3b,0x0a,0x20, 1117 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d, 1118 0x0a,0x0a,0x00, 1119 ]; 1120 /* 1121 #include <metal_stdlib> 1122 #include <simd/simd.h> 1123 1124 using namespace metal; 1125 1126 struct main0_out 1127 { 1128 float4 frag_color_0 [[color(0)]]; 1129 float4 frag_color_1 [[color(1)]]; 1130 float4 frag_color_2 [[color(2)]]; 1131 }; 1132 1133 struct main0_in 1134 { 1135 float bright [[user(locn0)]]; 1136 }; 1137 1138 fragment main0_out main0(main0_in in [[stage_in]]) 1139 { 1140 main0_out out = {}; 1141 out.frag_color_0 = float4(in.bright, 0.0, 0.0, 1.0); 1142 out.frag_color_1 = float4(0.0, in.bright, 0.0, 1.0); 1143 out.frag_color_2 = float4(0.0, 0.0, in.bright, 1.0); 1144 return out; 1145 } 1146 1147 */ 1148 __gshared char[533] FS_OFFSCREEN_SOURCE_METAL_MACOS = [ 1149 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 1150 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 1151 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, 1152 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20, 1153 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d, 1154 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, 1155 0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 1156 0x5f,0x30,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b, 1157 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67, 1158 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72, 1159 0x28,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 1160 0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x20,0x5b, 1161 0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a, 1162 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e, 1163 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x72,0x69, 1164 0x67,0x68,0x74,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30, 1165 0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e, 1166 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e, 1167 0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b, 1168 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20, 1169 0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20, 1170 0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72, 1171 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f, 1172 0x61,0x74,0x34,0x28,0x69,0x6e,0x2e,0x62,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x30, 1173 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20, 1174 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, 1175 0x72,0x5f,0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30, 1176 0x2c,0x20,0x69,0x6e,0x2e,0x62,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x30,0x2e,0x30, 1177 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, 1178 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x20,0x3d,0x20,0x66, 1179 0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, 1180 0x69,0x6e,0x2e,0x62,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, 1181 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b, 1182 0x0a,0x7d,0x0a,0x0a,0x00, 1183 ]; 1184 /* 1185 #include <metal_stdlib> 1186 #include <simd/simd.h> 1187 1188 using namespace metal; 1189 1190 struct fsq_params 1191 { 1192 float2 offset; 1193 }; 1194 1195 struct main0_out 1196 { 1197 float2 uv0 [[user(locn0)]]; 1198 float2 uv1 [[user(locn1)]]; 1199 float2 uv2 [[user(locn2)]]; 1200 float4 gl_Position [[position]]; 1201 }; 1202 1203 struct main0_in 1204 { 1205 float2 pos [[attribute(0)]]; 1206 }; 1207 1208 vertex main0_out main0(main0_in in [[stage_in]], constant fsq_params& _36 [[buffer(0)]]) 1209 { 1210 main0_out out = {}; 1211 out.gl_Position = float4((in.pos * 2.0) - float2(1.0), 0.5, 1.0); 1212 out.uv0 = in.pos + float2(_36.offset.x, 0.0); 1213 out.uv1 = in.pos + float2(0.0, _36.offset.y); 1214 out.uv2 = in.pos; 1215 return out; 1216 } 1217 1218 */ 1219 __gshared char[653] VS_FSQ_SOURCE_METAL_MACOS = [ 1220 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 1221 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 1222 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, 1223 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20, 1224 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x66, 1225 0x73,0x71,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 1226 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x3b,0x0a,0x7d, 1227 0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, 1228 0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, 1229 0x20,0x75,0x76,0x30,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, 1230 0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, 1231 0x20,0x75,0x76,0x31,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, 1232 0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, 1233 0x20,0x75,0x76,0x32,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, 1234 0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, 1235 0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x5b,0x5b,0x70, 1236 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73, 1237 0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b, 1238 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x6f,0x73,0x20, 1239 0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x30,0x29,0x5d,0x5d, 1240 0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65,0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69, 1241 0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69, 1242 0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65, 1243 0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20, 1244 0x66,0x73,0x71,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x33,0x36,0x20, 1245 0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b, 1246 0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f, 1247 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, 1248 0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66, 1249 0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x20,0x2a,0x20, 1250 0x32,0x2e,0x30,0x29,0x20,0x2d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e, 1251 0x30,0x29,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20, 1252 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x75,0x76,0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e, 1253 0x70,0x6f,0x73,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x33,0x36, 1254 0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2e,0x78,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, 1255 0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x75,0x76,0x31,0x20,0x3d,0x20,0x69, 1256 0x6e,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30, 1257 0x2e,0x30,0x2c,0x20,0x5f,0x33,0x36,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2e,0x79, 1258 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x75,0x76,0x32,0x20,0x3d, 1259 0x20,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, 1260 0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 1261 ]; 1262 /* 1263 #include <metal_stdlib> 1264 #include <simd/simd.h> 1265 1266 using namespace metal; 1267 1268 struct main0_out 1269 { 1270 float4 frag_color [[color(0)]]; 1271 }; 1272 1273 struct main0_in 1274 { 1275 float2 uv0 [[user(locn0)]]; 1276 float2 uv1 [[user(locn1)]]; 1277 float2 uv2 [[user(locn2)]]; 1278 }; 1279 1280 fragment main0_out main0(main0_in in [[stage_in]], texture2d<float> tex0 [[texture(0)]], texture2d<float> tex1 [[texture(1)]], texture2d<float> tex2 [[texture(2)]], sampler smp [[sampler(0)]]) 1281 { 1282 main0_out out = {}; 1283 out.frag_color = float4((tex0.sample(smp, in.uv0).xyz + tex1.sample(smp, in.uv1).xyz) + tex2.sample(smp, in.uv2).xyz, 1.0); 1284 return out; 1285 } 1286 1287 */ 1288 __gshared char[616] FS_FSQ_SOURCE_METAL_MACOS = [ 1289 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 1290 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 1291 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, 1292 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20, 1293 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d, 1294 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, 1295 0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 1296 0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d, 1297 0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, 1298 0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, 1299 0x75,0x76,0x30,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30, 1300 0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, 1301 0x75,0x76,0x31,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31, 1302 0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, 1303 0x75,0x76,0x32,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x32, 1304 0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e, 1305 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e, 1306 0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b, 1307 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74, 1308 0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x74,0x65,0x78, 1309 0x30,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29,0x5d,0x5d, 1310 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61, 1311 0x74,0x3e,0x20,0x74,0x65,0x78,0x31,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72, 1312 0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, 1313 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x74,0x65,0x78,0x32,0x20,0x5b,0x5b, 1314 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61, 1315 0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70, 1316 0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 1317 0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20, 1318 0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, 1319 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, 1320 0x28,0x74,0x65,0x78,0x30,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70, 1321 0x2c,0x20,0x69,0x6e,0x2e,0x75,0x76,0x30,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20, 1322 0x74,0x65,0x78,0x31,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c, 1323 0x20,0x69,0x6e,0x2e,0x75,0x76,0x31,0x29,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2b,0x20, 1324 0x74,0x65,0x78,0x32,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c, 1325 0x20,0x69,0x6e,0x2e,0x75,0x76,0x32,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x31,0x2e, 1326 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f, 1327 0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 1328 ]; 1329 /* 1330 #include <metal_stdlib> 1331 #include <simd/simd.h> 1332 1333 using namespace metal; 1334 1335 struct main0_out 1336 { 1337 float2 uv [[user(locn0)]]; 1338 float4 gl_Position [[position]]; 1339 }; 1340 1341 struct main0_in 1342 { 1343 float2 pos [[attribute(0)]]; 1344 }; 1345 1346 vertex main0_out main0(main0_in in [[stage_in]]) 1347 { 1348 main0_out out = {}; 1349 out.gl_Position = float4((in.pos * 2.0) - float2(1.0), 0.5, 1.0); 1350 out.uv = in.pos; 1351 return out; 1352 } 1353 1354 */ 1355 __gshared char[404] VS_DBG_SOURCE_METAL_MACOS = [ 1356 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 1357 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 1358 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, 1359 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20, 1360 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d, 1361 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, 1362 0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, 1363 0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 1364 0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, 1365 0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x3b,0x0a,0x7d, 1366 0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, 1367 0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, 1368 0x70,0x6f,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28, 1369 0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65,0x72,0x74,0x65,0x78, 1370 0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30, 1371 0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73, 1372 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, 1373 0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d, 1374 0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f, 1375 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, 1376 0x34,0x28,0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29, 1377 0x20,0x2d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20, 1378 0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f, 1379 0x75,0x74,0x2e,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x3b,0x0a, 1380 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a, 1381 0x7d,0x0a,0x0a,0x00, 1382 ]; 1383 /* 1384 #include <metal_stdlib> 1385 #include <simd/simd.h> 1386 1387 using namespace metal; 1388 1389 struct main0_out 1390 { 1391 float4 frag_color [[color(0)]]; 1392 }; 1393 1394 struct main0_in 1395 { 1396 float2 uv [[user(locn0)]]; 1397 }; 1398 1399 fragment main0_out main0(main0_in in [[stage_in]], texture2d<float> tex [[texture(0)]], sampler smp [[sampler(0)]]) 1400 { 1401 main0_out out = {}; 1402 out.frag_color = float4(tex.sample(smp, in.uv).xyz, 1.0); 1403 return out; 1404 } 1405 1406 */ 1407 __gshared char[408] FS_DBG_SOURCE_METAL_MACOS = [ 1408 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 1409 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 1410 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, 1411 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20, 1412 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d, 1413 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, 1414 0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 1415 0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d, 1416 0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, 1417 0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, 1418 0x75,0x76,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29, 1419 0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74, 1420 0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30, 1421 0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73, 1422 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, 1423 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x74,0x65,0x78,0x20, 1424 0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20, 1425 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61, 1426 0x6d,0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20, 1427 0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20, 1428 0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72, 1429 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, 1430 0x34,0x28,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70, 1431 0x2c,0x20,0x69,0x6e,0x2e,0x75,0x76,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x31,0x2e, 1432 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f, 1433 0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, 1434 ]; 1435 /* 1436 diagnostic(off, derivative_uniformity); 1437 1438 struct offscreen_params { 1439 /_ @offset(0) _/ 1440 mvp : mat4x4f, 1441 } 1442 1443 @binding(0) @group(0) var<uniform> x_19 : offscreen_params; 1444 1445 var<private> pos : vec4f; 1446 1447 var<private> bright : f32; 1448 1449 var<private> bright0 : f32; 1450 1451 var<private> gl_Position : vec4f; 1452 1453 fn main_1() { 1454 gl_Position = (x_19.mvp * pos); 1455 bright = bright0; 1456 return; 1457 } 1458 1459 struct main_out { 1460 @builtin(position) 1461 gl_Position : vec4f, 1462 @location(0) 1463 bright_1 : f32, 1464 } 1465 1466 @vertex 1467 fn main(@location(0) pos_param : vec4f, @location(1) bright0_param : f32) -> main_out { 1468 pos = pos_param; 1469 bright0 = bright0_param; 1470 main_1(); 1471 return main_out(gl_Position, bright); 1472 } 1473 */ 1474 __gshared char[662] VS_OFFSCREEN_SOURCE_WGSL = [ 1475 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 1476 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 1477 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, 1478 0x6f,0x66,0x66,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, 1479 0x20,0x7b,0x0a,0x20,0x20,0x2f,0x2a,0x20,0x40,0x6f,0x66,0x66,0x73,0x65,0x74,0x28, 1480 0x30,0x29,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x6d,0x76,0x70,0x20,0x3a,0x20,0x6d,0x61, 1481 0x74,0x34,0x78,0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x62,0x69,0x6e,0x64,0x69, 1482 0x6e,0x67,0x28,0x30,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x30,0x29,0x20, 1483 0x76,0x61,0x72,0x3c,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x3e,0x20,0x78,0x5f,0x31, 1484 0x39,0x20,0x3a,0x20,0x6f,0x66,0x66,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x70,0x61, 1485 0x72,0x61,0x6d,0x73,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61, 1486 0x74,0x65,0x3e,0x20,0x70,0x6f,0x73,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b, 1487 0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x62, 1488 0x72,0x69,0x67,0x68,0x74,0x20,0x3a,0x20,0x66,0x33,0x32,0x3b,0x0a,0x0a,0x76,0x61, 1489 0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x62,0x72,0x69,0x67,0x68, 1490 0x74,0x30,0x20,0x3a,0x20,0x66,0x33,0x32,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70, 1491 0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74, 1492 0x69,0x6f,0x6e,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x66,0x6e, 1493 0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x67,0x6c, 1494 0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x78,0x5f,0x31, 1495 0x39,0x2e,0x6d,0x76,0x70,0x20,0x2a,0x20,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20, 1496 0x62,0x72,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x30, 1497 0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73, 1498 0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b, 1499 0x0a,0x20,0x20,0x40,0x62,0x75,0x69,0x6c,0x74,0x69,0x6e,0x28,0x70,0x6f,0x73,0x69, 1500 0x74,0x69,0x6f,0x6e,0x29,0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74, 1501 0x69,0x6f,0x6e,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x20,0x20,0x40, 1502 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x62,0x72, 1503 0x69,0x67,0x68,0x74,0x5f,0x31,0x20,0x3a,0x20,0x66,0x33,0x32,0x2c,0x0a,0x7d,0x0a, 1504 0x0a,0x40,0x76,0x65,0x72,0x74,0x65,0x78,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e, 1505 0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x70,0x6f, 1506 0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c, 1507 0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x31,0x29,0x20,0x62,0x72, 1508 0x69,0x67,0x68,0x74,0x30,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x66,0x33, 1509 0x32,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b, 1510 0x0a,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x5f,0x70,0x61,0x72, 1511 0x61,0x6d,0x3b,0x0a,0x20,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x30,0x20,0x3d,0x20, 1512 0x62,0x72,0x69,0x67,0x68,0x74,0x30,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20, 1513 0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74, 1514 0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28,0x67,0x6c,0x5f, 1515 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x62,0x72,0x69,0x67,0x68,0x74, 1516 0x29,0x3b,0x0a,0x7d,0x0a,0x00, 1517 ]; 1518 /* 1519 diagnostic(off, derivative_uniformity); 1520 1521 var<private> frag_color_0 : vec4f; 1522 1523 var<private> bright : f32; 1524 1525 var<private> frag_color_1 : vec4f; 1526 1527 var<private> frag_color_2 : vec4f; 1528 1529 fn main_1() { 1530 frag_color_0 = vec4f(bright, 0.0f, 0.0f, 1.0f); 1531 frag_color_1 = vec4f(0.0f, bright, 0.0f, 1.0f); 1532 frag_color_2 = vec4f(0.0f, 0.0f, bright, 1.0f); 1533 return; 1534 } 1535 1536 struct main_out { 1537 @location(0) 1538 frag_color_0_1 : vec4f, 1539 @location(1) 1540 frag_color_1_1 : vec4f, 1541 @location(2) 1542 frag_color_2_1 : vec4f, 1543 } 1544 1545 @fragment 1546 fn main(@location(0) bright_param : f32) -> main_out { 1547 bright = bright_param; 1548 main_1(); 1549 return main_out(frag_color_0, frag_color_1, frag_color_2); 1550 } 1551 */ 1552 __gshared char[664] FS_OFFSCREEN_SOURCE_WGSL = [ 1553 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 1554 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 1555 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69, 1556 0x76,0x61,0x74,0x65,0x3e,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 1557 0x5f,0x30,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72, 1558 0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x62,0x72,0x69,0x67,0x68,0x74, 1559 0x20,0x3a,0x20,0x66,0x33,0x32,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69, 1560 0x76,0x61,0x74,0x65,0x3e,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 1561 0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72, 1562 0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, 1563 0x6f,0x6c,0x6f,0x72,0x5f,0x32,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a, 1564 0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20, 1565 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x20,0x3d,0x20, 1566 0x76,0x65,0x63,0x34,0x66,0x28,0x62,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x30,0x2e, 1567 0x30,0x66,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b, 1568 0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20, 1569 0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20,0x62,0x72, 1570 0x69,0x67,0x68,0x74,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66, 1571 0x29,0x3b,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f, 1572 0x32,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20, 1573 0x30,0x2e,0x30,0x66,0x2c,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x31,0x2e, 1574 0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x7d, 1575 0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75, 1576 0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28, 1577 0x30,0x29,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f, 1578 0x30,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x20,0x20,0x40, 1579 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x31,0x29,0x0a,0x20,0x20,0x66,0x72, 1580 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x5f,0x31,0x20,0x3a,0x20,0x76, 1581 0x65,0x63,0x34,0x66,0x2c,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, 1582 0x6e,0x28,0x32,0x29,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, 1583 0x72,0x5f,0x32,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x7d, 1584 0x0a,0x0a,0x40,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x0a,0x66,0x6e,0x20,0x6d, 1585 0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29, 1586 0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20, 1587 0x66,0x33,0x32,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74, 1588 0x20,0x7b,0x0a,0x20,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x62,0x72, 1589 0x69,0x67,0x68,0x74,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61, 1590 0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, 1591 0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28,0x66,0x72,0x61,0x67,0x5f,0x63, 1592 0x6f,0x6c,0x6f,0x72,0x5f,0x30,0x2c,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, 1593 0x6f,0x72,0x5f,0x31,0x2c,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 1594 0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x00, 1595 ]; 1596 /* 1597 diagnostic(off, derivative_uniformity); 1598 1599 struct fsq_params { 1600 /_ @offset(0) _/ 1601 offset : vec2f, 1602 } 1603 1604 var<private> pos : vec2f; 1605 1606 var<private> uv0 : vec2f; 1607 1608 @binding(0) @group(0) var<uniform> x_36 : fsq_params; 1609 1610 var<private> uv1 : vec2f; 1611 1612 var<private> uv2 : vec2f; 1613 1614 var<private> gl_Position : vec4f; 1615 1616 fn main_1() { 1617 let x_24 = ((pos * 2.0f) - vec2f(1.0f)); 1618 gl_Position = vec4f(x_24.x, x_24.y, 0.5f, 1.0f); 1619 uv0 = (pos + vec2f(x_36.offset.x, 0.0f)); 1620 uv1 = (pos + vec2f(0.0f, x_36.offset.y)); 1621 uv2 = pos; 1622 return; 1623 } 1624 1625 struct main_out { 1626 @builtin(position) 1627 gl_Position : vec4f, 1628 @location(0) 1629 uv0_1 : vec2f, 1630 @location(1) 1631 uv1_1 : vec2f, 1632 @location(2) 1633 uv2_1 : vec2f, 1634 } 1635 1636 @vertex 1637 fn main(@location(0) pos_param : vec2f) -> main_out { 1638 pos = pos_param; 1639 main_1(); 1640 return main_out(gl_Position, uv0, uv1, uv2); 1641 } 1642 */ 1643 __gshared char[825] VS_FSQ_SOURCE_WGSL = [ 1644 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 1645 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 1646 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, 1647 0x66,0x73,0x71,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x7b,0x0a,0x20,0x20,0x2f, 1648 0x2a,0x20,0x40,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x30,0x29,0x20,0x2a,0x2f,0x0a, 1649 0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66, 1650 0x2c,0x0a,0x7d,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65, 1651 0x3e,0x20,0x70,0x6f,0x73,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x0a, 1652 0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x75,0x76,0x30, 1653 0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x0a,0x40,0x62,0x69,0x6e,0x64, 1654 0x69,0x6e,0x67,0x28,0x30,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x30,0x29, 1655 0x20,0x76,0x61,0x72,0x3c,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x3e,0x20,0x78,0x5f, 1656 0x33,0x36,0x20,0x3a,0x20,0x66,0x73,0x71,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b, 1657 0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x75, 1658 0x76,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72, 1659 0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x75,0x76,0x32,0x20,0x3a,0x20, 1660 0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76, 1661 0x61,0x74,0x65,0x3e,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, 1662 0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x66,0x6e,0x20,0x6d,0x61, 1663 0x69,0x6e,0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78, 1664 0x5f,0x32,0x34,0x20,0x3d,0x20,0x28,0x28,0x70,0x6f,0x73,0x20,0x2a,0x20,0x32,0x2e, 1665 0x30,0x66,0x29,0x20,0x2d,0x20,0x76,0x65,0x63,0x32,0x66,0x28,0x31,0x2e,0x30,0x66, 1666 0x29,0x29,0x3b,0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, 1667 0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x78,0x5f,0x32,0x34,0x2e,0x78, 1668 0x2c,0x20,0x78,0x5f,0x32,0x34,0x2e,0x79,0x2c,0x20,0x30,0x2e,0x35,0x66,0x2c,0x20, 1669 0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x75,0x76,0x30,0x20,0x3d,0x20,0x28, 1670 0x70,0x6f,0x73,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x66,0x28,0x78,0x5f,0x33,0x36, 1671 0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2e,0x78,0x2c,0x20,0x30,0x2e,0x30,0x66,0x29, 1672 0x29,0x3b,0x0a,0x20,0x20,0x75,0x76,0x31,0x20,0x3d,0x20,0x28,0x70,0x6f,0x73,0x20, 1673 0x2b,0x20,0x76,0x65,0x63,0x32,0x66,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20,0x78,0x5f, 1674 0x33,0x36,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2e,0x79,0x29,0x29,0x3b,0x0a,0x20, 1675 0x20,0x75,0x76,0x32,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x72,0x65, 1676 0x74,0x75,0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, 1677 0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x62,0x75, 1678 0x69,0x6c,0x74,0x69,0x6e,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x0a, 1679 0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20, 1680 0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69, 1681 0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x75,0x76,0x30,0x5f,0x31,0x20,0x3a,0x20, 1682 0x76,0x65,0x63,0x32,0x66,0x2c,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69, 1683 0x6f,0x6e,0x28,0x31,0x29,0x0a,0x20,0x20,0x75,0x76,0x31,0x5f,0x31,0x20,0x3a,0x20, 1684 0x76,0x65,0x63,0x32,0x66,0x2c,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69, 1685 0x6f,0x6e,0x28,0x32,0x29,0x0a,0x20,0x20,0x75,0x76,0x32,0x5f,0x31,0x20,0x3a,0x20, 1686 0x76,0x65,0x63,0x32,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x76,0x65,0x72,0x74,0x65, 1687 0x78,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74, 1688 0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x70,0x6f,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, 1689 0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69, 1690 0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20, 1691 0x70,0x6f,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69, 1692 0x6e,0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, 1693 0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69, 1694 0x74,0x69,0x6f,0x6e,0x2c,0x20,0x75,0x76,0x30,0x2c,0x20,0x75,0x76,0x31,0x2c,0x20, 1695 0x75,0x76,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x00, 1696 ]; 1697 /* 1698 diagnostic(off, derivative_uniformity); 1699 1700 @binding(64) @group(1) var tex0 : texture_2d<f32>; 1701 1702 @binding(80) @group(1) var smp : sampler; 1703 1704 var<private> uv0 : vec2f; 1705 1706 @binding(65) @group(1) var tex1 : texture_2d<f32>; 1707 1708 var<private> uv1 : vec2f; 1709 1710 @binding(66) @group(1) var tex2 : texture_2d<f32>; 1711 1712 var<private> uv2 : vec2f; 1713 1714 var<private> frag_color : vec4f; 1715 1716 fn main_1() { 1717 var c0 : vec3f; 1718 var c1 : vec3f; 1719 var c2 : vec3f; 1720 let x_23 = uv0; 1721 let x_25 = textureSample(tex0, smp, x_23); 1722 c0 = x_25.xyz; 1723 let x_33 = uv1; 1724 let x_34 = textureSample(tex1, smp, x_33); 1725 c1 = x_34.xyz; 1726 let x_42 = uv2; 1727 let x_43 = textureSample(tex2, smp, x_42); 1728 c2 = x_43.xyz; 1729 let x_51 = ((c0 + c1) + c2); 1730 frag_color = vec4f(x_51.x, x_51.y, x_51.z, 1.0f); 1731 return; 1732 } 1733 1734 struct main_out { 1735 @location(0) 1736 frag_color_1 : vec4f, 1737 } 1738 1739 @fragment 1740 fn main(@location(0) uv0_param : vec2f, @location(1) uv1_param : vec2f, @location(2) uv2_param : vec2f) -> main_out { 1741 uv0 = uv0_param; 1742 uv1 = uv1_param; 1743 uv2 = uv2_param; 1744 main_1(); 1745 return main_out(frag_color); 1746 } 1747 */ 1748 __gshared char[1050] FS_FSQ_SOURCE_WGSL = [ 1749 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 1750 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 1751 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e, 1752 0x67,0x28,0x36,0x34,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x31,0x29,0x20, 1753 0x76,0x61,0x72,0x20,0x74,0x65,0x78,0x30,0x20,0x3a,0x20,0x74,0x65,0x78,0x74,0x75, 1754 0x72,0x65,0x5f,0x32,0x64,0x3c,0x66,0x33,0x32,0x3e,0x3b,0x0a,0x0a,0x40,0x62,0x69, 1755 0x6e,0x64,0x69,0x6e,0x67,0x28,0x38,0x30,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70, 1756 0x28,0x31,0x29,0x20,0x76,0x61,0x72,0x20,0x73,0x6d,0x70,0x20,0x3a,0x20,0x73,0x61, 1757 0x6d,0x70,0x6c,0x65,0x72,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76, 1758 0x61,0x74,0x65,0x3e,0x20,0x75,0x76,0x30,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66, 1759 0x3b,0x0a,0x0a,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x36,0x35,0x29,0x20, 1760 0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x31,0x29,0x20,0x76,0x61,0x72,0x20,0x74,0x65, 1761 0x78,0x31,0x20,0x3a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x32,0x64,0x3c, 1762 0x66,0x33,0x32,0x3e,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61, 1763 0x74,0x65,0x3e,0x20,0x75,0x76,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b, 1764 0x0a,0x0a,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x36,0x36,0x29,0x20,0x40, 1765 0x67,0x72,0x6f,0x75,0x70,0x28,0x31,0x29,0x20,0x76,0x61,0x72,0x20,0x74,0x65,0x78, 1766 0x32,0x20,0x3a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x32,0x64,0x3c,0x66, 1767 0x33,0x32,0x3e,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74, 1768 0x65,0x3e,0x20,0x75,0x76,0x32,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a, 1769 0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x66,0x72, 1770 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66, 1771 0x3b,0x0a,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x20,0x7b, 1772 0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x30,0x20,0x3a,0x20,0x76,0x65,0x63,0x33, 1773 0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x31,0x20,0x3a,0x20,0x76,0x65, 1774 0x63,0x33,0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x32,0x20,0x3a,0x20, 1775 0x76,0x65,0x63,0x33,0x66,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32, 1776 0x33,0x20,0x3d,0x20,0x75,0x76,0x30,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78, 1777 0x5f,0x32,0x35,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61,0x6d, 1778 0x70,0x6c,0x65,0x28,0x74,0x65,0x78,0x30,0x2c,0x20,0x73,0x6d,0x70,0x2c,0x20,0x78, 1779 0x5f,0x32,0x33,0x29,0x3b,0x0a,0x20,0x20,0x63,0x30,0x20,0x3d,0x20,0x78,0x5f,0x32, 1780 0x35,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x33, 1781 0x33,0x20,0x3d,0x20,0x75,0x76,0x31,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78, 1782 0x5f,0x33,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61,0x6d, 1783 0x70,0x6c,0x65,0x28,0x74,0x65,0x78,0x31,0x2c,0x20,0x73,0x6d,0x70,0x2c,0x20,0x78, 1784 0x5f,0x33,0x33,0x29,0x3b,0x0a,0x20,0x20,0x63,0x31,0x20,0x3d,0x20,0x78,0x5f,0x33, 1785 0x34,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x34, 1786 0x32,0x20,0x3d,0x20,0x75,0x76,0x32,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78, 1787 0x5f,0x34,0x33,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61,0x6d, 1788 0x70,0x6c,0x65,0x28,0x74,0x65,0x78,0x32,0x2c,0x20,0x73,0x6d,0x70,0x2c,0x20,0x78, 1789 0x5f,0x34,0x32,0x29,0x3b,0x0a,0x20,0x20,0x63,0x32,0x20,0x3d,0x20,0x78,0x5f,0x34, 1790 0x33,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x35, 1791 0x31,0x20,0x3d,0x20,0x28,0x28,0x63,0x30,0x20,0x2b,0x20,0x63,0x31,0x29,0x20,0x2b, 1792 0x20,0x63,0x32,0x29,0x3b,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, 1793 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x78,0x5f,0x35,0x31,0x2e, 1794 0x78,0x2c,0x20,0x78,0x5f,0x35,0x31,0x2e,0x79,0x2c,0x20,0x78,0x5f,0x35,0x31,0x2e, 1795 0x7a,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75, 1796 0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61, 1797 0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61, 1798 0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, 1799 0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a, 1800 0x7d,0x0a,0x0a,0x40,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x0a,0x66,0x6e,0x20, 1801 0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30, 1802 0x29,0x20,0x75,0x76,0x30,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65, 1803 0x63,0x32,0x66,0x2c,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x31, 1804 0x29,0x20,0x75,0x76,0x31,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65, 1805 0x63,0x32,0x66,0x2c,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x32, 1806 0x29,0x20,0x75,0x76,0x32,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65, 1807 0x63,0x32,0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74, 1808 0x20,0x7b,0x0a,0x20,0x20,0x75,0x76,0x30,0x20,0x3d,0x20,0x75,0x76,0x30,0x5f,0x70, 1809 0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x75,0x76,0x31,0x20,0x3d,0x20,0x75,0x76, 1810 0x31,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x75,0x76,0x32,0x20,0x3d, 1811 0x20,0x75,0x76,0x32,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61, 1812 0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, 1813 0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28,0x66,0x72,0x61,0x67,0x5f,0x63, 1814 0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x00, 1815 ]; 1816 /* 1817 diagnostic(off, derivative_uniformity); 1818 1819 var<private> pos : vec2f; 1820 1821 var<private> uv : vec2f; 1822 1823 var<private> gl_Position : vec4f; 1824 1825 fn main_1() { 1826 let x_24 = ((pos * 2.0f) - vec2f(1.0f)); 1827 gl_Position = vec4f(x_24.x, x_24.y, 0.5f, 1.0f); 1828 uv = pos; 1829 return; 1830 } 1831 1832 struct main_out { 1833 @builtin(position) 1834 gl_Position : vec4f, 1835 @location(0) 1836 uv_1 : vec2f, 1837 } 1838 1839 @vertex 1840 fn main(@location(0) pos_param : vec2f) -> main_out { 1841 pos = pos_param; 1842 main_1(); 1843 return main_out(gl_Position, uv); 1844 } 1845 */ 1846 __gshared char[490] VS_DBG_SOURCE_WGSL = [ 1847 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 1848 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 1849 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69, 1850 0x76,0x61,0x74,0x65,0x3e,0x20,0x70,0x6f,0x73,0x20,0x3a,0x20,0x76,0x65,0x63,0x32, 1851 0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e, 1852 0x20,0x75,0x76,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x0a,0x76,0x61, 1853 0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x67,0x6c,0x5f,0x50,0x6f, 1854 0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a, 1855 0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20, 1856 0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32,0x34,0x20,0x3d,0x20,0x28,0x28,0x70,0x6f, 1857 0x73,0x20,0x2a,0x20,0x32,0x2e,0x30,0x66,0x29,0x20,0x2d,0x20,0x76,0x65,0x63,0x32, 1858 0x66,0x28,0x31,0x2e,0x30,0x66,0x29,0x29,0x3b,0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50, 1859 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28, 1860 0x78,0x5f,0x32,0x34,0x2e,0x78,0x2c,0x20,0x78,0x5f,0x32,0x34,0x2e,0x79,0x2c,0x20, 1861 0x30,0x2e,0x35,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x75, 1862 0x76,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72, 1863 0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69, 1864 0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x62,0x75,0x69,0x6c,0x74, 1865 0x69,0x6e,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x0a,0x20,0x20,0x67, 1866 0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20,0x76,0x65,0x63, 1867 0x34,0x66,0x2c,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28, 1868 0x30,0x29,0x0a,0x20,0x20,0x75,0x76,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32, 1869 0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x76,0x65,0x72,0x74,0x65,0x78,0x0a,0x66,0x6e, 1870 0x20,0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28, 1871 0x30,0x29,0x20,0x70,0x6f,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76, 1872 0x65,0x63,0x32,0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75, 1873 0x74,0x20,0x7b,0x0a,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x5f, 1874 0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28, 1875 0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e, 1876 0x5f,0x6f,0x75,0x74,0x28,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, 1877 0x2c,0x20,0x75,0x76,0x29,0x3b,0x0a,0x7d,0x0a,0x00, 1878 ]; 1879 /* 1880 diagnostic(off, derivative_uniformity); 1881 1882 var<private> frag_color : vec4f; 1883 1884 @binding(64) @group(1) var tex : texture_2d<f32>; 1885 1886 @binding(80) @group(1) var smp : sampler; 1887 1888 var<private> uv : vec2f; 1889 1890 fn main_1() { 1891 let x_23 = uv; 1892 let x_24 = textureSample(tex, smp, x_23); 1893 let x_26 = x_24.xyz; 1894 frag_color = vec4f(x_26.x, x_26.y, x_26.z, 1.0f); 1895 return; 1896 } 1897 1898 struct main_out { 1899 @location(0) 1900 frag_color_1 : vec4f, 1901 } 1902 1903 @fragment 1904 fn main(@location(0) uv_param : vec2f) -> main_out { 1905 uv = uv_param; 1906 main_1(); 1907 return main_out(frag_color); 1908 } 1909 */ 1910 __gshared char[544] FS_DBG_SOURCE_WGSL = [ 1911 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 1912 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 1913 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69, 1914 0x76,0x61,0x74,0x65,0x3e,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, 1915 0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x40,0x62,0x69,0x6e,0x64, 1916 0x69,0x6e,0x67,0x28,0x36,0x34,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x31, 1917 0x29,0x20,0x76,0x61,0x72,0x20,0x74,0x65,0x78,0x20,0x3a,0x20,0x74,0x65,0x78,0x74, 1918 0x75,0x72,0x65,0x5f,0x32,0x64,0x3c,0x66,0x33,0x32,0x3e,0x3b,0x0a,0x0a,0x40,0x62, 1919 0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x38,0x30,0x29,0x20,0x40,0x67,0x72,0x6f,0x75, 1920 0x70,0x28,0x31,0x29,0x20,0x76,0x61,0x72,0x20,0x73,0x6d,0x70,0x20,0x3a,0x20,0x73, 1921 0x61,0x6d,0x70,0x6c,0x65,0x72,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69, 1922 0x76,0x61,0x74,0x65,0x3e,0x20,0x75,0x76,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66, 1923 0x3b,0x0a,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x20,0x7b, 1924 0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32,0x33,0x20,0x3d,0x20,0x75,0x76, 1925 0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32,0x34,0x20,0x3d,0x20,0x74, 1926 0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x65,0x78, 1927 0x2c,0x20,0x73,0x6d,0x70,0x2c,0x20,0x78,0x5f,0x32,0x33,0x29,0x3b,0x0a,0x20,0x20, 1928 0x6c,0x65,0x74,0x20,0x78,0x5f,0x32,0x36,0x20,0x3d,0x20,0x78,0x5f,0x32,0x34,0x2e, 1929 0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, 1930 0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x78,0x5f,0x32,0x36,0x2e,0x78, 1931 0x2c,0x20,0x78,0x5f,0x32,0x36,0x2e,0x79,0x2c,0x20,0x78,0x5f,0x32,0x36,0x2e,0x7a, 1932 0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72, 1933 0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69, 1934 0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74, 1935 0x69,0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, 1936 0x6c,0x6f,0x72,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x7d, 1937 0x0a,0x0a,0x40,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x0a,0x66,0x6e,0x20,0x6d, 1938 0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29, 1939 0x20,0x75,0x76,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32, 1940 0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b, 1941 0x0a,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x75,0x76,0x5f,0x70,0x61,0x72,0x61,0x6d, 1942 0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20,0x20, 1943 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28, 1944 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x00, 1945 1946 ]; 1947 sg.ShaderDesc dbgShaderDesc(sg.Backend backend) @trusted @nogc nothrow { 1948 sg.ShaderDesc desc; 1949 desc.label = "dbg_shader"; 1950 switch (backend) { 1951 case sg.Backend.Glcore: 1952 desc.vertex_func.source = &VS_DBG_SOURCE_GLSL410[0]; 1953 desc.vertex_func.entry = "main"; 1954 desc.fragment_func.source = &FS_DBG_SOURCE_GLSL410[0]; 1955 desc.fragment_func.entry = "main"; 1956 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 1957 desc.attrs[0].glsl_name = "pos"; 1958 desc.images[0].stage = sg.ShaderStage.Fragment; 1959 desc.images[0].multisampled = false; 1960 desc.images[0].image_type = sg.ImageType._2d; 1961 desc.images[0].sample_type = sg.ImageSampleType.Float; 1962 desc.samplers[0].stage = sg.ShaderStage.Fragment; 1963 desc.samplers[0].sampler_type = sg.SamplerType.Filtering; 1964 desc.image_sampler_pairs[0].stage = sg.ShaderStage.Fragment; 1965 desc.image_sampler_pairs[0].image_slot = 0; 1966 desc.image_sampler_pairs[0].sampler_slot = 0; 1967 desc.image_sampler_pairs[0].glsl_name = "tex_smp"; 1968 break; 1969 case sg.Backend.Gles3: 1970 desc.vertex_func.source = &VS_DBG_SOURCE_GLSL300ES[0]; 1971 desc.vertex_func.entry = "main"; 1972 desc.fragment_func.source = &FS_DBG_SOURCE_GLSL300ES[0]; 1973 desc.fragment_func.entry = "main"; 1974 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 1975 desc.attrs[0].glsl_name = "pos"; 1976 desc.images[0].stage = sg.ShaderStage.Fragment; 1977 desc.images[0].multisampled = false; 1978 desc.images[0].image_type = sg.ImageType._2d; 1979 desc.images[0].sample_type = sg.ImageSampleType.Float; 1980 desc.samplers[0].stage = sg.ShaderStage.Fragment; 1981 desc.samplers[0].sampler_type = sg.SamplerType.Filtering; 1982 desc.image_sampler_pairs[0].stage = sg.ShaderStage.Fragment; 1983 desc.image_sampler_pairs[0].image_slot = 0; 1984 desc.image_sampler_pairs[0].sampler_slot = 0; 1985 desc.image_sampler_pairs[0].glsl_name = "tex_smp"; 1986 break; 1987 case sg.Backend.D3d11: 1988 desc.vertex_func.source = &VS_DBG_SOURCE_HLSL5[0]; 1989 desc.vertex_func.d3d11_target = "vs_5_0"; 1990 desc.vertex_func.entry = "main"; 1991 desc.fragment_func.source = &FS_DBG_SOURCE_HLSL5[0]; 1992 desc.fragment_func.d3d11_target = "ps_5_0"; 1993 desc.fragment_func.entry = "main"; 1994 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 1995 desc.attrs[0].hlsl_sem_name = "TEXCOORD"; 1996 desc.attrs[0].hlsl_sem_index = 0; 1997 desc.images[0].stage = sg.ShaderStage.Fragment; 1998 desc.images[0].multisampled = false; 1999 desc.images[0].image_type = sg.ImageType._2d; 2000 desc.images[0].sample_type = sg.ImageSampleType.Float; 2001 desc.images[0].hlsl_register_t_n = 0; 2002 desc.samplers[0].stage = sg.ShaderStage.Fragment; 2003 desc.samplers[0].sampler_type = sg.SamplerType.Filtering; 2004 desc.samplers[0].hlsl_register_s_n = 0; 2005 desc.image_sampler_pairs[0].stage = sg.ShaderStage.Fragment; 2006 desc.image_sampler_pairs[0].image_slot = 0; 2007 desc.image_sampler_pairs[0].sampler_slot = 0; 2008 break; 2009 case sg.Backend.Metal_macos: 2010 desc.vertex_func.source = &VS_DBG_SOURCE_METAL_MACOS[0]; 2011 desc.vertex_func.entry = "main0"; 2012 desc.fragment_func.source = &FS_DBG_SOURCE_METAL_MACOS[0]; 2013 desc.fragment_func.entry = "main0"; 2014 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2015 desc.images[0].stage = sg.ShaderStage.Fragment; 2016 desc.images[0].multisampled = false; 2017 desc.images[0].image_type = sg.ImageType._2d; 2018 desc.images[0].sample_type = sg.ImageSampleType.Float; 2019 desc.images[0].msl_texture_n = 0; 2020 desc.samplers[0].stage = sg.ShaderStage.Fragment; 2021 desc.samplers[0].sampler_type = sg.SamplerType.Filtering; 2022 desc.samplers[0].msl_sampler_n = 0; 2023 desc.image_sampler_pairs[0].stage = sg.ShaderStage.Fragment; 2024 desc.image_sampler_pairs[0].image_slot = 0; 2025 desc.image_sampler_pairs[0].sampler_slot = 0; 2026 break; 2027 case sg.Backend.Wgpu: 2028 desc.vertex_func.source = &VS_DBG_SOURCE_WGSL[0]; 2029 desc.vertex_func.entry = "main"; 2030 desc.fragment_func.source = &FS_DBG_SOURCE_WGSL[0]; 2031 desc.fragment_func.entry = "main"; 2032 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2033 desc.images[0].stage = sg.ShaderStage.Fragment; 2034 desc.images[0].multisampled = false; 2035 desc.images[0].image_type = sg.ImageType._2d; 2036 desc.images[0].sample_type = sg.ImageSampleType.Float; 2037 desc.images[0].wgsl_group1_binding_n = 64; 2038 desc.samplers[0].stage = sg.ShaderStage.Fragment; 2039 desc.samplers[0].sampler_type = sg.SamplerType.Filtering; 2040 desc.samplers[0].wgsl_group1_binding_n = 80; 2041 desc.image_sampler_pairs[0].stage = sg.ShaderStage.Fragment; 2042 desc.image_sampler_pairs[0].image_slot = 0; 2043 desc.image_sampler_pairs[0].sampler_slot = 0; 2044 break; 2045 default: break; 2046 } 2047 return desc; 2048 } 2049 sg.ShaderDesc fsqShaderDesc(sg.Backend backend) @trusted @nogc nothrow { 2050 sg.ShaderDesc desc; 2051 desc.label = "fsq_shader"; 2052 switch (backend) { 2053 case sg.Backend.Glcore: 2054 desc.vertex_func.source = &VS_FSQ_SOURCE_GLSL410[0]; 2055 desc.vertex_func.entry = "main"; 2056 desc.fragment_func.source = &FS_FSQ_SOURCE_GLSL410[0]; 2057 desc.fragment_func.entry = "main"; 2058 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2059 desc.attrs[0].glsl_name = "pos"; 2060 desc.uniform_blocks[0].stage = sg.ShaderStage.Vertex; 2061 desc.uniform_blocks[0].layout = sg.UniformLayout.Std140; 2062 desc.uniform_blocks[0].size = 16; 2063 desc.uniform_blocks[0].glsl_uniforms[0].type = sg.UniformType.Float4; 2064 desc.uniform_blocks[0].glsl_uniforms[0].array_count = 1; 2065 desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "fsq_params"; 2066 desc.images[0].stage = sg.ShaderStage.Fragment; 2067 desc.images[0].multisampled = false; 2068 desc.images[0].image_type = sg.ImageType._2d; 2069 desc.images[0].sample_type = sg.ImageSampleType.Float; 2070 desc.images[1].stage = sg.ShaderStage.Fragment; 2071 desc.images[1].multisampled = false; 2072 desc.images[1].image_type = sg.ImageType._2d; 2073 desc.images[1].sample_type = sg.ImageSampleType.Float; 2074 desc.images[2].stage = sg.ShaderStage.Fragment; 2075 desc.images[2].multisampled = false; 2076 desc.images[2].image_type = sg.ImageType._2d; 2077 desc.images[2].sample_type = sg.ImageSampleType.Float; 2078 desc.samplers[0].stage = sg.ShaderStage.Fragment; 2079 desc.samplers[0].sampler_type = sg.SamplerType.Filtering; 2080 desc.image_sampler_pairs[0].stage = sg.ShaderStage.Fragment; 2081 desc.image_sampler_pairs[0].image_slot = 0; 2082 desc.image_sampler_pairs[0].sampler_slot = 0; 2083 desc.image_sampler_pairs[0].glsl_name = "tex0_smp"; 2084 desc.image_sampler_pairs[1].stage = sg.ShaderStage.Fragment; 2085 desc.image_sampler_pairs[1].image_slot = 1; 2086 desc.image_sampler_pairs[1].sampler_slot = 0; 2087 desc.image_sampler_pairs[1].glsl_name = "tex1_smp"; 2088 desc.image_sampler_pairs[2].stage = sg.ShaderStage.Fragment; 2089 desc.image_sampler_pairs[2].image_slot = 2; 2090 desc.image_sampler_pairs[2].sampler_slot = 0; 2091 desc.image_sampler_pairs[2].glsl_name = "tex2_smp"; 2092 break; 2093 case sg.Backend.Gles3: 2094 desc.vertex_func.source = &VS_FSQ_SOURCE_GLSL300ES[0]; 2095 desc.vertex_func.entry = "main"; 2096 desc.fragment_func.source = &FS_FSQ_SOURCE_GLSL300ES[0]; 2097 desc.fragment_func.entry = "main"; 2098 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2099 desc.attrs[0].glsl_name = "pos"; 2100 desc.uniform_blocks[0].stage = sg.ShaderStage.Vertex; 2101 desc.uniform_blocks[0].layout = sg.UniformLayout.Std140; 2102 desc.uniform_blocks[0].size = 16; 2103 desc.uniform_blocks[0].glsl_uniforms[0].type = sg.UniformType.Float4; 2104 desc.uniform_blocks[0].glsl_uniforms[0].array_count = 1; 2105 desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "fsq_params"; 2106 desc.images[0].stage = sg.ShaderStage.Fragment; 2107 desc.images[0].multisampled = false; 2108 desc.images[0].image_type = sg.ImageType._2d; 2109 desc.images[0].sample_type = sg.ImageSampleType.Float; 2110 desc.images[1].stage = sg.ShaderStage.Fragment; 2111 desc.images[1].multisampled = false; 2112 desc.images[1].image_type = sg.ImageType._2d; 2113 desc.images[1].sample_type = sg.ImageSampleType.Float; 2114 desc.images[2].stage = sg.ShaderStage.Fragment; 2115 desc.images[2].multisampled = false; 2116 desc.images[2].image_type = sg.ImageType._2d; 2117 desc.images[2].sample_type = sg.ImageSampleType.Float; 2118 desc.samplers[0].stage = sg.ShaderStage.Fragment; 2119 desc.samplers[0].sampler_type = sg.SamplerType.Filtering; 2120 desc.image_sampler_pairs[0].stage = sg.ShaderStage.Fragment; 2121 desc.image_sampler_pairs[0].image_slot = 0; 2122 desc.image_sampler_pairs[0].sampler_slot = 0; 2123 desc.image_sampler_pairs[0].glsl_name = "tex0_smp"; 2124 desc.image_sampler_pairs[1].stage = sg.ShaderStage.Fragment; 2125 desc.image_sampler_pairs[1].image_slot = 1; 2126 desc.image_sampler_pairs[1].sampler_slot = 0; 2127 desc.image_sampler_pairs[1].glsl_name = "tex1_smp"; 2128 desc.image_sampler_pairs[2].stage = sg.ShaderStage.Fragment; 2129 desc.image_sampler_pairs[2].image_slot = 2; 2130 desc.image_sampler_pairs[2].sampler_slot = 0; 2131 desc.image_sampler_pairs[2].glsl_name = "tex2_smp"; 2132 break; 2133 case sg.Backend.D3d11: 2134 desc.vertex_func.source = &VS_FSQ_SOURCE_HLSL5[0]; 2135 desc.vertex_func.d3d11_target = "vs_5_0"; 2136 desc.vertex_func.entry = "main"; 2137 desc.fragment_func.source = &FS_FSQ_SOURCE_HLSL5[0]; 2138 desc.fragment_func.d3d11_target = "ps_5_0"; 2139 desc.fragment_func.entry = "main"; 2140 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2141 desc.attrs[0].hlsl_sem_name = "TEXCOORD"; 2142 desc.attrs[0].hlsl_sem_index = 0; 2143 desc.uniform_blocks[0].stage = sg.ShaderStage.Vertex; 2144 desc.uniform_blocks[0].layout = sg.UniformLayout.Std140; 2145 desc.uniform_blocks[0].size = 16; 2146 desc.uniform_blocks[0].hlsl_register_b_n = 0; 2147 desc.images[0].stage = sg.ShaderStage.Fragment; 2148 desc.images[0].multisampled = false; 2149 desc.images[0].image_type = sg.ImageType._2d; 2150 desc.images[0].sample_type = sg.ImageSampleType.Float; 2151 desc.images[0].hlsl_register_t_n = 0; 2152 desc.images[1].stage = sg.ShaderStage.Fragment; 2153 desc.images[1].multisampled = false; 2154 desc.images[1].image_type = sg.ImageType._2d; 2155 desc.images[1].sample_type = sg.ImageSampleType.Float; 2156 desc.images[1].hlsl_register_t_n = 1; 2157 desc.images[2].stage = sg.ShaderStage.Fragment; 2158 desc.images[2].multisampled = false; 2159 desc.images[2].image_type = sg.ImageType._2d; 2160 desc.images[2].sample_type = sg.ImageSampleType.Float; 2161 desc.images[2].hlsl_register_t_n = 2; 2162 desc.samplers[0].stage = sg.ShaderStage.Fragment; 2163 desc.samplers[0].sampler_type = sg.SamplerType.Filtering; 2164 desc.samplers[0].hlsl_register_s_n = 0; 2165 desc.image_sampler_pairs[0].stage = sg.ShaderStage.Fragment; 2166 desc.image_sampler_pairs[0].image_slot = 0; 2167 desc.image_sampler_pairs[0].sampler_slot = 0; 2168 desc.image_sampler_pairs[1].stage = sg.ShaderStage.Fragment; 2169 desc.image_sampler_pairs[1].image_slot = 1; 2170 desc.image_sampler_pairs[1].sampler_slot = 0; 2171 desc.image_sampler_pairs[2].stage = sg.ShaderStage.Fragment; 2172 desc.image_sampler_pairs[2].image_slot = 2; 2173 desc.image_sampler_pairs[2].sampler_slot = 0; 2174 break; 2175 case sg.Backend.Metal_macos: 2176 desc.vertex_func.source = &VS_FSQ_SOURCE_METAL_MACOS[0]; 2177 desc.vertex_func.entry = "main0"; 2178 desc.fragment_func.source = &FS_FSQ_SOURCE_METAL_MACOS[0]; 2179 desc.fragment_func.entry = "main0"; 2180 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2181 desc.uniform_blocks[0].stage = sg.ShaderStage.Vertex; 2182 desc.uniform_blocks[0].layout = sg.UniformLayout.Std140; 2183 desc.uniform_blocks[0].size = 16; 2184 desc.uniform_blocks[0].msl_buffer_n = 0; 2185 desc.images[0].stage = sg.ShaderStage.Fragment; 2186 desc.images[0].multisampled = false; 2187 desc.images[0].image_type = sg.ImageType._2d; 2188 desc.images[0].sample_type = sg.ImageSampleType.Float; 2189 desc.images[0].msl_texture_n = 0; 2190 desc.images[1].stage = sg.ShaderStage.Fragment; 2191 desc.images[1].multisampled = false; 2192 desc.images[1].image_type = sg.ImageType._2d; 2193 desc.images[1].sample_type = sg.ImageSampleType.Float; 2194 desc.images[1].msl_texture_n = 1; 2195 desc.images[2].stage = sg.ShaderStage.Fragment; 2196 desc.images[2].multisampled = false; 2197 desc.images[2].image_type = sg.ImageType._2d; 2198 desc.images[2].sample_type = sg.ImageSampleType.Float; 2199 desc.images[2].msl_texture_n = 2; 2200 desc.samplers[0].stage = sg.ShaderStage.Fragment; 2201 desc.samplers[0].sampler_type = sg.SamplerType.Filtering; 2202 desc.samplers[0].msl_sampler_n = 0; 2203 desc.image_sampler_pairs[0].stage = sg.ShaderStage.Fragment; 2204 desc.image_sampler_pairs[0].image_slot = 0; 2205 desc.image_sampler_pairs[0].sampler_slot = 0; 2206 desc.image_sampler_pairs[1].stage = sg.ShaderStage.Fragment; 2207 desc.image_sampler_pairs[1].image_slot = 1; 2208 desc.image_sampler_pairs[1].sampler_slot = 0; 2209 desc.image_sampler_pairs[2].stage = sg.ShaderStage.Fragment; 2210 desc.image_sampler_pairs[2].image_slot = 2; 2211 desc.image_sampler_pairs[2].sampler_slot = 0; 2212 break; 2213 case sg.Backend.Wgpu: 2214 desc.vertex_func.source = &VS_FSQ_SOURCE_WGSL[0]; 2215 desc.vertex_func.entry = "main"; 2216 desc.fragment_func.source = &FS_FSQ_SOURCE_WGSL[0]; 2217 desc.fragment_func.entry = "main"; 2218 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2219 desc.uniform_blocks[0].stage = sg.ShaderStage.Vertex; 2220 desc.uniform_blocks[0].layout = sg.UniformLayout.Std140; 2221 desc.uniform_blocks[0].size = 16; 2222 desc.uniform_blocks[0].wgsl_group0_binding_n = 0; 2223 desc.images[0].stage = sg.ShaderStage.Fragment; 2224 desc.images[0].multisampled = false; 2225 desc.images[0].image_type = sg.ImageType._2d; 2226 desc.images[0].sample_type = sg.ImageSampleType.Float; 2227 desc.images[0].wgsl_group1_binding_n = 64; 2228 desc.images[1].stage = sg.ShaderStage.Fragment; 2229 desc.images[1].multisampled = false; 2230 desc.images[1].image_type = sg.ImageType._2d; 2231 desc.images[1].sample_type = sg.ImageSampleType.Float; 2232 desc.images[1].wgsl_group1_binding_n = 65; 2233 desc.images[2].stage = sg.ShaderStage.Fragment; 2234 desc.images[2].multisampled = false; 2235 desc.images[2].image_type = sg.ImageType._2d; 2236 desc.images[2].sample_type = sg.ImageSampleType.Float; 2237 desc.images[2].wgsl_group1_binding_n = 66; 2238 desc.samplers[0].stage = sg.ShaderStage.Fragment; 2239 desc.samplers[0].sampler_type = sg.SamplerType.Filtering; 2240 desc.samplers[0].wgsl_group1_binding_n = 80; 2241 desc.image_sampler_pairs[0].stage = sg.ShaderStage.Fragment; 2242 desc.image_sampler_pairs[0].image_slot = 0; 2243 desc.image_sampler_pairs[0].sampler_slot = 0; 2244 desc.image_sampler_pairs[1].stage = sg.ShaderStage.Fragment; 2245 desc.image_sampler_pairs[1].image_slot = 1; 2246 desc.image_sampler_pairs[1].sampler_slot = 0; 2247 desc.image_sampler_pairs[2].stage = sg.ShaderStage.Fragment; 2248 desc.image_sampler_pairs[2].image_slot = 2; 2249 desc.image_sampler_pairs[2].sampler_slot = 0; 2250 break; 2251 default: break; 2252 } 2253 return desc; 2254 } 2255 sg.ShaderDesc offscreenShaderDesc(sg.Backend backend) @trusted @nogc nothrow { 2256 sg.ShaderDesc desc; 2257 desc.label = "offscreen_shader"; 2258 switch (backend) { 2259 case sg.Backend.Glcore: 2260 desc.vertex_func.source = &VS_OFFSCREEN_SOURCE_GLSL410[0]; 2261 desc.vertex_func.entry = "main"; 2262 desc.fragment_func.source = &FS_OFFSCREEN_SOURCE_GLSL410[0]; 2263 desc.fragment_func.entry = "main"; 2264 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2265 desc.attrs[0].glsl_name = "pos"; 2266 desc.attrs[1].base_type = sg.ShaderAttrBaseType.Float; 2267 desc.attrs[1].glsl_name = "bright0"; 2268 desc.uniform_blocks[0].stage = sg.ShaderStage.Vertex; 2269 desc.uniform_blocks[0].layout = sg.UniformLayout.Std140; 2270 desc.uniform_blocks[0].size = 64; 2271 desc.uniform_blocks[0].glsl_uniforms[0].type = sg.UniformType.Float4; 2272 desc.uniform_blocks[0].glsl_uniforms[0].array_count = 4; 2273 desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "offscreen_params"; 2274 break; 2275 case sg.Backend.Gles3: 2276 desc.vertex_func.source = &VS_OFFSCREEN_SOURCE_GLSL300ES[0]; 2277 desc.vertex_func.entry = "main"; 2278 desc.fragment_func.source = &FS_OFFSCREEN_SOURCE_GLSL300ES[0]; 2279 desc.fragment_func.entry = "main"; 2280 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2281 desc.attrs[0].glsl_name = "pos"; 2282 desc.attrs[1].base_type = sg.ShaderAttrBaseType.Float; 2283 desc.attrs[1].glsl_name = "bright0"; 2284 desc.uniform_blocks[0].stage = sg.ShaderStage.Vertex; 2285 desc.uniform_blocks[0].layout = sg.UniformLayout.Std140; 2286 desc.uniform_blocks[0].size = 64; 2287 desc.uniform_blocks[0].glsl_uniforms[0].type = sg.UniformType.Float4; 2288 desc.uniform_blocks[0].glsl_uniforms[0].array_count = 4; 2289 desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "offscreen_params"; 2290 break; 2291 case sg.Backend.D3d11: 2292 desc.vertex_func.source = &VS_OFFSCREEN_SOURCE_HLSL5[0]; 2293 desc.vertex_func.d3d11_target = "vs_5_0"; 2294 desc.vertex_func.entry = "main"; 2295 desc.fragment_func.source = &FS_OFFSCREEN_SOURCE_HLSL5[0]; 2296 desc.fragment_func.d3d11_target = "ps_5_0"; 2297 desc.fragment_func.entry = "main"; 2298 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2299 desc.attrs[0].hlsl_sem_name = "TEXCOORD"; 2300 desc.attrs[0].hlsl_sem_index = 0; 2301 desc.attrs[1].base_type = sg.ShaderAttrBaseType.Float; 2302 desc.attrs[1].hlsl_sem_name = "TEXCOORD"; 2303 desc.attrs[1].hlsl_sem_index = 1; 2304 desc.uniform_blocks[0].stage = sg.ShaderStage.Vertex; 2305 desc.uniform_blocks[0].layout = sg.UniformLayout.Std140; 2306 desc.uniform_blocks[0].size = 64; 2307 desc.uniform_blocks[0].hlsl_register_b_n = 0; 2308 break; 2309 case sg.Backend.Metal_macos: 2310 desc.vertex_func.source = &VS_OFFSCREEN_SOURCE_METAL_MACOS[0]; 2311 desc.vertex_func.entry = "main0"; 2312 desc.fragment_func.source = &FS_OFFSCREEN_SOURCE_METAL_MACOS[0]; 2313 desc.fragment_func.entry = "main0"; 2314 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2315 desc.attrs[1].base_type = sg.ShaderAttrBaseType.Float; 2316 desc.uniform_blocks[0].stage = sg.ShaderStage.Vertex; 2317 desc.uniform_blocks[0].layout = sg.UniformLayout.Std140; 2318 desc.uniform_blocks[0].size = 64; 2319 desc.uniform_blocks[0].msl_buffer_n = 0; 2320 break; 2321 case sg.Backend.Wgpu: 2322 desc.vertex_func.source = &VS_OFFSCREEN_SOURCE_WGSL[0]; 2323 desc.vertex_func.entry = "main"; 2324 desc.fragment_func.source = &FS_OFFSCREEN_SOURCE_WGSL[0]; 2325 desc.fragment_func.entry = "main"; 2326 desc.attrs[0].base_type = sg.ShaderAttrBaseType.Float; 2327 desc.attrs[1].base_type = sg.ShaderAttrBaseType.Float; 2328 desc.uniform_blocks[0].stage = sg.ShaderStage.Vertex; 2329 desc.uniform_blocks[0].layout = sg.UniformLayout.Std140; 2330 desc.uniform_blocks[0].size = 64; 2331 desc.uniform_blocks[0].wgsl_group0_binding_n = 0; 2332 break; 2333 default: break; 2334 } 2335 return desc; 2336 }