- /* diffuse */
- int diff_loc;
- if((diff_loc = sprog->get_uniform_location("diffuse")) != -1) {
- sprog->set_uniformf(diff_loc, m->diffuse.x, m->diffuse.y, m->diffuse.z, 1);
- }
- /* specular */
- int spec_loc;
- if((spec_loc = sprog->get_uniform_location("specular")) != -1) {
- sprog->set_uniformf(spec_loc, m->specular.x, m->specular.y, m->specular.z, 1);
- }
- /* specular exponent */
- int shin_loc;
- if((shin_loc = sprog->get_uniform_location("shininess")) != -1) {
- sprog->set_uniformf(shin_loc, m->shininess);
- }
+
+ /* setting uniforms for material */
+
+ fu.diffuse = Vec4(m->diffuse.x, m->diffuse.y, m->diffuse.z, 1.0);
+ fu.specular = Vec4(m->specular.x, m->specular.y, m->specular.z, 1.0);
+ fu.shininess = m->shininess;
+ fu.fog_density = fog_density;
+
+ fbuf->update(&fu);
+ fbuf->bind(SHADING_UNIFORMS);
+