aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Kramkowski <tomasz@kramkow.ski>2022-10-16 19:31:21 +0100
committerTomasz Kramkowski <tomasz@kramkow.ski>2022-10-16 19:31:21 +0100
commita59203b2ebc4f8671d04b743f0c9eb4f40170f3e (patch)
tree82a5658d110f0c16770ded2cf20f78484b31bf27
parent926998d3d8c671c55e6a7fe6c6fa88f6512ccb46 (diff)
downloadfaqe-master.tar.gz
faqe-master.tar.xz
faqe-master.zip
Generate interface block using shaders/data.hHEADmaster
-rw-r--r--glprog.c10
-rw-r--r--shaders/data.h9
-rw-r--r--shaders/main/frag.glsl9
-rw-r--r--shaders/main/vert.glsl9
4 files changed, 19 insertions, 18 deletions
diff --git a/glprog.c b/glprog.c
index edb819e..58f45f3 100644
--- a/glprog.c
+++ b/glprog.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 Tomasz Kramkowski <tk@the-tk.com>
+ * Copyright (C) 2018, 2022 Tomasz Kramkowski <tk@the-tk.com>
* SPDX-License-Identifier: MIT
*/
#include <assert.h>
@@ -28,6 +28,10 @@ static const struct {
{ GL_VERTEX_SHADER, "vert", true,
#define SH_IN(type, name) "in " #type " " #name ";\n"
#include "shaders/data.h"
+ "out iface {\n"
+#define SH_IF(type, name) "\t" #type " " #name ";\n"
+#include "shaders/data.h"
+ "} o;\n"
},
{ GL_TESS_CONTROL_SHADER, "tesc", false, "" },
{ GL_TESS_EVALUATION_SHADER, "tese", false, "" },
@@ -36,6 +40,10 @@ static const struct {
#define SH_TEX(type, name) "uniform sampler" #type " t" #name ";\n"
#define SH_OUT(type, name) "out " #type " " #name ";\n"
#include "shaders/data.h"
+ "in iface {\n"
+#define SH_IF(type, name) "\t" #type " " #name ";\n"
+#include "shaders/data.h"
+ "} i;\n"
},
};
diff --git a/shaders/data.h b/shaders/data.h
index a2d5625..16174b9 100644
--- a/shaders/data.h
+++ b/shaders/data.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 Tomasz Kramkowski <tk@the-tk.com>
+ * Copyright (C) 2018, 2022 Tomasz Kramkowski <tk@the-tk.com>
* SPDX-License-Identifier: MIT
*/
#ifdef SH_PROG
@@ -16,6 +16,13 @@
SH_IN(vec2, uv)
#undef SH_IN
#endif // SH_IN
+#ifdef SH_IF
+ SH_IF(vec3, norm)
+ SH_IF(vec3, pos)
+ SH_IF(vec2, uv)
+ SH_IF(vec3, lipos)
+#undef SH_IF
+#endif // SH_IF
#ifdef SH_UNI
SH_UNI(mat4, model)
SH_UNI(mat4, view)
diff --git a/shaders/main/frag.glsl b/shaders/main/frag.glsl
index f6ed7c3..9f8c5de 100644
--- a/shaders/main/frag.glsl
+++ b/shaders/main/frag.glsl
@@ -1,14 +1,7 @@
/*
- * Copyright (C) 2018 Tomasz Kramkowski <tk@the-tk.com>
+ * Copyright (C) 2018, 2022 Tomasz Kramkowski <tk@the-tk.com>
* SPDX-License-Identifier: MIT
*/
-in iface {
- vec3 norm;
- vec3 pos;
- vec2 uv;
- vec3 lipos;
-} i;
-
void main()
{
vec3 fdiff = vec3(texture(tdiff, i.uv));
diff --git a/shaders/main/vert.glsl b/shaders/main/vert.glsl
index 3b145e3..39bfc1b 100644
--- a/shaders/main/vert.glsl
+++ b/shaders/main/vert.glsl
@@ -1,14 +1,7 @@
/*
- * Copyright (C) 2018 Tomasz Kramkowski <tk@the-tk.com>
+ * Copyright (C) 2018, 2022 Tomasz Kramkowski <tk@the-tk.com>
* SPDX-License-Identifier: MIT
*/
-out iface {
- vec3 norm;
- vec3 pos;
- vec2 uv;
- vec3 lipos;
-} o;
-
void main()
{
gl_Position = proj * view * model * vec4(pos, 1.0);