// Code generated by build.go. DO NOT EDIT. package gpu var ( shader_blit_frag = [...]ShaderSources{ ShaderSources{ Uniforms: []UniformLocation{ {Name: "_12.color", Type: 0, Size: 4, Offset: 0}, }, GLES2: "#version 100\nprecision mediump float;\nprecision highp int;\n\nstruct Color\n{\n vec4 color;\n};\n\nuniform Color color;\n\nvarying vec2 vUV;\n\nvoid main()\n{\n gl_FragData[0] = color.color;\n}\n\n", /* cbuffer Color : register(b0) { float4 color_color : packoffset(c0); }; static float4 fragColor; static float2 vUV; struct SPIRV_Cross_Input { float2 vUV : TEXCOORD0; }; struct SPIRV_Cross_Output { float4 fragColor : SV_Target0; }; void frag_main() { fragColor = color_color; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { vUV = stage_input.vUV; frag_main(); SPIRV_Cross_Output stage_output; stage_output.fragColor = fragColor; return stage_output; } */ HLSL: []byte(nil), }, ShaderSources{ GLES2: "#version 100\nprecision mediump float;\nprecision highp int;\n\nuniform mediump sampler2D tex;\n\nvarying vec2 vUV;\n\nvoid main()\n{\n gl_FragData[0] = texture2D(tex, vUV);\n}\n\n", /* Texture2D tex : register(t0); SamplerState _tex_sampler : register(s0); static float4 fragColor; static float2 vUV; struct SPIRV_Cross_Input { float2 vUV : TEXCOORD0; }; struct SPIRV_Cross_Output { float4 fragColor : SV_Target0; }; void frag_main() { fragColor = tex.Sample(_tex_sampler, vUV); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { vUV = stage_input.vUV; frag_main(); SPIRV_Cross_Output stage_output; stage_output.fragColor = fragColor; return stage_output; } */ HLSL: []byte(nil), }, } shader_blit_vert = ShaderSources{ Inputs: []InputLocation{ {Name: "pos", Location: 0, Semantic: "POSITION", SemanticIndex: 0, Type: 0, Size: 2}, {Name: "uv", Location: 1, Semantic: "NORMAL", SemanticIndex: 0, Type: 0, Size: 2}, }, Uniforms: []UniformLocation{ {Name: "_15.z", Type: 0, Size: 1, Offset: 0}, {Name: "_15.scale", Type: 0, Size: 2, Offset: 8}, {Name: "_15.offset", Type: 0, Size: 2, Offset: 16}, {Name: "_15.uvScale", Type: 0, Size: 2, Offset: 24}, {Name: "_15.uvOffset", Type: 0, Size: 2, Offset: 32}, }, GLES2: "#version 100\n\nstruct Block\n{\n float z;\n vec2 scale;\n vec2 offset;\n vec2 uvScale;\n vec2 uvOffset;\n};\n\nuniform Block uniforms;\n\nattribute vec2 pos;\nvarying vec2 vUV;\nattribute vec2 uv;\n\nvoid main()\n{\n vec2 p = pos;\n p *= uniforms.scale;\n p += uniforms.offset;\n gl_Position = vec4(p, uniforms.z, 1.0);\n vUV = (uv * uniforms.uvScale) + uniforms.uvOffset;\n}\n\n", /* cbuffer Block : register(b0) { float uniforms_z : packoffset(c0); float2 uniforms_scale : packoffset(c0.z); float2 uniforms_offset : packoffset(c1); float2 uniforms_uvScale : packoffset(c1.z); float2 uniforms_uvOffset : packoffset(c2); }; static float4 gl_Position; static float2 pos; static float2 vUV; static float2 uv; struct SPIRV_Cross_Input { float2 pos : POSITION; float2 uv : NORMAL; }; struct SPIRV_Cross_Output { float2 vUV : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { float2 p = pos; p *= uniforms_scale; p += uniforms_offset; gl_Position = float4(p, uniforms_z, 1.0f); vUV = (uv * uniforms_uvScale) + uniforms_uvOffset; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; uv = stage_input.uv; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.vUV = vUV; return stage_output; } */ HLSL: []byte(nil), } shader_cover_frag = [...]ShaderSources{ ShaderSources{ Uniforms: []UniformLocation{ {Name: "_12.color", Type: 0, Size: 4, Offset: 0}, }, GLES2: "#version 100\nprecision mediump float;\nprecision highp int;\n\nstruct Color\n{\n vec4 color;\n};\n\nuniform Color color;\n\nuniform mediump sampler2D cover;\n\nvarying highp vec2 vCoverUV;\nvarying vec2 vUV;\n\nvoid main()\n{\n gl_FragData[0] = color.color;\n float cover_1 = abs(texture2D(cover, vCoverUV).x);\n gl_FragData[0] *= cover_1;\n}\n\n", /* cbuffer Color : register(b0) { float4 color_color : packoffset(c0); }; Texture2D cover : register(t1); SamplerState _cover_sampler : register(s1); static float4 fragColor; static float2 vCoverUV; static float2 vUV; struct SPIRV_Cross_Input { float2 vCoverUV : TEXCOORD0; float2 vUV : TEXCOORD1; }; struct SPIRV_Cross_Output { float4 fragColor : SV_Target0; }; void frag_main() { fragColor = color_color; float cover_1 = abs(cover.Sample(_cover_sampler, vCoverUV).x); fragColor *= cover_1; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { vCoverUV = stage_input.vCoverUV; vUV = stage_input.vUV; frag_main(); SPIRV_Cross_Output stage_output; stage_output.fragColor = fragColor; return stage_output; } */ HLSL: []byte(nil), }, ShaderSources{ GLES2: "#version 100\nprecision mediump float;\nprecision highp int;\n\nuniform mediump sampler2D tex;\nuniform mediump sampler2D cover;\n\nvarying vec2 vUV;\nvarying highp vec2 vCoverUV;\n\nvoid main()\n{\n gl_FragData[0] = texture2D(tex, vUV);\n float cover_1 = abs(texture2D(cover, vCoverUV).x);\n gl_FragData[0] *= cover_1;\n}\n\n", /* Texture2D tex : register(t0); SamplerState _tex_sampler : register(s0); Texture2D cover : register(t1); SamplerState _cover_sampler : register(s1); static float4 fragColor; static float2 vUV; static float2 vCoverUV; struct SPIRV_Cross_Input { float2 vCoverUV : TEXCOORD0; float2 vUV : TEXCOORD1; }; struct SPIRV_Cross_Output { float4 fragColor : SV_Target0; }; void frag_main() { fragColor = tex.Sample(_tex_sampler, vUV); float cover_1 = abs(cover.Sample(_cover_sampler, vCoverUV).x); fragColor *= cover_1; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { vUV = stage_input.vUV; vCoverUV = stage_input.vCoverUV; frag_main(); SPIRV_Cross_Output stage_output; stage_output.fragColor = fragColor; return stage_output; } */ HLSL: []byte(nil), }, } shader_cover_vert = ShaderSources{ Inputs: []InputLocation{ {Name: "pos", Location: 0, Semantic: "POSITION", SemanticIndex: 0, Type: 0, Size: 2}, {Name: "uv", Location: 1, Semantic: "NORMAL", SemanticIndex: 0, Type: 0, Size: 2}, }, Uniforms: []UniformLocation{ {Name: "_19.z", Type: 0, Size: 1, Offset: 0}, {Name: "_19.scale", Type: 0, Size: 2, Offset: 8}, {Name: "_19.offset", Type: 0, Size: 2, Offset: 16}, {Name: "_19.uvScale", Type: 0, Size: 2, Offset: 24}, {Name: "_19.uvOffset", Type: 0, Size: 2, Offset: 32}, {Name: "_19.uvCoverScale", Type: 0, Size: 2, Offset: 40}, {Name: "_19.uvCoverOffset", Type: 0, Size: 2, Offset: 48}, }, GLES2: "#version 100\n\nstruct Block\n{\n float z;\n vec2 scale;\n vec2 offset;\n vec2 uvScale;\n vec2 uvOffset;\n vec2 uvCoverScale;\n vec2 uvCoverOffset;\n};\n\nuniform Block uniforms;\n\nattribute vec2 pos;\nvarying vec2 vUV;\nattribute vec2 uv;\nvarying vec2 vCoverUV;\n\nvoid main()\n{\n gl_Position = vec4((pos * uniforms.scale) + uniforms.offset, uniforms.z, 1.0);\n vUV = (uv * uniforms.uvScale) + uniforms.uvOffset;\n vCoverUV = (uv * uniforms.uvCoverScale) + uniforms.uvCoverOffset;\n}\n\n", /* cbuffer Block : register(b0) { float uniforms_z : packoffset(c0); float2 uniforms_scale : packoffset(c0.z); float2 uniforms_offset : packoffset(c1); float2 uniforms_uvScale : packoffset(c1.z); float2 uniforms_uvOffset : packoffset(c2); float2 uniforms_uvCoverScale : packoffset(c2.z); float2 uniforms_uvCoverOffset : packoffset(c3); }; static float4 gl_Position; static float2 pos; static float2 vUV; static float2 uv; static float2 vCoverUV; struct SPIRV_Cross_Input { float2 pos : POSITION; float2 uv : NORMAL; }; struct SPIRV_Cross_Output { float2 vCoverUV : TEXCOORD0; float2 vUV : TEXCOORD1; float4 gl_Position : SV_Position; }; void vert_main() { gl_Position = float4((pos * uniforms_scale) + uniforms_offset, uniforms_z, 1.0f); vUV = (uv * uniforms_uvScale) + uniforms_uvOffset; vCoverUV = (uv * uniforms_uvCoverScale) + uniforms_uvCoverOffset; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; uv = stage_input.uv; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.vUV = vUV; stage_output.vCoverUV = vCoverUV; return stage_output; } */ HLSL: []byte(nil), } shader_intersect_frag = ShaderSources{ GLES2: "#version 100\nprecision mediump float;\nprecision highp int;\n\nuniform mediump sampler2D cover;\n\nvarying highp vec2 vUV;\n\nvoid main()\n{\n float cover_1 = abs(texture2D(cover, vUV).x);\n gl_FragData[0].x = cover_1;\n}\n\n", /* Texture2D cover : register(t0); SamplerState _cover_sampler : register(s0); static float2 vUV; static float4 fragColor; struct SPIRV_Cross_Input { float2 vUV : TEXCOORD0; }; struct SPIRV_Cross_Output { float4 fragColor : SV_Target0; }; void frag_main() { float cover_1 = abs(cover.Sample(_cover_sampler, vUV).x); fragColor.x = cover_1; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { vUV = stage_input.vUV; frag_main(); SPIRV_Cross_Output stage_output; stage_output.fragColor = fragColor; return stage_output; } */ HLSL: []byte(nil), } shader_intersect_vert = ShaderSources{ Inputs: []InputLocation{ {Name: "pos", Location: 0, Semantic: "POSITION", SemanticIndex: 0, Type: 0, Size: 2}, {Name: "uv", Location: 1, Semantic: "NORMAL", SemanticIndex: 0, Type: 0, Size: 2}, }, Uniforms: []UniformLocation{ {Name: "_40.scale", Type: 0, Size: 2, Offset: 0}, {Name: "_40.offset", Type: 0, Size: 2, Offset: 8}, }, GLES2: "#version 100\n\nstruct Block\n{\n vec2 scale;\n vec2 offset;\n};\n\nuniform Block uvparams;\n\nattribute vec2 pos;\nvarying vec2 vUV;\nattribute vec2 uv;\n\nvoid main()\n{\n vec2 p = pos;\n p.y = -p.y;\n gl_Position = vec4(p, 0.0, 1.0);\n vUV = (uv * uvparams.scale) + uvparams.offset;\n}\n\n", /* cbuffer Block : register(b0) { float2 uvparams_scale : packoffset(c0); float2 uvparams_offset : packoffset(c0.z); }; static float4 gl_Position; static float2 pos; static float2 vUV; static float2 uv; struct SPIRV_Cross_Input { float2 pos : POSITION; float2 uv : NORMAL; }; struct SPIRV_Cross_Output { float2 vUV : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { float2 p = pos; p.y = -p.y; gl_Position = float4(p, 0.0f, 1.0f); vUV = (uv * uvparams_scale) + uvparams_offset; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; uv = stage_input.uv; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.vUV = vUV; return stage_output; } */ HLSL: []byte(nil), } shader_stencil_frag = ShaderSources{ GLES2: "#version 100\nprecision mediump float;\nprecision highp int;\n\nuniform mediump sampler2D areaLUT;\n\nvarying vec2 vTo;\nvarying vec2 vFrom;\nvarying vec2 vCtrl;\n\nvoid main()\n{\n float dx = vTo.x - vFrom.x;\n bool increasing = vTo.x >= vFrom.x;\n bvec2 _35 = bvec2(increasing);\n vec2 left = vec2(_35.x ? vFrom.x : vTo.x, _35.y ? vFrom.y : vTo.y);\n bvec2 _41 = bvec2(increasing);\n vec2 right = vec2(_41.x ? vTo.x : vFrom.x, _41.y ? vTo.y : vFrom.y);\n vec2 extent = clamp(vec2(vFrom.x, vTo.x), vec2(-0.5), vec2(0.5));\n float midx = mix(extent.x, extent.y, 0.5);\n float x0 = midx - left.x;\n vec2 p1 = vCtrl - left;\n vec2 v = right - vCtrl;\n float t = x0 / (p1.x + sqrt((p1.x * p1.x) + ((v.x - p1.x) * x0)));\n float y = mix(mix(left.y, vCtrl.y, t), mix(vCtrl.y, right.y, t), t);\n vec2 d_half = mix(p1, v, vec2(t));\n float dy = d_half.y / d_half.x;\n float width = extent.y - extent.x;\n dy = abs(dy * width);\n vec4 sides = vec4((dy * 0.5) + y, (dy * (-0.5)) + y, (0.5 - y) / dy, ((-0.5) - y) / dy);\n sides = clamp(sides + vec4(0.5), vec4(0.0), vec4(1.0));\n float area = 0.5 * ((((sides.z - (sides.z * sides.y)) + 1.0) - sides.x) + (sides.x * sides.w));\n area *= width;\n if (width == 0.0)\n {\n area = 0.0;\n }\n gl_FragData[0].x = area;\n}\n\n", /* Texture2D areaLUT : register(t0); SamplerState _areaLUT_sampler : register(s0); static float2 vTo; static float2 vFrom; static float2 vCtrl; static float4 fragCover; struct SPIRV_Cross_Input { float2 vFrom : TEXCOORD0; float2 vCtrl : TEXCOORD1; float2 vTo : TEXCOORD2; }; struct SPIRV_Cross_Output { float4 fragCover : SV_Target0; }; void frag_main() { float dx = vTo.x - vFrom.x; bool increasing = vTo.x >= vFrom.x; bool2 _35 = increasing.xx; float2 left = float2(_35.x ? vFrom.x : vTo.x, _35.y ? vFrom.y : vTo.y); bool2 _41 = increasing.xx; float2 right = float2(_41.x ? vTo.x : vFrom.x, _41.y ? vTo.y : vFrom.y); float2 extent = clamp(float2(vFrom.x, vTo.x), (-0.5f).xx, 0.5f.xx); float midx = lerp(extent.x, extent.y, 0.5f); float x0 = midx - left.x; float2 p1 = vCtrl - left; float2 v = right - vCtrl; float t = x0 / (p1.x + sqrt((p1.x * p1.x) + ((v.x - p1.x) * x0))); float y = lerp(lerp(left.y, vCtrl.y, t), lerp(vCtrl.y, right.y, t), t); float2 d_half = lerp(p1, v, t.xx); float dy = d_half.y / d_half.x; float width = extent.y - extent.x; dy = abs(dy * width); float4 sides = float4((dy * 0.5f) + y, (dy * (-0.5f)) + y, (0.5f - y) / dy, ((-0.5f) - y) / dy); sides = clamp(sides + 0.5f.xxxx, 0.0f.xxxx, 1.0f.xxxx); float area = 0.5f * ((((sides.z - (sides.z * sides.y)) + 1.0f) - sides.x) + (sides.x * sides.w)); area *= width; if (width == 0.0f) { area = 0.0f; } fragCover.x = area; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { vTo = stage_input.vTo; vFrom = stage_input.vFrom; vCtrl = stage_input.vCtrl; frag_main(); SPIRV_Cross_Output stage_output; stage_output.fragCover = fragCover; return stage_output; } */ HLSL: []byte(nil), } shader_stencil_vert = ShaderSources{ Inputs: []InputLocation{ {Name: "corner", Location: 0, Semantic: "POSITION", SemanticIndex: 0, Type: 0, Size: 2}, {Name: "maxy", Location: 1, Semantic: "NORMAL", SemanticIndex: 0, Type: 0, Size: 1}, {Name: "from", Location: 2, Semantic: "TEXCOORD", SemanticIndex: 0, Type: 0, Size: 2}, {Name: "ctrl", Location: 3, Semantic: "TEXCOORD", SemanticIndex: 1, Type: 0, Size: 2}, {Name: "to", Location: 4, Semantic: "TEXCOORD", SemanticIndex: 2, Type: 0, Size: 2}, }, Uniforms: []UniformLocation{ {Name: "_15.scale", Type: 0, Size: 2, Offset: 0}, {Name: "_15.offset", Type: 0, Size: 2, Offset: 8}, {Name: "_15.pathOffset", Type: 0, Size: 2, Offset: 16}, }, GLES2: "#version 100\n\nstruct Block\n{\n vec2 scale;\n vec2 offset;\n vec2 pathOffset;\n};\n\nuniform Block uniforms;\n\nattribute vec2 from;\nattribute vec2 ctrl;\nattribute vec2 to;\nattribute float maxy;\nattribute vec2 corner;\nvarying vec2 vFrom;\nvarying vec2 vCtrl;\nvarying vec2 vTo;\n\nvoid main()\n{\n vec2 from_1 = from + uniforms.pathOffset;\n vec2 ctrl_1 = ctrl + uniforms.pathOffset;\n vec2 to_1 = to + uniforms.pathOffset;\n float maxy_1 = maxy + uniforms.pathOffset.y;\n vec2 pos;\n if (corner.x > 0.0)\n {\n pos.x = max(max(from_1.x, ctrl_1.x), to_1.x) + 1.0;\n }\n else\n {\n pos.x = min(min(from_1.x, ctrl_1.x), to_1.x) - 1.0;\n }\n if (corner.y > 0.0)\n {\n pos.y = maxy_1 + 1.0;\n }\n else\n {\n pos.y = min(min(from_1.y, ctrl_1.y), to_1.y) - 1.0;\n }\n vFrom = from_1 - pos;\n vCtrl = ctrl_1 - pos;\n vTo = to_1 - pos;\n pos *= uniforms.scale;\n pos += uniforms.offset;\n gl_Position = vec4(pos, 1.0, 1.0);\n}\n\n", /* cbuffer Block : register(b0) { float2 uniforms_scale : packoffset(c0); float2 uniforms_offset : packoffset(c0.z); float2 uniforms_pathOffset : packoffset(c1); }; static float4 gl_Position; static float2 from; static float2 ctrl; static float2 to; static float maxy; static float2 corner; static float2 vFrom; static float2 vCtrl; static float2 vTo; struct SPIRV_Cross_Input { float2 corner : POSITION; float maxy : NORMAL; float2 from : TEXCOORD0; float2 ctrl : TEXCOORD1; float2 to : TEXCOORD2; }; struct SPIRV_Cross_Output { float2 vFrom : TEXCOORD0; float2 vCtrl : TEXCOORD1; float2 vTo : TEXCOORD2; float4 gl_Position : SV_Position; }; void vert_main() { float2 from_1 = from + uniforms_pathOffset; float2 ctrl_1 = ctrl + uniforms_pathOffset; float2 to_1 = to + uniforms_pathOffset; float maxy_1 = maxy + uniforms_pathOffset.y; float2 pos; if (corner.x > 0.0f) { pos.x = max(max(from_1.x, ctrl_1.x), to_1.x) + 1.0f; } else { pos.x = min(min(from_1.x, ctrl_1.x), to_1.x) - 1.0f; } if (corner.y > 0.0f) { pos.y = maxy_1 + 1.0f; } else { pos.y = min(min(from_1.y, ctrl_1.y), to_1.y) - 1.0f; } vFrom = from_1 - pos; vCtrl = ctrl_1 - pos; vTo = to_1 - pos; pos *= uniforms_scale; pos += uniforms_offset; gl_Position = float4(pos, 1.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { from = stage_input.from; ctrl = stage_input.ctrl; to = stage_input.to; maxy = stage_input.maxy; corner = stage_input.corner; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.vFrom = vFrom; stage_output.vCtrl = vCtrl; stage_output.vTo = vTo; return stage_output; } */ HLSL: []byte(nil), } )