#version 330 core uniform vec2 screenSize; VSH_BEGIN layout (location = 0) in vec3 aPos; layout (location = 1) in vec3 aColor; layout (location = 2) in vec2 aTexCoord; out vec3 ourColor; out vec2 TexCoord; void main() { gl_Position = vec4(aPos, 1.0); ourColor = aColor; TexCoord = vec2(aTexCoord.x, aTexCoord.y); } VSH_END FSH_BEGIN out vec4 FragColor; in vec3 ourColor; in vec2 TexCoord; uniform float mixValue; // texture samplers uniform sampler2D texture1; uniform sampler2D texture2; void main() { // linearly interpolate between both textures FragColor = mix(texture(texture1, TexCoord), texture(texture2, TexCoord), mixValue); } FSH_END