Skip to content

Commit

Permalink
Some fixes to the OpenGL docs in GUI
Browse files Browse the repository at this point in the history
Change-Id: I6415ff16b1765a5814d50a4cd39db00495d43073
Reviewed-by: Paul Olav Tvete <[email protected]>
  • Loading branch information
Gunnar Sletta authored and The Qt Project committed Dec 12, 2012
1 parent 2efaee4 commit 508db17
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 5 deletions.
File renamed without changes
2 changes: 1 addition & 1 deletion src/gui/kernel/qopenglcontext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ QMutex QOpenGLContextPrivate::makeCurrentTrackerMutex;
\l{OpenGL documentation}.
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
Expand Down
44 changes: 40 additions & 4 deletions src/gui/opengl/qopenglpaintdevice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,47 @@ QT_BEGIN_NAMESPACE
\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
the current OpenGL context will be altered by the paint engine to reflect
its needs. Applications should not rely upon the OpenGL state being reset
to its original conditions, particularly the current shader program,
OpenGL viewport, texture units, and drawing modes.
the current OpenGL context will be altered by the paint engine to
reflect its needs. Applications should not rely upon the OpenGL
state being reset to its original conditions, particularly the
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
Expand Down

0 comments on commit 508db17

Please sign in to comment.