Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QSGDefaultRenderContext Class Reference

#include <qsgdefaultrendercontext_p.h>

Inheritance diagram for QSGDefaultRenderContext:
Collaboration diagram for QSGDefaultRenderContext:

Classes

struct  InitParams

Public Member Functions

 QSGDefaultRenderContext (QSGContext *context)
QRhirhi () const override
bool isValid () const override
void initialize (const QSGRenderContext::InitParams *params) override
 Initializes the scene graph render context with the GL context context.
void invalidate () override
void prepareSync (qreal devicePixelRatio, QRhiCommandBuffer *cb, const QQuickGraphicsConfiguration &config) override
void beginNextFrame (QSGRenderer *renderer, const QSGRenderTarget &renderTarget, RenderPassCallback mainPassRecordingStart, RenderPassCallback mainPassRecordingEnd, void *callbackUserData) override
void renderNextFrame (QSGRenderer *renderer) override
void endNextFrame (QSGRenderer *renderer) override
void preprocess () override
 Do necessary preprocessing before the frame.
void invalidateGlyphCaches () override
void flushGlyphCaches () override
QSGDistanceFieldGlyphCachedistanceFieldGlyphCache (const QRawFont &font, int renderTypeQuality) override
 Factory function for scene graph backends of the distance-field glyph cache.
QSGCurveGlyphAtlascurveGlyphAtlas (const QRawFont &font) override
 Factory function for curve atlases that can be used to provide geometry for the curve renderer for a given font.
QSGTexturecreateTexture (const QImage &image, uint flags) const override
QSGRenderercreateRenderer (QSGRendererInterface::RenderMode renderMode=QSGRendererInterface::RenderMode2D) override
QSGTexturecompressedTextureForFactory (const QSGCompressedTextureFactory *factory) const override
 Return the texture corresponding to a texture factory.
virtual void initializeRhiShader (QSGMaterialShader *shader, QShader::Variant shaderVariant)
int maxTextureSize () const override
bool useDepthBufferFor2D () const
int msaaSampleCount () const
QRhiCommandBuffercurrentFrameCommandBuffer () const
QRhiRenderPassDescriptorcurrentFrameRenderPass () const
qreal currentDevicePixelRatio () const
QRhiResourceUpdateBatchmaybeGlyphCacheResourceUpdates ()
QRhiResourceUpdateBatchglyphCacheResourceUpdates ()
void deferredReleaseGlyphCacheTexture (QRhiTexture *texture)
void resetGlyphCacheResources ()
QSharedPointer< QSGDepthStencilBuffergetDepthStencilBuffer (const QSize &size, int sampleCount)
void addDepthStencilBuffer (const QSharedPointer< QSGDepthStencilBuffer > &ds)
Public Member Functions inherited from QSGRenderContext
 QSGRenderContext (QSGContext *context)
 ~QSGRenderContext () override
QSGContextsceneGraphContext () const
virtual void endSync ()
QSGTexturetextureForFactory (QQuickTextureFactory *factory, QQuickWindow *window)
 Factory function for the scene graph renderers.
void unregisterFontengineForCleanup (QFontEngine *engine)
void registerFontengineForCleanup (QFontEngine *engine)
Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
QString objectName () const
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
QBindable< QStringbindableObjectName ()
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
bool isQmlObjectType () const
 Returns whether the object has been created by the QML engine or ownership has been explicitly set via QJSEngine::setObjectOwnership().
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
QThreadthread () const
 Returns the thread in which the object lives.
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
void killTimer (int id)
 Kills the timer with timer identifier, id.
void killTimer (Qt::TimerId id)
template<typename T>
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
template<typename T>
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
template<typename T>
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T>
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
const QObjectListchildren () const
 Returns a list of child objects.
void setParent (QObject *parent)
 Makes the object a child of parent.
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
bool disconnect (const QObject *receiver, const char *member=nullptr) const
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
bool setProperty (const char *name, QVariant &&value)
QVariant property (const char *name) const
 Returns the value of the object's name property.
QList< QByteArraydynamicPropertyNames () const
QBindingStoragebindingStorage ()
const QBindingStoragebindingStorage () const
QObjectparent () const
 Returns a pointer to the parent object.
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.

Static Public Attributes

static const int INIT_PARAMS_MAGIC = 0x50E

Protected Attributes

InitParams m_initParams
QRhim_rhi
int m_maxTextureSize
QSGRhiAtlasTexture::Managerm_rhiAtlasManager
QRhiCommandBufferm_currentFrameCommandBuffer
QRhiRenderPassDescriptorm_currentFrameRenderPass
qreal m_currentDevicePixelRatio
bool m_useDepthBufferFor2D
QRhiResourceUpdateBatchm_glyphCacheResourceUpdates
QSet< QRhiTexture * > m_pendingGlyphCacheTextures
QHash< FontKey, QSGCurveGlyphAtlas * > m_curveGlyphAtlases
QHash< std::pair< QSize, int >, QWeakPointer< QSGDepthStencilBuffer > > m_depthStencilBuffers
Protected Attributes inherited from QSGRenderContext
QPointer< QSGContextm_sg
QMutex m_mutex
QHash< QObject *, QSGTexture * > m_textures
QSet< QSGTexture * > m_texturesToDelete
QHash< FontKey, QSGDistanceFieldGlyphCache * > m_glyphCaches
QList< QSGDistanceFieldGlyphCache * > m_staleGlyphCaches
QHash< QFontEngine *, int > m_fontEnginesToClean
Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr

Friends

class QSGDepthStencilBuffer

Additional Inherited Members

Public Types inherited from QSGRenderContext
enum  CreateTextureFlags { CreateTexture_Alpha = 0x1 , CreateTexture_Atlas = 0x2 , CreateTexture_Mipmap = 0x4 }
using RenderPassCallback = void (*)(void *)
Public Slots inherited from QSGRenderContext
void textureFactoryDestroyed (QObject *o)
Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
Signals inherited from QSGRenderContext
void initialized ()
void invalidated ()
void releaseCachedResourcesRequested ()
Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
template<typename Func1, typename Func2>
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
template<typename Func1, typename Func2>
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
template<typename Func1, typename Func2>
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
template<typename Func1>
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
int senderSignalIndex () const
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
bool isSignalConnected (const QMetaMethod &signal) const
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
virtual void connectNotify (const QMetaMethod &signal)
virtual void disconnectNotify (const QMetaMethod &signal)
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
Properties inherited from QObject
QString objectName
 the name of this object

Detailed Description

Definition at line 47 of file qsgdefaultrendercontext_p.h.

Constructor & Destructor Documentation

◆ QSGDefaultRenderContext()

QT_BEGIN_NAMESPACE QSGDefaultRenderContext::QSGDefaultRenderContext ( QSGContext * context)

Definition at line 24 of file qsgdefaultrendercontext.cpp.

Member Function Documentation

◆ addDepthStencilBuffer()

void QSGDefaultRenderContext::addDepthStencilBuffer ( const QSharedPointer< QSGDepthStencilBuffer > & ds)

Definition at line 416 of file qsgdefaultrendercontext.cpp.

◆ beginNextFrame()

void QSGDefaultRenderContext::beginNextFrame ( QSGRenderer * renderer,
const QSGRenderTarget & renderTarget,
RenderPassCallback mainPassRecordingStart,
RenderPassCallback mainPassRecordingEnd,
void * callbackUserData )
overridevirtual

Reimplemented from QSGRenderContext.

Definition at line 230 of file qsgdefaultrendercontext.cpp.

◆ compressedTextureForFactory()

QSGTexture * QSGDefaultRenderContext::compressedTextureForFactory ( const QSGCompressedTextureFactory * ) const
overridevirtual

Return the texture corresponding to a texture factory.

This may optionally manipulate the texture in some way; for example by returning an atlased texture.

This function is not a replacement for textureForFactory; both should be used for a single texture (this might atlas, while the other might cache).

Reimplemented from QSGRenderContext.

Definition at line 283 of file qsgdefaultrendercontext.cpp.

◆ createRenderer()

QSGRenderer * QSGDefaultRenderContext::createRenderer ( QSGRendererInterface::RenderMode renderMode = QSGRendererInterface::RenderMode2D)
overridevirtual

Implements QSGRenderContext.

Definition at line 278 of file qsgdefaultrendercontext.cpp.

◆ createTexture()

QSGTexture * QSGDefaultRenderContext::createTexture ( const QImage & image,
uint flags ) const
overridevirtual

Implements QSGRenderContext.

Definition at line 254 of file qsgdefaultrendercontext.cpp.

◆ currentDevicePixelRatio()

qreal QSGDefaultRenderContext::currentDevicePixelRatio ( ) const
inline

Definition at line 107 of file qsgdefaultrendercontext_p.h.

◆ currentFrameCommandBuffer()

QRhiCommandBuffer * QSGDefaultRenderContext::currentFrameCommandBuffer ( ) const
inline

Definition at line 98 of file qsgdefaultrendercontext_p.h.

◆ currentFrameRenderPass()

QRhiRenderPassDescriptor * QSGDefaultRenderContext::currentFrameRenderPass ( ) const
inline

Definition at line 102 of file qsgdefaultrendercontext_p.h.

◆ curveGlyphAtlas()

QSGCurveGlyphAtlas * QSGDefaultRenderContext::curveGlyphAtlas ( const QRawFont & font)
overridevirtual

Factory function for curve atlases that can be used to provide geometry for the curve renderer for a given font.

Reimplemented from QSGRenderContext.

Definition at line 311 of file qsgdefaultrendercontext.cpp.

◆ deferredReleaseGlyphCacheTexture()

void QSGDefaultRenderContext::deferredReleaseGlyphCacheTexture ( QRhiTexture * texture)

Definition at line 368 of file qsgdefaultrendercontext.cpp.

◆ distanceFieldGlyphCache()

QSGDistanceFieldGlyphCache * QSGDefaultRenderContext::distanceFieldGlyphCache ( const QRawFont & font,
int renderTypeQuality )
overridevirtual

Factory function for scene graph backends of the distance-field glyph cache.

Reimplemented from QSGRenderContext.

Definition at line 323 of file qsgdefaultrendercontext.cpp.

◆ endNextFrame()

void QSGDefaultRenderContext::endNextFrame ( QSGRenderer * renderer)
overridevirtual

Reimplemented from QSGRenderContext.

Definition at line 247 of file qsgdefaultrendercontext.cpp.

◆ flushGlyphCaches()

void QSGDefaultRenderContext::flushGlyphCaches ( )
overridevirtual

Reimplemented from QSGRenderContext.

Definition at line 72 of file qsgdefaultrendercontext.cpp.

◆ getDepthStencilBuffer()

QSharedPointer< QSGDepthStencilBuffer > QSGDefaultRenderContext::getDepthStencilBuffer ( const QSize & size,
int sampleCount )

Definition at line 396 of file qsgdefaultrendercontext.cpp.

◆ glyphCacheResourceUpdates()

QRhiResourceUpdateBatch * QSGDefaultRenderContext::glyphCacheResourceUpdates ( )

Definition at line 360 of file qsgdefaultrendercontext.cpp.

◆ initialize()

void QSGDefaultRenderContext::initialize ( const QSGRenderContext::InitParams * params)
overridevirtual

Initializes the scene graph render context with the GL context context.

This also emits the ready() signal so that the QML graph can start building scene graph nodes.

Reimplemented from QSGRenderContext.

Definition at line 40 of file qsgdefaultrendercontext.cpp.

◆ initializeRhiShader()

void QSGDefaultRenderContext::initializeRhiShader ( QSGMaterialShader * shader,
QShader::Variant shaderVariant )
virtual

Definition at line 293 of file qsgdefaultrendercontext.cpp.

◆ invalidate()

void QSGDefaultRenderContext::invalidate ( )
overridevirtual

Reimplemented from QSGRenderContext.

Definition at line 141 of file qsgdefaultrendercontext.cpp.

◆ invalidateGlyphCaches()

void QSGDefaultRenderContext::invalidateGlyphCaches ( )
overridevirtual

Reimplemented from QSGRenderContext.

Definition at line 103 of file qsgdefaultrendercontext.cpp.

◆ isValid()

bool QSGDefaultRenderContext::isValid ( ) const
inlineoverridevirtual

Reimplemented from QSGRenderContext.

Definition at line 54 of file qsgdefaultrendercontext_p.h.

◆ maxTextureSize()

int QSGDefaultRenderContext::maxTextureSize ( ) const
inlineoverridevirtual

Implements QSGRenderContext.

Definition at line 94 of file qsgdefaultrendercontext_p.h.

◆ maybeGlyphCacheResourceUpdates()

QRhiResourceUpdateBatch * QSGDefaultRenderContext::maybeGlyphCacheResourceUpdates ( )

Definition at line 355 of file qsgdefaultrendercontext.cpp.

◆ msaaSampleCount()

int QSGDefaultRenderContext::msaaSampleCount ( ) const
inline

Definition at line 96 of file qsgdefaultrendercontext_p.h.

◆ prepareSync()

void QSGDefaultRenderContext::prepareSync ( qreal devicePixelRatio,
QRhiCommandBuffer * cb,
const QQuickGraphicsConfiguration & config )
overridevirtual

Reimplemented from QSGRenderContext.

Definition at line 217 of file qsgdefaultrendercontext.cpp.

◆ preprocess()

void QSGDefaultRenderContext::preprocess ( )
overridevirtual

Do necessary preprocessing before the frame.

Reimplemented from QSGRenderContext.

Definition at line 298 of file qsgdefaultrendercontext.cpp.

◆ renderNextFrame()

void QSGDefaultRenderContext::renderNextFrame ( QSGRenderer * renderer)
overridevirtual

Implements QSGRenderContext.

Definition at line 242 of file qsgdefaultrendercontext.cpp.

◆ resetGlyphCacheResources()

void QSGDefaultRenderContext::resetGlyphCacheResources ( )

Definition at line 374 of file qsgdefaultrendercontext.cpp.

◆ rhi()

QRhi * QSGDefaultRenderContext::rhi ( ) const
inlineoverridevirtual

Reimplemented from QSGRenderContext.

Definition at line 53 of file qsgdefaultrendercontext_p.h.

◆ useDepthBufferFor2D()

bool QSGDefaultRenderContext::useDepthBufferFor2D ( ) const
inline

Definition at line 95 of file qsgdefaultrendercontext_p.h.

◆ QSGDepthStencilBuffer

friend class QSGDepthStencilBuffer
friend

Definition at line 140 of file qsgdefaultrendercontext_p.h.

Member Data Documentation

◆ INIT_PARAMS_MAGIC

const int QSGDefaultRenderContext::INIT_PARAMS_MAGIC = 0x50E
static

Definition at line 56 of file qsgdefaultrendercontext_p.h.

◆ m_currentDevicePixelRatio

qreal QSGDefaultRenderContext::m_currentDevicePixelRatio
protected

Definition at line 133 of file qsgdefaultrendercontext_p.h.

◆ m_currentFrameCommandBuffer

QRhiCommandBuffer* QSGDefaultRenderContext::m_currentFrameCommandBuffer
protected

Definition at line 131 of file qsgdefaultrendercontext_p.h.

◆ m_currentFrameRenderPass

QRhiRenderPassDescriptor* QSGDefaultRenderContext::m_currentFrameRenderPass
protected

Definition at line 132 of file qsgdefaultrendercontext_p.h.

◆ m_curveGlyphAtlases

QHash<FontKey, QSGCurveGlyphAtlas *> QSGDefaultRenderContext::m_curveGlyphAtlases
protected

Definition at line 137 of file qsgdefaultrendercontext_p.h.

◆ m_depthStencilBuffers

QHash<std::pair<QSize, int>, QWeakPointer<QSGDepthStencilBuffer> > QSGDefaultRenderContext::m_depthStencilBuffers
protected

Definition at line 138 of file qsgdefaultrendercontext_p.h.

◆ m_glyphCacheResourceUpdates

QRhiResourceUpdateBatch* QSGDefaultRenderContext::m_glyphCacheResourceUpdates
protected

Definition at line 135 of file qsgdefaultrendercontext_p.h.

◆ m_initParams

InitParams QSGDefaultRenderContext::m_initParams
protected

Definition at line 127 of file qsgdefaultrendercontext_p.h.

◆ m_maxTextureSize

int QSGDefaultRenderContext::m_maxTextureSize
protected

Definition at line 129 of file qsgdefaultrendercontext_p.h.

◆ m_pendingGlyphCacheTextures

QSet<QRhiTexture *> QSGDefaultRenderContext::m_pendingGlyphCacheTextures
protected

Definition at line 136 of file qsgdefaultrendercontext_p.h.

◆ m_rhi

QRhi* QSGDefaultRenderContext::m_rhi
protected

Definition at line 128 of file qsgdefaultrendercontext_p.h.

◆ m_rhiAtlasManager

QSGRhiAtlasTexture::Manager* QSGDefaultRenderContext::m_rhiAtlasManager
protected

Definition at line 130 of file qsgdefaultrendercontext_p.h.

◆ m_useDepthBufferFor2D

bool QSGDefaultRenderContext::m_useDepthBufferFor2D
protected

Definition at line 134 of file qsgdefaultrendercontext_p.h.


The documentation for this class was generated from the following files: