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
QQuickCanvasItem Class Reference

#include <qquickcanvasitem_p.h>

+ Inheritance diagram for QQuickCanvasItem:
+ Collaboration diagram for QQuickCanvasItem:

Public Types

enum  RenderTarget { Image , FramebufferObject }
 
enum  RenderStrategy { Immediate , Threaded , Cooperative }
 
- Public Types inherited from QQuickItem
enum  Flag {
  ItemClipsChildrenToShape = 0x01 , ItemIsFocusScope = 0x04 , ItemHasContents = 0x08 , ItemAcceptsDrops = 0x10 ,
  ItemIsViewport = 0x20 , ItemObservesViewport = 0x40
}
 \qmltype Item \instantiates QQuickItem \inherits QtObject \inqmlmodule QtQuick More...
 
enum  ItemChange {
  ItemChildAddedChange , ItemChildRemovedChange , ItemSceneChange , ItemVisibleHasChanged ,
  ItemParentHasChanged , ItemOpacityHasChanged , ItemActiveFocusHasChanged , ItemRotationHasChanged ,
  ItemAntialiasingHasChanged , ItemDevicePixelRatioHasChanged , ItemEnabledHasChanged
}
 Used in conjunction with QQuickItem::itemChange() to notify the item about certain types of changes. More...
 
enum  TransformOrigin {
  TopLeft , Top , TopRight , Left ,
  Center , Right , BottomLeft , Bottom ,
  BottomRight
}
 \variable QQuickItem::ItemChangeData::realValue The numeric value that has changed: \l {QQuickItem::opacity()}{opacity}, \l {QQuickItem::rotation()}{rotation}, or \l {QScreen::devicePixelRatio}{device pixel ratio}. More...
 

Public Slots

void loadImage (const QUrl &url, QSizeF sourceSize=QSizeF())
 \qmlsignal QtQuick::Canvas::imageLoaded()
 
void unloadImage (const QUrl &url)
 \qmlmethod QtQuick::Canvas::unloadImage(url image)
 
bool isImageLoaded (const QUrl &url) const
 \qmlmethod QtQuick::Canvas::isImageLoaded(url image) Returns true if the image is successfully loaded and ready to use.
 
bool isImageLoading (const QUrl &url) const
 \qmlmethod QtQuick::Canvas::isImageLoading(url image) Returns true if the image is currently loading.
 
bool isImageError (const QUrl &url) const
 \qmlmethod QtQuick::Canvas::isImageError(url image)
 
- Public Slots inherited from QQuickItem
void update ()
 Schedules a call to updatePaintNode() for this item.
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 

Signals

void paint (const QRect &region)
 
void painted ()
 
void availableChanged ()
 
void contextTypeChanged ()
 
void contextChanged ()
 
void canvasSizeChanged ()
 
void tileSizeChanged ()
 
void canvasWindowChanged ()
 
void renderTargetChanged ()
 
void renderStrategyChanged ()
 
void imageLoaded ()
 
- Signals inherited from QQuickItem
void childrenRectChanged (const QRectF &)
 
void baselineOffsetChanged (qreal)
 
void stateChanged (const QString &)
 
void focusChanged (bool)
 
void activeFocusChanged (bool)
 
Q_REVISION(6, 7) void focusPolicyChanged(Qt Q_REVISION (2, 1) void activeFocusOnTabChanged(bool)
 
void parentChanged (QQuickItem *)
 
void transformOriginChanged (TransformOrigin)
 
void smoothChanged (bool)
 
void antialiasingChanged (bool)
 
void clipChanged (bool)
 
 Q_REVISION (2, 1) void windowChanged(QQuickWindow *window)
 
void childrenChanged ()
 
void opacityChanged ()
 
void enabledChanged ()
 
void visibleChanged ()
 
void visibleChildrenChanged ()
 
void rotationChanged ()
 
void scaleChanged ()
 
void xChanged ()
 
void yChanged ()
 
void widthChanged ()
 
void heightChanged ()
 
void zChanged ()
 
void implicitWidthChanged ()
 
void implicitHeightChanged ()
 
 Q_REVISION (2, 11) void containmentMaskChanged()
 
 Q_REVISION (6, 0) void paletteChanged()
 
 Q_REVISION (6, 0) void paletteCreated()
 
- 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.
 

Public Member Functions

 QQuickCanvasItem (QQuickItem *parent=nullptr)
 \qmltype Canvas \instantiates QQuickCanvasItem \inqmlmodule QtQuick
 
 ~QQuickCanvasItem ()
 
bool isAvailable () const
 \qmlproperty bool QtQuick::Canvas::available
 
QString contextType () const
 \qmlproperty string QtQuick::Canvas::contextType The type of drawing context to use.
 
void setContextType (const QString &contextType)
 
QJSValue context () const
 \qmlproperty object QtQuick::Canvas::context Holds the active drawing context.
 
QSizeF canvasSize () const
 \qmlproperty size QtQuick::Canvas::canvasSize Holds the logical canvas size that the context paints on.
 
void setCanvasSize (const QSizeF &)
 
QSize tileSize () const
 \qmlproperty size QtQuick::Canvas::tileSize Holds the canvas rendering tile size.
 
void setTileSize (const QSize &)
 
QRectF canvasWindow () const
 \qmlproperty rect QtQuick::Canvas::canvasWindow Holds the current canvas visible window.
 
void setCanvasWindow (const QRectF &rect)
 
RenderTarget renderTarget () const
 \qmlproperty enumeration QtQuick::Canvas::renderTarget Holds the current canvas render target.
 
void setRenderTarget (RenderTarget target)
 
RenderStrategy renderStrategy () const
 \qmlproperty enumeration QtQuick::Canvas::renderStrategy Holds the current canvas rendering strategy.
 
void setRenderStrategy (RenderStrategy strategy)
 
QQuickCanvasContextrawContext () const
 
QImage toImage (const QRectF &rect=QRectF()) const
 
Q_INVOKABLE void getContext (QQmlV4FunctionPtr args)
 \qmlmethod object QtQuick::Canvas::getContext(string contextId, ... args)
 
Q_INVOKABLE void requestAnimationFrame (QQmlV4FunctionPtr args)
 \qmlmethod int QtQuick::Canvas::requestAnimationFrame(callback)
 
Q_INVOKABLE void cancelRequestAnimationFrame (QQmlV4FunctionPtr args)
 \qmlmethod QtQuick::Canvas::cancelRequestAnimationFrame(int handle)
 
Q_INVOKABLE void requestPaint ()
 \qmlmethod QtQuick::Canvas::requestPaint()
 
Q_INVOKABLE void markDirty (const QRectF &dirtyRect=QRectF())
 \qmlmethod QtQuick::Canvas::markDirty(rect area)
 
Q_INVOKABLE bool save (const QString &filename, const QSizeF &imageSize=QSizeF()) const
 \qmlmethod bool QtQuick::Canvas::save(string filename, size imageSize = undefined)
 
Q_INVOKABLE QString toDataURL (const QString &type=QLatin1String("image/png")) const
 \qmlmethod string QtQuick::Canvas::toDataURL(string mimeType)
 
QQmlRefPointer< QQuickCanvasPixmaploadedPixmap (const QUrl &url, QSizeF sourceSize=QSizeF())
 
bool isTextureProvider () const override
 Returns true if this item is a texture provider.
 
QSGTextureProvidertextureProvider () const override
 Returns the texture provider for an item.
 
- Public Member Functions inherited from QQuickItem
 QQuickItem (QQuickItem *parent=nullptr)
 Constructs a QQuickItem with the given parent.
 
 ~QQuickItem () override
 Destroys the QQuickItem.
 
QQuickWindowwindow () const
 Returns the window in which this item is rendered.
 
QQuickItemparentItem () const
 
void setParentItem (QQuickItem *parent)
 
void stackBefore (const QQuickItem *)
 Moves the specified sibling item to the index before this item within the list of children.
 
void stackAfter (const QQuickItem *)
 Moves the specified sibling item to the index after this item within the list of children.
 
QRectF childrenRect ()
 \qmlpropertygroup QtQuick::Item::childrenRect \qmlproperty real QtQuick::Item::childrenRect.x \qmlproperty real QtQuick::Item::childrenRect.y \qmlproperty real QtQuick::Item::childrenRect.width \qmlproperty real QtQuick::Item::childrenRect.height \readonly
 
QList< QQuickItem * > childItems () const
 Returns the children of this item.
 
bool clip () const
 \qmlproperty bool QtQuick::Item::clip This property holds whether clipping is enabled.
 
void setClip (bool)
 
QString state () const
 \qmlproperty string QtQuick::Item::state
 
void setState (const QString &)
 
qreal baselineOffset () const
 \qmlproperty int QtQuick::Item::baselineOffset
 
void setBaselineOffset (qreal)
 
QQmlListProperty< QQuickTransformtransform ()
 
qreal x () const
 
qreal y () const
 
QPointF position () const
 
void setX (qreal)
 
void setY (qreal)
 
void setPosition (const QPointF &)
 
QBindable< qrealbindableX ()
 
QBindable< qrealbindableY ()
 
qreal width () const
 
void setWidth (qreal)
 
void resetWidth ()
 
void setImplicitWidth (qreal)
 
qreal implicitWidth () const
 Returns the width of the item that is implied by other properties that determine the content.
 
QBindable< qrealbindableWidth ()
 
qreal height () const
 
void setHeight (qreal)
 
void resetHeight ()
 
void setImplicitHeight (qreal)
 
qreal implicitHeight () const
 
QBindable< qrealbindableHeight ()
 
QSizeF size () const
 
void setSize (const QSizeF &size)
 
TransformOrigin transformOrigin () const
 
void setTransformOrigin (TransformOrigin)
 
QPointF transformOriginPoint () const
 
void setTransformOriginPoint (const QPointF &)
 
qreal z () const
 
void setZ (qreal)
 
qreal rotation () const
 
void setRotation (qreal)
 
qreal scale () const
 
void setScale (qreal)
 
qreal opacity () const
 
void setOpacity (qreal)
 
bool isVisible () const
 
void setVisible (bool)
 
bool isEnabled () const
 
void setEnabled (bool)
 
bool smooth () const
 
void setSmooth (bool)
 
bool activeFocusOnTab () const
 \qmlproperty bool QtQuick::Item::activeFocusOnTab
 
void setActiveFocusOnTab (bool)
 
bool antialiasing () const
 
void setAntialiasing (bool)
 
void resetAntialiasing ()
 
Flags flags () const
 Returns the item flags for this item.
 
void setFlag (Flag flag, bool enabled=true)
 Enables the specified flag for this item if enabled is true; if enabled is false, the flag is disabled.
 
void setFlags (Flags flags)
 Enables the specified flags for this item.
 
virtual QRectF boundingRect () const
 Returns the extents of the item in its own coordinate system: a rectangle from {0, 0} to \l width() and \l height().
 
virtual QRectF clipRect () const
 Returns the rectangular area within this item that is currently visible in \l viewportItem(), if there is a viewport and the \l ItemObservesViewport flag is set; otherwise, the extents of this item in its own coordinate system: a rectangle from {0, 0} to \l width() and \l height().
 
QQuickItemviewportItem () const
 If the \l ItemObservesViewport flag is set, returns the nearest parent with the \l ItemIsViewport flag.
 
bool hasActiveFocus () const
 
bool hasFocus () const
 
void setFocus (bool)
 
void setFocus (bool focus, Qt::FocusReason reason)
 
bool isFocusScope () const
 Returns true if this item is a focus scope, and false otherwise.
 
QQuickItemscopedFocusItem () const
 If this item is a focus scope, this returns the item in its focus chain that currently has focus.
 
Qt::FocusPolicy focusPolicy () const
 
void setFocusPolicy (Qt::FocusPolicy policy)
 Sets the focus policy of this item to policy.
 
bool isAncestorOf (const QQuickItem *child) const
 Returns true if this item is an ancestor of child (i.e., if this item is child's parent, or one of child's parent's ancestors).
 
Qt::MouseButtons acceptedMouseButtons () const
 Returns the mouse buttons accepted by this item.
 
void setAcceptedMouseButtons (Qt::MouseButtons buttons)
 Sets the mouse buttons accepted by this item to buttons.
 
bool acceptHoverEvents () const
 Returns whether hover events are accepted by this item.
 
void setAcceptHoverEvents (bool enabled)
 If enabled is true, this sets the item to accept hover events; otherwise, hover events are not accepted by this item.
 
bool acceptTouchEvents () const
 Returns whether touch events are accepted by this item.
 
void setAcceptTouchEvents (bool accept)
 If enabled is true, this sets the item to accept touch events; otherwise, touch events are not accepted by this item.
 
bool isUnderMouse () const
 
void grabMouse ()
 
void ungrabMouse ()
 
bool keepMouseGrab () const
 Returns whether mouse input should exclusively remain with this item.
 
void setKeepMouseGrab (bool)
 Sets whether the mouse input should remain exclusively with this item.
 
bool filtersChildMouseEvents () const
 Returns whether pointer events intended for this item's children should be filtered through this item.
 
void setFiltersChildMouseEvents (bool filter)
 Sets whether pointer events intended for this item's children should be filtered through this item.
 
void grabTouchPoints (const QList< int > &ids)
 
void ungrabTouchPoints ()
 
bool keepTouchGrab () const
 Returns whether the touch points grabbed by this item should exclusively remain with this item.
 
void setKeepTouchGrab (bool)
 Sets whether the touch points grabbed by this item should remain exclusively with this item.
 
 Q_REVISION (2, 4) Q_INVOKABLE bool grabToImage(const QJSValue &callback
 
QSharedPointer< QQuickItemGrabResultgrabToImage (const QSize &targetSize=QSize())
 Grabs the item into an in-memory image.
 
virtual Q_INVOKABLE bool contains (const QPointF &point) const
 \qmlmethod bool QtQuick::Item::contains(point point)
 
QObjectcontainmentMask () const
 
void setContainmentMask (QObject *mask)
 
QTransform itemTransform (QQuickItem *, bool *) const
 \qmlmethod point QtQuick::Item::mapFromItem(Item item, real x, real y) \qmlmethod point QtQuick::Item::mapFromItem(Item item, point p) \qmlmethod rect QtQuick::Item::mapFromItem(Item item, real x, real y, real width, real height) \qmlmethod rect QtQuick::Item::mapFromItem(Item item, rect r)
 
QPointF mapToScene (const QPointF &point) const
 Maps the given point in this item's coordinate system to the equivalent point within the scene's coordinate system, and returns the mapped coordinate.
 
QRectF mapRectToItem (const QQuickItem *item, const QRectF &rect) const
 Maps the given rect in this item's coordinate system to the equivalent rectangular area within item's coordinate system, and returns the mapped rectangle value.
 
QRectF mapRectToScene (const QRectF &rect) const
 Maps the given rect in this item's coordinate system to the equivalent rectangular area within the scene's coordinate system, and returns the mapped rectangle value.
 
QPointF mapFromScene (const QPointF &point) const
 Maps the given point in the scene's coordinate system to the equivalent point within this item's coordinate system, and returns the mapped coordinate.
 
QRectF mapRectFromItem (const QQuickItem *item, const QRectF &rect) const
 Maps the given rect in item's coordinate system to the equivalent rectangular area within this item's coordinate system, and returns the mapped rectangle value.
 
QRectF mapRectFromScene (const QRectF &rect) const
 Maps the given rect in the scene's coordinate system to the equivalent rectangular area within this item's coordinate system, and returns the mapped rectangle value.
 
void polish ()
 Schedules a polish event for this item.
 
Q_INVOKABLE QPointF mapFromItem (const QQuickItem *item, const QPointF &point) const
 Maps the given point in item's coordinate system to the equivalent point within this item's coordinate system, and returns the mapped coordinate.
 
Q_INVOKABLE QPointF mapFromItem (const QQuickItem *item, qreal x, qreal y)
 
Q_INVOKABLE QRectF mapFromItem (const QQuickItem *item, const QRectF &rect) const
 
Q_INVOKABLE QRectF mapFromItem (const QQuickItem *item, qreal x, qreal y, qreal width, qreal height) const
 
Q_INVOKABLE QPointF mapToItem (const QQuickItem *item, const QPointF &point) const
 Maps the given point in this item's coordinate system to the equivalent point within item's coordinate system, and returns the mapped coordinate.
 
Q_INVOKABLE QPointF mapToItem (const QQuickItem *item, qreal x, qreal y)
 
Q_INVOKABLE QRectF mapToItem (const QQuickItem *item, const QRectF &rect) const
 
Q_INVOKABLE QRectF mapToItem (const QQuickItem *item, qreal x, qreal y, qreal width, qreal height) const
 
 Q_REVISION (2, 7) Q_INVOKABLE QPointF mapFromGlobal(qreal x
 
 Q_REVISION (2, 7) Q_INVOKABLE QPointF mapFromGlobal(const QPointF &point) const
 
 Q_REVISION (2, 7) Q_INVOKABLE QPointF mapToGlobal(qreal x
 
 Q_REVISION (2, 7) Q_INVOKABLE QPointF mapToGlobal(const QPointF &point) const
 
Q_INVOKABLE void forceActiveFocus ()
 \qmlmethod point QtQuick::Item::mapToItem(Item item, real x, real y) \qmlmethod point QtQuick::Item::mapToItem(Item item, point p) \qmlmethod rect QtQuick::Item::mapToItem(Item item, real x, real y, real width, real height) \qmlmethod rect QtQuick::Item::mapToItem(Item item, rect r)
 
Q_INVOKABLE void forceActiveFocus (Qt::FocusReason reason)
 \qmlmethod QtQuick::Item::forceActiveFocus(Qt::FocusReason reason) This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Forces active focus on the item with the given reason.
 
 Q_REVISION (2, 1) Q_INVOKABLE QQuickItem *nextItemInFocusChain(bool forward
 
Q_INVOKABLE QQuickItemchildAt (qreal x, qreal y) const
 \qmlmethod QtQuick::Item::childAt(real x, real y)
 
 Q_REVISION (6, 3) Q_INVOKABLE void ensurePolished()
 
 Q_REVISION (6, 3) Q_INVOKABLE void dumpItemTree() const
 
- 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 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 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.
 
- Public Member Functions inherited from QQmlParserStatus
 QQmlParserStatus ()
 
virtual ~QQmlParserStatus ()
 

Protected Member Functions

void componentComplete () override
 Invoked after the root component that caused this instantiation has completed construction.
 
void itemChange (QQuickItem::ItemChange, const QQuickItem::ItemChangeData &) override
 Called when change occurs for this item.
 
void updatePolish () override
 This function should perform any layout as required for this item.
 
QSGNodeupdatePaintNode (QSGNode *, UpdatePaintNodeData *) override
 Called on the render thread when it is time to sync the state of the item with the scene graph.
 
void geometryChange (const QRectF &newGeometry, const QRectF &oldGeometry) override
 
void releaseResources () override
 This function is called when an item should release graphics resources which are not already managed by the nodes returned from QQuickItem::updatePaintNode().
 
bool event (QEvent *event) override
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
- Protected Member Functions inherited from QQuickItem
bool event (QEvent *) override
 \reimp
 
bool isComponentComplete () const
 Returns true if construction of the QML component is complete; otherwise returns false.
 
bool widthValid () const
 Returns whether the width property has been set explicitly.
 
bool heightValid () const
 Returns whether the height property has been set explicitly.
 
void setImplicitSize (qreal, qreal)
 
void classBegin () override
 \reimp Derived classes should call the base class method before adding their own action to perform at classBegin.
 
void componentComplete () override
 \reimp Derived classes should call the base class method before adding their own actions to perform at componentComplete.
 
virtual void keyPressEvent (QKeyEvent *event)
 This event handler can be reimplemented in a subclass to receive key press events for an item.
 
virtual void keyReleaseEvent (QKeyEvent *event)
 This event handler can be reimplemented in a subclass to receive key release events for an item.
 
virtual void focusInEvent (QFocusEvent *)
 This event handler can be reimplemented in a subclass to receive focus-in events for an item.
 
virtual void focusOutEvent (QFocusEvent *)
 This event handler can be reimplemented in a subclass to receive focus-out events for an item.
 
virtual void mousePressEvent (QMouseEvent *event)
 This event handler can be reimplemented in a subclass to receive mouse press events for an item.
 
virtual void mouseMoveEvent (QMouseEvent *event)
 This event handler can be reimplemented in a subclass to receive mouse move events for an item.
 
virtual void mouseReleaseEvent (QMouseEvent *event)
 This event handler can be reimplemented in a subclass to receive mouse release events for an item.
 
virtual void mouseDoubleClickEvent (QMouseEvent *event)
 This event handler can be reimplemented in a subclass to receive mouse double-click events for an item.
 
virtual void mouseUngrabEvent ()
 This event handler can be reimplemented in a subclass to be notified when a mouse ungrab event has occurred on this item.
 
virtual void touchUngrabEvent ()
 This event handler can be reimplemented in a subclass to be notified when a touch ungrab event has occurred on this item.
 
virtual void touchEvent (QTouchEvent *event)
 This event handler can be reimplemented in a subclass to receive touch events for an item.
 
virtual void hoverEnterEvent (QHoverEvent *event)
 This event handler can be reimplemented in a subclass to receive hover-enter events for an item.
 
virtual void hoverMoveEvent (QHoverEvent *event)
 This event handler can be reimplemented in a subclass to receive hover-move events for an item.
 
virtual void hoverLeaveEvent (QHoverEvent *event)
 This event handler can be reimplemented in a subclass to receive hover-leave events for an item.
 
virtual bool childMouseEventFilter (QQuickItem *, QEvent *)
 Reimplement this method to filter the pointer events that are received by this item's children.
 
 QQuickItem (QQuickItemPrivate &dd, QQuickItem *parent=nullptr)
 
- 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

bool available
 
QString contextType
 
QJSValue context
 
QSizeF canvasSize
 
QSize tileSize
 
QRectF canvasWindow
 
RenderTarget renderTarget
 
RenderStrategy renderStrategy
 
- Properties inherited from QQuickItem
QQuickItemparent
 \qmlproperty Item QtQuick::Item::parent This property holds the visual parent of the item.
 
qreal x
 \qmlproperty real QtQuick::Item::x \qmlproperty real QtQuick::Item::y \qmlproperty real QtQuick::Item::width \qmlproperty real QtQuick::Item::height
 
qreal y
 Defines the item's y position relative to its parent.
 
qreal z
 \qmlproperty real QtQuick::Item::z
 
qreal width
 This property holds the width of this item.
 
qreal height
 This property holds the height of this item.
 
qreal opacity
 \qmlproperty real QtQuick::Item::opacity
 
bool enabled
 \qmlproperty bool QtQuick::Item::enabled
 
bool visible
 \qmlproperty bool QtQuick::Item::visible
 
Qt::FocusPolicy focusPolicy
 \qmlproperty enumeration QtQuick::Item::focusPolicy
 
qreal rotation
 \qmlproperty real QtQuick::Item::rotation This property holds the rotation of the item in degrees clockwise around its transformOrigin.
 
qreal scale
 \qmlproperty real QtQuick::Item::scale This property holds the scale factor for this item.
 
TransformOrigin transformOrigin
 \qmlproperty enumeration QtQuick::Item::transformOrigin This property holds the origin point around which scale and rotation transform.
 
QPointF transformOriginPoint
 
QQmlListProperty< QQuickTransformtransform
 \qmlproperty list<Transform> QtQuick::Item::transform This property holds the list of transformations to apply.
 
bool smooth
 \qmlproperty bool QtQuick::Item::smooth
 
bool antialiasing
 \qmlproperty bool QtQuick::Item::antialiasing
 
qreal implicitWidth
 
qreal implicitHeight
 
QObjectcontainmentMask
 \qmlproperty QObject* QtQuick::Item::containmentMask
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Additional Inherited Members

- 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)
 
- Public Attributes inherited from QQuickItem
const QSizetargetSize = QSize())
 
qreal y const
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

Definition at line 54 of file qquickcanvasitem_p.h.

Member Enumeration Documentation

◆ RenderStrategy

Enumerator
Immediate 
Threaded 
Cooperative 

Definition at line 76 of file qquickcanvasitem_p.h.

◆ RenderTarget

Enumerator
Image 
FramebufferObject 

Definition at line 70 of file qquickcanvasitem_p.h.

Constructor & Destructor Documentation

◆ QQuickCanvasItem()

QQuickCanvasItem::QQuickCanvasItem ( QQuickItem * parent = nullptr)

\qmltype Canvas \instantiates QQuickCanvasItem \inqmlmodule QtQuick

Since
5.0 \inherits Item

Provides a 2D canvas item enabling drawing via JavaScript.

The Canvas item allows drawing of straight and curved lines, simple and complex shapes, graphs, and referenced graphic images. It can also add text, colors, shadows, gradients, and patterns, and do low level pixel operations. The Canvas output may be saved as an image file or serialized to a URL.

Rendering to the Canvas is done using a Context2D object, usually as a result of the \l paint signal.

To define a drawing area in the Canvas item set the width and height properties. For example, the following code creates a Canvas item which has a drawing area with a height of 100 pixels and width of 200 pixels: \qml import QtQuick 2.0 Canvas { id: mycanvas width: 100 height: 200 onPaint: { var ctx = getContext("2d"); ctx.fillStyle = Qt.rgba(1, 0, 0, 1); ctx.fillRect(0, 0, width, height); } } \endqml

Currently the Canvas item only supports the two-dimensional rendering context.

Definition at line 258 of file qquickcanvasitem.cpp.

References QQuickItem::ItemHasContents, and QQuickItem::setFlag().

+ Here is the call graph for this function:

◆ ~QQuickCanvasItem()

QQuickCanvasItem::~QQuickCanvasItem ( )

Definition at line 264 of file qquickcanvasitem.cpp.

References d, QQuickWindowQObjectCleanupJob::schedule(), and QQuickItem::window().

+ Here is the call graph for this function:

Member Function Documentation

◆ availableChanged

void QQuickCanvasItem::availableChanged ( )
signal

◆ cancelRequestAnimationFrame()

void QQuickCanvasItem::cancelRequestAnimationFrame ( QQmlV4FunctionPtr args)

\qmlmethod QtQuick::Canvas::cancelRequestAnimationFrame(int handle)

This function will cancel the animation callback referenced by handle.

Definition at line 886 of file qquickcanvasitem.cpp.

References args, QV4::Encode::null(), qmlWarning(), and QList< T >::remove().

+ Here is the call graph for this function:

◆ canvasSize()

QSizeF QQuickCanvasItem::canvasSize ( ) const

\qmlproperty size QtQuick::Canvas::canvasSize Holds the logical canvas size that the context paints on.

By default, the canvas size is the same size as the current canvas item size.

By setting the canvasSize, tileSize and canvasWindow, the Canvas item can act as a large virtual canvas with many separately rendered tile rectangles. Only those tiles within the current canvas window are painted by the Canvas render engine.

See also
tileSize, canvasWindow

Definition at line 352 of file qquickcanvasitem.cpp.

References d.

◆ canvasSizeChanged

void QQuickCanvasItem::canvasSizeChanged ( )
signal

Referenced by geometryChange(), and setCanvasSize().

+ Here is the caller graph for this function:

◆ canvasWindow()

QRectF QQuickCanvasItem::canvasWindow ( ) const

\qmlproperty rect QtQuick::Canvas::canvasWindow Holds the current canvas visible window.

By default the canvasWindow size is the same as the Canvas item size with the top-left point as (0, 0).

If the canvasSize is different to the Canvas item size, the Canvas item can display different visible areas by changing the canvas windowSize and/or position.

Deprecated
This feature is incomplete. For details, see QTBUG-33129.
See also
canvasSize, tileSize

Definition at line 423 of file qquickcanvasitem.cpp.

References d.

◆ canvasWindowChanged

void QQuickCanvasItem::canvasWindowChanged ( )
signal

Referenced by geometryChange(), and setCanvasWindow().

+ Here is the caller graph for this function:

◆ componentComplete()

void QQuickCanvasItem::componentComplete ( )
overrideprotectedvirtual

Invoked after the root component that caused this instantiation has completed construction.

At this point all static values and binding values have been assigned to the class.

Implements QQmlParserStatus.

Definition at line 628 of file qquickcanvasitem.cpp.

References QQuickItem::componentComplete(), QQmlEngine::contextForObject(), d, and qmlEngine().

+ Here is the call graph for this function:

◆ context()

QJSValue QQuickCanvasItem::context ( ) const

\qmlproperty object QtQuick::Canvas::context Holds the active drawing context.

If the canvas is ready and there has been a successful call to getContext() or the contextType property has been set with a supported context type, this property will contain the current drawing context, otherwise null.

Definition at line 332 of file qquickcanvasitem.cpp.

References d, and QJSValuePrivate::fromReturnedValue().

+ Here is the call graph for this function:

◆ contextChanged

void QQuickCanvasItem::contextChanged ( )
signal

◆ contextType()

QString QQuickCanvasItem::contextType ( ) const

\qmlproperty string QtQuick::Canvas::contextType The type of drawing context to use.

This property is set to the name of the active context type.

If set explicitly the canvas will attempt to create a context of the named type after becoming available.

The type name is the same as used in the getContext() call, for the 2d canvas the value will be "2d".

See also
getContext(), available

Definition at line 298 of file qquickcanvasitem.cpp.

◆ contextTypeChanged

void QQuickCanvasItem::contextTypeChanged ( )
signal

Referenced by setContextType().

+ Here is the caller graph for this function:

◆ event()

bool QQuickCanvasItem::event ( QEvent * e)
overrideprotectedvirtual

This virtual function receives events to an object and should return true if the event e was recognized and processed.

The event() function can be reimplemented to customize the behavior of an object.

Make sure you call the parent event class implementation for all the events you did not handle.

Example:

class MyClass : public QWidget
{
public:
MyClass(QWidget *parent = nullptr);
bool event(QEvent* ev) override
{
if (ev->type() == QEvent::PolishRequest) {
// overwrite handling of PolishRequest if any
doThings();
return true;
} else if (ev->type() == QEvent::Show) {
// complement handling of Show if any
doThings2();
return true;
}
// Make sure the rest of events are handled
return QWidget::event(ev);
}
};
See also
installEventFilter(), timerEvent(), QCoreApplication::sendEvent(), QCoreApplication::postEvent()

Reimplemented from QObject.

Definition at line 594 of file qquickcanvasitem.cpp.

References QQuickItem::event(), QQuickItem::polish(), and QEvent::PolishRequest.

+ Here is the call graph for this function:

◆ geometryChange()

void QQuickCanvasItem::geometryChange ( const QRectF & newGeometry,
const QRectF & oldGeometry )
overrideprotectedvirtual
Since
6.0

This function is called to handle this item's changes in geometry from oldGeometry to newGeometry. If the two geometries are the same, it doesn't do anything.

Derived classes must call the base class method within their implementation.

Reimplemented from QQuickItem.

Definition at line 543 of file qquickcanvasitem.cpp.

References canvasSizeChanged(), canvasWindowChanged(), d, emit, QQuickItem::geometryChange(), QQuickItem::height, QQuickItem::isVisible(), rect, requestPaint(), QRectF::size(), tileSizeChanged(), QSizeF::toSize(), and QQuickItem::width.

+ Here is the call graph for this function:

◆ getContext()

void QQuickCanvasItem::getContext ( QQmlV4FunctionPtr args)

\qmlmethod object QtQuick::Canvas::getContext(string contextId, ... args)

Returns a drawing context, or null if no context is available.

The contextId parameter names the required context. The Canvas item will return a context that implements the required drawing mode. After the first call to getContext, any subsequent call to getContext with the same contextId will return the same context object. Any additional arguments (args) are currently ignored.

If the context type is not supported or the canvas has previously been requested to provide a different and incompatible context type, null will be returned.

Canvas only supports a 2d context.

Definition at line 813 of file qquickcanvasitem.cpp.

References args, Qt::CaseInsensitive, d, QV4::Encode::null(), qmlWarning(), and str.

+ Here is the call graph for this function:

◆ imageLoaded

void QQuickCanvasItem::imageLoaded ( )
signal

Referenced by loadImage().

+ Here is the caller graph for this function:

◆ isAvailable()

bool QQuickCanvasItem::isAvailable ( ) const

\qmlproperty bool QtQuick::Canvas::available

Indicates when Canvas is able to provide a drawing context to operate on.

Definition at line 278 of file qquickcanvasitem.cpp.

◆ isImageError

bool QQuickCanvasItem::isImageError ( const QUrl & url) const
slot

\qmlmethod QtQuick::Canvas::isImageError(url image)

Returns true if the image failed to load, false otherwise.

See also
loadImage()

Definition at line 1039 of file qquickcanvasitem.cpp.

References d, and url.

◆ isImageLoaded

bool QQuickCanvasItem::isImageLoaded ( const QUrl & url) const
slot

\qmlmethod QtQuick::Canvas::isImageLoaded(url image) Returns true if the image is successfully loaded and ready to use.

See also
loadImage()

Definition at line 1066 of file qquickcanvasitem.cpp.

References d, and url.

◆ isImageLoading

bool QQuickCanvasItem::isImageLoading ( const QUrl & url) const
slot

\qmlmethod QtQuick::Canvas::isImageLoading(url image) Returns true if the image is currently loading.

See also
loadImage()

Definition at line 1053 of file qquickcanvasitem.cpp.

References d, and url.

◆ isTextureProvider()

bool QQuickCanvasItem::isTextureProvider ( ) const
overridevirtual

Returns true if this item is a texture provider.

The default implementation returns false.

This function can be called from any thread.

Reimplemented from QQuickItem.

Definition at line 766 of file qquickcanvasitem.cpp.

◆ itemChange()

void QQuickCanvasItem::itemChange ( QQuickItem::ItemChange change,
const QQuickItem::ItemChangeData & value )
overrideprotectedvirtual

Called when change occurs for this item.

value contains extra information relating to the change, when applicable.

If you re-implement this method in a subclass, be sure to call

virtual void itemChange(ItemChange, const ItemChangeData &)
Called when change occurs for this item.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]

typically at the end of your implementation, to ensure the \l windowChanged() signal will be emitted.

Reimplemented from QQuickItem.

Definition at line 636 of file qquickcanvasitem.cpp.

References QObject::connect(), QQuickItemPrivate::ContentUpdateMask, context, d, FramebufferObject, QQuickWindowPrivate::get(), QMetaObject::invokeMethod(), QQuickItem::itemChange(), QQuickItem::ItemSceneChange, Qt::QueuedConnection, requestPaint(), SIGNAL, and SLOT.

+ Here is the call graph for this function:

◆ loadedPixmap()

QQmlRefPointer< QQuickCanvasPixmap > QQuickCanvasItem::loadedPixmap ( const QUrl & url,
QSizeF sourceSize = QSizeF() )

Definition at line 961 of file qquickcanvasitem.cpp.

References d, loadImage(), and url.

+ Here is the call graph for this function:

◆ loadImage

void QQuickCanvasItem::loadImage ( const QUrl & url,
QSizeF sourceSize = QSizeF() )
slot

\qmlsignal QtQuick::Canvas::imageLoaded()

This signal is emitted when an image has been loaded.

See also
loadImage()

\qmlmethod QtQuick::Canvas::loadImage(url image, size sourceSize = undefined)

Loads the given image asynchronously.

Once the image is ready, imageLoaded() signal will be emitted. The loaded image can be unloaded with the unloadImage() method.

Note
Only loaded images can be painted on the Canvas item.

If sourceSize is specified, the image will be scaled to that size during loading. This is useful for loading scalable (vector) images (eg. SVGs) at their intended display size. This parameter was introduced in Qt 6.7.

See also
unloadImage(), imageLoaded(), isImageLoaded(), Context2D::createImageData(), Context2D::drawImage()

Definition at line 996 of file qquickcanvasitem.cpp.

References QQuickPixmap::Asynchronous, QQuickPixmap::Cache, d, imageLoaded(), QPixmap::load(), pix, qmlEngine(), SIGNAL, QSizeF::toSize(), and url.

Referenced by loadedPixmap().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ markDirty()

void QQuickCanvasItem::markDirty ( const QRectF & rect = QRectF())

\qmlmethod QtQuick::Canvas::markDirty(rect area)

Marks the given area as dirty, so that when this area is visible the canvas renderer will redraw it. This will trigger the paint signal.

See also
paint, requestPaint()

Definition at line 922 of file qquickcanvasitem.cpp.

References d, QQuickItem::polish(), and rect.

Referenced by requestPaint().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ paint

void QQuickCanvasItem::paint ( const QRect & region)
signal

◆ painted

void QQuickCanvasItem::painted ( )
signal

◆ rawContext()

QQuickCanvasContext * QQuickCanvasItem::rawContext ( ) const

Definition at line 519 of file qquickcanvasitem.cpp.

◆ releaseResources()

void QQuickCanvasItem::releaseResources ( )
overrideprotectedvirtual

This function is called when an item should release graphics resources which are not already managed by the nodes returned from QQuickItem::updatePaintNode().

This happens when the item is about to be removed from the window it was previously rendering to. The item is guaranteed to have a \l {QQuickItem::window()}{window} when the function is called.

The function is called on the GUI thread and the state of the rendering thread, when it is used, is unknown. Objects should not be deleted directly, but instead scheduled for cleanup using QQuickWindow::scheduleRenderJob().

See also
{Graphics Resource Handling}

Reimplemented from QQuickItem.

Definition at line 575 of file qquickcanvasitem.cpp.

References d, QQuickWindowQObjectCleanupJob::schedule(), and QQuickItem::window().

+ Here is the call graph for this function:

◆ renderStrategy()

QQuickCanvasItem::RenderStrategy QQuickCanvasItem::renderStrategy ( ) const

\qmlproperty enumeration QtQuick::Canvas::renderStrategy Holds the current canvas rendering strategy.

\value Canvas.Immediate context will perform graphics commands immediately in the main UI thread. \value Canvas.Threaded context will defer graphics commands to a private rendering thread. \value Canvas.Cooperative context will defer graphics commands to the applications global render thread.

This hint is supplied along with renderTarget to the graphics context to determine the method of rendering. A renderStrategy, renderTarget or a combination may not be supported by a graphics context, in which case the context will choose appropriate options and Canvas will signal the change to the properties.

Configuration or runtime tests may cause the QML Scene Graph to render in the GUI thread. Selecting Canvas.Cooperative, does not guarantee rendering will occur on a thread separate from the GUI thread.

The default value is Canvas.Immediate.

See also
renderTarget

Definition at line 501 of file qquickcanvasitem.cpp.

◆ renderStrategyChanged

void QQuickCanvasItem::renderStrategyChanged ( )
signal

Referenced by setRenderStrategy().

+ Here is the caller graph for this function:

◆ renderTarget()

QQuickCanvasItem::RenderTarget QQuickCanvasItem::renderTarget ( ) const

\qmlproperty enumeration QtQuick::Canvas::renderTarget Holds the current canvas render target.

\value Canvas.Image Render to an in-memory image buffer. \value Canvas.FramebufferObject As of Qt 6.0, this value is ignored.

This hint is supplied along with renderStrategy to the graphics context to determine the method of rendering. A renderStrategy, renderTarget or a combination may not be supported by a graphics context, in which case the context will choose appropriate options and Canvas will signal the change to the properties.

The default render target is Canvas.Image.

Definition at line 458 of file qquickcanvasitem.cpp.

References d.

◆ renderTargetChanged

void QQuickCanvasItem::renderTargetChanged ( )
signal

Referenced by setRenderTarget().

+ Here is the caller graph for this function:

◆ requestAnimationFrame()

void QQuickCanvasItem::requestAnimationFrame ( QQmlV4FunctionPtr args)

\qmlmethod int QtQuick::Canvas::requestAnimationFrame(callback)

This function schedules callback to be invoked before composing the Qt Quick scene.

Definition at line 857 of file qquickcanvasitem.cpp.

References args, d, QV4::Scope::engine, QQuickItem::isVisible(), QV4::Encode::null(), and qmlWarning().

+ Here is the call graph for this function:

◆ requestPaint()

void QQuickCanvasItem::requestPaint ( )

\qmlmethod QtQuick::Canvas::requestPaint()

Request the entire visible region be re-drawn.

See also
markDirty()

Definition at line 908 of file qquickcanvasitem.cpp.

References canvasWindow, and markDirty().

Referenced by geometryChange(), and itemChange().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ save()

bool QQuickCanvasItem::save ( const QString & filename,
const QSizeF & imageSize = QSizeF() ) const

\qmlmethod bool QtQuick::Canvas::save(string filename, size imageSize = undefined)

Saves the current canvas content into an image file filename. The saved image format is automatically decided by the filename's suffix. Returns true on success. If imageSize is specified, the resulting image will have this size, and will have a devicePixelRatio of 1.0. Otherwise, the \l {QQuickWindow::}{devicePixelRatio()} of the window in which the canvas is displayed is applied to the saved image.

Note
Calling this method will force painting the whole canvas, not just the current canvas visible window.
See also
canvasWindow, canvasSize, toDataURL()

Definition at line 954 of file qquickcanvasitem.cpp.

References d, QUrl::fromLocalFile(), QImage::save(), toImage(), QUrl::toLocalFile(), and url.

+ Here is the call graph for this function:

◆ setCanvasSize()

void QQuickCanvasItem::setCanvasSize ( const QSizeF & size)

Definition at line 358 of file qquickcanvasitem.cpp.

References canvasSizeChanged(), d, emit, QQuickItem::polish(), and QQuickItem::size().

+ Here is the call graph for this function:

◆ setCanvasWindow()

void QQuickCanvasItem::setCanvasWindow ( const QRectF & rect)

Definition at line 429 of file qquickcanvasitem.cpp.

References canvasWindowChanged(), d, emit, QQuickItem::polish(), and rect.

+ Here is the call graph for this function:

◆ setContextType()

void QQuickCanvasItem::setContextType ( const QString & contextType)

Definition at line 303 of file qquickcanvasitem.cpp.

References Qt::CaseInsensitive, QString::compare(), contextType, contextTypeChanged(), d, emit, and qmlWarning().

+ Here is the call graph for this function:

◆ setRenderStrategy()

void QQuickCanvasItem::setRenderStrategy ( QQuickCanvasItem::RenderStrategy strategy)

Definition at line 506 of file qquickcanvasitem.cpp.

References d, emit, qmlWarning(), and renderStrategyChanged().

+ Here is the call graph for this function:

◆ setRenderTarget()

void QQuickCanvasItem::setRenderTarget ( QQuickCanvasItem::RenderTarget target)

Definition at line 464 of file qquickcanvasitem.cpp.

References d, emit, qmlWarning(), and renderTargetChanged().

+ Here is the call graph for this function:

◆ setTileSize()

void QQuickCanvasItem::setTileSize ( const QSize & size)

Definition at line 394 of file qquickcanvasitem.cpp.

References d, emit, QQuickItem::polish(), QQuickItem::size(), and tileSizeChanged().

+ Here is the call graph for this function:

◆ textureProvider()

QSGTextureProvider * QQuickCanvasItem::textureProvider ( ) const
overridevirtual

Returns the texture provider for an item.

The default implementation returns \nullptr.

This function may only be called on the rendering thread.

Reimplemented from QQuickItem.

Definition at line 771 of file qquickcanvasitem.cpp.

References QThread::currentThread(), d, QQuickWindowPrivate::get(), QQuickItem::isTextureProvider(), qWarning, QQuickItem::textureProvider(), and QQuickItem::window().

+ Here is the call graph for this function:

◆ tileSize()

QSize QQuickCanvasItem::tileSize ( ) const

\qmlproperty size QtQuick::Canvas::tileSize Holds the canvas rendering tile size.

The Canvas item enters tiled mode by setting canvasSize, tileSize and the canvasWindow. This can improve rendering performance by rendering and caching tiles instead of rendering the whole canvas every time.

Memory will be consumed only by those tiles within the current visible region.

By default the tileSize is the same as the canvasSize.

Deprecated
This feature is incomplete. For details, see QTBUG-33129.
See also
canvasSize, canvasWindow

Definition at line 388 of file qquickcanvasitem.cpp.

References d.

◆ tileSizeChanged

void QQuickCanvasItem::tileSizeChanged ( )
signal

Referenced by geometryChange(), and setTileSize().

+ Here is the caller graph for this function:

◆ toDataURL()

QString QQuickCanvasItem::toDataURL ( const QString & mimeType = QLatin1String("image/png")) const

\qmlmethod string QtQuick::Canvas::toDataURL(string mimeType)

Returns a data URL for the image in the canvas.

The default mimeType is "image/png".

See also
save()

Definition at line 1126 of file qquickcanvasitem.cpp.

References ba, QByteArray::constData(), mime, mimeToType(), mimeType, QStringLiteral, QByteArray::toBase64(), toImage(), and QIODeviceBase::WriteOnly.

+ Here is the call graph for this function:

◆ toImage()

QImage QQuickCanvasItem::toImage ( const QRectF & rect = QRectF()) const

Returns a QImage representing the requested rect which is in device independent pixels of the item. If rect is empty, then it will use the whole item's rect by default.

Definition at line 1080 of file qquickcanvasitem.cpp.

References canvasWindow, d, dpr(), QRectF::isEmpty(), rect, and QQuickItem::window().

Referenced by save(), and toDataURL().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unloadImage

void QQuickCanvasItem::unloadImage ( const QUrl & url)
slot

\qmlmethod QtQuick::Canvas::unloadImage(url image)

Unloads the image.

Once an image is unloaded, it cannot be painted by the canvas context unless it is loaded again.

See also
loadImage(), imageLoaded(), isImageLoaded(), Context2D::createImageData(), Context2D::drawImage

Definition at line 1026 of file qquickcanvasitem.cpp.

References d, and url.

◆ updatePaintNode()

QSGNode * QQuickCanvasItem::updatePaintNode ( QSGNode * oldNode,
UpdatePaintNodeData * updatePaintNodeData )
overrideprotectedvirtual

Called on the render thread when it is time to sync the state of the item with the scene graph.

The function is called as a result of QQuickItem::update(), if the user has set the QQuickItem::ItemHasContents flag on the item.

The function should return the root of the scene graph subtree for this item. Most implementations will return a single QSGGeometryNode containing the visual representation of this item. oldNode is the node that was returned the last time the function was called. updatePaintNodeData provides a pointer to the QSGTransformNode associated with this QQuickItem.

QSGNode *MyItem::updatePaintNode(QSGNode *node, UpdatePaintNodeData *)
{
QSGSimpleRectNode *n = static_cast<QSGSimpleRectNode *>(node);
if (!n) {
n->setColor(Qt::red);
}
n->setRect(boundingRect());
return n;
}
virtual QRectF boundingRect() const
Returns the extents of the item in its own coordinate system: a rectangle from {0,...
\group qtquick-scenegraph-nodes \title Qt Quick Scene Graph Node classes
Definition qsgnode.h:37
The QSGSimpleRectNode class is a convenience class for drawing solid filled rectangles using scenegra...
@ red
Definition qnamespace.h:35
GLfloat n

The main thread is blocked while this function is executed so it is safe to read values from the QQuickItem instance and other objects in the main thread.

If no call to QQuickItem::updatePaintNode() result in actual scene graph changes, like QSGNode::markDirty() or adding and removing nodes, then the underlying implementation may decide to not render the scene again as the visual outcome is identical.

Warning
It is crucial that graphics operations and interaction with the scene graph happens exclusively on the render thread, primarily during the QQuickItem::updatePaintNode() call. The best rule of thumb is to only use classes with the "QSG" prefix inside the QQuickItem::updatePaintNode() function.
This function is called on the render thread. This means any QObjects or thread local storage that is created will have affinity to the render thread, so apply caution when doing anything other than rendering in this function. Similarly for signals, these will be emitted on the render thread and will thus often be delivered via queued connections.
Note
All classes with QSG prefix should be used solely on the scene graph's rendering thread. See \l {Scene Graph and Rendering} for more information.
See also
QSGMaterial, QSGGeometryNode, QSGGeometry, QSGFlatColorMaterial, QSGTextureMaterial, QSGNode::markDirty(), {Graphics Resource Handling}

Reimplemented from QQuickItem.

Definition at line 708 of file qquickcanvasitem.cpp.

References QQuickItem::antialiasing, Cooperative, QSGContext::createInternalImageNode(), d, factory, QQuickWindowPrivate::get(), QSGTexture::Linear, QSGTexture::Nearest, QSGRenderContext::sceneGraphContext(), QSGInternalImageNode::setFiltering(), QSGInternalImageNode::setInnerTargetRect(), QSGInternalImageNode::setTargetRect(), QSGInternalImageNode::setTexture(), QSGInternalImageNode::update(), and QQuickItem::window().

+ Here is the call graph for this function:

◆ updatePolish()

void QQuickCanvasItem::updatePolish ( )
overrideprotectedvirtual

This function should perform any layout as required for this item.

When polish() is called, the scene graph schedules a polish event for this item. When the scene graph is ready to render this item, it calls updatePolish() to do any item layout as required before it renders the next frame.

See also
ensurePolished()

Reimplemented from QQuickItem.

Definition at line 666 of file qquickcanvasitem.cpp.

References QQuickItem::antialiasing, Cooperative, QDateTime::currentMSecsSinceEpoch(), d, emit, QV4::Value::fromUInt32(), function, QJSEngine::handle(), QQuickItem::isVisible(), it, paint, qmlEngine(), QQuickItem::update(), QQuickItem::updatePolish(), and QV4::QObjectWrapper::wrap().

+ Here is the call graph for this function:

Property Documentation

◆ available

bool QQuickCanvasItem::available
read

Definition at line 58 of file qquickcanvasitem_p.h.

◆ canvasSize

QSizeF QQuickCanvasItem::canvasSize
readwrite

Definition at line 61 of file qquickcanvasitem_p.h.

◆ canvasWindow

QRectF QQuickCanvasItem::canvasWindow
readwrite

Definition at line 63 of file qquickcanvasitem_p.h.

Referenced by requestPaint(), and toImage().

◆ context

QJSValue QQuickCanvasItem::context
read

Definition at line 60 of file qquickcanvasitem_p.h.

Referenced by itemChange().

◆ contextType

QString QQuickCanvasItem::contextType
readwrite

Definition at line 59 of file qquickcanvasitem_p.h.

Referenced by setContextType().

◆ renderStrategy

RenderStrategy QQuickCanvasItem::renderStrategy
readwrite

Definition at line 65 of file qquickcanvasitem_p.h.

◆ renderTarget

RenderTarget QQuickCanvasItem::renderTarget
readwrite

Definition at line 64 of file qquickcanvasitem_p.h.

Referenced by QQuickContext2D::init().

◆ tileSize

QSize QQuickCanvasItem::tileSize
readwrite

Definition at line 62 of file qquickcanvasitem_p.h.


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