diff options
| author | Laszlo Agocs <lagocs83@gmail.com> | 2025-12-08 13:06:55 +0100 |
|---|---|---|
| committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2025-12-11 13:10:15 +0100 |
| commit | b31350c7b656522bb383d564cf7f7e75713d1dba (patch) | |
| tree | 6c03a0a52a1b53731dc7779ef17f34b19957172b | |
| parent | 56fcf4f80d41a534b9104c74a436165604d704cd (diff) | |
Allow GraphicsInfo to be used with a Window
Allow writing
Window {
property int api: GraphicsInfo.api
}
instead of having to do
Window {
property alias api: dummy.api
Item {
id: dummy
property int api: GraphicsInfo.api
}
}
Change to member initialization to avoid duplicating
many lines with the existing constructor.
Pick-to: 6.11
Change-Id: Ie07247ee8a6ae1b2d3d7245d77e83ece89909729
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| -rw-r--r-- | src/quick/items/qquickgraphicsinfo.cpp | 18 | ||||
| -rw-r--r-- | src/quick/items/qquickgraphicsinfo_p.h | 17 |
2 files changed, 18 insertions, 17 deletions
diff --git a/src/quick/items/qquickgraphicsinfo.cpp b/src/quick/items/qquickgraphicsinfo.cpp index 7de5b6b2ea..60a504146c 100644 --- a/src/quick/items/qquickgraphicsinfo.cpp +++ b/src/quick/items/qquickgraphicsinfo.cpp @@ -27,15 +27,6 @@ QT_BEGIN_NAMESPACE QQuickGraphicsInfo::QQuickGraphicsInfo(QQuickItem *item) : QObject(item) - , m_window(nullptr) - , m_api(Unknown) - , m_shaderType(UnknownShadingLanguage) - , m_shaderCompilationType(ShaderCompilationType(0)) - , m_shaderSourceType(ShaderSourceType(0)) - , m_majorVersion(2) - , m_minorVersion(0) - , m_profile(OpenGLNoProfile) - , m_renderableType(SurfaceFormatUnspecified) { if (Q_LIKELY(item)) { connect(item, &QQuickItem::windowChanged, this, &QQuickGraphicsInfo::setWindow); @@ -43,10 +34,19 @@ QQuickGraphicsInfo::QQuickGraphicsInfo(QQuickItem *item) } } +QQuickGraphicsInfo::QQuickGraphicsInfo(QQuickWindow *window) + : QObject(window) +{ + if (Q_LIKELY(window)) + setWindow(window); +} + QQuickGraphicsInfo *QQuickGraphicsInfo::qmlAttachedProperties(QObject *object) { if (QQuickItem *item = qobject_cast<QQuickItem *>(object)) return new QQuickGraphicsInfo(item); + if (QQuickWindow *window = qobject_cast<QQuickWindow *>(object)) + return new QQuickGraphicsInfo(window); return nullptr; } diff --git a/src/quick/items/qquickgraphicsinfo_p.h b/src/quick/items/qquickgraphicsinfo_p.h index 45502e8cb9..6fe0865253 100644 --- a/src/quick/items/qquickgraphicsinfo_p.h +++ b/src/quick/items/qquickgraphicsinfo_p.h @@ -102,6 +102,7 @@ public: Q_ENUM(RenderableType) QQuickGraphicsInfo(QQuickItem *item = nullptr); + QQuickGraphicsInfo(QQuickWindow *window); static QQuickGraphicsInfo *qmlAttachedProperties(QObject *object); @@ -132,14 +133,14 @@ private Q_SLOTS: private: QPointer<QQuickWindow> m_window; - GraphicsApi m_api; - ShaderType m_shaderType; - ShaderCompilationType m_shaderCompilationType; - ShaderSourceType m_shaderSourceType; - int m_majorVersion; - int m_minorVersion; - OpenGLContextProfile m_profile; - RenderableType m_renderableType; + GraphicsApi m_api = Unknown; + ShaderType m_shaderType = UnknownShadingLanguage; + ShaderCompilationType m_shaderCompilationType = ShaderCompilationType(0); + ShaderSourceType m_shaderSourceType = ShaderSourceType(0); + int m_majorVersion = 2; + int m_minorVersion = 0; + OpenGLContextProfile m_profile = OpenGLNoProfile; + RenderableType m_renderableType = SurfaceFormatUnspecified; }; QT_END_NAMESPACE |
