Fixed crash in QOpenGLFramebufferObject.
AMD's Catalyst driver returns true in glIsRenderbuffer() for a newly gen'ed render buffer. Change-Id: I177425dc4b94923431cec5f89175c63782819eef Reviewed-on: http://codereview.qt-project.org/5522 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
This commit is contained in:
parent
eddd87826e
commit
d7836ec1bd
@ -470,7 +470,6 @@ void QOpenGLFramebufferObjectPrivate::init(QOpenGLFramebufferObject *, const QSi
|
|||||||
{
|
{
|
||||||
// depth and stencil buffer needs another extension
|
// depth and stencil buffer needs another extension
|
||||||
funcs.glGenRenderbuffers(1, &depth_buffer);
|
funcs.glGenRenderbuffers(1, &depth_buffer);
|
||||||
Q_ASSERT(!funcs.glIsRenderbuffer(depth_buffer));
|
|
||||||
funcs.glBindRenderbuffer(GL_RENDERBUFFER, depth_buffer);
|
funcs.glBindRenderbuffer(GL_RENDERBUFFER, depth_buffer);
|
||||||
Q_ASSERT(funcs.glIsRenderbuffer(depth_buffer));
|
Q_ASSERT(funcs.glIsRenderbuffer(depth_buffer));
|
||||||
if (samples != 0 && funcs.hasOpenGLExtension(QOpenGLExtensions::FramebufferMultisample))
|
if (samples != 0 && funcs.hasOpenGLExtension(QOpenGLExtensions::FramebufferMultisample))
|
||||||
@ -497,7 +496,6 @@ void QOpenGLFramebufferObjectPrivate::init(QOpenGLFramebufferObject *, const QSi
|
|||||||
|| (attachment == QOpenGLFramebufferObject::Depth)))
|
|| (attachment == QOpenGLFramebufferObject::Depth)))
|
||||||
{
|
{
|
||||||
funcs.glGenRenderbuffers(1, &depth_buffer);
|
funcs.glGenRenderbuffers(1, &depth_buffer);
|
||||||
Q_ASSERT(!funcs.glIsRenderbuffer(depth_buffer));
|
|
||||||
funcs.glBindRenderbuffer(GL_RENDERBUFFER, depth_buffer);
|
funcs.glBindRenderbuffer(GL_RENDERBUFFER, depth_buffer);
|
||||||
Q_ASSERT(funcs.glIsRenderbuffer(depth_buffer));
|
Q_ASSERT(funcs.glIsRenderbuffer(depth_buffer));
|
||||||
if (samples != 0 && funcs.hasOpenGLExtension(QOpenGLExtensions::FramebufferMultisample)) {
|
if (samples != 0 && funcs.hasOpenGLExtension(QOpenGLExtensions::FramebufferMultisample)) {
|
||||||
@ -537,7 +535,6 @@ void QOpenGLFramebufferObjectPrivate::init(QOpenGLFramebufferObject *, const QSi
|
|||||||
|
|
||||||
if (stencil_buffer == 0 && (attachment == QOpenGLFramebufferObject::CombinedDepthStencil)) {
|
if (stencil_buffer == 0 && (attachment == QOpenGLFramebufferObject::CombinedDepthStencil)) {
|
||||||
funcs.glGenRenderbuffers(1, &stencil_buffer);
|
funcs.glGenRenderbuffers(1, &stencil_buffer);
|
||||||
Q_ASSERT(!funcs.glIsRenderbuffer(stencil_buffer));
|
|
||||||
funcs.glBindRenderbuffer(GL_RENDERBUFFER, stencil_buffer);
|
funcs.glBindRenderbuffer(GL_RENDERBUFFER, stencil_buffer);
|
||||||
Q_ASSERT(funcs.glIsRenderbuffer(stencil_buffer));
|
Q_ASSERT(funcs.glIsRenderbuffer(stencil_buffer));
|
||||||
if (samples != 0 && funcs.hasOpenGLExtension(QOpenGLExtensions::FramebufferMultisample)) {
|
if (samples != 0 && funcs.hasOpenGLExtension(QOpenGLExtensions::FramebufferMultisample)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user