git-svn-id: svn://db.shs.com.ru/libs@666 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -217,14 +217,10 @@ void Framebuffer::blit(int index_from, GLuint fb_to, int index_to, QRect from, Q
|
||||
void Framebuffer::bind() {
|
||||
if (is_changed) resize(wid, hei);
|
||||
if (fbo == 0) return;
|
||||
//glFlush();
|
||||
f->glGetIntegerv(GL_VIEWPORT, prev_view);
|
||||
//glClearError();
|
||||
f->glBindFramebuffer(GL_FRAMEBUFFER, fbo);
|
||||
//qDebug() << QString::number(glGetError(), 16);
|
||||
setWriteBuffers();
|
||||
f->glReadBuffer(GL_COLOR_ATTACHMENT0);
|
||||
//f->glDrawBuffer(GL_COLOR_ATTACHMENT0);
|
||||
f->glViewport(0, 0, wid, hei);
|
||||
}
|
||||
|
||||
@@ -232,7 +228,6 @@ void Framebuffer::bind() {
|
||||
void Framebuffer::release() {
|
||||
is_changed = false;
|
||||
if (fbo == 0) return;
|
||||
//glFlush();
|
||||
f->glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||
f->glViewport(prev_view[0], prev_view[1], prev_view[2], prev_view[3]);
|
||||
}
|
||||
@@ -245,7 +240,7 @@ void Framebuffer::setWriteBuffer(int index) {
|
||||
}
|
||||
|
||||
|
||||
void Framebuffer::setWriteBuffers(int * indeces, int count) {
|
||||
void Framebuffer::setWriteBuffers(const int * indeces, int count) {
|
||||
unsetWriteBuffers();
|
||||
QVector<GLenum> buffers;
|
||||
for (int i = 0; i < count; ++i)
|
||||
|
||||
@@ -57,7 +57,8 @@ public:
|
||||
void release();
|
||||
void setReadBuffer(int index) {glReadBuffer(GL_COLOR_ATTACHMENT0 + index);}
|
||||
void setWriteBuffer(int index);
|
||||
void setWriteBuffers(int * indeces, int count);
|
||||
void setWriteBuffers(const int * indeces, int count);
|
||||
void setWriteBuffers(const QVector<int> & indeces) {setWriteBuffers(indeces.constData(), indeces.size());}
|
||||
void setWriteBuffers();
|
||||
void unsetWriteBuffers();
|
||||
//void setColorFormat(GLenum format) {color_format = format; is_changed = true;}
|
||||
|
||||
@@ -29,7 +29,7 @@ bool addShader(QOpenGLShaderProgram * prog, QOpenGLShader::ShaderType type, QStr
|
||||
content.clear();
|
||||
return true;
|
||||
}
|
||||
//qDebug() << "[QGLView] Shader" << file << "found" << (QOpenGLShader::ShaderTypeBit)(int)type << "section ...";
|
||||
//qDebug() << "[QGLEngine] Shader" << file << "found" << (QOpenGLShader::ShaderTypeBit)(int)type << "section ...";
|
||||
if (add_qgl) {
|
||||
switch (type) {
|
||||
case QOpenGLShader::Fragment:
|
||||
@@ -48,7 +48,7 @@ bool addShader(QOpenGLShaderProgram * prog, QOpenGLShader::ShaderType type, QStr
|
||||
content.prepend(defs);
|
||||
content.prepend(qgl_common_head);
|
||||
bool ret = prog->addShaderFromSourceCode(type, content.toLatin1());
|
||||
if (!ret) qDebug() << "[QGLView] Shader" << file << "Compile error:\n" << prog->log();
|
||||
if (!ret) qDebug() << "[QGLEngine] Shader" << file << "Compile error:\n" << prog->log();
|
||||
content.clear();
|
||||
return ret;
|
||||
}
|
||||
@@ -69,7 +69,7 @@ bool QGLEngineShaders::loadShadersMulti(QOpenGLShaderProgram *& prog, const QStr
|
||||
prog->removeAllShaders();
|
||||
QFile f(file);
|
||||
if (!f.open(QIODevice::ReadOnly)) {
|
||||
qDebug() << "[QGLView] Shader" << file << "Error: can`t open file!";
|
||||
qDebug() << "[QGLEngine] Shader" << file << "Error: can`t open file!";
|
||||
return false;
|
||||
}
|
||||
QTextStream ts(&f);
|
||||
@@ -109,10 +109,10 @@ bool QGLEngineShaders::loadShadersMulti(QOpenGLShaderProgram *& prog, const QStr
|
||||
}
|
||||
if (!addShader(prog, type, cur_shader, file, add_qgl, defs)) return false;
|
||||
if (!prog->link()) {
|
||||
qDebug() << "[QGLView] Shader" << file << "Link error:\n" << prog->log();
|
||||
qDebug() << "[QGLEngine] Shader" << file << "Link error:\n" << prog->log();
|
||||
return false;
|
||||
}
|
||||
qDebug() << "[QGLView] Shader" << file << "ok";
|
||||
qDebug() << "[QGLEngine] Shader" << file << "ok";
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -131,16 +131,16 @@ bool QGLEngineShaders::loadShaders(QOpenGLShaderProgram *& prog, const QStringLi
|
||||
if (type == 0) continue;
|
||||
QFile file(f);
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
qDebug() << "[QGLView] Shader" << f << "Error: can`t open file!";
|
||||
qDebug() << "[QGLEngine] Shader" << f << "Error: can`t open file!";
|
||||
return false;
|
||||
}
|
||||
cur_shader = file.readAll();
|
||||
if (!addShader(prog, type, cur_shader, f, add_qgl, defs)) return false;
|
||||
}
|
||||
if (!prog->link()) {
|
||||
qDebug() << "[QGLView] Shader" << files << "Link error:\n" << prog->log();
|
||||
qDebug() << "[QGLEngine] Shader" << files << "Link error:\n" << prog->log();
|
||||
return false;
|
||||
}
|
||||
qDebug() << "[QGLView] Shader" << files << "ok";
|
||||
qDebug() << "[QGLEngine] Shader" << files << "ok";
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user