Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qsgsoftwarethreadedrenderloop_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#ifndef QSGSOFTWARETHREADEDRENDERLOOP_H
5
#define QSGSOFTWARETHREADEDRENDERLOOP_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#include <private/qsgrenderloop_p.h>
19
20
QT_BEGIN_NAMESPACE
21
22
class
QSGSoftwareRenderThread
;
23
class
QSGSoftwareContext
;
24
25
class
QSGSoftwareThreadedRenderLoop
:
public
QSGRenderLoop
26
{
27
Q_OBJECT
28
public
:
29
QSGSoftwareThreadedRenderLoop
();
30
~QSGSoftwareThreadedRenderLoop
();
31
32
void
show
(
QQuickWindow
*
window
)
override
;
33
void
hide
(
QQuickWindow
*
window
)
override
;
34
void
resize
(
QQuickWindow
*
window
)
override
;
35
void
windowDestroyed
(
QQuickWindow
*
window
)
override
;
36
void
exposureChanged
(
QQuickWindow
*
window
)
override
;
37
QImage
grab
(
QQuickWindow
*
window
)
override
;
38
void
update
(
QQuickWindow
*
window
)
override
;
39
void
maybeUpdate
(
QQuickWindow
*
window
)
override
;
40
void
handleUpdateRequest
(
QQuickWindow
*
window
)
override
;
41
QAnimationDriver
*
animationDriver
()
const override
;
42
QSGContext
*
sceneGraphContext
()
const override
;
43
QSGRenderContext
*
createRenderContext
(
QSGContext
*)
const override
;
44
void
releaseResources
(
QQuickWindow
*
window
)
override
;
45
void
postJob
(
QQuickWindow
*
window
,
QRunnable
*job)
override
;
46
QSurface::SurfaceType
windowSurfaceType
()
const override
;
47
bool
interleaveIncubation
()
const override
;
48
int
flags
()
const override
;
49
50
bool
event
(
QEvent
*e)
override
;
51
52
public
Q_SLOTS
:
53
void
onAnimationStarted
();
54
void
onAnimationStopped
();
55
56
private
:
57
struct
WindowData {
58
QQuickWindow
*window;
59
QSGSoftwareRenderThread
*thread;
60
uint
updateDuringSync : 1;
61
uint
forceRenderPass : 1;
62
};
63
64
WindowData *windowFor(
QQuickWindow
*
window
);
65
66
void
startOrStopAnimationTimer();
67
void
handleExposure(
QQuickWindow
*
window
);
68
void
handleObscurity(WindowData *
w
);
69
void
scheduleUpdate(WindowData *
w
);
70
void
handleResourceRelease(WindowData *
w
,
bool
destroying);
71
void
polishAndSync(WindowData *
w
,
bool
inExpose);
72
73
QSGSoftwareContext
*m_sg;
74
QAnimationDriver
*m_anim;
75
int
animationTimer = 0;
76
bool
lockedForSync =
false
;
77
QList<WindowData> m_windows;
78
79
friend
class
QSGSoftwareRenderThread
;
80
};
81
82
QT_END_NAMESPACE
83
84
#endif
// QSGSOFTWARETHREADEDRENDERLOOP_H
QAnimationDriver
\inmodule QtCore
Definition
qabstractanimation.h:107
QEvent
\inmodule QtCore
Definition
qcoreevent.h:45
QImage
\inmodule QtGui
Definition
qimage.h:37
QQuickWindow
\qmltype Window \instantiates QQuickWindow \inqmlmodule QtQuick
Definition
qquickwindow.h:42
QRunnable
\inmodule QtCore
Definition
qrunnable.h:18
QSGContext
The QSGContext holds the scene graph entry points for one QML engine.
Definition
qsgcontext_p.h:82
QSGRenderContext
Definition
qsgcontext_p.h:134
QSGRenderLoop
Definition
qsgrenderloop_p.h:34
QSGSoftwareContext
Definition
qsgsoftwarecontext_p.h:49
QSGSoftwareRenderThread
Definition
qsgsoftwarethreadedrenderloop.cpp:122
QSGSoftwareThreadedRenderLoop
Definition
qsgsoftwarethreadedrenderloop_p.h:26
QSGSoftwareThreadedRenderLoop::exposureChanged
void exposureChanged(QQuickWindow *window) override
Definition
qsgsoftwarethreadedrenderloop.cpp:582
QSGSoftwareThreadedRenderLoop::animationDriver
QAnimationDriver * animationDriver() const override
Definition
qsgsoftwarethreadedrenderloop.cpp:667
QSGSoftwareThreadedRenderLoop::resize
void resize(QQuickWindow *window) override
Definition
qsgsoftwarethreadedrenderloop.cpp:543
QSGSoftwareThreadedRenderLoop::handleUpdateRequest
void handleUpdateRequest(QQuickWindow *window) override
Definition
qsgsoftwarethreadedrenderloop.cpp:658
QSGSoftwareThreadedRenderLoop::update
void update(QQuickWindow *window) override
Definition
qsgsoftwarethreadedrenderloop.cpp:634
QSGSoftwareThreadedRenderLoop::windowDestroyed
void windowDestroyed(QQuickWindow *window) override
Definition
qsgsoftwarethreadedrenderloop.cpp:551
QSGSoftwareThreadedRenderLoop::flags
int flags() const override
Definition
qsgsoftwarethreadedrenderloop.cpp:717
QSGSoftwareThreadedRenderLoop::~QSGSoftwareThreadedRenderLoop
~QSGSoftwareThreadedRenderLoop()
Definition
qsgsoftwarethreadedrenderloop.cpp:522
QSGSoftwareThreadedRenderLoop::grab
QImage grab(QQuickWindow *window) override
Definition
qsgsoftwarethreadedrenderloop.cpp:595
QSGSoftwareThreadedRenderLoop::maybeUpdate
void maybeUpdate(QQuickWindow *window) override
Definition
qsgsoftwarethreadedrenderloop.cpp:651
QSGSoftwareThreadedRenderLoop::releaseResources
void releaseResources(QQuickWindow *window) override
Definition
qsgsoftwarethreadedrenderloop.cpp:682
QSGSoftwareThreadedRenderLoop::sceneGraphContext
QSGContext * sceneGraphContext() const override
Definition
qsgsoftwarethreadedrenderloop.cpp:672
QSGSoftwareThreadedRenderLoop::windowSurfaceType
QSurface::SurfaceType windowSurfaceType() const override
Definition
qsgsoftwarethreadedrenderloop.cpp:700
QSGSoftwareThreadedRenderLoop::onAnimationStarted
void onAnimationStarted()
Definition
qsgsoftwarethreadedrenderloop.cpp:736
QSGSoftwareThreadedRenderLoop::createRenderContext
QSGRenderContext * createRenderContext(QSGContext *) const override
Definition
qsgsoftwarethreadedrenderloop.cpp:677
QSGSoftwareThreadedRenderLoop::postJob
void postJob(QQuickWindow *window, QRunnable *job) override
Definition
qsgsoftwarethreadedrenderloop.cpp:691
QSGSoftwareThreadedRenderLoop::interleaveIncubation
bool interleaveIncubation() const override
Definition
qsgsoftwarethreadedrenderloop.cpp:705
QSGSoftwareThreadedRenderLoop::onAnimationStopped
void onAnimationStopped()
Definition
qsgsoftwarethreadedrenderloop.cpp:744
QSGSoftwareThreadedRenderLoop::QSGSoftwareThreadedRenderLoop
QSGSoftwareThreadedRenderLoop()
Definition
qsgsoftwarethreadedrenderloop.cpp:512
QSurface::SurfaceType
SurfaceType
The SurfaceType enum describes what type of surface this is.
Definition
qsurface.h:30
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
QT_END_NAMESPACE
Definition
qsharedpointer.cpp:1590
w
GLfloat GLfloat GLfloat w
[0]
Definition
qopengles2ext.h:789
event
struct _cl_event * event
Definition
qopenglext.h:2998
Q_OBJECT
#define Q_OBJECT
Definition
qtmetamacros.h:119
Q_SLOTS
#define Q_SLOTS
Definition
qtmetamacros.h:44
uint
unsigned int uint
Definition
qtypes.h:34
show
view show()
[18] //! [19]
hide
edit hide()
window
aWidget window() -> setWindowTitle("New Window Title")
[2]
qtdeclarative
src
quick
scenegraph
adaptations
software
qsgsoftwarethreadedrenderloop_p.h
Generated by
1.10.0