From f8b92ce3aa08b1445c9f956d8166830946562d12 Mon Sep 17 00:00:00 2001 From: navewindre Date: Wed, 3 Sep 2025 20:10:09 +0200 Subject: a --- assets/fonts/cour.ttf | Bin 0 -> 806504 bytes assets/fonts/jpn12.ttf | Bin 0 -> 25960 bytes assets/fonts/jpn16.ttf | Bin 0 -> 32376 bytes assets/maps/test.hmap | 102 +++++++++++++++++++++++++++++++++++++++++ assets/maps/test2.hmap | 24 ++++++++++ assets/shaders/2d.fsh | 7 +++ assets/shaders/2d.vsh | 23 ++++++++++ assets/shaders/2d_overlay.fsh | 17 +++++++ assets/shaders/2d_overlay.vsh | 20 ++++++++ assets/shaders/2d_texcoord.fsh | 18 ++++++++ assets/shaders/2d_texcoord.vsh | 28 +++++++++++ assets/shaders/3d.fsh | 18 ++++++++ assets/shaders/3d.vsh | 22 +++++++++ assets/uvtest.png | Bin 0 -> 1287911 bytes assets/uvtest2.png | Bin 0 -> 53991 bytes 15 files changed, 279 insertions(+) create mode 100644 assets/fonts/cour.ttf create mode 100644 assets/fonts/jpn12.ttf create mode 100644 assets/fonts/jpn16.ttf create mode 100644 assets/maps/test.hmap create mode 100644 assets/maps/test2.hmap create mode 100644 assets/shaders/2d.fsh create mode 100644 assets/shaders/2d.vsh create mode 100644 assets/shaders/2d_overlay.fsh create mode 100644 assets/shaders/2d_overlay.vsh create mode 100644 assets/shaders/2d_texcoord.fsh create mode 100644 assets/shaders/2d_texcoord.vsh create mode 100644 assets/shaders/3d.fsh create mode 100644 assets/shaders/3d.vsh create mode 100644 assets/uvtest.png create mode 100644 assets/uvtest2.png (limited to 'assets') diff --git a/assets/fonts/cour.ttf b/assets/fonts/cour.ttf new file mode 100644 index 0000000..46a0712 Binary files /dev/null and b/assets/fonts/cour.ttf differ diff --git a/assets/fonts/jpn12.ttf b/assets/fonts/jpn12.ttf new file mode 100644 index 0000000..f5ef3a3 Binary files /dev/null and b/assets/fonts/jpn12.ttf differ diff --git a/assets/fonts/jpn16.ttf b/assets/fonts/jpn16.ttf new file mode 100644 index 0000000..84db77b Binary files /dev/null and b/assets/fonts/jpn16.ttf differ diff --git a/assets/maps/test.hmap b/assets/maps/test.hmap new file mode 100644 index 0000000..16b1394 --- /dev/null +++ b/assets/maps/test.hmap @@ -0,0 +1,102 @@ +DEF map { + I32 wallcount = 7; + I32 polycount = 1; + I32 propcount = 5; + I32 spritecount = 1; + VEC3 startpos = { 84, 109, -39.75 }; + F32 startang = 0; + DEF props { + DEF 0 { + CLR clr = { 1, 1, 1, 1 }; + STR tex[256] = "uvtest.png"; + } + DEF 1 { + CLR clr = { 0, 1, 0, 1 }; + STR tex[256] = "uvtest.png"; + } + DEF 2 { + CLR clr = { 1, 0, 1, 1 }; + STR tex[256] = "uvtest.png"; + } + DEF 3 { + CLR clr = { 0, 1, 1, 1 }; + } + DEF 4 { + CLR clr = { 1, 1, 0, 1 }; + } + } + DEF walls { + DEF 0 { + VEC3 start = { 0, 0, -40 }; + VEC3 end = { 200, 0, 120 }; + I32 propid = 0; + } + DEF 1 { + VEC3 start = { 200, 0, -40 }; + VEC3 end = { 200, 200, 100 }; + I32 propid = 1; + } + DEF 2 { + VEC3 start = { 200, 200, -40 }; + VEC3 end = { 0, 200, 120 }; + I32 propid = 2; + } + DEF 3 { + VEC3 start = { 60, 30, -40 }; + VEC3 end = { 30, 30, 80 }; + I32 propid = 3; + } + DEF 4 { + VEC3 start = { 60, 60, -40 }; + VEC3 end = { 60, 30, 80 }; + I32 propid = 3; + } + DEF 5 { + VEC3 start = { 30, 60, -40 }; + VEC3 end = { 60, 60, 80 }; + I32 propid = 3; + } + DEF 6 { + VEC3 start = { 30, 30, -40 }; + VEC3 end = { 30, 60, 80 }; + I32 propid = 3; + } + } + DEF polygons { + DEF 0 { + I32 vertcount = 4; + I32 propid = 0; + I32 type = 0; + DEF vertices { + DEF 0 { + VEC3 pos = { 0, 0, -40 }; + VEC2 uv = { 0, 0 }; + CLR clr = { 1, 1, 1, 1 }; + } + DEF 1 { + VEC3 pos = { 200, 0, -40 }; + VEC2 uv = { 0, 1 }; + CLR clr = { 1, 1, 1, 1 }; + } + DEF 2 { + VEC3 pos = { 200, 200, -40 }; + VEC2 uv = { 1, 1 }; + CLR clr = { 1, 1, 1, 1 }; + } + DEF 3 { + VEC3 pos = { 0, 200, -40 }; + VEC2 uv = { 1, 0 }; + CLR clr = { 1, 1, 1, 1 }; + } + } + } + } + DEF sprites { + DEF 0 { + VEC3 pos = { 120, 120, -40 }; + VEC2 size = { 40, 40 }; + CLR clr = { 1, 1, 1, 1 }; + STR tex[256] = "uvtest.png"; + } + } +} diff --git a/assets/maps/test2.hmap b/assets/maps/test2.hmap new file mode 100644 index 0000000..69992df --- /dev/null +++ b/assets/maps/test2.hmap @@ -0,0 +1,24 @@ +DEF map { + I32 wallcount = 1; + I32 polycount = 0; + I32 propcount = 1; + I32 spritecount = 0; + VEC3 startpos = { 10, 10, 0 }; + F32 startang = -0.372549; + DEF props { + DEF 0 { + CLR clr = { 1, 1, 1, 1 }; + } + } + DEF walls { + DEF 0 { + VEC3 start = { 0, 0, -40 }; + VEC3 end = { 10, 0, 80 }; + I32 propid = 0; + } + } + DEF polygons { + } + DEF sprites { + } +} diff --git a/assets/shaders/2d.fsh b/assets/shaders/2d.fsh new file mode 100644 index 0000000..15465af --- /dev/null +++ b/assets/shaders/2d.fsh @@ -0,0 +1,7 @@ +#version 150 + +in vec4 g_color; + +void main() { + gl_FragColor = g_color; +} diff --git a/assets/shaders/2d.vsh b/assets/shaders/2d.vsh new file mode 100644 index 0000000..7701087 --- /dev/null +++ b/assets/shaders/2d.vsh @@ -0,0 +1,23 @@ +#version 150 + +in vec2 in_pos; +in vec2 in_texcoord; +in vec4 in_col; + +out vec2 g_texcoord; +out vec4 g_color; + +uniform vec4 g_screenratio; + +void main() { + vec2 halfscreen = vec2( 1.0 / g_screenratio[0], 1.0 / g_screenratio[1] ); + + vec4 pos = vec4( in_pos.x, in_pos.y, 1, 1 ); + pos[0] -= halfscreen[0]; + pos[1] -= halfscreen[1]; + pos[1] *= -1.0; + + gl_Position = ( pos ) * g_screenratio; + g_texcoord = in_texcoord; + g_color = in_col; +} diff --git a/assets/shaders/2d_overlay.fsh b/assets/shaders/2d_overlay.fsh new file mode 100644 index 0000000..052f0bd --- /dev/null +++ b/assets/shaders/2d_overlay.fsh @@ -0,0 +1,17 @@ +precision mediump float; +varying vec2 in_texcoord; +varying vec2 in_texcoord2; +varying vec4 g_color; +uniform sampler2D in_sampler; +uniform sampler2D in_sampler2; + +void main() { + vec4 color = texture2D( in_sampler, in_texcoord ); + vec4 color2 = texture2D( in_sampler2, in_texcoord2 ); + + float brightness = (color.x + color.y + color.z) / 3.0; + vec3 blend = color2.xyz * brightness; + vec4 final = vec4( color2.xyz, color.a ); + + gl_FragColor = vec4( in_texcoord.x, fTexCoord.y, 0.0, 1.0 ); +} diff --git a/assets/shaders/2d_overlay.vsh b/assets/shaders/2d_overlay.vsh new file mode 100644 index 0000000..512ef91 --- /dev/null +++ b/assets/shaders/2d_overlay.vsh @@ -0,0 +1,20 @@ +attribute vec4 in_position; +attribute vec2 in_texcoord; +attribute vec2 in_texcoord2; + +varying vec2 g_texcoord; +varying vec2 g_texcoord2; +uniform vec4 g_screenratio; + +void main() { + vec2 halfscreen = vec2( 1.0 / g_screenratio[0], 1.0 / g_screenratio[1] ); + + vec4 pos = in_position; + pos[0] -= halfscreen[0]; + pos[1] -= halfscreen[1]; + pos[1] *= -1.0; + + gl_Position = ( pos ) * g_screenratio; + g_texcoord = in_texcoord; + g_texcoord2 = in_texcoord2; +} diff --git a/assets/shaders/2d_texcoord.fsh b/assets/shaders/2d_texcoord.fsh new file mode 100644 index 0000000..276f305 --- /dev/null +++ b/assets/shaders/2d_texcoord.fsh @@ -0,0 +1,18 @@ +#version 150 + +uniform sampler2D g_samplers[255]; + +const uint SAMPLER_ID_NONE = 255u; + +in vec2 g_texcoord; +in vec4 g_color; +flat in uint g_sampler; + +void main() { + vec4 color = g_color; + if( g_sampler != SAMPLER_ID_NONE ) { + color = texture2D( g_samplers[g_sampler], g_texcoord ); + color *= g_color; + } + gl_FragColor = color; +} diff --git a/assets/shaders/2d_texcoord.vsh b/assets/shaders/2d_texcoord.vsh new file mode 100644 index 0000000..3ccc8e7 --- /dev/null +++ b/assets/shaders/2d_texcoord.vsh @@ -0,0 +1,28 @@ +#version 150 + +uniform sampler2D g_samplers[255]; + +in vec2 in_pos; +in vec4 in_clr; +in vec2 in_texcoord; +in float in_sampler; + +out vec2 g_texcoord; +out vec4 g_color; +flat out uint g_sampler; + +uniform vec4 g_screenratio; + +void main() { + vec2 halfscreen = vec2( 1.0 / g_screenratio[0], 1.0 / g_screenratio[1] ); + + vec4 pos = vec4( in_pos.x, in_pos.y, 1, 1 ); + pos[0] -= halfscreen[0]; + pos[1] -= halfscreen[1]; + pos[1] *= -1.0; + + g_texcoord = in_texcoord; + g_color = in_clr; + g_sampler = uint(in_sampler * 255 + 0.5); + gl_Position = ( pos ) * g_screenratio; +} diff --git a/assets/shaders/3d.fsh b/assets/shaders/3d.fsh new file mode 100644 index 0000000..ee1208c --- /dev/null +++ b/assets/shaders/3d.fsh @@ -0,0 +1,18 @@ +#version 150 + +uniform sampler2D g_samplers[255]; + +const uint SAMPLER_ID_NONE = 255u; + +in vec2 g_texcoord; +in vec4 g_color; +flat in uint g_sampler; + +void main() { + vec4 color = g_color; + if( g_sampler != SAMPLER_ID_NONE ) { + color = texture2D( g_samplers[int(g_sampler)], g_texcoord ); + color *= g_color; + } + gl_FragColor = color; +} diff --git a/assets/shaders/3d.vsh b/assets/shaders/3d.vsh new file mode 100644 index 0000000..d248e41 --- /dev/null +++ b/assets/shaders/3d.vsh @@ -0,0 +1,22 @@ +#version 150 + +in vec3 in_pos; +in vec4 in_clr; +in vec2 in_texcoord; +in float in_sampler; + +uniform mat4 in_proj_matrix; +uniform vec4 g_screenratio; + +out vec4 g_color; +out vec2 g_texcoord; +flat out uint g_sampler; + +void main() { + vec4 pos = in_proj_matrix * vec4( in_pos, 1.0 ); + g_texcoord = in_texcoord; + g_sampler = uint(in_sampler * 255 + 0.5); + g_color = in_clr; + gl_Position = pos; +} + diff --git a/assets/uvtest.png b/assets/uvtest.png new file mode 100644 index 0000000..e95fdd0 Binary files /dev/null and b/assets/uvtest.png differ diff --git a/assets/uvtest2.png b/assets/uvtest2.png new file mode 100644 index 0000000..ec44376 Binary files /dev/null and b/assets/uvtest2.png differ -- cgit v1.2.3