4#ifndef QQUICKWINDOW_P_H
5#define QQUICKWINDOW_P_H
18#include <QtQuick/private/qquickdeliveryagent_p_p.h>
19#include <QtQuick/private/qquickevents_p_p.h>
20#include <QtQuick/private/qsgcontext_p.h>
21#include <QtQuick/private/qquickpaletteproviderprivatebase_p.h>
22#include <QtQuick/private/qquickrendertarget_p.h>
23#include <QtQuick/private/qquickgraphicsdevice_p.h>
24#include <QtQuick/private/qquickgraphicsconfiguration_p.h>
25#include <QtQuick/qquickitem.h>
26#include <QtQuick/qquickwindow.h>
28#include <QtCore/qthread.h>
29#include <QtCore/qmutex.h>
30#include <QtCore/qwaitcondition.h>
31#include <QtCore/qrunnable.h>
32#include <QtCore/qstack.h>
34#include <QtGui/private/qevent_p.h>
35#include <QtGui/private/qpointingdevice_p.h>
36#include <QtGui/private/qwindow_p.h>
37#include <QtGui/qevent.h>
38#include <QtGui/qstylehints.h>
39#include <QtGui/qguiapplication.h>
104 void updateChildrenPalettes(
const QPalette &parentPalette)
override;
125 void clearFocusObject()
override;
130 void ensureCustomRenderTarget();
136 void syncSceneGraph();
137 void renderSceneGraph();
139 bool isRenderable()
const;
141 bool emitError(QQuickWindow::SceneGraphError
error,
const QString &msg);
144 NativeTextureIsExternalOES = 0x01
146 Q_DECLARE_FLAGS(TextureFromNativeTextureFlags, TextureFromNativeTextureFlag)
149 int nativeLayoutOrState,
152 QQuickWindow::CreateTextureOptions options,
153 TextureFromNativeTextureFlags
flags = {})
const;
155 int nativeLayoutOrState,
157 QQuickWindow::CreateTextureOptions options,
158 TextureFromNativeTextureFlags
flags = {})
const {
159 return createTextureFromNativeTexture(nativeObjectHandle, nativeLayoutOrState, 0,
size, options,
flags);
172 void updateDirtyNodes();
174 void cleanupNodesOnShutdown();
206 bool renderTargetDirty =
false;
224 { deliveryAgentPrivate()->clearFocusInScope(scope,
item, reason); }
239 static void emitBeforeRenderPassRecording(
void *ud);
240 static void emitAfterRenderPassRecording(
void *ud);
261 bool pendingFontUpdate =
false;
262 bool windowEventDispatch =
false;
265 static void cleanupNodesOnShutdown(
QQuickItem *);
The QColor class provides colors based on RGB, HSV or CMYK values.
The QEventPoint class provides information about a point in a QPointerEvent.
static QObjectPrivate * get(QObject *o)
The QPalette class contains color groups for each widget state.
\inmodule QtCore\reentrant
A base class for pointer events.
The QPointingDevice class describes a device from which mouse, touch or tablet events originate.
The QQmlListProperty class allows applications to expose list-like properties of QObject-derived clas...
static bool dragOverThreshold(qreal d, Qt::Axis axis, QMouseEvent *event, int startDragThreshold=-1)
QQuickGraphicsConfiguration controls lower level graphics settings for the QQuickWindow.
The QQuickGraphicsDevice class provides an opaque container for native graphics objects representing ...
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
The QQuickRenderControl class provides a mechanism for rendering the Qt Quick scenegraph onto an offs...
The QQuickRenderTarget class provides an opaque container for native graphics resources specifying a ...
QByteArray visualizationMode
QQuickWindow::GraphicsStateInfo rhiStateInfo
QList< QRunnable * > afterSwapJobs
QQuickItem::UpdatePaintNodeData updatePaintNodeData
void updateEffectiveOpacityRoot(QQuickItem *, qreal)
QQuickGraphicsConfiguration graphicsConfig
QSGTexture * createTextureFromNativeTexture(quint64 nativeObjectHandle, int nativeLayoutOrState, const QSize &size, QQuickWindow::CreateTextureOptions options, TextureFromNativeTextureFlags flags={}) const
QQuickRootItem * contentItem
uint persistentSceneGraph
QList< QRunnable * > beforeRenderingJobs
QMetaObject::Connection physicalDpiChangedConnection
static QQuickWindowPrivate * get(QQuickWindow *c)
static QQuickWindow::TextRenderType textRenderType
QSGRenderContext * context
QQuickRenderControl * renderControl
static bool dragOverThreshold(qreal d, Qt::Axis axis, const QEventPoint *tp, int startDragThreshold=-1)
QList< QRunnable * > beforeSynchronizingJobs
QVector< QQuickItem * > itemsToPolish
static const QQuickWindowPrivate * get(const QQuickWindow *c)
QQuickItem * dirtyItemList
uint swapchainJustBecameRenderable
static bool defaultAlphaBuffer
QQuickRenderTarget customRenderTarget
bool updateEffectiveOpacity(QQuickItem *)
QQuickDeliveryAgentPrivate * deliveryAgentPrivate() const
QSet< QQuickItem * > parentlessItems
qreal lastReportedItemDevicePixelRatio
QScopedPointer< QQuickAnimatorController > animationController
QQuickGraphicsDevice customDeviceObjects
uint hasRenderableSwapchain
void clearFocusInScope(QQuickItem *scope, QQuickItem *item, Qt::FocusReason reason)
QSGRenderLoop * windowManager
QQuickWindowIncubationController * incubationController
QList< QSGNode * > cleanupNodeList
QList< QRunnable * > afterRenderingJobs
TextureFromNativeTextureFlag
static bool dragOverThreshold(qreal d, Qt::Axis axis, QMouseEvent *event, int startDragThreshold=-1)
QList< QRunnable * > afterSynchronizingJobs
QQuickWindowQObjectCleanupJob(QObject *o)
void run() override
Implement this pure virtual function in your subclass.
static void schedule(QQuickWindow *window, QObject *object)
QRhiRenderPassDescriptor * rpDesc
QRhiRenderBuffer * renderBuffer
QPaintDevice * paintDevice
QRhiRenderBuffer * depthStencil
QRhiRenderTarget * renderTarget
\qmltype Window \instantiates QQuickWindow \inqmlmodule QtQuick
\group qtquick-scenegraph-nodes \title Qt Quick Scene Graph Node classes
The renderer class is the abstract baseclass used for rendering the QML scene graph.
\macro QT_RESTRICTED_CAST_FROM_ASCII
The QTouchEvent class contains parameters that describe a touch event.
Combined button and popup list for selecting options.
std::pair< T1, T2 > QPair
DBusConnection const char DBusError * error
#define Q_DECLARE_FLAGS(Flags, Enum)
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
GLfloat GLfloat GLfloat w
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLfloat GLfloat GLfloat GLfloat h
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
const QQuickItem * rootItem(const I &item)
SSL_CTX int(* cb)(SSL *ssl, unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg)
static QT_BEGIN_NAMESPACE void init(QTextBoundaryFinder::BoundaryType type, QStringView str, QCharAttributes *attributes)
unsigned long long quint64
QQuickWindowRenderTarget rt