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

#include <qquick3dviewport_p.h>

+ Inheritance diagram for QQuick3DViewport:
+ Collaboration diagram for QQuick3DViewport:

Public Types

enum  RenderMode { Offscreen , Underlay , Overlay , Inline }
 
- 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 setCamera (QQuick3DCamera *camera)
 
void setEnvironment (QQuick3DSceneEnvironment *environment)
 
void setImportScene (QQuick3DNode *inScene)
 
void setRenderMode (QQuick3DViewport::RenderMode renderMode)
 
Q_REVISION(6, 4) void setRenderFormat(QQuickShaderEffectSource Q_REVISION (6, 7) void setExplicitTextureWidth(int width)
 
 Q_REVISION (6, 7) void setExplicitTextureHeight(int height)
 
void cleanupDirectRenderer ()
 
void setGlobalPickingEnabled (bool isEnabled)
 
- 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 cameraChanged ()
 
void environmentChanged ()
 
void sceneChanged ()
 
void importSceneChanged ()
 
void renderModeChanged ()
 
 Q_REVISION (6, 4) void renderFormatChanged()
 
 Q_REVISION (6, 7) void explicitTextureWidthChanged()
 
 Q_REVISION (6, 7) void explicitTextureHeightChanged()
 
 Q_REVISION (6, 7) void effectiveTextureSizeChanged()
 
- 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

 QQuick3DViewport (QQuickItem *parent=nullptr)
 \qmltype View3D \inherits QQuickItem \inqmlmodule QtQuick3D
 
 ~QQuick3DViewport () override
 
QQmlListProperty< QObjectdata ()
 
QQuick3DCameracamera () const
 \qmlproperty QtQuick3D::Camera QtQuick3D::View3D::camera
 
QQuick3DSceneEnvironmentenvironment () const
 \qmlproperty QtQuick3D::SceneEnvironment QtQuick3D::View3D::environment
 
QQuick3DNodescene () const
 \qmlproperty QtQuick3D::Node QtQuick3D::View3D::scene \readonly
 
QQuick3DNodeimportScene () const
 \qmlproperty QtQuick3D::Node QtQuick3D::View3D::importScene
 
RenderMode renderMode () const
 \qmlproperty enumeration QtQuick3D::View3D::renderMode
 
Q_REVISION(6, 4) QQuickShaderEffectSource QQuick3DRenderStatsrenderStats () const
 \qmlproperty QtQuick3D::RenderStats QtQuick3D::View3D::renderStats \readonly
 
QQuick3DSceneRenderercreateRenderer () const
 
bool isTextureProvider () const override
 Returns true if this item is a texture provider.
 
QSGTextureProvidertextureProvider () const override
 Returns the texture provider for an item.
 
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().
 
Q_INVOKABLE QVector3D mapFrom3DScene (const QVector3D &scenePos) const
 \qmlmethod vector3d View3D::mapFrom3DScene(vector3d scenePos)
 
Q_INVOKABLE QVector3D mapTo3DScene (const QVector3D &viewPos) const
 \qmlmethod vector3d View3D::mapTo3DScene(vector3d viewPos)
 
Q_INVOKABLE QQuick3DPickResult pick (float x, float y) const
 \qmlmethod PickResult View3D::pick(float x, float y)
 
 Q_REVISION (6, 8) Q_INVOKABLE QQuick3DPickResult pick(float x
 
 Q_REVISION (6, 8) Q_INVOKABLE QList< QQuick3DPickResult > pickSubset(float x
 
 Q_REVISION (6, 2) Q_INVOKABLE QList< QQuick3DPickResult > pickAll(float x
 
 Q_REVISION (6, 2) Q_INVOKABLE QQuick3DPickResult rayPick(const QVector3D &origin
 
 Q_REVISION (6, 2) Q_INVOKABLE QList< QQuick3DPickResult > rayPickAll(const QVector3D &origin
 
void processPointerEventFromRay (const QVector3D &origin, const QVector3D &direction, QPointerEvent *event)
 
 Q_REVISION (6, 8) Q_INVOKABLE void setTouchpoint(QQuickItem *target
 
QQuick3DLightmapBakermaybeLightmapBaker ()
 
QQuick3DLightmapBakerlightmapBaker ()
 
Q_INVOKABLE void bakeLightmap ()
 
QQmlListProperty< QQuick3DObjectextensions ()
 
 Q_REVISION (6, 7) int explicitTextureWidth() const
 
 Q_REVISION (6, 7) int explicitTextureHeight() const
 
 Q_REVISION (6, 7) QSize effectiveTextureSize() const
 
bool extensionListDirty () const
 
const QList< QQuick3DObject * > & extensionList () const
 
void clearExtensionListDirty ()
 
 Q_REVISION (6, 7) Q_INVOKABLE void rebuildExtensionList()
 
- 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 ()
 

Public Attributes

float y
 
float QQuick3DModel *model const
 
float const QJSValue &models const
 
float y const
 
const QVector3D &direction const
 
const QPointFposition
 
const QPointF int pointId
 
const QPointF int bool active
 
- Public Attributes inherited from QQuickItem
const QSizetargetSize = QSize())
 
qreal y const
 

Protected Member Functions

void geometryChange (const QRectF &newGeometry, const QRectF &oldGeometry) override
 
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 itemChange (QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value) override
 Called when change occurs for this item.
 
bool event (QEvent *) override
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
void componentComplete () override
 Invoked after the root component that caused this instantiation has completed construction.
 
- 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.
 
virtual void updatePolish ()
 This function should perform any layout as required for this item.
 
 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

QQmlListProperty< QObjectdata
 
QQuick3DCameracamera
 
QQuick3DSceneEnvironmentenvironment
 
QQuick3DNodescene
 
QQuick3DNodeimportScene
 
RenderMode renderMode
 
QQuickShaderEffectSource::Format renderFormat
 \qmlproperty enumeration QtQuick3D::View3D::renderFormat
 
QQuick3DRenderStatsrenderStats
 
QQmlListProperty< QQuick3DObjectextensions
 \qmlproperty List<QtQuick3D::Object3D> View3D::extensions
 
int explicitTextureWidth
 \qmlproperty int QtQuick3D::View3D::explicitTextureWidth
 
int explicitTextureHeight
 \qmlproperty int QtQuick3D::View3D::explicitTextureHeight
 
QSize effectiveTextureSize
 \qmlproperty size QtQuick3D::View3D::effectiveTextureSize
 
- 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
 

Friends

class QQuick3DExtensionListHelper
 
class QOpenXRManager
 
class QQuick3DRenderLayerHelpers
 

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)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

Definition at line 46 of file qquick3dviewport_p.h.

Member Enumeration Documentation

◆ RenderMode

Enumerator
Offscreen 
Underlay 
Overlay 
Inline 

Definition at line 66 of file qquick3dviewport_p.h.

Constructor & Destructor Documentation

◆ QQuick3DViewport()

QQuick3DViewport::QQuick3DViewport ( QQuickItem * parent = nullptr)
explicit

\qmltype View3D \inherits QQuickItem \inqmlmodule QtQuick3D

Provides a viewport on which to render a 3D scene.

View3D provides a 2D surface on which a 3D scene can be rendered. This surface is a Qt Quick \l Item and can be placed in a Qt Quick scene.

There are two ways to define the 3D scene that is visualized on the View3D: If you define a hierarchy of \l{Node}{Node-based} items as children of the View3D directly, then this will become the implicit scene of the View3D.

It is also possible to reference an existing scene by using the \l importScene property and setting it to the root \l Node of the scene you want to visualize. This \l Node does not have to be an ancestor of the View3D, and you can have multiple View3Ds that import the same scene.

This is demonstrated in \l {Qt Quick 3D - View3D example}{View3D example}.

If the View3D both has child \l{Node}{Nodes} and the \l importScene property is set simultaneously, then both scenes will be rendered as if they were sibling subtrees in the same scene.

To control how a scene is rendered, you can set the \l environment property. The type \l SceneEnvironment has a number of visual properties that can be adjusted, such as background color, tone mapping, anti-aliasing and more. \l ExtendedSceneEnvironment in the {QtQuick3D.Helpers} module extends \l SceneEnvironment with even more features, adding common post-processing effects.

In addition, in order for anything to be rendered in the View3D, the scene needs a \l Camera. If there is only a single \l Camera in the scene, then this will automatically be picked. Otherwise, the \l camera property can be used to select the camera. The \l Camera decides which parts of the scene are visible, and how they are projected onto the 2D surface.

By default, the 3D scene will first be rendered into an off-screen buffer and then composited with the rest of the Qt Quick scene when it is done. This provides the maximum level of compatibility, but may have performance implications on some graphics hardware. If this is the case, the \l renderMode property can be used to switch how the View3D is rendered into the window.

A View3D with the default Offscreen \l renderMode is implicitly a \l{QSGTextureProvider}{texture provider} as well. This means that \l ShaderEffect or \l{QtQuick3D::Texture::sourceItem}{Texture.sourceItem} can reference the View3D directly as long as all items live within the same \l{QQuickWindow}{window}. Like with any other \l Item, it is also possible to switch the View3D, or one of its ancestors, into a texture-based \l{QtQuick::Item::layer.enabled}{item layer}.

See also
{Qt Quick 3D - View3D example}

Definition at line 244 of file qquick3dviewport.cpp.

References QObject::connect(), QQuickItem::forceActiveFocus(), QQuick3DObjectPrivate::get(), isforceInputHandlingSet(), QQuickItem::ItemHasContents, QQuick3DSceneManager::needsUpdate(), Q_ASSERT, QQuickItem::setFlag(), and QQuickItem::update().

+ Here is the call graph for this function:

◆ ~QQuick3DViewport()

QQuick3DViewport::~QQuick3DViewport ( )
override

Definition at line 267 of file qquick3dviewport.cpp.

References QObject::deleteLater(), disconnect(), QQuick3DWindowAttachment::evaluateEol(), QQuick3DObjectPrivate::get(), QMetaObject::invokeMethod(), Qt::QueuedConnection, QObject::thread(), and QQuickItem::window().

+ Here is the call graph for this function:

Member Function Documentation

◆ bakeLightmap()

void QQuick3DViewport::bakeLightmap ( )

Definition at line 1353 of file qquick3dviewport.cpp.

References QQuick3DLightmapBaker::bake(), and lightmapBaker().

+ Here is the call graph for this function:

◆ camera()

QQuick3DCamera * QQuick3DViewport::camera ( ) const

\qmlproperty QtQuick3D::Camera QtQuick3D::View3D::camera

This property specifies which \l Camera is used to render the scene. If this property is not set, then the first enabled camera in the scene will be used.

Note
If this property contains a camera that's not \l {Node::visible}{visible} then no further attempts to find a camera will be done.
See also
PerspectiveCamera, OrthographicCamera, FrustumCamera, CustomCamera

Definition at line 363 of file qquick3dviewport.cpp.

◆ cameraChanged

void QQuick3DViewport::cameraChanged ( )
signal

Referenced by setCamera().

+ Here is the caller graph for this function:

◆ cleanupDirectRenderer

void QQuick3DViewport::cleanupDirectRenderer ( )
slot

Definition at line 590 of file qquick3dviewport.cpp.

◆ clearExtensionListDirty()

void QQuick3DViewport::clearExtensionListDirty ( )
inline

Definition at line 121 of file qquick3dviewport_p.h.

Referenced by QQuick3DSceneRenderer::synchronize().

+ Here is the caller graph for this function:

◆ componentComplete()

void QQuick3DViewport::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 677 of file qquick3dviewport.cpp.

References QQuickItem::componentComplete(), and Q_QUICK3D_PROFILE_REGISTER.

+ Here is the call graph for this function:

◆ createRenderer()

QQuick3DSceneRenderer * QQuick3DViewport::createRenderer ( ) const

Definition at line 498 of file qquick3dviewport.cpp.

References QObject::connect(), Qt::DirectConnection, QQuick3DSceneManager::getOrSetWindowAttachment(), QSGRendererInterface::isApiRhiBased(), QSSG_CHECK_X, QSSG_GUARD, qWarning, QQuick3DWindowAttachment::releaseCachedResources(), renderer, QSGRendererInterface::RhiResource, and QQuickItem::window().

+ Here is the call graph for this function:

◆ data()

QQmlListProperty< QObject > QQuick3DViewport::data ( )

◆ environment()

QQuick3DSceneEnvironment * QQuick3DViewport::environment ( ) const

\qmlproperty QtQuick3D::SceneEnvironment QtQuick3D::View3D::environment

This property specifies the SceneEnvironment used to render the scene.

See also
SceneEnvironment

Definition at line 375 of file qquick3dviewport.cpp.

◆ environmentChanged

void QQuick3DViewport::environmentChanged ( )
signal

Referenced by setEnvironment().

+ Here is the caller graph for this function:

◆ event()

bool QQuick3DViewport::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 669 of file qquick3dviewport.cpp.

References QQuickItem::event().

+ Here is the call graph for this function:

◆ extensionList()

const QList< QQuick3DObject * > & QQuick3DViewport::extensionList ( ) const
inline

Definition at line 120 of file qquick3dviewport_p.h.

Referenced by QQuick3DSceneRenderer::synchronize().

+ Here is the caller graph for this function:

◆ extensionListDirty()

bool QQuick3DViewport::extensionListDirty ( ) const
inline

Definition at line 119 of file qquick3dviewport_p.h.

Referenced by QQuick3DSceneRenderer::synchronize().

+ Here is the caller graph for this function:

◆ extensions()

QQmlListProperty< QQuick3DObject > QQuick3DViewport::extensions ( )

◆ geometryChange()

void QQuick3DViewport::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 596 of file qquick3dviewport.cpp.

References QQuickItem::geometryChange(), QRectF::size(), and QQuickItem::update().

+ Here is the call graph for this function:

◆ importScene()

QQuick3DNode * QQuick3DViewport::importScene ( ) const

\qmlproperty QtQuick3D::Node QtQuick3D::View3D::importScene

This property defines the reference node of the scene to render to the viewport. The node does not have to be a child of the View3D. This referenced node becomes a sibling with child nodes of View3D, if there are any.

Note
This property can only be set once, and subsequent changes will have no effect.
See also
Node

Definition at line 405 of file qquick3dviewport.cpp.

◆ importSceneChanged

void QQuick3DViewport::importSceneChanged ( )
signal

Referenced by setImportScene().

+ Here is the caller graph for this function:

◆ isTextureProvider()

bool QQuick3DViewport::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 539 of file qquick3dviewport.cpp.

References Offscreen.

◆ itemChange()

void QQuick3DViewport::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 653 of file qquick3dviewport.cpp.

References QQuick3DObjectPrivate::get(), QQuickItem::isVisible(), QQuickItem::ItemSceneChange, QQuickItem::ItemVisibleHasChanged, QQuick3DRenderStats::setWindow(), and QQuickItem::update().

+ Here is the call graph for this function:

◆ lightmapBaker()

QQuick3DLightmapBaker * QQuick3DViewport::lightmapBaker ( )

Definition at line 1342 of file qquick3dviewport.cpp.

Referenced by bakeLightmap().

+ Here is the caller graph for this function:

◆ mapFrom3DScene()

QVector3D QQuick3DViewport::mapFrom3DScene ( const QVector3D & scenePos) const

\qmlmethod vector3d View3D::mapFrom3DScene(vector3d scenePos)

Transforms scenePos from scene space (3D) into view space (2D).

The returned x- and y-values will be be in view coordinates, with the top-left corner at [0, 0] and the bottom-right corner at [width, height]. The returned z-value contains the distance from the near clip plane of the frustum (clipNear) to scenePos in scene coordinates. If the distance is negative, that means the scenePos is behind the active camera. If scenePos cannot be mapped to a position in the scene, a position of [0, 0, 0] is returned.

This function requires that \l camera is assigned to the view.

See also
mapTo3DScene(), {Camera::mapToViewport()}{Camera.mapToViewport()}

Definition at line 926 of file qquick3dviewport.cpp.

References QQuickItem::height, QQuick3DCamera::mapToViewport(), qmlWarning(), and QQuickItem::width.

+ Here is the call graph for this function:

◆ mapTo3DScene()

QVector3D QQuick3DViewport::mapTo3DScene ( const QVector3D & viewPos) const

\qmlmethod vector3d View3D::mapTo3DScene(vector3d viewPos)

Transforms viewPos from view space (2D) into scene space (3D).

The x- and y-values of viewPos should be in view coordinates, with the top-left corner at [0, 0] and the bottom-right corner at [width, height]. The z-value is interpreted as the distance from the near clip plane of the frustum (clipNear) in scene coordinates.

If viewPos cannot successfully be mapped to a position in the scene, a position of [0, 0, 0] is returned.

This function requires that a \l camera is assigned to the view.

See also
mapFrom3DScene(), {Camera::mapFromViewport}{Camera.mapFromViewport()}

Definition at line 959 of file qquick3dviewport.cpp.

References QQuickItem::height, QQuick3DCamera::mapFromViewport(), qmlWarning(), and QQuickItem::width.

+ Here is the call graph for this function:

◆ maybeLightmapBaker()

QQuick3DLightmapBaker * QQuick3DViewport::maybeLightmapBaker ( )

Definition at line 1337 of file qquick3dviewport.cpp.

Referenced by QQuick3DSceneRenderer::synchronize().

+ Here is the caller graph for this function:

◆ pick()

QQuick3DPickResult QQuick3DViewport::pick ( float x,
float y ) const

\qmlmethod PickResult View3D::pick(float x, float y)

\qmlmethod PickResult View3D::pick(float x, float y, Model model)

This method will "shoot" a ray into the scene from view coordinates x and y and return information about the nearest intersection with an object in the scene.

This can, for instance, be called with mouse coordinates to find the object under the mouse cursor.

This method will "shoot" a ray into the scene from view coordinates x and y and return information about the intersection between the ray and the specified model.

This can, for instance, be called with mouse coordinates to find the object under the mouse cursor.

Since
6.8

Definition at line 983 of file qquick3dviewport.cpp.

References position, renderer, and QQuickItem::window().

+ Here is the call graph for this function:

◆ processPointerEventFromRay()

void QQuick3DViewport::processPointerEventFromRay ( const QVector3D & origin,
const QVector3D & direction,
QPointerEvent * event )

Definition at line 1208 of file qquick3dviewport.cpp.

References direction.

◆ Q_REVISION() [1/16]

QQuick3DViewport::Q_REVISION ( 6 ,
2  )

◆ Q_REVISION() [2/16]

QQuick3DViewport::Q_REVISION ( 6 ,
2  ) const &

◆ Q_REVISION() [3/16]

QQuick3DViewport::Q_REVISION ( 6 ,
2  ) const &

◆ Q_REVISION [4/16]

QQuick3DViewport::Q_REVISION ( 6 ,
4  )
signal

◆ Q_REVISION() [5/16]

QQuick3DViewport::Q_REVISION ( 6 ,
7  ) const

◆ Q_REVISION() [6/16]

QQuick3DViewport::Q_REVISION ( 6 ,
7  ) const

◆ Q_REVISION() [7/16]

QQuick3DViewport::Q_REVISION ( 6 ,
7  )

◆ Q_REVISION() [8/16]

QQuick3DViewport::Q_REVISION ( 6 ,
7  ) const

◆ Q_REVISION [9/16]

QQuick3DViewport::Q_REVISION ( 6 ,
7  )
signal

◆ Q_REVISION [10/16]

QQuick3DViewport::Q_REVISION ( 6 ,
7  )
signal

◆ Q_REVISION [11/16]

QQuick3DViewport::Q_REVISION ( 6 ,
7  )
signal

◆ Q_REVISION [12/16]

QQuick3DViewport::Q_REVISION ( 6 ,
7  )
slot

◆ Q_REVISION [13/16]

Q_REVISION(6, 4) void setRenderFormat(QQuickShaderEffectSource QQuick3DViewport::Q_REVISION ( 6 ,
7  )
slot

◆ Q_REVISION() [14/16]

QQuick3DViewport::Q_REVISION ( 6 ,
8  )

◆ Q_REVISION() [15/16]

QQuick3DViewport::Q_REVISION ( 6 ,
8  )

◆ Q_REVISION() [16/16]

QQuick3DViewport::Q_REVISION ( 6 ,
8  )

◆ releaseResources()

void QQuick3DViewport::releaseResources ( )
overridevirtual

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 580 of file qquick3dviewport.cpp.

References QQuickItem::window().

+ Here is the call graph for this function:

◆ renderMode()

QQuick3DViewport::RenderMode QQuick3DViewport::renderMode ( ) const

\qmlproperty enumeration QtQuick3D::View3D::renderMode

This property determines how the View3D is combined with the other parts of the Qt Quick scene.

By default, the scene will be rendered into an off-screen buffer as an intermediate step. This off-screen buffer is then rendered into the window (or render target) like any other Qt Quick \l Item.

For most users, there will be no need to change the render mode, and this property can safely be ignored. But on some graphics hardware, the use of an off-screen buffer can be a performance bottleneck. If this is the case, it might be worth experimenting with other modes.

\value View3D.Offscreen The scene is rendered into an off-screen buffer as an intermediate step. This off-screen buffer is then composited with the rest of the Qt Quick scene.

\value View3D.Underlay The scene is rendered directly to the window before the rest of the Qt Quick scene is rendered. With this mode, the View3D cannot be placed on top of other Qt Quick items.

\value View3D.Overlay The scene is rendered directly to the window after Qt Quick is rendered. With this mode, the View3D will always be on top of other Qt Quick items.

\value View3D.Inline The View3D's scene graph is embedded into the main scene graph, and the same ordering semantics are applied as to any other Qt Quick \l Item. As this mode can lead to subtle issues, depending on the contents of the scene, due to injecting depth-based 3D content into a 2D scene graph, it is not recommended to be used, unless a specific need arises.

The default is {View3D.Offscreen}.

Note
When changing the render mode, it is important to note that {View3D.Offscreen} (the default) is the only mode which guarantees perfect graphics fidelity. The other modes all have limitations that can cause visual glitches, so it is important to check that the visual output still looks correct when changing this property.
When using the Underlay, Overlay, or Inline modes, it can be useful, and in some cases, required, to disable the Qt Quick scene graph's depth buffer writes via QQuickGraphicsConfiguration::setDepthBufferFor2D() before showing the QQuickWindow or QQuickView hosting the View3D item.

Definition at line 453 of file qquick3dviewport.cpp.

◆ renderModeChanged

void QQuick3DViewport::renderModeChanged ( )
signal

Referenced by setRenderMode().

+ Here is the caller graph for this function:

◆ renderStats()

QQuick3DRenderStats * QQuick3DViewport::renderStats ( ) const

\qmlproperty QtQuick3D::RenderStats QtQuick3D::View3D::renderStats \readonly

This property provides statistics about the rendering of a frame, such as \l {RenderStats::fps}{fps}, \l {RenderStats::frameTime}{frameTime}, \l {RenderStats::renderTime}{renderTime}, \l {RenderStats::syncTime}{syncTime}, and \l {RenderStats::maxFrameTime}{maxFrameTime}.

Definition at line 493 of file qquick3dviewport.cpp.

◆ scene()

QQuick3DNode * QQuick3DViewport::scene ( ) const

\qmlproperty QtQuick3D::Node QtQuick3D::View3D::scene \readonly

Holds the root \l Node of the View3D's scene.

See also
importScene

Definition at line 388 of file qquick3dviewport.cpp.

◆ sceneChanged

void QQuick3DViewport::sceneChanged ( )
signal

◆ setCamera

void QQuick3DViewport::setCamera ( QQuick3DCamera * camera)
slot

Definition at line 683 of file qquick3dviewport.cpp.

References QQuick3DObjectPrivate::attachWatcherPriv(), camera, cameraChanged(), emit, QQuickItem::height, setCamera(), QQuick3DObject::setParentItem(), QQuickItem::update(), QQuick3DCamera::updateGlobalVariables(), and QQuickItem::width.

Referenced by setCamera().

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

◆ setEnvironment

void QQuick3DViewport::setEnvironment ( QQuick3DSceneEnvironment * environment)
slot

Definition at line 729 of file qquick3dviewport.cpp.

References emit, environment, environmentChanged(), QQuick3DObject::setParentItem(), and QQuickItem::update().

Referenced by QOpenXRView::setEnvironment().

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

◆ setGlobalPickingEnabled

void QQuick3DViewport::setGlobalPickingEnabled ( bool isEnabled)
slot

Definition at line 1358 of file qquick3dviewport.cpp.

References QQuickItem::isEnabled(), and renderer.

+ Here is the call graph for this function:

◆ setImportScene

void QQuick3DViewport::setImportScene ( QQuick3DNode * inScene)
slot

Definition at line 741 of file qquick3dviewport.cpp.

References QObject::connect(), emit, QQuick3DObjectPrivate::get(), importSceneChanged(), manager, QQuick3DSceneManager::needsUpdate(), Q_ASSERT, qmlWarning(), scene, QQuickItem::update(), and QQuickItem::window().

Referenced by QOpenXRView::QOpenXRView().

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

◆ setRenderMode

void QQuick3DViewport::setRenderMode ( QQuick3DViewport::RenderMode renderMode)
slot

Definition at line 799 of file qquick3dviewport.cpp.

References emit, renderMode, renderModeChanged(), and QQuickItem::update().

+ Here is the call graph for this function:

◆ textureProvider()

QSGTextureProvider * QQuick3DViewport::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 548 of file qquick3dviewport.cpp.

References QQuickItem::isTextureProvider(), Offscreen, qWarning, QQuickItem::textureProvider(), and QQuickItem::window().

+ Here is the call graph for this function:

◆ updatePaintNode()

QSGNode * QQuick3DViewport::updatePaintNode ( QSGNode * oldNode,
QQuickItem::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 604 of file qquick3dviewport.cpp.

References QQuick3DObjectPrivate::get(), Inline, QMetaObject::invokeMethod(), isforceInputHandlingSet(), Offscreen, Overlay, Q_FALLTHROUGH, Qt::QueuedConnection, and Underlay.

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ QOpenXRManager

friend class QOpenXRManager
friend

Definition at line 167 of file qquick3dviewport_p.h.

◆ QQuick3DExtensionListHelper

friend class QQuick3DExtensionListHelper
friend

Definition at line 166 of file qquick3dviewport_p.h.

◆ QQuick3DRenderLayerHelpers

friend class QQuick3DRenderLayerHelpers
friend

Definition at line 168 of file qquick3dviewport_p.h.

Member Data Documentation

◆ active

const QPointF int bool QQuick3DViewport::active

Definition at line 105 of file qquick3dviewport_p.h.

◆ const [1/4]

const QVector3D &direction QQuick3DViewport::const

Definition at line 97 of file qquick3dviewport_p.h.

◆ const [2/4]

float const QJSValue& models QQuick3DViewport::const

Definition at line 98 of file qquick3dviewport_p.h.

◆ const [3/4]

float y QQuick3DViewport::const

Definition at line 99 of file qquick3dviewport_p.h.

◆ const [4/4]

const QVector3D& direction QQuick3DViewport::const

Definition at line 100 of file qquick3dviewport_p.h.

◆ pointId

const QPointF int QQuick3DViewport::pointId

Definition at line 105 of file qquick3dviewport_p.h.

◆ position

const QPointF& QQuick3DViewport::position

Definition at line 105 of file qquick3dviewport_p.h.

Referenced by pick().

◆ y

float QQuick3DViewport::y

Definition at line 97 of file qquick3dviewport_p.h.

Property Documentation

◆ camera

QQuick3DCamera * QQuick3DViewport::camera
readwrite

◆ data

QQmlListProperty< QObject > QQuick3DViewport::data
read

Definition at line 49 of file qquick3dviewport_p.h.

◆ effectiveTextureSize

QSize QQuick3DViewport::effectiveTextureSize
read

\qmlproperty size QtQuick3D::View3D::effectiveTextureSize

Since
6.7

This property exposes the size, in pixels, of the underlying color (and depth/stencil) buffers. It is provided for use on the GUI (main) thread, in QML bindings or JavaScript.

This is a read-only property.

Note
This property is relevant only when \l renderMode is set to Offscreen.
See also
explicitTextureWidth, explicitTextureHeight, DebugView

Definition at line 60 of file qquick3dviewport_p.h.

◆ environment

◆ explicitTextureHeight

int QQuick3DViewport::explicitTextureHeight
readwrite

\qmlproperty int QtQuick3D::View3D::explicitTextureHeight

Since
6.7

The height, in pixels, of the item's associated texture. Relevant when a fixed texture size is desired that does not depend on the item's size. This size has no effect on the geometry of the item (its size and placement within the scene), which means the texture's content will appear scaled up or down (and possibly stretched) onto the item's area.

By default the value is 0. A value of 0 means that texture's size follows the item's size. ({texture size in pixels} = {item's logical size} * {device pixel ratio}).

Note
This property is relevant only when \l renderMode is set to Offscreen. Its value is ignored otherwise.
See also
explicitTextureWidth, effectiveTextureSize, DebugView

Definition at line 59 of file qquick3dviewport_p.h.

◆ explicitTextureWidth

int QQuick3DViewport::explicitTextureWidth
readwrite

\qmlproperty int QtQuick3D::View3D::explicitTextureWidth

Since
6.7

The width, in pixels, of the item's associated texture. Relevant when a fixed texture size is desired that does not depend on the item's size. This size has no effect on the geometry of the item (its size and placement within the scene), which means the texture's content will appear scaled up or down (and possibly stretched) onto the item's area.

By default the value is 0. A value of 0 means that texture's size follows the item's size. ({texture size in pixels} = {item's logical size} * {device pixel ratio}).

Note
This property is relevant only when \l renderMode is set to Offscreen. Its value is ignored otherwise.
See also
explicitTextureHeight, effectiveTextureSize, DebugView

Definition at line 58 of file qquick3dviewport_p.h.

◆ extensions

QQmlListProperty< QQuick3DObject > QQuick3DViewport::extensions
read

\qmlproperty List<QtQuick3D::Object3D> View3D::extensions

This property contains a list of user extensions that should be used with this \l View3D.

See also
RenderExtension

Definition at line 57 of file qquick3dviewport_p.h.

◆ importScene

QQuick3DNode * QQuick3DViewport::importScene
readwrite

Definition at line 53 of file qquick3dviewport_p.h.

Referenced by QQuick3DSceneRenderer::synchronize().

◆ renderFormat

QQuickShaderEffectSource::Format QQuick3DViewport::renderFormat
readwrite

\qmlproperty enumeration QtQuick3D::View3D::renderFormat

Since
6.4

This property determines the backing texture's format. Applicable only when the View3D is rendering to a texture, for example because the \l renderMode is {View3D.Offscreen}.

The default is {ShaderEffectSource.RGBA8}.

If the format is not supported by the underlying graphics driver at run time, RGBA8 is used.

\list

  • ShaderEffectSource.RGBA8
  • ShaderEffectSource.RGBA16F
  • ShaderEffectSource.RGBA32F \endlist
See also
QtQuick::ShaderEffectSource::format, QtQuick::Item::layer.format

Definition at line 55 of file qquick3dviewport_p.h.

Referenced by QQuick3DSceneRenderer::synchronize().

◆ renderMode

RenderMode QQuick3DViewport::renderMode
readwrite

Definition at line 54 of file qquick3dviewport_p.h.

Referenced by setRenderMode(), and QQuick3DSceneRenderer::synchronize().

◆ renderStats

QQuick3DRenderStats * QQuick3DViewport::renderStats
read

◆ scene

QQuick3DNode * QQuick3DViewport::scene
read

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