glVertexAttribPointer(position_attrib, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0));
uniform_tex = glGetUniformLocation(derivatives_program, "tex");
glVertexAttribPointer(position_attrib, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0));
uniform_tex = glGetUniformLocation(derivatives_program, "tex");