From 27ab0f012a1099267888ed0e8ab9700efffec0f4 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 15 Mar 2023 12:11:15 +0100 Subject: Add QOpenGLWindow/Widget doc note about depth/stencil Pick-to: 6.5 6.2 5.15 Fixes: QTBUG-108050 Change-Id: If011d6efff996870ff23eff3c2d1cf455d31b7a6 Reviewed-by: Kristoffer Skau Reviewed-by: Andy Nichols --- src/opengl/qopenglwindow.cpp | 17 +++++++++++++++++ src/openglwidgets/qopenglwidget.cpp | 7 +++++++ 2 files changed, 24 insertions(+) diff --git a/src/opengl/qopenglwindow.cpp b/src/opengl/qopenglwindow.cpp index e29c79fdcb0..b2a1a35a903 100644 --- a/src/opengl/qopenglwindow.cpp +++ b/src/opengl/qopenglwindow.cpp @@ -60,6 +60,23 @@ QT_BEGIN_NAMESPACE given OpenGL version and profile, or enabling depth and stencil buffers. + \note It is up to the application to ensure depth and stencil buffers are + requested from the underlying windowing system interface. Without requesting + a non-zero depth buffer size there is no guarantee that a depth buffer will + be available, and as a result depth testing related OpenGL operations may fail + to function as expected. + + Commonly used depth and stencil buffer size requests are 24 and 8, + respectively. For example, a QOpenGLWindow subclass could do this in its + constructor: + + \code + QSurfaceFormat format; + format.setDepthBufferSize(24); + format.setStencilBufferSize(8); + setFormat(format); + \endcode + Unlike QWindow, QOpenGLWindow allows opening a painter on itself and perform QPainter-based drawing. diff --git a/src/openglwidgets/qopenglwidget.cpp b/src/openglwidgets/qopenglwidget.cpp index 6c3a412219a..d5f4e769d96 100644 --- a/src/openglwidgets/qopenglwidget.cpp +++ b/src/openglwidgets/qopenglwidget.cpp @@ -178,6 +178,13 @@ QT_BEGIN_NAMESPACE \snippet code/doc_gui_widgets_qopenglwidget.cpp 2 + \note It is up to the application to ensure depth and stencil buffers are + requested from the underlying windowing system interface. Without requesting + a non-zero depth buffer size there is no guarantee that a depth buffer will + be available, and as a result depth testing related OpenGL operations may + fail to function as expected. Commonly used depth and stencil buffer size + requests are 24 and 8, respectively. + With OpenGL 3.0+ contexts, when portability is not important, the versioned QOpenGLFunctions variants give easy access to all the modern OpenGL functions available in a given version: -- cgit v1.2.3