#pragma once inline const char* vertT = R"( #version 330 core layout (location = 0) in vec3 position; layout (location = 1) in vec4 color; layout (location = 2) in vec2 uv; layout (location = 3) in float tid; uniform mat4 prMatrix; uniform mat4 camMatrix; out DATA { vec4 color_out; vec2 uv_out; float tid_out; } vs_out; void main() { gl_Position = prMatrix * camMatrix * vec4(position.x, position.y, position.z, 1.0); vs_out.color_out = color; vs_out.uv_out = uv; vs_out.tid_out = tid; } )"; inline const char* fragT = R"( #version 330 core layout (location = 0) out vec4 color; uniform sampler2D textures[32]; in DATA { vec4 color_out; vec2 uv_out; float tid_out; } fs_in; void main() { vec4 texColor = vec4(0,0,0,0); int tid = int(fs_in.tid_out); switch(tid) { case 0: texColor = texture(textures[0], fs_in.uv_out); break; case 1: texColor = texture(textures[1], fs_in.uv_out); break; case 2: texColor = texture(textures[2], fs_in.uv_out); break; case 3: texColor = texture(textures[3], fs_in.uv_out); break; case 4: texColor = texture(textures[4], fs_in.uv_out); break; case 5: texColor = texture(textures[5], fs_in.uv_out); break; case 6: texColor = texture(textures[6], fs_in.uv_out); break; case 7: texColor = texture(textures[7], fs_in.uv_out); break; case 8: texColor = texture(textures[8], fs_in.uv_out); break; case 9: texColor = texture(textures[9], fs_in.uv_out); break; case 10: texColor = texture(textures[10], fs_in.uv_out); break; case 11: texColor = texture(textures[11], fs_in.uv_out); break; case 12: texColor = texture(textures[12], fs_in.uv_out); break; case 13: texColor = texture(textures[13], fs_in.uv_out); break; case 14: texColor = texture(textures[14], fs_in.uv_out); break; case 15: texColor = texture(textures[15], fs_in.uv_out); break; case 16: texColor = texture(textures[16], fs_in.uv_out); break; case 17: texColor = texture(textures[17], fs_in.uv_out); break; case 18: texColor = texture(textures[18], fs_in.uv_out); break; case 19: texColor = texture(textures[19], fs_in.uv_out); break; case 20: texColor = texture(textures[20], fs_in.uv_out); break; case 21: texColor = texture(textures[21], fs_in.uv_out); break; case 22: texColor = texture(textures[22], fs_in.uv_out); break; case 23: texColor = texture(textures[23], fs_in.uv_out); break; case 24: texColor = texture(textures[24], fs_in.uv_out); break; case 25: texColor = texture(textures[25], fs_in.uv_out); break; case 26: texColor = texture(textures[26], fs_in.uv_out); break; case 27: texColor = texture(textures[27], fs_in.uv_out); break; case 28: texColor = texture(textures[28], fs_in.uv_out); break; case 29: texColor = texture(textures[29], fs_in.uv_out); break; case 30: texColor = texture(textures[30], fs_in.uv_out); break; case 31: texColor = texture(textures[31], fs_in.uv_out); break; default: texColor = vec4(1,1,1,1); break; } vec4 res = texColor * fs_in.color_out; if(res.a < 0.1) { discard; } color = res; } )";