fog_density = 0;
- vbuf = fbuf = svbuf = 0;
+ default_vs_ub = 0;
+ default_fs_ub = 0;
+ sky_vs_ub = 0;
}
Renderer::~Renderer()
{
- delete vbuf;
- delete fbuf;
- delete svbuf;
+ delete default_vs_ub;
+ delete default_fs_ub;
+ delete sky_vs_ub;
}
bool Renderer::create()
{
//debug
// if(!(nprog = sdr_man->create_shader_program("debug.v.glsl", "debug.f.glsl"))) {
- // fprintf(stderr, "Failed to load debug shaders.\n");
+ // fprin
+ // tf(stderr, "Failed to load debug shaders.\n");
// }
- vbuf = gfx_create_uniform_buffer();
- if(!vbuf->create(sizeof vu)) {
+ default_vs_ub = gfx_create_uniform_buffer();
+ if(!default_vs_ub->create(sizeof default_vs_uniforms)) {
fprintf(stderr, "Failed to create uniform buffer.\n");
return false;
}
- fbuf = gfx_create_uniform_buffer();
- if(!fbuf->create(sizeof fu)) {
+ default_fs_ub = gfx_create_uniform_buffer();
+ if(!default_fs_ub->create(sizeof default_fs_uniforms)) {
fprintf(stderr, "Failed to create uniform buffer.\n");
return false;
}
- svbuf = gfx_create_uniform_buffer();
- if(!svbuf->create(sizeof svu)) {
+ sky_vs_ub = gfx_create_uniform_buffer();
+ if(!sky_vs_ub->create(sizeof sky_vs_uniforms)) {
fprintf(stderr, "Failed to create uniform buffer.\n");
return false;
}
/* 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;
+ default_fs_uniforms.diffuse = Vec4(m->diffuse.x, m->diffuse.y, m->diffuse.z, 1.0);
+ default_fs_uniforms.specular = Vec4(m->specular.x, m->specular.y, m->specular.z, 1.0);
+ default_fs_uniforms.shininess = m->shininess;
+ default_fs_uniforms.fog_density = fog_density;
- fbuf->update(&fu);
- fbuf->bind(SHADING_UNIFORMS);
+ default_fs_ub->update(&default_fs_uniforms);
+ default_fs_ub->bind(SHADING_UNIFORMS);
/* texture */
/* setting uniforms for matrices */
- vu.mview = object->transform * camera->get_view_matrix();
- vu.mmviewproj = object->transform * camera->get_view_matrix() * mprojection;
- vu.mmod = object->transform.upper3x3();
+ default_vs_uniforms.mview = object->transform * camera->get_view_matrix();
+ default_vs_uniforms.mmviewproj = object->transform * camera->get_view_matrix() * mprojection;
+ default_vs_uniforms.mmod = object->transform.upper3x3();
- vbuf->update(&vu);
- vbuf->bind(MATRIX_UNIFORMS);
+ default_vs_ub->update(&default_vs_uniforms);
+ default_vs_ub->bind(MATRIX_UNIFORMS);
object->mesh->draw();
#ifdef DRAW_NORMALS
if(nprog) {
vu.mmviewproj = mmviewproj;
- vbuf->update(&vu);
- vbuf->bind(MATRIX_UNIFORMS);
+ default_vs_ub->update(&vu);
+ default_vs_ub->bind(MATRIX_UNIFORMS);
nprog->use();
object->mesh->draw_normals(1.0);
skytex->bind();
skyprog->use();
- svu.mviewproj = camera->get_view_matrix().upper3x3() * mprojection;
- svbuf->update(&svu);
- svbuf->bind(SKY_MATRIX_UNIFORMS);
+ sky_vs_uniforms.mviewproj = camera->get_view_matrix().upper3x3() * mprojection;
+ sky_vs_ub->update(&sky_vs_uniforms);
+ sky_vs_ub->bind(SKY_MATRIX_UNIFORMS);
skymesh->draw();