Qt 4.8
qt-4.8.6
src
opengl
qwindowsurface_gl_p.h
Go to the documentation of this file.
1
/****************************************************************************
2
**
3
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/legal
5
**
6
** This file is part of the QtOpenGL module of the Qt Toolkit.
7
**
8
** $QT_BEGIN_LICENSE:LGPL$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and Digia. For licensing terms and
14
** conditions see http://qt.digia.com/licensing. For further information
15
** use the contact form at http://qt.digia.com/contact-us.
16
**
17
** GNU Lesser General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU Lesser
19
** General Public License version 2.1 as published by the Free Software
20
** Foundation and appearing in the file LICENSE.LGPL included in the
21
** packaging of this file. Please review the following information to
22
** ensure the GNU Lesser General Public License version 2.1 requirements
23
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24
**
25
** In addition, as a special exception, Digia gives you certain additional
26
** rights. These rights are described in the Digia Qt LGPL Exception
27
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28
**
29
** GNU General Public License Usage
30
** Alternatively, this file may be used under the terms of the GNU
31
** General Public License version 3.0 as published by the Free Software
32
** Foundation and appearing in the file LICENSE.GPL included in the
33
** packaging of this file. Please review the following information to
34
** ensure the GNU General Public License version 3.0 requirements will be
35
** met: http://www.gnu.org/copyleft/gpl.html.
36
**
37
**
38
** $QT_END_LICENSE$
39
**
40
****************************************************************************/
41
42
#ifndef QWINDOWSURFACE_GL_P_H
43
#define QWINDOWSURFACE_GL_P_H
44
45
//
46
// W A R N I N G
47
// -------------
48
//
49
// This file is not part of the Qt API. It exists for the convenience
50
// of the QLibrary class. This header file may change from
51
// version to version without notice, or even be removed.
52
//
53
// We mean it.
54
//
55
56
#include <
qglobal.h
>
57
#include <
qgl.h
>
58
#include <private/qwindowsurface_p.h>
59
#include <private/qglpaintdevice_p.h>
60
61
QT_BEGIN_NAMESPACE
62
63
class
QPaintDevice
;
64
class
QPoint
;
65
class
QRegion
;
66
class
QWidget
;
67
struct
QGLWindowSurfacePrivate
;
68
69
Q_OPENGL_EXPORT
QGLWidget
*
qt_gl_share_widget
();
70
Q_OPENGL_EXPORT
void
qt_destroy_gl_share_widget
();
71
bool
qt_initializing_gl_share_widget
();
72
73
class
QGLWindowSurfaceGLPaintDevice
:
public
QGLPaintDevice
74
{
75
public
:
76
QPaintEngine
*
paintEngine
()
const
;
77
QSize
size
()
const
;
78
int
metric
(
PaintDeviceMetric
m)
const
;
79
QGLContext
*
context
()
const
;
80
QGLWindowSurfacePrivate
*
d
;
81
};
82
83
class
Q_OPENGL_EXPORT
QGLWindowSurface
:
public
QObject
,
public
QWindowSurface
// , public QPaintDevice
84
{
85
Q_OBJECT
86
public
:
87
QGLWindowSurface
(
QWidget
*
window
);
88
~
QGLWindowSurface
();
89
90
QPaintDevice
*paintDevice();
91
void
flush
(
QWidget
*
widget
,
const
QRegion
®ion,
const
QPoint
&offset);
92
93
#if !defined(Q_WS_QPA)
94
void
setGeometry(
const
QRect
&rect);
95
#else
96
virtual
void
resize(
const
QSize
&
size
);
97
#endif
98
99
void
updateGeometry();
100
bool
scroll(
const
QRegion
&
area
,
int
dx,
int
dy);
101
102
void
beginPaint
(
const
QRegion
®ion);
103
void
endPaint
(
const
QRegion
®ion);
104
105
QImage
*buffer(
const
QWidget
*widget);
106
107
WindowSurfaceFeatures features()
const
;
108
109
QGLContext
*
context
()
const
;
110
111
static
QGLFormat
surfaceFormat
;
112
113
enum
SwapMode
{ AutomaticSwap, AlwaysFullSwap, AlwaysPartialSwap, KillSwap };
114
static
SwapMode
swapBehavior
;
115
116
private
slots
:
117
void
deleted(
QObject
*
object
);
118
119
private
:
120
void
hijackWindow(
QWidget
*widget);
121
bool
initializeOffscreenTexture(
const
QSize
&size);
122
123
QGLWindowSurfacePrivate
*
d_ptr
;
124
};
125
126
QT_END_NAMESPACE
127
128
#endif // QWINDOWSURFACE_GL_P_H
129
qt_initializing_gl_share_widget
bool qt_initializing_gl_share_widget()
Definition:
qwindowsurface_gl.cpp:277
qgl.h
QGLWindowSurface
Definition:
qwindowsurface_gl_p.h:83
QGLWindowSurfaceGLPaintDevice
Definition:
qwindowsurface_gl_p.h:73
qt_destroy_gl_share_widget
Q_OPENGL_EXPORT void qt_destroy_gl_share_widget()
Definition:
qwindowsurface_gl.cpp:271
QT_END_NAMESPACE
#define QT_END_NAMESPACE
This macro expands to.
Definition:
qglobal.h:90
widget
QPointer< QWidget > widget
Definition:
qapplication_mac.mm:879
Q_OPENGL_EXPORT
#define Q_OPENGL_EXPORT
Definition:
qglobal.h:1455
QGLWindowSurfaceGLPaintDevice::size
QSize size() const
Definition:
qwindowsurface_gl.cpp:324
QPaintDevice::PaintDeviceMetric
PaintDeviceMetric
Definition:
qpaintdevice.h:63
QWidget
The QWidget class is the base class of all user interface objects.
Definition:
qwidget.h:150
QGLWindowSurfaceGLPaintDevice::context
QGLContext * context() const
Definition:
qwindowsurface_gl.cpp:329
QGLPaintDevice
Definition:
qglpaintdevice_p.h:63
QObject
The QObject class is the base class of all Qt objects.
Definition:
qobject.h:111
QGLWindowSurfaceGLPaintDevice::paintEngine
QPaintEngine * paintEngine() const
Definition:
qwindowsurface_gl.cpp:340
window
NSWindow * window
Definition:
qcocoasharedwindowmethods_mac_p.h:583
QT_BEGIN_NAMESPACE
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition:
qglobal.h:89
QPaintDevice
Definition:
qpaintdevice.h:60
QGLWindowSurface::swapBehavior
static SwapMode swapBehavior
Definition:
qwindowsurface_gl_p.h:114
QGLFormat
The QGLFormat class specifies the display format of an OpenGL rendering context.
Definition:
qgl.h:175
qglobal.h
QGLContext
The QGLContext class encapsulates an OpenGL rendering context.
Definition:
qgl.h:310
QGLWindowSurface::surfaceFormat
static QGLFormat surfaceFormat
Definition:
qwindowsurface_gl_p.h:111
QImage
The QImage class provides a hardware-independent image representation that allows direct access to th...
Definition:
qimage.h:87
QRegion
The QRegion class specifies a clip region for a painter.
Definition:
qregion.h:68
QPaintEngine
The QPaintEngine class provides an abstract definition of how QPainter draws to a given device on a g...
Definition:
qpaintengine.h:90
QGLWindowSurfaceGLPaintDevice::metric
int metric(PaintDeviceMetric m) const
Definition:
qwindowsurface_gl.cpp:335
Q_OBJECT
#define Q_OBJECT
Definition:
qobjectdefs.h:157
QWindowSurface
The QWindowSurface class provides the drawing area for top-level windows.
Definition:
qwindowsurface_p.h:68
QGLWindowSurface::SwapMode
SwapMode
Definition:
qwindowsurface_gl_p.h:113
QGLWidget
The QGLWidget class is a widget for rendering OpenGL graphics.
Definition:
qgl.h:474
QGLPaintDevice::beginPaint
virtual void beginPaint()
Definition:
qglpaintdevice.cpp:83
QPoint
The QPoint class defines a point in the plane using integer precision.
Definition:
qpoint.h:53
qt_gl_share_widget
Q_OPENGL_EXPORT QGLWidget * qt_gl_share_widget()
Definition:
qwindowsurface_gl.cpp:264
QRect
The QRect class defines a rectangle in the plane using integer precision.
Definition:
qrect.h:58
QGLWindowSurfaceGLPaintDevice::d
QGLWindowSurfacePrivate * d
Definition:
qwindowsurface_gl_p.h:80
QGLWindowSurfacePrivate
Definition:
qwindowsurface_gl.cpp:292
flush
Q_CORE_EXPORT QTextStream & flush(QTextStream &s)
QSize
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition:
qsize.h:53
slots
#define slots
Definition:
qobjectdefs.h:68
QGLWindowSurface::d_ptr
QGLWindowSurfacePrivate * d_ptr
Definition:
qwindowsurface_gl_p.h:123
area
static int area(const QSize &s)
Definition:
qicon.cpp:155
QGLPaintDevice::endPaint
virtual void endPaint()
Definition:
qglpaintdevice.cpp:126
Qt 4.8 Source Code Browser