4 #include <Crousti/GpuUtils.hpp>
5 #include <Crousti/Metadatas.hpp>
6 #include <Gfx/Graph/Node.hpp>
7 #include <Gfx/Graph/NodeRenderer.hpp>
8 #include <Gfx/Graph/RenderList.hpp>
9 #include <Gfx/Graph/RenderState.hpp>
10 #include <Gfx/Graph/Uniforms.hpp>
12 #include <avnd/binding/ossia/port_run_preprocess.hpp>
13 #include <avnd/common/for_nth.hpp>
17 template <
typename Info>
19 static const constexpr
auto generic_texgen_vs = R
"_(#version 450
20 layout(location = 0) in vec2 position;
21 layout(location = 1) in vec2 texcoord;
23 layout(binding=3) uniform sampler2D y_tex;
24 layout(location = 0) out vec2 v_texcoord;
26 layout(std140, binding = 0) uniform renderer_t {
27 mat4 clipSpaceCorrMatrix;
31 out gl_PerVertex { vec4 gl_Position; };
35 v_texcoord = texcoord;
36 gl_Position = renderer.clipSpaceCorrMatrix * vec4(position.xy, 0.0, 1.);
40 static const constexpr
auto generic_texgen_fs = R
"_(#version 450
41 layout(location = 0) in vec2 v_texcoord;
42 layout(location = 0) out vec4 fragColor;
44 layout(std140, binding = 0) uniform renderer_t {
45 mat4 clipSpaceCorrMatrix;
49 layout(binding=3) uniform sampler2D y_tex;
54 fragColor = texture(y_tex, v_texcoord);
58 template <
typename Node_T>
60 template <
typename Node_T>