![]() |
Qt 6.x
The Qt SDK
|
#include <qopenglengineshadermanager_p.h>
Inheritance diagram for QOpenGLEngineShaderManager:
Collaboration diagram for QOpenGLEngineShaderManager:Public Types | |
| enum | MaskType { NoMask , PixelMask , SubPixelMaskPass1 , SubPixelMaskPass2 , SubPixelWithGammaMask } |
| enum | PixelSrcType { ImageSrc = Qt::TexturePattern+1 , NonPremultipliedImageSrc = Qt::TexturePattern+2 , PatternSrc = Qt::TexturePattern+3 , TextureSrcWithPattern = Qt::TexturePattern+4 , GrayscaleImageSrc = Qt::TexturePattern+5 , AlphaImageSrc = Qt::TexturePattern+6 } |
| enum | Uniform { ImageTexture , PatternColor , GlobalOpacity , Depth , MaskTexture , FragmentColor , LinearData , Angle , HalfViewportSize , Fmp , Fmp2MRadius2 , Inverse2Fmp2MRadius2 , SqrFr , BRadius , InvertedTextureSize , BrushTransform , BrushTexture , Matrix , NumUniforms } |
| enum | OpacityMode { NoOpacity , UniformOpacity , AttributeOpacity } |
Public Member Functions | |
| QOpenGLEngineShaderManager (QOpenGLContext *context) | |
| ~QOpenGLEngineShaderManager () | |
| void | optimiseForBrushTransform (QTransform::TransformationType transformType) |
| void | setSrcPixelType (Qt::BrushStyle) |
| void | setSrcPixelType (PixelSrcType) |
| void | setOpacityMode (OpacityMode) |
| void | setMaskType (MaskType) |
| void | setCompositionMode (QPainter::CompositionMode) |
| void | setCustomStage (QOpenGLCustomShaderStage *stage) |
| void | removeCustomStage () |
| GLuint | getUniformLocation (Uniform id) |
| void | setDirty () |
| bool | useCorrectShaderProg () |
| void | useSimpleProgram () |
| void | useBlitProgram () |
| void | setHasComplexGeometry (bool hasComplexGeometry) |
| bool | hasComplexGeometry () const |
| QOpenGLShaderProgram * | currentProgram () |
| QOpenGLShaderProgram * | simpleProgram () |
| QOpenGLShaderProgram * | blitProgram () |
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< QString > | bindableObjectName () |
| 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 | 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). | |
| QThread * | thread () const |
| Returns the thread in which the object lives. | |
| void | moveToThread (QThread *thread) |
| Changes the thread affinity for this object and its children. | |
| 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::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
| void | killTimer (int id) |
| Kills the timer with timer identifier, id. | |
| template<typename T > | |
| T | findChild (const QString &aName=QString(), 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 (const QString &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 > | |
| 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 QObjectList & | children () 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< QByteArray > | dynamicPropertyNames () const |
| QBindingStorage * | bindingStorage () |
| const QBindingStorage * | bindingStorage () const |
| QObject * | parent () 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. | |
Public Attributes | |
| QOpenGLEngineSharedShaders * | sharedShaders |
Additional Inherited Members | |
Public Slots inherited from QObject | |
| void | deleteLater () |
| \threadsafe | |
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 | |
| QObject * | sender () 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) | |
Protected Attributes inherited from QObject | |
| QScopedPointer< QObjectData > | d_ptr |
Properties inherited from QObject | |
| QString | objectName |
| the name of this object | |
Related Symbols inherited from QObject | |
| template< class T > T | qobject_cast (const QObject *object) |
| Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
| template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
| template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
| QObjectList | |
| \macro Q_CLASSINFO(Name, Value) | |
Definition at line 372 of file qopenglengineshadermanager_p.h.
| Enumerator | |
|---|---|
| NoMask | |
| PixelMask | |
| SubPixelMaskPass1 | |
| SubPixelMaskPass2 | |
| SubPixelWithGammaMask | |
Definition at line 379 of file qopenglengineshadermanager_p.h.
| Enumerator | |
|---|---|
| NoOpacity | |
| UniformOpacity | |
| AttributeOpacity | |
Definition at line 411 of file qopenglengineshadermanager_p.h.
| Enumerator | |
|---|---|
| ImageSrc | |
| NonPremultipliedImageSrc | |
| PatternSrc | |
| TextureSrcWithPattern | |
| GrayscaleImageSrc | |
| AlphaImageSrc | |
Definition at line 380 of file qopenglengineshadermanager_p.h.
Definition at line 389 of file qopenglengineshadermanager_p.h.
| QOpenGLEngineShaderManager::QOpenGLEngineShaderManager | ( | QOpenGLContext * | context | ) |
Definition at line 463 of file qopenglengineshadermanager.cpp.
References context, QOpenGLEngineSharedShaders::shadersForContext(), and sharedShaders.
Here is the call graph for this function:| QOpenGLEngineShaderManager::~QOpenGLEngineShaderManager | ( | ) |
Definition at line 477 of file qopenglengineshadermanager.cpp.
References removeCustomStage().
Here is the call graph for this function:| QOpenGLShaderProgram * QOpenGLEngineShaderManager::blitProgram | ( | ) |
Definition at line 634 of file qopenglengineshadermanager.cpp.
References QOpenGLEngineSharedShaders::blitProgram(), and sharedShaders.
Referenced by QOpenGLTextureGlyphCache::resizeTextureData().
Here is the call graph for this function:
Here is the caller graph for this function:| QOpenGLShaderProgram * QOpenGLEngineShaderManager::currentProgram | ( | ) |
Definition at line 595 of file qopenglengineshadermanager.cpp.
References QOpenGLEngineShaderProg::program, sharedShaders, and QOpenGLEngineSharedShaders::simpleProgram().
Referenced by QOpenGL2PaintEngineExPrivate::drawPixmapFragments(), QOpenGL2PaintEngineExPrivate::prepareForDraw(), Q_TRACE_INSTRUMENT(), and QOpenGL2PaintEngineExPrivate::updateBrushUniforms().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 483 of file qopenglengineshadermanager.cpp.
References QList< T >::at(), QList< T >::fill(), GLuint, QList< T >::isEmpty(), NumUniforms, QOpenGLEngineShaderProg::program, QOpenGLShaderProgram::uniformLocation(), and QOpenGLEngineShaderProg::uniformLocations.
Here is the call graph for this function:
|
inline |
Definition at line 441 of file qopenglengineshadermanager_p.h.
Referenced by QOpenGL2PaintEngineExPrivate::prepareForDraw().
Here is the caller graph for this function:| void QOpenGLEngineShaderManager::optimiseForBrushTransform | ( | QTransform::TransformationType | transformType | ) |
Definition at line 520 of file qopenglengineshadermanager.cpp.
References Q_UNUSED.
Referenced by QOpenGL2PaintEngineExPrivate::setBrush().
Here is the caller graph for this function:| void QOpenGLEngineShaderManager::removeCustomStage | ( | ) |
Definition at line 587 of file qopenglengineshadermanager.cpp.
References QOpenGLCustomShaderStage::setInactive().
Referenced by ~QOpenGLEngineShaderManager(), and setCustomStage().
Here is the call graph for this function:
Here is the caller graph for this function:| void QOpenGLEngineShaderManager::setCompositionMode | ( | QPainter::CompositionMode | mode | ) |
Definition at line 567 of file qopenglengineshadermanager.cpp.
References QPainter::CompositionMode_Plus.
Referenced by QOpenGL2PaintEngineExPrivate::updateCompositionMode().
Here is the caller graph for this function:| void QOpenGLEngineShaderManager::setCustomStage | ( | QOpenGLCustomShaderStage * | stage | ) |
Definition at line 579 of file qopenglengineshadermanager.cpp.
References removeCustomStage().
Here is the call graph for this function:| void QOpenGLEngineShaderManager::setDirty | ( | ) |
Definition at line 525 of file qopenglengineshadermanager.cpp.
|
inline |
Definition at line 436 of file qopenglengineshadermanager_p.h.
Referenced by QOpenGL2PaintEngineExPrivate::transferMode().
Here is the caller graph for this function:Definition at line 558 of file qopenglengineshadermanager.cpp.
Referenced by QOpenGL2PaintEngineExPrivate::transferMode().
Here is the caller graph for this function:| void QOpenGLEngineShaderManager::setOpacityMode | ( | OpacityMode | mode | ) |
Definition at line 549 of file qopenglengineshadermanager.cpp.
Referenced by QOpenGL2PaintEngineExPrivate::prepareForDraw().
Here is the caller graph for this function:| void QOpenGLEngineShaderManager::setSrcPixelType | ( | PixelSrcType | type | ) |
Definition at line 540 of file qopenglengineshadermanager.cpp.
| void QOpenGLEngineShaderManager::setSrcPixelType | ( | Qt::BrushStyle | style | ) |
Definition at line 530 of file qopenglengineshadermanager.cpp.
References Qt::NoBrush, and Q_ASSERT.
Referenced by QOpenGL2PaintEngineExPrivate::drawPixmapFragments(), and QOpenGL2PaintEngineExPrivate::setBrush().
Here is the caller graph for this function:| QOpenGLShaderProgram * QOpenGLEngineShaderManager::simpleProgram | ( | ) |
Definition at line 629 of file qopenglengineshadermanager.cpp.
References sharedShaders, and QOpenGLEngineSharedShaders::simpleProgram().
Here is the call graph for this function:| void QOpenGLEngineShaderManager::useBlitProgram | ( | ) |
Definition at line 618 of file qopenglengineshadermanager.cpp.
References QOpenGLContextPrivate::active_engine, QOpenGLShaderProgram::bind(), QOpenGLEngineSharedShaders::blitProgram(), QT_OPACITY_ATTR, QT_TEXTURE_COORDS_ATTR, QT_VERTEX_COORDS_ATTR, and sharedShaders.
Referenced by QOpenGLTextureGlyphCache::resizeTextureData().
Here is the call graph for this function:
Here is the caller graph for this function:| bool QOpenGLEngineShaderManager::useCorrectShaderProg | ( | ) |
Definition at line 643 of file qopenglengineshadermanager.cpp.
References QOpenGLContextPrivate::active_engine, QOpenGLEngineSharedShaders::AffinePositionWithConicalGradientBrushVertexShader, QOpenGLEngineSharedShaders::AffinePositionWithLinearGradientBrushVertexShader, QOpenGLEngineSharedShaders::AffinePositionWithPatternBrushVertexShader, QOpenGLEngineSharedShaders::AffinePositionWithRadialGradientBrushVertexShader, QOpenGLEngineSharedShaders::AffinePositionWithTextureBrushVertexShader, AlphaImageSrc, QOpenGLEngineSharedShaders::AlphaImageSrcFragmentShader, AttributeOpacity, QOpenGLEngineSharedShaders::ColorBurnCompositionModeFragmentShader, QOpenGLEngineSharedShaders::ColorDodgeCompositionModeFragmentShader, QOpenGLEngineSharedShaders::ComplexGeometryPositionOnlyVertexShader, QOpenGLEngineShaderProg::compositionFragShader, QPainter::CompositionMode_ColorBurn, QPainter::CompositionMode_ColorDodge, QPainter::CompositionMode_Darken, QPainter::CompositionMode_Difference, QPainter::CompositionMode_Exclusion, QPainter::CompositionMode_HardLight, QPainter::CompositionMode_Lighten, QPainter::CompositionMode_Multiply, QPainter::CompositionMode_Overlay, QPainter::CompositionMode_Plus, QPainter::CompositionMode_Screen, QPainter::CompositionMode_SoftLight, QOpenGLEngineSharedShaders::ConicalGradientBrushSrcFragmentShader, Qt::ConicalGradientPattern, QOpenGLEngineSharedShaders::CustomImageSrcFragmentShader, QOpenGLEngineShaderProg::customStageSource, QOpenGLEngineSharedShaders::DarkenCompositionModeFragmentShader, Qt::Dense1Pattern, Qt::DiagCrossPattern, QOpenGLEngineSharedShaders::DifferenceCompositionModeFragmentShader, QOpenGLEngineSharedShaders::ExclusionCompositionModeFragmentShader, QOpenGLEngineSharedShaders::findProgramInCache(), GrayscaleImageSrc, QOpenGLEngineSharedShaders::GrayscaleImageSrcFragmentShader, QOpenGLEngineSharedShaders::HardLightCompositionModeFragmentShader, ImageSrc, QOpenGLEngineSharedShaders::ImageSrcFragmentShader, QOpenGLEngineSharedShaders::ImageSrcWithPatternFragmentShader, QOpenGLEngineSharedShaders::InvalidSnippetName, QTransform::isAffine(), QOpenGLEngineSharedShaders::LightenCompositionModeFragmentShader, QOpenGLEngineSharedShaders::LinearGradientBrushSrcFragmentShader, Qt::LinearGradientPattern, QOpenGLEngineSharedShaders::MainFragmentShader, QOpenGLEngineSharedShaders::MainFragmentShader_ImageArrays, QOpenGLEngineSharedShaders::MainFragmentShader_M, QOpenGLEngineSharedShaders::MainFragmentShader_MO, QOpenGLEngineSharedShaders::MainFragmentShader_O, QOpenGLEngineShaderProg::mainFragShader, QOpenGLEngineSharedShaders::MainVertexShader, QOpenGLEngineShaderProg::mainVertexShader, QOpenGLEngineSharedShaders::MainWithTexCoordsAndOpacityVertexShader, QOpenGLEngineSharedShaders::MainWithTexCoordsVertexShader, QOpenGLEngineSharedShaders::MaskFragmentShader, QOpenGLEngineShaderProg::maskFragShader, QOpenGLEngineSharedShaders::MultiplyCompositionModeFragmentShader, Qt::NoBrush, QOpenGLEngineSharedShaders::NoCompositionModeFragmentShader, NoMask, QOpenGLEngineSharedShaders::NoMaskFragmentShader, NonPremultipliedImageSrc, QOpenGLEngineSharedShaders::NonPremultipliedImageSrcFragmentShader, QOpenGLEngineSharedShaders::OverlayCompositionModeFragmentShader, QOpenGLEngineSharedShaders::PatternBrushSrcFragmentShader, PatternSrc, PixelMask, QOpenGLEngineSharedShaders::PositionOnlyVertexShader, QOpenGLEngineShaderProg::positionVertexShader, QOpenGLEngineSharedShaders::PositionWithConicalGradientBrushVertexShader, QOpenGLEngineSharedShaders::PositionWithLinearGradientBrushVertexShader, QOpenGLEngineSharedShaders::PositionWithPatternBrushVertexShader, QOpenGLEngineSharedShaders::PositionWithRadialGradientBrushVertexShader, QOpenGLEngineSharedShaders::PositionWithTextureBrushVertexShader, QOpenGLEngineShaderProg::program, Q_ASSERT, qCritical, qFatal, QT_OPACITY_ATTR, QT_TEXTURE_COORDS_ATTR, QT_VERTEX_COORDS_ATTR, qWarning, QOpenGLEngineSharedShaders::RadialGradientBrushSrcFragmentShader, Qt::RadialGradientPattern, QOpenGLEngineSharedShaders::RgbMaskFragmentShaderPass1, QOpenGLEngineSharedShaders::RgbMaskFragmentShaderPass2, QOpenGLEngineSharedShaders::RgbMaskWithGammaFragmentShader, QOpenGLEngineSharedShaders::ScreenCompositionModeFragmentShader, QOpenGLCustomShaderStage::setUniforms(), sharedShaders, QOpenGLEngineSharedShaders::SoftLightCompositionModeFragmentShader, QOpenGLEngineSharedShaders::SolidBrushSrcFragmentShader, Qt::SolidPattern, QOpenGLCustomShaderStage::source(), QOpenGLEngineShaderProg::srcPixelFragShader, SubPixelMaskPass1, SubPixelMaskPass2, SubPixelWithGammaMask, QOpenGLEngineSharedShaders::TextureBrushSrcFragmentShader, QOpenGLEngineSharedShaders::TextureBrushSrcWithPatternFragmentShader, Qt::TexturePattern, TextureSrcWithPattern, UniformOpacity, QOpenGLEngineShaderProg::useOpacityAttribute, QOpenGLEngineShaderProg::usePmvMatrixAttribute, and QOpenGLEngineShaderProg::useTextureCoords.
Referenced by QOpenGL2PaintEngineExPrivate::prepareForDraw().
Here is the call graph for this function:
Here is the caller graph for this function:| void QOpenGLEngineShaderManager::useSimpleProgram | ( | ) |
Definition at line 603 of file qopenglengineshadermanager.cpp.
References QOpenGLContextPrivate::active_engine, QOpenGLShaderProgram::bind(), Q_UNUSED, QT_OPACITY_ATTR, QT_TEXTURE_COORDS_ATTR, QT_VERTEX_COORDS_ATTR, sharedShaders, and QOpenGLEngineSharedShaders::simpleProgram().
Referenced by QOpenGL2PaintEngineExPrivate::useSimpleShader().
Here is the call graph for this function:
Here is the caller graph for this function:| QOpenGLEngineSharedShaders* QOpenGLEngineShaderManager::sharedShaders |
Definition at line 450 of file qopenglengineshadermanager_p.h.
Referenced by QOpenGLEngineShaderManager(), blitProgram(), currentProgram(), simpleProgram(), useBlitProgram(), useCorrectShaderProg(), and useSimpleProgram().