git-svn-id: svn://db.shs.com.ru/libs@536 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -59,7 +59,7 @@ fbo_g(5, true, GL_RGBA16F), fbo_out(3, false, GL_RGBA16F), fbo_hsmall(1, false,
|
||||
|
||||
RendererDeferredShading::~RendererDeferredShading() {
|
||||
for (int i = 0; i < shaders.size(); ++i) {
|
||||
__GLShaderProgram__ * p(*(shaders[i].second));
|
||||
QOpenGLShaderProgram * p(*(shaders[i].second));
|
||||
if (p) delete p;
|
||||
}
|
||||
delete df;
|
||||
@@ -88,15 +88,15 @@ void RendererDeferredShading::renderScene() {
|
||||
fbo_g.bind();
|
||||
int buffs[] = {0, 1, 2, 3, 4};
|
||||
fbo_g.setWriteBuffers(buffs, 5);
|
||||
if (white_image_id == 0 && currentGLTextureManager) {
|
||||
if (white_image_id == 0) {
|
||||
glActiveTextureChannel(6);
|
||||
white_image_id = ((GLTextureManagerBase*)currentGLTextureManager)->loadTexture(white_image, false);
|
||||
white_image_id = view.textureManager()->loadTexture(white_image, false);
|
||||
glBindTexture(GL_TEXTURE_2D, white_image_id);
|
||||
glActiveTextureChannel(0);
|
||||
}
|
||||
if (violent_image_id == 0 && currentGLTextureManager) {
|
||||
if (violent_image_id == 0) {
|
||||
glActiveTextureChannel(7);
|
||||
violent_image_id = ((GLTextureManagerBase*)currentGLTextureManager)->loadTexture(violent_image, false);
|
||||
violent_image_id = view.textureManager()->loadTexture(violent_image, false);
|
||||
glBindTexture(GL_TEXTURE_2D, violent_image_id);
|
||||
glActiveTextureChannel(0);
|
||||
}
|
||||
@@ -112,7 +112,7 @@ void RendererDeferredShading::renderScene() {
|
||||
shader_ds_0->setUniformValue("t2", 2);
|
||||
shader_ds_0->setUniformValue("t3", 3);
|
||||
shader_ds_0->setUniformValue("t4", 4);
|
||||
shader_ds_0->setUniformValue("dt", QVector2D(1. / view.viewport()->width(), 1. / view.viewport()->height()));
|
||||
shader_ds_0->setUniformValue("dt", QVector2D(1. / view.width(), 1. / view.height()));
|
||||
//qDebug() << rp.view_matrix << prev_view;
|
||||
//shader_ds_0->setUniformValue("qgl_ModelViewMatrix", rp.view_matrix);
|
||||
renderObjects(GLObjectBase::Solid, 0, shader_ds_0, true, false, false);
|
||||
@@ -170,7 +170,7 @@ void RendererDeferredShading::renderScene() {
|
||||
shader_ds_1->setUniformValue("mat_viewi", mviewi);
|
||||
shader_ds_1->setUniformValue("mat_viewproji", mviewproji);
|
||||
shader_ds_1->setUniformValue("shadow_on", view.isFeatureEnabled(QGLView::qglShadowsEnabled) ? 1 : 0);
|
||||
shader_ds_1->setUniformValue("dt", QVector2D(1. / view.viewport()->width(), 1. / view.viewport()->height()));
|
||||
shader_ds_1->setUniformValue("dt", QVector2D(1. / view.width(), 1. / view.height()));
|
||||
rp.setUniform(shader_ds_1);
|
||||
fbo_g.bindColorTextures();
|
||||
fbo_g.bindDepthTexture(5);
|
||||
@@ -507,7 +507,7 @@ void RendererDeferredShading::renderScene() {
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
shader_fxaa->bind();
|
||||
shader_fxaa->setUniformValue("dt", QVector2D(1. / view.viewport()->width(), 1. / view.viewport()->height()));
|
||||
shader_fxaa->setUniformValue("dt", QVector2D(1. / view.width(), 1. / view.height()));
|
||||
} else {
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
@@ -521,9 +521,7 @@ void RendererDeferredShading::renderScene() {
|
||||
|
||||
|
||||
void RendererDeferredShading::init(int width, int height) {
|
||||
#if QT_VERSION >= 0x050600
|
||||
initializeOpenGLFunctions();
|
||||
#endif
|
||||
resize(width, height);
|
||||
}
|
||||
|
||||
@@ -532,15 +530,15 @@ void RendererDeferredShading::resize(int width, int height) {
|
||||
fbo_g.resize(width, height);
|
||||
fbo_out.resize(width, height);
|
||||
fbo_hsmall.resize(width / 16, height / 16);
|
||||
view.setSceneRect(QRect(0, 0, width, height));
|
||||
// view.setSceneRect(QRect(0, 0, width, height));
|
||||
//df->move(-width / 2, -height / 2);
|
||||
}
|
||||
|
||||
|
||||
void RendererDeferredShading::reloadShaders() {
|
||||
for (int i = 0; i < shaders.size(); ++i) {
|
||||
__GLShaderProgram__ * p(*(shaders[i].second));
|
||||
if (!p) p = new __GLShaderProgram__(view.context());
|
||||
QOpenGLShaderProgram * p(*(shaders[i].second));
|
||||
if (!p) p = new QOpenGLShaderProgram(view.context());
|
||||
loadShaders(p, shaders[i].first, "shaders");
|
||||
*(shaders[i].second) = p;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user