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>
126 void updateWindowPalette();
127 void updateChildrenPalettes(
const QPalette &parentPalette)
override;
133 QQmlListProperty<QObject>
data();
145 QPair<QQuickItem*, QQuickPointerHandler*> findCursorItemAndHandler(
QQuickItem *
item,
const QPointF &scenePos)
const;
148 void clearFocusObject()
override;
154 void ensureCustomRenderTarget();
160 void syncSceneGraph();
161 void renderSceneGraph();
163 bool isRenderable()
const;
165 bool emitError(QQuickWindow::SceneGraphError
error,
const QString &msg);
168 NativeTextureIsExternalOES = 0x01
170 Q_DECLARE_FLAGS(TextureFromNativeTextureFlags, TextureFromNativeTextureFlag)
173 int nativeLayoutOrState,
176 QQuickWindow::CreateTextureOptions options,
177 TextureFromNativeTextureFlags
flags = {})
const;
179 int nativeLayoutOrState,
181 QQuickWindow::CreateTextureOptions options,
182 TextureFromNativeTextureFlags
flags = {})
const {
183 return createTextureFromNativeTexture(nativeObjectHandle, nativeLayoutOrState, 0,
size, options,
flags);
196 void updateDirtyNodes();
198 void cleanupNodesOnShutdown();
210 int multiViewCount();
234 bool renderTargetDirty =
false;
252 { deliveryAgentPrivate()->clearFocusInScope(scope,
item, reason); }
256 static void data_append(QQmlListProperty<QObject> *,
QObject *);
257 static qsizetype data_count(QQmlListProperty<QObject> *);
259 static void data_clear(QQmlListProperty<QObject> *);
260 static void data_replace(QQmlListProperty<QObject> *,
qsizetype,
QObject *);
261 static void data_removeLast(QQmlListProperty<QObject> *);
267 static void emitBeforeRenderPassRecording(
void *ud);
268 static void emitAfterRenderPassRecording(
void *ud);
277 void runAndClearJobs(QList<QRunnable *> *jobs);
289 bool pendingFontUpdate =
false;
290 bool windowEventDispatch =
false;
294 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.
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}.
Contains color groups for each QML item state. \inmodule QtQuick.
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 *)
QPointer< QQuickPalette > windowPaletteRef
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)
\qmltype Window \instantiates QQuickWindow \inqmlmodule QtQuick
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
\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.
DBusConnection const char DBusError * error
#define Q_DECLARE_FLAGS(Flags, Enum)
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
#define Q_DECLARE_LOGGING_CATEGORY(name)
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
QRhiRenderBuffer * depthStencil
QRhiTexture * multisampleTexture
QRhiTexture * depthStencilTexture
QRhiRenderPassDescriptor * rpDesc
QRhiRenderBuffer * renderBuffer
struct QQuickWindowRenderTarget::@697 res
QPaintDevice * paintDevice
struct QQuickWindowRenderTarget::@696 rt
struct QQuickWindowRenderTarget::@698 sw
struct QQuickWindowRenderTarget::ImplicitBuffers implicitBuffers
QRhiRenderTarget * renderTarget