# HG changeset patch # User Matti Hamalainen # Date 1576371279 -7200 # Node ID 71f6c5cc8eec47900476eabbcddabe3e9b218b76 # Parent e8100c1c5d997927a07c057be47751952705049d Add 'ftime' uniform for shaders, which is time in milliseconds from start of rendering loop. diff -r e8100c1c5d99 -r 71f6c5cc8eec dmglexts.h --- a/dmglexts.h Sun Dec 15 02:53:49 2019 +0200 +++ b/dmglexts.h Sun Dec 15 02:54:39 2019 +0200 @@ -16,6 +16,7 @@ DM_GLEXT_INIT(PFNGLSHADERSOURCEPROC, glShaderSource) DM_GLEXT_INIT(PFNGLUNIFORM1IPROC, glUniform1i) +DM_GLEXT_INIT(PFNGLUNIFORM1FPROC, glUniform1f) DM_GLEXT_INIT(PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog) DM_GLEXT_INIT(PFNGLGETSHADERIVPROC, glGetShaderiv) diff -r e8100c1c5d99 -r 71f6c5cc8eec dmglrender.cpp --- a/dmglrender.cpp Sun Dec 15 02:53:49 2019 +0200 +++ b/dmglrender.cpp Sun Dec 15 02:54:39 2019 +0200 @@ -252,6 +252,7 @@ // Enable shader program glUseProgram(model.id_prog); glUniform1i(glGetUniformLocation(model.id_prog, "nlights"), scene.lights.size()); + glUniform1f(glGetUniformLocation(model.id_prog, "ftime"), time); } // Set the material of the model diff -r e8100c1c5d99 -r 71f6c5cc8eec shader.frag --- a/shader.frag Sun Dec 15 02:53:49 2019 +0200 +++ b/shader.frag Sun Dec 15 02:54:39 2019 +0200 @@ -1,6 +1,7 @@ varying vec3 snormal; varying vec3 svertex; uniform int nlights; +uniform float ftime; float maxdot(vec3 sveca, vec3 svecb) @@ -22,7 +23,7 @@ //vec4 poo = vec4(0.0, 0.0, 0.0, 0.0); vec4 poo = gl_FragCoord; //poo += vec4(snormal.x, snormal.y, snormal.z, 0.0); - vec4 finalColor = vec4(poo.x * 0.1, poo.y * 0.001, poo.z, 1.0); + vec4 finalColor = vec4(poo.x * 0.1, poo.y * 0.001, poo.z + sin(ftime * 0.001), 1.0); for (int i = 0; i < nlights; i++) {