git-svn-id: svn://db.shs.com.ru/libs@663 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-12-08 22:53:21 +00:00
parent da962779d8
commit 1a210defb1
19 changed files with 4598 additions and 197 deletions

View File

@@ -67,6 +67,7 @@ Renderer::Renderer(QGLView * view_): RendererBase(view_),
<< ShaderPair("ssao_blur", &shader_ssao_blur)
<< ShaderPair("ssao_merge", &shader_ssao_merge)
<< ShaderPair("dof", &shader_dof);*/
shader_fxaa = 0;
exposure_ = 1.;
edit_mode = need_init_shaders = is_camera_light = true;
}
@@ -76,6 +77,7 @@ Renderer::~Renderer() {
delete quad;
delete cam_light;
qDeleteAll(shaders.values());
if (shader_fxaa) delete shader_fxaa;
}
@@ -109,6 +111,9 @@ void Renderer::reloadShaders() {
loadShadersMulti(shaders[it.key()], dir + it.value(), true, shader_defines.value(it.key()));
}
loadShadersMulti(tone_proc.shader_sum, dir + "sum.glsl", false);
QStringList fxaa_defs;
fxaa_defs << "FXAA_PC 1" << "FXAA_GLSL_130 1" << "FXAA_QUALITY__PRESET 20";
loadShaders(shader_fxaa, QStringList() << (dir + "fxaa.vert") << (dir + "fxaa.frag"), true, fxaa_defs);
need_init_shaders = true;
view->scene()->setLightsChanged();
view->scene()->setTreeStructChanged();
@@ -126,6 +131,14 @@ bool Renderer::bindShader(Renderer::ShaderRole role, QOpenGLShaderProgram ** ret
}
bool Renderer::bindShader(QOpenGLShaderProgram * sp) {
if (!sp) return true;
if (!sp->isLinked()) return true;
if (!sp->bind()) return false;
return true;
}
void Renderer::initShaders() {
if (!need_init_shaders) return;
need_init_shaders = false;