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
qsgdefaultcontext_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 QSGDEFAULTCONTEXT_H
5#define QSGDEFAULTCONTEXT_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 <QtQuick/private/qsgcontext_p.h>
19#include <QtQuick/private/qsgdistancefieldglyphnode_p.h>
21
23
24class Q_QUICK_EXPORT QSGDefaultContext : public QSGContext, public QSGRendererInterface
25{
26public:
27 QSGDefaultContext(QObject *parent = nullptr);
29
30 void renderContextInitialized(QSGRenderContext *renderContext) override;
31 void renderContextInvalidated(QSGRenderContext *) override;
32 QSGRenderContext *createRenderContext() override;
33 QSGInternalRectangleNode *createInternalRectangleNode() override;
34 QSGInternalImageNode *createInternalImageNode(QSGRenderContext *renderContext) override;
35 QSGPainterNode *createPainterNode(QQuickPaintedItem *item) override;
36 QSGGlyphNode *createGlyphNode(QSGRenderContext *rc, QSGTextNode::RenderType renderType, int renderTypeQuality) override;
37 QSGInternalTextNode *createInternalTextNode(QSGRenderContext *renderContext) override;
38 QSGLayer *createLayer(QSGRenderContext *renderContext) override;
39 QSurfaceFormat defaultSurfaceFormat() const override;
40 QSGRendererInterface *rendererInterface(QSGRenderContext *renderContext) override;
41 QSGRectangleNode *createRectangleNode() override;
42 QSGImageNode *createImageNode() override;
43 QSGNinePatchNode *createNinePatchNode() override;
44#if QT_CONFIG(quick_sprite)
45 QSGSpriteNode *createSpriteNode() override;
46#endif
47 QSGGuiThreadShaderEffectManager *createGuiThreadShaderEffectManager() override;
48 QSGShaderEffectNode *createShaderEffectNode(QSGRenderContext *renderContext) override;
49
50 void setDistanceFieldEnabled(bool enabled);
51 bool isDistanceFieldEnabled() const;
52
53 GraphicsApi graphicsApi() const override;
54 void *getResource(QQuickWindow *window, Resource resource) const override;
55 ShaderType shaderType() const override;
56 ShaderCompilationTypes shaderCompilationType() const override;
57 ShaderSourceTypes shaderSourceType() const override;
58
59private:
60 QMutex m_mutex;
61 QSGContext::AntialiasingMethod m_antialiasingMethod;
62 bool m_distanceFieldDisabled;
63 QSGDistanceFieldGlyphNode::AntialiasingMode m_distanceFieldAntialiasing;
64 bool m_distanceFieldAntialiasingDecided;
65};
66
68
69#endif // QSGDEFAULTCONTEXT_H
\inmodule QtCore
Definition qmutex.h:281
\inmodule QtCore
Definition qobject.h:103
The QQuickPaintedItem class provides a way to use the QPainter API in the QML Scene Graph.
\qmltype Window \instantiates QQuickWindow \inqmlmodule QtQuick
The QSGContext holds the scene graph entry points for one QML engine.
The QSGImageNode class is provided for convenience to easily draw textured content using the QML scen...
\inmodule QtQuick
The QSGRectangleNode class is a convenience class for drawing solid filled rectangles using scenegrap...
An interface providing access to some of the graphics API specific internals of the scenegraph.
Resource
\value DeviceResource The resource is a pointer to the graphics device, when applicable.
GraphicsApi
\value Unknown An unknown graphics API is in use \value Software The Qt Quick 2D Renderer is in use \...
ShaderType
\value UnknownShadingLanguage Not yet known due to no window and scenegraph associated \value GLSL GL...
RenderType
This enum type describes type of glyph node used for rendering the text.
Definition qsgtextnode.h:29
The QSurfaceFormat class represents the format of a QSurface. \inmodule QtGui.
Combined button and popup list for selecting options.
GLenum GLenum GLsizei const GLuint GLboolean enabled
static QSvgNode * createImageNode(QSvgNode *parent, const QXmlStreamAttributes &attributes, QSvgHandler *handler)
QGraphicsItem * item
aWidget window() -> setWindowTitle("New Window Title")
[2]