|
|
@ -1,704 +0,0 @@
|
|
|
|
const sg = @import("sokol").gfx;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// #version:1# (machine generated, don't edit!)
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// Generated by sokol-shdc (https://github.com/floooh/sokol-tools)
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// Cmdline:
|
|
|
|
|
|
|
|
// sokol-shdc -i src/shaders/triangle.glsl -o src/shaders/triangle2.glsl.zig -l glsl410:metal_macos:hlsl5:glsl300es:wgsl -f sokol_zig
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// Overview:
|
|
|
|
|
|
|
|
// =========
|
|
|
|
|
|
|
|
// Shader program: 'triangle':
|
|
|
|
|
|
|
|
// Get shader desc: shd.triangleShaderDesc(sg.queryBackend());
|
|
|
|
|
|
|
|
// Vertex shader: vs
|
|
|
|
|
|
|
|
// Attributes:
|
|
|
|
|
|
|
|
// ATTR_vs_position => 0
|
|
|
|
|
|
|
|
// ATTR_vs_color0 => 1
|
|
|
|
|
|
|
|
// Uniform block 'vs_params':
|
|
|
|
|
|
|
|
// Zig struct: VsParams
|
|
|
|
|
|
|
|
// Bind slot: SLOT_vs_params => 0
|
|
|
|
|
|
|
|
// Fragment shader: fs
|
|
|
|
|
|
|
|
// Uniform block 'fs_params':
|
|
|
|
|
|
|
|
// Zig struct: FsParams
|
|
|
|
|
|
|
|
// Bind slot: SLOT_fs_params => 0
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
pub const ATTR_vs_position = 0;
|
|
|
|
|
|
|
|
pub const ATTR_vs_color0 = 1;
|
|
|
|
|
|
|
|
pub const SLOT_vs_params = 0;
|
|
|
|
|
|
|
|
pub const SLOT_fs_params = 0;
|
|
|
|
|
|
|
|
pub const VsParams = extern struct {
|
|
|
|
|
|
|
|
aspectRatio: f32 align(16),
|
|
|
|
|
|
|
|
_pad_4: [12]u8 align(1) = undefined,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
pub const FsParams = extern struct {
|
|
|
|
|
|
|
|
offset: [3]f32 align(16),
|
|
|
|
|
|
|
|
_pad_12: [4]u8 align(1) = undefined,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// #version 410
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// uniform vec4 vs_params[1];
|
|
|
|
|
|
|
|
// layout(location = 0) in vec4 position;
|
|
|
|
|
|
|
|
// layout(location = 0) out vec4 color;
|
|
|
|
|
|
|
|
// layout(location = 1) in vec4 color0;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// void main()
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// gl_Position = position;
|
|
|
|
|
|
|
|
// gl_Position.x *= vs_params[0].x;
|
|
|
|
|
|
|
|
// color = color0;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
const vs_source_glsl410 = [258]u8 {
|
|
|
|
|
|
|
|
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x75,0x6e,
|
|
|
|
|
|
|
|
0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x73,0x5f,0x70,0x61,
|
|
|
|
|
|
|
|
0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,
|
|
|
|
|
|
|
|
0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,
|
|
|
|
|
|
|
|
0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,
|
|
|
|
|
|
|
|
0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,
|
|
|
|
|
|
|
|
0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,
|
|
|
|
|
|
|
|
0x6c,0x6f,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,
|
|
|
|
|
|
|
|
0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,
|
|
|
|
|
|
|
|
0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x30,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,
|
|
|
|
|
|
|
|
0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,
|
|
|
|
|
|
|
|
0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,
|
|
|
|
|
|
|
|
0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,
|
|
|
|
|
|
|
|
0x74,0x69,0x6f,0x6e,0x2e,0x78,0x20,0x2a,0x3d,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,
|
|
|
|
|
|
|
|
0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,
|
|
|
|
|
|
|
|
0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x30,0x3b,0x0a,0x7d,0x0a,
|
|
|
|
|
|
|
|
0x0a,0x00,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// #version 410
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// uniform vec4 fs_params[1];
|
|
|
|
|
|
|
|
// layout(location = 0) out vec4 frag_color;
|
|
|
|
|
|
|
|
// layout(location = 0) in vec4 color;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// void main()
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// frag_color = color * fs_params[0].x;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
const fs_source_glsl410 = [179]u8 {
|
|
|
|
|
|
|
|
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x75,0x6e,
|
|
|
|
|
|
|
|
0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x73,0x5f,0x70,0x61,
|
|
|
|
|
|
|
|
0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,
|
|
|
|
|
|
|
|
0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,
|
|
|
|
|
|
|
|
0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,
|
|
|
|
|
|
|
|
0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,
|
|
|
|
|
|
|
|
0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,
|
|
|
|
|
|
|
|
0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,
|
|
|
|
|
|
|
|
0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,
|
|
|
|
|
|
|
|
0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x66,
|
|
|
|
|
|
|
|
0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x3b,0x0a,0x7d,
|
|
|
|
|
|
|
|
0x0a,0x0a,0x00,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// #version 300 es
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// uniform vec4 vs_params[1];
|
|
|
|
|
|
|
|
// layout(location = 0) in vec4 position;
|
|
|
|
|
|
|
|
// out vec4 color;
|
|
|
|
|
|
|
|
// layout(location = 1) in vec4 color0;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// void main()
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// gl_Position = position;
|
|
|
|
|
|
|
|
// gl_Position.x *= vs_params[0].x;
|
|
|
|
|
|
|
|
// color = color0;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
const vs_source_glsl300es = [240]u8 {
|
|
|
|
|
|
|
|
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a,
|
|
|
|
|
|
|
|
0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x73,
|
|
|
|
|
|
|
|
0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,
|
|
|
|
|
|
|
|
0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,
|
|
|
|
|
|
|
|
0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,
|
|
|
|
|
|
|
|
0x6e,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x6f,
|
|
|
|
|
|
|
|
0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,
|
|
|
|
|
|
|
|
0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,
|
|
|
|
|
|
|
|
0x63,0x6f,0x6c,0x6f,0x72,0x30,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,
|
|
|
|
|
|
|
|
0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,
|
|
|
|
|
|
|
|
0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,
|
|
|
|
|
|
|
|
0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,
|
|
|
|
|
|
|
|
0x6f,0x6e,0x2e,0x78,0x20,0x2a,0x3d,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,
|
|
|
|
|
|
|
|
0x73,0x5b,0x30,0x5d,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,
|
|
|
|
|
|
|
|
0x72,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// #version 300 es
|
|
|
|
|
|
|
|
// precision mediump float;
|
|
|
|
|
|
|
|
// precision highp int;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// uniform highp vec4 fs_params[1];
|
|
|
|
|
|
|
|
// layout(location = 0) out highp vec4 frag_color;
|
|
|
|
|
|
|
|
// in highp vec4 color;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// void main()
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// frag_color = color * fs_params[0].x;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
const fs_source_glsl300es = [225]u8 {
|
|
|
|
|
|
|
|
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a,
|
|
|
|
|
|
|
|
0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d,
|
|
|
|
|
|
|
|
0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69,
|
|
|
|
|
|
|
|
0x6f,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x69,0x6e,0x74,0x3b,0x0a,0x0a,0x75,
|
|
|
|
|
|
|
|
0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,
|
|
|
|
|
|
|
|
0x34,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,
|
|
|
|
|
|
|
|
0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,
|
|
|
|
|
|
|
|
0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,
|
|
|
|
|
|
|
|
0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,
|
|
|
|
|
|
|
|
0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,
|
|
|
|
|
|
|
|
0x6c,0x6f,0x72,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,
|
|
|
|
|
|
|
|
0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,
|
|
|
|
|
|
|
|
0x6f,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x66,0x73,0x5f,
|
|
|
|
|
|
|
|
0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,
|
|
|
|
|
|
|
|
0x00,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// cbuffer vs_params : register(b0)
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float _23_aspectRatio : packoffset(c0);
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// static float4 gl_Position;
|
|
|
|
|
|
|
|
// static float4 position;
|
|
|
|
|
|
|
|
// static float4 color;
|
|
|
|
|
|
|
|
// static float4 color0;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct SPIRV_Cross_Input
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float4 position : TEXCOORD0;
|
|
|
|
|
|
|
|
// float4 color0 : TEXCOORD1;
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct SPIRV_Cross_Output
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float4 color : TEXCOORD0;
|
|
|
|
|
|
|
|
// float4 gl_Position : SV_Position;
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// void vert_main()
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// gl_Position = position;
|
|
|
|
|
|
|
|
// gl_Position.x *= _23_aspectRatio;
|
|
|
|
|
|
|
|
// color = color0;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// position = stage_input.position;
|
|
|
|
|
|
|
|
// color0 = stage_input.color0;
|
|
|
|
|
|
|
|
// vert_main();
|
|
|
|
|
|
|
|
// SPIRV_Cross_Output stage_output;
|
|
|
|
|
|
|
|
// stage_output.gl_Position = gl_Position;
|
|
|
|
|
|
|
|
// stage_output.color = color;
|
|
|
|
|
|
|
|
// return stage_output;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
const vs_source_hlsl5 = [767]u8 {
|
|
|
|
|
|
|
|
0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,
|
|
|
|
|
|
|
|
0x73,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x62,0x30,0x29,
|
|
|
|
|
|
|
|
0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,
|
|
|
|
|
|
|
|
0x5f,0x61,0x73,0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,0x6f,0x20,0x3a,0x20,0x70,
|
|
|
|
|
|
|
|
0x61,0x63,0x6b,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x63,0x30,0x29,0x3b,0x0a,0x7d,
|
|
|
|
|
|
|
|
0x3b,0x0a,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,
|
|
|
|
|
|
|
|
0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x73,
|
|
|
|
|
|
|
|
0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,
|
|
|
|
|
|
|
|
0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,
|
|
|
|
|
|
|
|
0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x73,0x74,0x61,0x74,
|
|
|
|
|
|
|
|
0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x30,
|
|
|
|
|
|
|
|
0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,
|
|
|
|
|
|
|
|
0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,
|
|
|
|
|
|
|
|
0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,
|
|
|
|
|
|
|
|
0x6e,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a,0x20,
|
|
|
|
|
|
|
|
0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x30,
|
|
|
|
|
|
|
|
0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x3b,0x0a,0x7d,0x3b,
|
|
|
|
|
|
|
|
0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,
|
|
|
|
|
|
|
|
0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,
|
|
|
|
|
|
|
|
0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3a,
|
|
|
|
|
|
|
|
0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,
|
|
|
|
|
|
|
|
0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,
|
|
|
|
|
|
|
|
0x6f,0x6e,0x20,0x3a,0x20,0x53,0x56,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,
|
|
|
|
|
|
|
|
0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x76,0x65,0x72,0x74,0x5f,
|
|
|
|
|
|
|
|
0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,
|
|
|
|
|
|
|
|
0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,
|
|
|
|
|
|
|
|
0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,
|
|
|
|
|
|
|
|
0x74,0x69,0x6f,0x6e,0x2e,0x78,0x20,0x2a,0x3d,0x20,0x5f,0x32,0x33,0x5f,0x61,0x73,
|
|
|
|
|
|
|
|
0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,
|
|
|
|
|
|
|
|
0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x30,0x3b,0x0a,0x7d,
|
|
|
|
|
|
|
|
0x0a,0x0a,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,
|
|
|
|
|
|
|
|
0x74,0x70,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,
|
|
|
|
|
|
|
|
0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,
|
|
|
|
|
|
|
|
0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,
|
|
|
|
|
|
|
|
0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,
|
|
|
|
|
|
|
|
0x69,0x6e,0x70,0x75,0x74,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,
|
|
|
|
|
|
|
|
0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x30,0x20,0x3d,0x20,0x73,0x74,0x61,
|
|
|
|
|
|
|
|
0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x30,0x3b,
|
|
|
|
|
|
|
|
0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x74,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,
|
|
|
|
|
|
|
|
0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,
|
|
|
|
|
|
|
|
0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,
|
|
|
|
|
|
|
|
0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,
|
|
|
|
|
|
|
|
0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,
|
|
|
|
|
|
|
|
0x69,0x6f,0x6e,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,
|
|
|
|
|
|
|
|
0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,
|
|
|
|
|
|
|
|
0x70,0x75,0x74,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,
|
|
|
|
|
|
|
|
0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,
|
|
|
|
|
|
|
|
0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// cbuffer fs_params : register(b0)
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float3 _16_offset : packoffset(c0);
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// static float4 frag_color;
|
|
|
|
|
|
|
|
// static float4 color;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct SPIRV_Cross_Input
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float4 color : TEXCOORD0;
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct SPIRV_Cross_Output
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float4 frag_color : SV_Target0;
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// void frag_main()
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// frag_color = color * _16_offset.x;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// color = stage_input.color;
|
|
|
|
|
|
|
|
// frag_main();
|
|
|
|
|
|
|
|
// SPIRV_Cross_Output stage_output;
|
|
|
|
|
|
|
|
// stage_output.frag_color = frag_color;
|
|
|
|
|
|
|
|
// return stage_output;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
const fs_source_hlsl5 = [530]u8 {
|
|
|
|
|
|
|
|
0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,
|
|
|
|
|
|
|
|
0x73,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x62,0x30,0x29,
|
|
|
|
|
|
|
|
0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,
|
|
|
|
|
|
|
|
0x36,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x3a,0x20,0x70,0x61,0x63,0x6b,0x6f,
|
|
|
|
|
|
|
|
0x66,0x66,0x73,0x65,0x74,0x28,0x63,0x30,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x0a,
|
|
|
|
|
|
|
|
0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,
|
|
|
|
|
|
|
|
0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,
|
|
|
|
|
|
|
|
0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x0a,
|
|
|
|
|
|
|
|
0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,
|
|
|
|
|
|
|
|
0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,
|
|
|
|
|
|
|
|
0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3a,0x20,0x54,0x45,
|
|
|
|
|
|
|
|
0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,
|
|
|
|
|
|
|
|
0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,
|
|
|
|
|
|
|
|
0x4f,0x75,0x74,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
|
|
|
|
|
|
|
|
0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3a,
|
|
|
|
|
|
|
|
0x20,0x53,0x56,0x5f,0x54,0x61,0x72,0x67,0x65,0x74,0x30,0x3b,0x0a,0x7d,0x3b,0x0a,
|
|
|
|
|
|
|
|
0x0a,0x76,0x6f,0x69,0x64,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28,
|
|
|
|
|
|
|
|
0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,
|
|
|
|
|
|
|
|
0x6f,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x36,
|
|
|
|
|
|
|
|
0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x2e,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x53,0x50,
|
|
|
|
|
|
|
|
0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,
|
|
|
|
|
|
|
|
0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,
|
|
|
|
|
|
|
|
0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,
|
|
|
|
|
|
|
|
0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,
|
|
|
|
|
|
|
|
0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x63,
|
|
|
|
|
|
|
|
0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,
|
|
|
|
|
|
|
|
0x61,0x69,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,
|
|
|
|
|
|
|
|
0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,
|
|
|
|
|
|
|
|
0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,
|
|
|
|
|
|
|
|
0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x66,0x72,0x61,
|
|
|
|
|
|
|
|
0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,
|
|
|
|
|
|
|
|
0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,
|
|
|
|
|
|
|
|
0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,
|
|
|
|
|
|
|
|
0x0a,0x00,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// #include <metal_stdlib>
|
|
|
|
|
|
|
|
// #include <simd/simd.h>
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// using namespace metal;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct vs_params
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float aspectRatio;
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct main0_out
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float4 color [[user(locn0)]];
|
|
|
|
|
|
|
|
// float4 gl_Position [[position]];
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct main0_in
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float4 position [[attribute(0)]];
|
|
|
|
|
|
|
|
// float4 color0 [[attribute(1)]];
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// vertex main0_out main0(main0_in in [[stage_in]], constant vs_params& _23 [[buffer(0)]])
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// main0_out out = {};
|
|
|
|
|
|
|
|
// out.gl_Position = in.position;
|
|
|
|
|
|
|
|
// out.gl_Position.x *= _23.aspectRatio;
|
|
|
|
|
|
|
|
// out.color = in.color0;
|
|
|
|
|
|
|
|
// return out;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
const vs_source_metal_macos = [546]u8 {
|
|
|
|
|
|
|
|
0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
|
|
|
|
|
|
|
|
0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
|
|
|
|
|
|
|
|
0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,
|
|
|
|
|
|
|
|
0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,
|
|
|
|
|
|
|
|
0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x76,
|
|
|
|
|
|
|
|
0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,
|
|
|
|
|
|
|
|
0x6c,0x6f,0x61,0x74,0x20,0x61,0x73,0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,0x6f,
|
|
|
|
|
|
|
|
0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,
|
|
|
|
|
|
|
|
0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,
|
|
|
|
|
|
|
|
0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,
|
|
|
|
|
|
|
|
0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,
|
|
|
|
|
|
|
|
0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,
|
|
|
|
|
|
|
|
0x6e,0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x3b,0x0a,
|
|
|
|
|
|
|
|
0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,
|
|
|
|
|
|
|
|
0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,
|
|
|
|
|
|
|
|
0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,
|
|
|
|
|
|
|
|
0x69,0x62,0x75,0x74,0x65,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,
|
|
|
|
|
|
|
|
0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x30,0x20,0x5b,0x5b,
|
|
|
|
|
|
|
|
0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x29,0x5d,0x5d,0x3b,0x0a,
|
|
|
|
|
|
|
|
0x7d,0x3b,0x0a,0x0a,0x76,0x65,0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,
|
|
|
|
|
|
|
|
0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,
|
|
|
|
|
|
|
|
0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,
|
|
|
|
|
|
|
|
0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x76,0x73,
|
|
|
|
|
|
|
|
0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x32,0x33,0x20,0x5b,0x5b,0x62,
|
|
|
|
|
|
|
|
0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,
|
|
|
|
|
|
|
|
0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,
|
|
|
|
|
|
|
|
0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,
|
|
|
|
|
|
|
|
0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x70,
|
|
|
|
|
|
|
|
0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,
|
|
|
|
|
|
|
|
0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x20,0x2a,
|
|
|
|
|
|
|
|
0x3d,0x20,0x5f,0x32,0x33,0x2e,0x61,0x73,0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,
|
|
|
|
|
|
|
|
0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x63,0x6f,0x6c,0x6f,0x72,
|
|
|
|
|
|
|
|
0x20,0x3d,0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x30,0x3b,0x0a,0x20,0x20,
|
|
|
|
|
|
|
|
0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,
|
|
|
|
|
|
|
|
0x0a,0x00,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// #include <metal_stdlib>
|
|
|
|
|
|
|
|
// #include <simd/simd.h>
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// using namespace metal;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct fs_params
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float3 offset;
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct main0_out
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float4 frag_color [[color(0)]];
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct main0_in
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// float4 color [[user(locn0)]];
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// fragment main0_out main0(main0_in in [[stage_in]], constant fs_params& _16 [[buffer(0)]])
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// main0_out out = {};
|
|
|
|
|
|
|
|
// out.frag_color = in.color * _16.offset.x;
|
|
|
|
|
|
|
|
// return out;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
const fs_source_metal_macos = [411]u8 {
|
|
|
|
|
|
|
|
0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
|
|
|
|
|
|
|
|
0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
|
|
|
|
|
|
|
|
0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,
|
|
|
|
|
|
|
|
0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,
|
|
|
|
|
|
|
|
0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x66,
|
|
|
|
|
|
|
|
0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,
|
|
|
|
|
|
|
|
0x6c,0x6f,0x61,0x74,0x33,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x3b,0x0a,0x7d,0x3b,
|
|
|
|
|
|
|
|
0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,
|
|
|
|
|
|
|
|
0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,
|
|
|
|
|
|
|
|
0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x5b,0x5b,0x63,0x6f,0x6c,
|
|
|
|
|
|
|
|
0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,
|
|
|
|
|
|
|
|
0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,
|
|
|
|
|
|
|
|
0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,
|
|
|
|
|
|
|
|
0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,
|
|
|
|
|
|
|
|
0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,
|
|
|
|
|
|
|
|
0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,
|
|
|
|
|
|
|
|
0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,
|
|
|
|
|
|
|
|
0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,
|
|
|
|
|
|
|
|
0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x31,0x36,0x20,
|
|
|
|
|
|
|
|
0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,
|
|
|
|
|
|
|
|
0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,
|
|
|
|
|
|
|
|
0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,
|
|
|
|
|
|
|
|
0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x69,0x6e,
|
|
|
|
|
|
|
|
0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x36,0x2e,0x6f,0x66,0x66,
|
|
|
|
|
|
|
|
0x73,0x65,0x74,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,
|
|
|
|
|
|
|
|
0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// diagnostic(off, derivative_uniformity);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct vs_params {
|
|
|
|
|
|
|
|
// /_ @offset(0) _/
|
|
|
|
|
|
|
|
// aspectRatio : f32,
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// var<private> position_1 : vec4f;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// @group(0) @binding(0) var<uniform> x_23 : vs_params;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// var<private> color : vec4f;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// var<private> color0 : vec4f;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// var<private> gl_Position : vec4f;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// fn main_1() {
|
|
|
|
|
|
|
|
// let x_18 : vec4f = position_1;
|
|
|
|
|
|
|
|
// gl_Position = x_18;
|
|
|
|
|
|
|
|
// let x_26 : f32 = x_23.aspectRatio;
|
|
|
|
|
|
|
|
// let x_30 : f32 = gl_Position.x;
|
|
|
|
|
|
|
|
// gl_Position.x = (x_30 * x_26);
|
|
|
|
|
|
|
|
// let x_35 : vec4f = color0;
|
|
|
|
|
|
|
|
// color = x_35;
|
|
|
|
|
|
|
|
// return;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct main_out {
|
|
|
|
|
|
|
|
// @builtin(position)
|
|
|
|
|
|
|
|
// gl_Position : vec4f,
|
|
|
|
|
|
|
|
// @location(0)
|
|
|
|
|
|
|
|
// color_1 : vec4f,
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// @vertex
|
|
|
|
|
|
|
|
// fn main(@location(0) position_1_param : vec4f, @location(1) color0_param : vec4f) -> main_out {
|
|
|
|
|
|
|
|
// position_1 = position_1_param;
|
|
|
|
|
|
|
|
// color0 = color0_param;
|
|
|
|
|
|
|
|
// main_1();
|
|
|
|
|
|
|
|
// return main_out(gl_Position, color);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
const vs_source_wgsl = [832]u8 {
|
|
|
|
|
|
|
|
0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20,
|
|
|
|
|
|
|
|
0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f,
|
|
|
|
|
|
|
|
0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,
|
|
|
|
|
|
|
|
0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x7b,0x0a,0x20,0x20,0x2f,0x2a,
|
|
|
|
|
|
|
|
0x20,0x40,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x30,0x29,0x20,0x2a,0x2f,0x0a,0x20,
|
|
|
|
|
|
|
|
0x20,0x61,0x73,0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,0x6f,0x20,0x3a,0x20,0x66,
|
|
|
|
|
|
|
|
0x33,0x32,0x2c,0x0a,0x7d,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,
|
|
|
|
|
|
|
|
0x74,0x65,0x3e,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x31,0x20,0x3a,
|
|
|
|
|
|
|
|
0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,
|
|
|
|
|
|
|
|
0x30,0x29,0x20,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x30,0x29,0x20,0x76,
|
|
|
|
|
|
|
|
0x61,0x72,0x3c,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x3e,0x20,0x78,0x5f,0x32,0x33,
|
|
|
|
|
|
|
|
0x20,0x3a,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x0a,0x76,
|
|
|
|
|
|
|
|
0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x63,0x6f,0x6c,0x6f,
|
|
|
|
|
|
|
|
0x72,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,
|
|
|
|
|
|
|
|
0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x30,0x20,
|
|
|
|
|
|
|
|
0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,
|
|
|
|
|
|
|
|
0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,
|
|
|
|
|
|
|
|
0x6f,0x6e,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x66,0x6e,0x20,
|
|
|
|
|
|
|
|
0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,
|
|
|
|
|
|
|
|
0x20,0x78,0x5f,0x31,0x38,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x20,0x3d,0x20,
|
|
|
|
|
|
|
|
0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x67,0x6c,
|
|
|
|
|
|
|
|
0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x78,0x5f,0x31,0x38,
|
|
|
|
|
|
|
|
0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32,0x36,0x20,0x3a,0x20,0x66,
|
|
|
|
|
|
|
|
0x33,0x32,0x20,0x3d,0x20,0x78,0x5f,0x32,0x33,0x2e,0x61,0x73,0x70,0x65,0x63,0x74,
|
|
|
|
|
|
|
|
0x52,0x61,0x74,0x69,0x6f,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x33,
|
|
|
|
|
|
|
|
0x30,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,
|
|
|
|
|
|
|
|
0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,
|
|
|
|
|
|
|
|
0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x20,0x3d,0x20,0x28,0x78,0x5f,0x33,0x30,
|
|
|
|
|
|
|
|
0x20,0x2a,0x20,0x78,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,
|
|
|
|
|
|
|
|
0x78,0x5f,0x33,0x35,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x20,0x3d,0x20,0x63,
|
|
|
|
|
|
|
|
0x6f,0x6c,0x6f,0x72,0x30,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,
|
|
|
|
|
|
|
|
0x20,0x78,0x5f,0x33,0x35,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,
|
|
|
|
|
|
|
|
0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f,
|
|
|
|
|
|
|
|
0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x62,0x75,0x69,0x6c,0x74,0x69,0x6e,
|
|
|
|
|
|
|
|
0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x0a,0x20,0x20,0x67,0x6c,0x5f,
|
|
|
|
|
|
|
|
0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,
|
|
|
|
|
|
|
|
0x2c,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,
|
|
|
|
|
|
|
|
0x0a,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,
|
|
|
|
|
|
|
|
0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x76,0x65,0x72,0x74,0x65,0x78,0x0a,0x66,
|
|
|
|
|
|
|
|
0x6e,0x20,0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,
|
|
|
|
|
|
|
|
0x28,0x30,0x29,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x31,0x5f,0x70,
|
|
|
|
|
|
|
|
0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x20,0x40,0x6c,
|
|
|
|
|
|
|
|
0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x31,0x29,0x20,0x63,0x6f,0x6c,0x6f,0x72,
|
|
|
|
|
|
|
|
0x30,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x29,
|
|
|
|
|
|
|
|
0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,
|
|
|
|
|
|
|
|
0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x31,0x20,0x3d,0x20,0x70,0x6f,
|
|
|
|
|
|
|
|
0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x31,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,
|
|
|
|
|
|
|
|
0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x30,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,
|
|
|
|
|
|
|
|
0x30,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,
|
|
|
|
|
|
|
|
0x31,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,
|
|
|
|
|
|
|
|
0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,
|
|
|
|
|
|
|
|
0x6f,0x6e,0x2c,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// diagnostic(off, derivative_uniformity);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct fs_params {
|
|
|
|
|
|
|
|
// /_ @offset(0) _/
|
|
|
|
|
|
|
|
// offset : vec3f,
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// var<private> frag_color : vec4f;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// var<private> color : vec4f;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// @group(0) @binding(4) var<uniform> x_16 : fs_params;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// fn main_1() {
|
|
|
|
|
|
|
|
// let x_12 : vec4f = color;
|
|
|
|
|
|
|
|
// let x_23 : f32 = x_16.offset.x;
|
|
|
|
|
|
|
|
// frag_color = (x_12 * x_23);
|
|
|
|
|
|
|
|
// return;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// struct main_out {
|
|
|
|
|
|
|
|
// @location(0)
|
|
|
|
|
|
|
|
// frag_color_1 : vec4f,
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// @fragment
|
|
|
|
|
|
|
|
// fn main(@location(0) color_param : vec4f) -> main_out {
|
|
|
|
|
|
|
|
// color = color_param;
|
|
|
|
|
|
|
|
// main_1();
|
|
|
|
|
|
|
|
// return main_out(frag_color);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
const fs_source_wgsl = [532]u8 {
|
|
|
|
|
|
|
|
0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20,
|
|
|
|
|
|
|
|
0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f,
|
|
|
|
|
|
|
|
0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,
|
|
|
|
|
|
|
|
0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x7b,0x0a,0x20,0x20,0x2f,0x2a,
|
|
|
|
|
|
|
|
0x20,0x40,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x30,0x29,0x20,0x2a,0x2f,0x0a,0x20,
|
|
|
|
|
|
|
|
0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x3a,0x20,0x76,0x65,0x63,0x33,0x66,0x2c,
|
|
|
|
|
|
|
|
0x0a,0x7d,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,
|
|
|
|
|
|
|
|
0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3a,0x20,0x76,0x65,
|
|
|
|
|
|
|
|
0x63,0x34,0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,
|
|
|
|
|
|
|
|
0x65,0x3e,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,
|
|
|
|
|
|
|
|
0x3b,0x0a,0x0a,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x30,0x29,0x20,0x40,0x62,0x69,
|
|
|
|
|
|
|
|
0x6e,0x64,0x69,0x6e,0x67,0x28,0x34,0x29,0x20,0x76,0x61,0x72,0x3c,0x75,0x6e,0x69,
|
|
|
|
|
|
|
|
0x66,0x6f,0x72,0x6d,0x3e,0x20,0x78,0x5f,0x31,0x36,0x20,0x3a,0x20,0x66,0x73,0x5f,
|
|
|
|
|
|
|
|
0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,
|
|
|
|
|
|
|
|
0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,
|
|
|
|
|
|
|
|
0x32,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,
|
|
|
|
|
|
|
|
0x72,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32,0x33,0x20,0x3a,0x20,
|
|
|
|
|
|
|
|
0x66,0x33,0x32,0x20,0x3d,0x20,0x78,0x5f,0x31,0x36,0x2e,0x6f,0x66,0x66,0x73,0x65,
|
|
|
|
|
|
|
|
0x74,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,
|
|
|
|
|
|
|
|
0x72,0x20,0x3d,0x20,0x28,0x78,0x5f,0x31,0x32,0x20,0x2a,0x20,0x78,0x5f,0x32,0x33,
|
|
|
|
|
|
|
|
0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,
|
|
|
|
|
|
|
|
0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,
|
|
|
|
|
|
|
|
0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,
|
|
|
|
|
|
|
|
0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20,
|
|
|
|
|
|
|
|
0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x66,0x72,0x61,
|
|
|
|
|
|
|
|
0x67,0x6d,0x65,0x6e,0x74,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,
|
|
|
|
|
|
|
|
0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x63,0x6f,0x6c,0x6f,0x72,
|
|
|
|
|
|
|
|
0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x29,0x20,
|
|
|
|
|
|
|
|
0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,
|
|
|
|
|
|
|
|
0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x70,0x61,
|
|
|
|
|
|
|
|
0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b,
|
|
|
|
|
|
|
|
0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,
|
|
|
|
|
|
|
|
0x75,0x74,0x28,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,
|
|
|
|
|
|
|
|
0x7d,0x0a,0x0a,0x00,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
pub fn triangleShaderDesc(backend: sg.Backend) sg.ShaderDesc {
|
|
|
|
|
|
|
|
var desc: sg.ShaderDesc = .{};
|
|
|
|
|
|
|
|
desc.label = "triangle_shader";
|
|
|
|
|
|
|
|
switch (backend) {
|
|
|
|
|
|
|
|
.GLCORE => {
|
|
|
|
|
|
|
|
desc.attrs[0].name = "position";
|
|
|
|
|
|
|
|
desc.attrs[1].name = "color0";
|
|
|
|
|
|
|
|
desc.vs.source = &vs_source_glsl410;
|
|
|
|
|
|
|
|
desc.vs.entry = "main";
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].size = 16;
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].uniforms[0].name = "vs_params";
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].uniforms[0].type = .FLOAT4;
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].uniforms[0].array_count = 1;
|
|
|
|
|
|
|
|
desc.fs.source = &fs_source_glsl410;
|
|
|
|
|
|
|
|
desc.fs.entry = "main";
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].size = 16;
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].uniforms[0].name = "fs_params";
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].uniforms[0].type = .FLOAT4;
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].uniforms[0].array_count = 1;
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
.GLES3 => {
|
|
|
|
|
|
|
|
desc.attrs[0].name = "position";
|
|
|
|
|
|
|
|
desc.attrs[1].name = "color0";
|
|
|
|
|
|
|
|
desc.vs.source = &vs_source_glsl300es;
|
|
|
|
|
|
|
|
desc.vs.entry = "main";
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].size = 16;
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].uniforms[0].name = "vs_params";
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].uniforms[0].type = .FLOAT4;
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].uniforms[0].array_count = 1;
|
|
|
|
|
|
|
|
desc.fs.source = &fs_source_glsl300es;
|
|
|
|
|
|
|
|
desc.fs.entry = "main";
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].size = 16;
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].uniforms[0].name = "fs_params";
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].uniforms[0].type = .FLOAT4;
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].uniforms[0].array_count = 1;
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
.D3D11 => {
|
|
|
|
|
|
|
|
desc.attrs[0].sem_name = "TEXCOORD";
|
|
|
|
|
|
|
|
desc.attrs[0].sem_index = 0;
|
|
|
|
|
|
|
|
desc.attrs[1].sem_name = "TEXCOORD";
|
|
|
|
|
|
|
|
desc.attrs[1].sem_index = 1;
|
|
|
|
|
|
|
|
desc.vs.source = &vs_source_hlsl5;
|
|
|
|
|
|
|
|
desc.vs.d3d11_target = "vs_5_0";
|
|
|
|
|
|
|
|
desc.vs.entry = "main";
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].size = 16;
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
|
|
|
desc.fs.source = &fs_source_hlsl5;
|
|
|
|
|
|
|
|
desc.fs.d3d11_target = "ps_5_0";
|
|
|
|
|
|
|
|
desc.fs.entry = "main";
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].size = 16;
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
.METAL_MACOS => {
|
|
|
|
|
|
|
|
desc.vs.source = &vs_source_metal_macos;
|
|
|
|
|
|
|
|
desc.vs.entry = "main0";
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].size = 16;
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
|
|
|
desc.fs.source = &fs_source_metal_macos;
|
|
|
|
|
|
|
|
desc.fs.entry = "main0";
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].size = 16;
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
.WGPU => {
|
|
|
|
|
|
|
|
desc.vs.source = &vs_source_wgsl;
|
|
|
|
|
|
|
|
desc.vs.entry = "main";
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].size = 16;
|
|
|
|
|
|
|
|
desc.vs.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
|
|
|
desc.fs.source = &fs_source_wgsl;
|
|
|
|
|
|
|
|
desc.fs.entry = "main";
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].size = 16;
|
|
|
|
|
|
|
|
desc.fs.uniform_blocks[0].layout = .STD140;
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
else => {},
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return desc;
|
|
|
|
|
|
|
|
}
|
|
|
|
|