Some fixes to the OpenGL docs in GUI
Change-Id: I6415ff16b1765a5814d50a4cd39db00495d43073 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
This commit is contained in:
parent
2efaee43f7
commit
508db17de3
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
@ -121,7 +121,7 @@ QMutex QOpenGLContextPrivate::makeCurrentTrackerMutex;
|
|||||||
\l{OpenGL documentation}.
|
\l{OpenGL documentation}.
|
||||||
|
|
||||||
For an example of how to use QOpenGLContext see the
|
For an example of how to use QOpenGLContext see the
|
||||||
\l{gui/openglwindow}{OpenGL Window} example.
|
\l{OpenGL Window Example}{OpenGL Window} example.
|
||||||
|
|
||||||
\section1 Thread affinity
|
\section1 Thread affinity
|
||||||
|
|
||||||
|
@ -63,11 +63,47 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
\ingroup painting-3D
|
\ingroup painting-3D
|
||||||
|
|
||||||
|
The QOpenGLPaintDevice uses the current QOpenGL context to render
|
||||||
|
QPainter draw commands. It requires OpenGL (ES) 2.0 support or
|
||||||
|
higher.
|
||||||
|
|
||||||
|
\section1 Performance
|
||||||
|
|
||||||
|
The QOpenGLPaintDevice is almost always hardware accelerated and
|
||||||
|
has the potential of being much faster than software
|
||||||
|
rasterization. However, it is more sensitive to state changes, and
|
||||||
|
therefore requires the drawing commands to be carefully ordered to
|
||||||
|
achieve optimal performance.
|
||||||
|
|
||||||
|
\section1 Antialiasing and Quality
|
||||||
|
|
||||||
|
Antialiasing in the OpenGL paint engine is done using
|
||||||
|
multisampling. Most hardware require significantly more memory to
|
||||||
|
do multisampling and the resulting quality is not on par with the
|
||||||
|
quality of the software paint engine. The OpenGL paint engine's
|
||||||
|
strenght lies in its performance, not its visual rendering
|
||||||
|
quality.
|
||||||
|
|
||||||
|
\section1 State Changes
|
||||||
|
|
||||||
When painting to a QOpenGLPaintDevice using QPainter, the state of
|
When painting to a QOpenGLPaintDevice using QPainter, the state of
|
||||||
the current OpenGL context will be altered by the paint engine to reflect
|
the current OpenGL context will be altered by the paint engine to
|
||||||
its needs. Applications should not rely upon the OpenGL state being reset
|
reflect its needs. Applications should not rely upon the OpenGL
|
||||||
to its original conditions, particularly the current shader program,
|
state being reset to its original conditions, particularly the
|
||||||
OpenGL viewport, texture units, and drawing modes.
|
current shader program, OpenGL viewport, texture units, and
|
||||||
|
drawing modes.
|
||||||
|
|
||||||
|
\section1 Mixing QPainter and OpenGL
|
||||||
|
|
||||||
|
When intermixing QPainter and OpenGL, it is important to notify
|
||||||
|
QPainter that the OpenGL state may have been cluttered so it can
|
||||||
|
restore its internal state. This is acheived by calling \l
|
||||||
|
QPainter::beginNativePainting() before starting the OpenGL
|
||||||
|
rendering and calling \l QPainter::endNativePainting() after
|
||||||
|
finishing.
|
||||||
|
|
||||||
|
\sa {OpenGL Window Example}
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class QOpenGLPaintDevicePrivate
|
class QOpenGLPaintDevicePrivate
|
||||||
|
Loading…
x
Reference in New Issue
Block a user