[][src]Struct qt_3d_render::QSetFence

#[repr(C)]
pub struct QSetFence { /* fields omitted */ }

Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.

C++ class: Qt3DRender::QSetFence.

C++ documentation:

Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.

QSetFence is a FrameGraph node that inserts a fence into the command stream. It can then be used in conjunction with QWaitFence or by extracting the underlying handle.

The handle property will be updated once the renderer has created the underlying fence resource. The handle will remain valid as long as it remains in the unsignaled state. Once it has reached the signaled state, it will be destroyed and a new handle will be created. That means that depending on how long it takes for the fence to be signaled, the same handle could be used over several frames.

Methods

impl QSetFence[src]

pub fn handle_type_changed(&self) -> Signal<(HandleType,)>[src]

Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.

Returns a built-in Qt signal Qt3DRender::QSetFence::handleTypeChanged that can be passed to qt_core::Signal::connect.

C++ documentation:

Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.

Access functions:

Qt3DRender::QSetFence::HandleType handleType() const

Notifier signal:

void handleTypeChanged(Qt3DRender::QSetFence::HandleType handleType)

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub fn handle_changed(&self) -> Signal<(*const QVariant,)>[src]

Holds the underlying fence handle wrapped in a QVariant.

Returns a built-in Qt signal Qt3DRender::QSetFence::handleChanged that can be passed to qt_core::Signal::connect.

C++ documentation:

Holds the underlying fence handle wrapped in a QVariant.

Access functions:

QVariant handle() const

Notifier signal:

void handleChanged(QVariant handle)

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub unsafe fn handle(&self) -> CppBox<QVariant>[src]

Holds the underlying fence handle wrapped in a QVariant.

Calls C++ function: QVariant Qt3DRender::QSetFence::handle() const.

C++ documentation:

Holds the underlying fence handle wrapped in a QVariant.

Access functions:

QVariant handle() const

Notifier signal:

void handleChanged(QVariant handle)

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub unsafe fn handle_type(&self) -> HandleType[src]

Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.

Calls C++ function: Qt3DRender::QSetFence::HandleType Qt3DRender::QSetFence::handleType() const.

C++ documentation:

Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.

Access functions:

Qt3DRender::QSetFence::HandleType handleType() const

Notifier signal:

void handleTypeChanged(Qt3DRender::QSetFence::HandleType handleType)

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub unsafe fn meta_object(&self) -> Ptr<QMetaObject>[src]

Calls C++ function: virtual const QMetaObject* Qt3DRender::QSetFence::metaObject() const.

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub unsafe fn new_1a(parent: impl CastInto<MutPtr<QNode>>) -> QBox<QSetFence>[src]

Calls C++ function: [constructor] void Qt3DRender::QSetFence::QSetFence(Qt3DCore::QNode* parent = …).

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub unsafe fn new_0a() -> QBox<QSetFence>[src]

Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.

Calls C++ function: [constructor] void Qt3DRender::QSetFence::QSetFence().

C++ documentation:

Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.

QSetFence is a FrameGraph node that inserts a fence into the command stream. It can then be used in conjunction with QWaitFence or by extracting the underlying handle.

The handle property will be updated once the renderer has created the underlying fence resource. The handle will remain valid as long as it remains in the unsignaled state. Once it has reached the signaled state, it will be destroyed and a new handle will be created. That means that depending on how long it takes for the fence to be signaled, the same handle could be used over several frames.

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub unsafe fn qt_metacall(
    &mut self,
    arg1: Call,
    arg2: c_int,
    arg3: impl CastInto<MutPtr<*mut c_void>>
) -> c_int
[src]

Calls C++ function: virtual int Qt3DRender::QSetFence::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3).

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub unsafe fn qt_metacast(
    &mut self,
    arg1: impl CastInto<Ptr<c_char>>
) -> MutPtr<c_void>
[src]

Calls C++ function: virtual void* Qt3DRender::QSetFence::qt_metacast(const char* arg1).

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub unsafe fn static_meta_object() -> Ref<QMetaObject>[src]

Returns a reference to the staticMetaObject field.

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub unsafe fn tr(
    s: impl CastInto<Ptr<c_char>>,
    c: impl CastInto<Ptr<c_char>>,
    n: c_int
) -> CppBox<QString>
[src]

Calls C++ function: static QString Qt3DRender::QSetFence::tr(const char* s, const char* c, int n).

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

pub unsafe fn tr_utf8(
    s: impl CastInto<Ptr<c_char>>,
    c: impl CastInto<Ptr<c_char>>,
    n: c_int
) -> CppBox<QString>
[src]

Calls C++ function: static QString Qt3DRender::QSetFence::trUtf8(const char* s, const char* c, int n).

This item is available if any(cpp_lib_version="5.13.0", cpp_lib_version="5.14.0").

Methods from Deref<Target = QFrameGraphNode>

pub unsafe fn meta_object(&self) -> Ptr<QMetaObject>[src]

Calls C++ function: virtual const QMetaObject* Qt3DRender::QFrameGraphNode::metaObject() const.

pub unsafe fn parent_frame_graph_node(&self) -> QMutPtr<QFrameGraphNode>[src]

Returns a pointer to the parent.

Calls C++ function: Qt3DRender::QFrameGraphNode* Qt3DRender::QFrameGraphNode::parentFrameGraphNode() const.

C++ documentation:

Returns a pointer to the parent.

pub unsafe fn qt_metacall(
    &mut self,
    arg1: Call,
    arg2: c_int,
    arg3: impl CastInto<MutPtr<*mut c_void>>
) -> c_int
[src]

Calls C++ function: virtual int Qt3DRender::QFrameGraphNode::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3).

pub unsafe fn qt_metacast(
    &mut self,
    arg1: impl CastInto<Ptr<c_char>>
) -> MutPtr<c_void>
[src]

Calls C++ function: virtual void* Qt3DRender::QFrameGraphNode::qt_metacast(const char* arg1).

Trait Implementations

impl CppDeletable for QSetFence[src]

unsafe fn delete(&mut self)[src]

Calls C++ function: virtual [destructor] void Qt3DRender::QSetFence::~QSetFence().

impl Deref for QSetFence[src]

type Target = QFrameGraphNode

The resulting type after dereferencing.

fn deref(&self) -> &QFrameGraphNode[src]

Calls C++ function: Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QSetFence* ptr).

impl DerefMut for QSetFence[src]

fn deref_mut(&mut self) -> &mut QFrameGraphNode[src]

Calls C++ function: Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QSetFence* ptr).

impl DynamicCast<QSetFence> for QFrameGraphNode[src]

unsafe fn dynamic_cast(ptr: Ptr<QFrameGraphNode>) -> Ptr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* dynamic_cast<Qt3DRender::QSetFence*>(Qt3DRender::QFrameGraphNode* ptr).

unsafe fn dynamic_cast_mut(ptr: MutPtr<QFrameGraphNode>) -> MutPtr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* dynamic_cast<Qt3DRender::QSetFence*>(Qt3DRender::QFrameGraphNode* ptr).

impl DynamicCast<QSetFence> for QNode[src]

unsafe fn dynamic_cast(ptr: Ptr<QNode>) -> Ptr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* dynamic_cast<Qt3DRender::QSetFence*>(Qt3DCore::QNode* ptr).

unsafe fn dynamic_cast_mut(ptr: MutPtr<QNode>) -> MutPtr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* dynamic_cast<Qt3DRender::QSetFence*>(Qt3DCore::QNode* ptr).

impl DynamicCast<QSetFence> for QObject[src]

unsafe fn dynamic_cast(ptr: Ptr<QObject>) -> Ptr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* dynamic_cast<Qt3DRender::QSetFence*>(QObject* ptr).

unsafe fn dynamic_cast_mut(ptr: MutPtr<QObject>) -> MutPtr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* dynamic_cast<Qt3DRender::QSetFence*>(QObject* ptr).

impl StaticDowncast<QSetFence> for QFrameGraphNode[src]

unsafe fn static_downcast(ptr: Ptr<QFrameGraphNode>) -> Ptr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* static_cast<Qt3DRender::QSetFence*>(Qt3DRender::QFrameGraphNode* ptr).

unsafe fn static_downcast_mut(ptr: MutPtr<QFrameGraphNode>) -> MutPtr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* static_cast<Qt3DRender::QSetFence*>(Qt3DRender::QFrameGraphNode* ptr).

impl StaticDowncast<QSetFence> for QNode[src]

unsafe fn static_downcast(ptr: Ptr<QNode>) -> Ptr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* static_cast<Qt3DRender::QSetFence*>(Qt3DCore::QNode* ptr).

unsafe fn static_downcast_mut(ptr: MutPtr<QNode>) -> MutPtr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* static_cast<Qt3DRender::QSetFence*>(Qt3DCore::QNode* ptr).

impl StaticDowncast<QSetFence> for QObject[src]

unsafe fn static_downcast(ptr: Ptr<QObject>) -> Ptr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* static_cast<Qt3DRender::QSetFence*>(QObject* ptr).

unsafe fn static_downcast_mut(ptr: MutPtr<QObject>) -> MutPtr<QSetFence>[src]

Calls C++ function: Qt3DRender::QSetFence* static_cast<Qt3DRender::QSetFence*>(QObject* ptr).

impl StaticUpcast<QFrameGraphNode> for QSetFence[src]

unsafe fn static_upcast(ptr: Ptr<QSetFence>) -> Ptr<QFrameGraphNode>[src]

Calls C++ function: Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QSetFence* ptr).

unsafe fn static_upcast_mut(ptr: MutPtr<QSetFence>) -> MutPtr<QFrameGraphNode>[src]

Calls C++ function: Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QSetFence* ptr).

impl StaticUpcast<QNode> for QSetFence[src]

unsafe fn static_upcast(ptr: Ptr<QSetFence>) -> Ptr<QNode>[src]

Calls C++ function: Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QSetFence* ptr).

unsafe fn static_upcast_mut(ptr: MutPtr<QSetFence>) -> MutPtr<QNode>[src]

Calls C++ function: Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QSetFence* ptr).

impl StaticUpcast<QObject> for QSetFence[src]

unsafe fn static_upcast(ptr: Ptr<QSetFence>) -> Ptr<QObject>[src]

Calls C++ function: QObject* static_cast<QObject*>(Qt3DRender::QSetFence* ptr).

unsafe fn static_upcast_mut(ptr: MutPtr<QSetFence>) -> MutPtr<QObject>[src]

Calls C++ function: QObject* static_cast<QObject*>(Qt3DRender::QSetFence* ptr).

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T, U> CastInto<U> for T where
    U: CastFrom<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> StaticUpcast<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.