#include #include #include #include "uniform.h" #include "consts.h" int time_start = 0; GLFWwindow* window = NULL; void init_uniforms() { window = glfwGetCurrentContext(); time_start = time(NULL); } //! update `uniform float time` static void update_u_time() { struct timeval t; gettimeofday(&t, NULL); t.tv_sec -= time_start; float time = t.tv_sec + (t.tv_usec / 1e6); glUniform1f(U_LOC_TIME, time); } //! update `uniform ivec2 window` static void update_u_window() { int width, height; glfwGetWindowSize(window, &width, &height); glUniform2i(U_LOC_WINDOW, width, height); } void update_uniforms() { update_u_time(); update_u_window(); }