[][src]Struct qt_3d_render::QRenderPass

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

Encapsulates a Render Pass.

C++ class: Qt3DRender::QRenderPass.

C++ documentation:

Encapsulates a Render Pass.

A Qt3DRender::QRenderPass specifies a single rendering pass - an instance of shader program execution - used by Qt3DRender::QTechnique. Render pass consists of a Qt3DRender::QShaderProgram and a list of Qt3DRender::QFilterKey objects, a list of Qt3DRender::QRenderState objects and a list of Qt3DRender::QParameter objects.

QRenderPass executes the QShaderProgram using the given QRenderState and QParameter nodes when at least one of QFilterKey nodes being referenced matches any of the QFilterKey nodes in QRenderPassFilter or when no QFilterKey nodes are specified and no QRenderPassFilter is present in the FrameGraph.

If the QRenderPass defines a QParameter, it will be overridden by a QParameter with the same name if it exists in any of the QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter associated with the pass at runtime. This still can be useful to define sane default values.

At render time, for each leaf node of the FrameGraph a base render state is recorded by accumulating states defined by all QRenderStateSet nodes in the FrameGraph branch. Each QRenderPass can overload this base render state by specifying its own QRenderState nodes.

// Create the render passes QRenderPass *pass = new QRenderPass();

// Create shader program QShaderProgram *glShader = new QShaderProgram();

// Set the shader on the render pass pass->setShaderProgram(glShader);

// Create a FilterKey QFilterKey *filterKey = new QFilterKey(); filterKey->setName(QStringLiteral("name")); fitlerKey->setValue(QStringLiteral("zFillPass"));

// Add the FilterKey to the pass pass->addFilterKey(filterKey);

// Create a QParameter QParameter *colorParameter = new QParameter(QStringLiteral("color"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f));

// Add parameter to pass pass->addParameter(colorParameter);

// Create a QRenderState QDepthTest *depthTest = new QDepthTest();

// Add the render state to the pass pass->addRenderState(depthTest);

Methods

impl QRenderPass[src]

pub fn slot_set_shader_program(&self) -> Receiver<(*mut QShaderProgram,)>[src]

Specifies the shader program to be used for this render pass.

Returns a built-in Qt slot Qt3DRender::QRenderPass::setShaderProgram that can be passed to qt_core::Signal::connect.

C++ documentation:

Specifies the shader program to be used for this render pass.

Access functions:

QShaderProgram *shaderProgram() const
void setShaderProgram(QShaderProgram *shaderProgram)

Notifier signal:

void shaderProgramChanged(QShaderProgram *shaderProgram)

pub fn shader_program_changed(&self) -> Signal<(*mut QShaderProgram,)>[src]

Specifies the shader program to be used for this render pass.

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

C++ documentation:

Specifies the shader program to be used for this render pass.

Access functions:

QShaderProgram *shaderProgram() const
void setShaderProgram(QShaderProgram *shaderProgram)

Notifier signal:

void shaderProgramChanged(QShaderProgram *shaderProgram)

pub unsafe fn add_filter_key(&self, filter_key: impl CastInto<Ptr<QFilterKey>>)[src]

Adds filterKey to the Qt3DRender::QRenderPass local filter keys.

Calls C++ function: void Qt3DRender::QRenderPass::addFilterKey(Qt3DRender::QFilterKey* filterKey).

C++ documentation:

Adds filterKey to the Qt3DRender::QRenderPass local filter keys.

pub unsafe fn add_parameter(&self, p: impl CastInto<Ptr<QParameter>>)[src]

Add parameter to the render pass' parameters.

Calls C++ function: void Qt3DRender::QRenderPass::addParameter(Qt3DRender::QParameter* p).

C++ documentation:

Add parameter to the render pass' parameters.

pub unsafe fn add_render_state(&self, state: impl CastInto<Ptr<QRenderState>>)[src]

Adds a render state to the rendering pass. That implies that when the pass is executed at render time, the globally set render state will be modified by the states defined locally by the Qt3DRender::QRenderPass.

Calls C++ function: void Qt3DRender::QRenderPass::addRenderState(Qt3DRender::QRenderState* state).

C++ documentation:

Adds a render state to the rendering pass. That implies that when the pass is executed at render time, the globally set render state will be modified by the states defined locally by the Qt3DRender::QRenderPass.

Note: not defining any Qt3DRender::QRenderState in a pass will result in the pass using the globally set render state for a given FrameGraph branch execution path.

pub unsafe fn filter_keys(&self) -> CppBox<QVectorOfQFilterKey>[src]

Returns the list of Qt3DRender::QFilterKey key objects making up the filter keys of the Qt3DRender::QRenderPass.

Calls C++ function: QVector<Qt3DRender::QFilterKey*> Qt3DRender::QRenderPass::filterKeys() const.

C++ documentation:

Returns the list of Qt3DRender::QFilterKey key objects making up the filter keys of the Qt3DRender::QRenderPass.

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

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

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

Constructs a new QRenderPass with the specified parent.

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

C++ documentation:

Constructs a new QRenderPass with the specified parent.

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

Encapsulates a Render Pass.

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

C++ documentation:

Encapsulates a Render Pass.

A Qt3DRender::QRenderPass specifies a single rendering pass - an instance of shader program execution - used by Qt3DRender::QTechnique. Render pass consists of a Qt3DRender::QShaderProgram and a list of Qt3DRender::QFilterKey objects, a list of Qt3DRender::QRenderState objects and a list of Qt3DRender::QParameter objects.

QRenderPass executes the QShaderProgram using the given QRenderState and QParameter nodes when at least one of QFilterKey nodes being referenced matches any of the QFilterKey nodes in QRenderPassFilter or when no QFilterKey nodes are specified and no QRenderPassFilter is present in the FrameGraph.

If the QRenderPass defines a QParameter, it will be overridden by a QParameter with the same name if it exists in any of the QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter associated with the pass at runtime. This still can be useful to define sane default values.

At render time, for each leaf node of the FrameGraph a base render state is recorded by accumulating states defined by all QRenderStateSet nodes in the FrameGraph branch. Each QRenderPass can overload this base render state by specifying its own QRenderState nodes.

// Create the render passes QRenderPass *pass = new QRenderPass();

// Create shader program QShaderProgram *glShader = new QShaderProgram();

// Set the shader on the render pass pass->setShaderProgram(glShader);

// Create a FilterKey QFilterKey *filterKey = new QFilterKey(); filterKey->setName(QStringLiteral("name")); fitlerKey->setValue(QStringLiteral("zFillPass"));

// Add the FilterKey to the pass pass->addFilterKey(filterKey);

// Create a QParameter QParameter *colorParameter = new QParameter(QStringLiteral("color"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f));

// Add parameter to pass pass->addParameter(colorParameter);

// Create a QRenderState QDepthTest *depthTest = new QDepthTest();

// Add the render state to the pass pass->addRenderState(depthTest);

pub unsafe fn parameters(&self) -> CppBox<QVectorOfQParameter>[src]

Returns a vector of the render pass' current parameters

Calls C++ function: QVector<Qt3DRender::QParameter*> Qt3DRender::QRenderPass::parameters() const.

C++ documentation:

Returns a vector of the render pass' current parameters

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

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

pub unsafe fn qt_metacast(&self, arg1: *const c_char) -> *mut c_void[src]

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

pub unsafe fn remove_filter_key(
    &self,
    filter_key: impl CastInto<Ptr<QFilterKey>>
)
[src]

Removes filterKey from the Qt3DRender::QRenderPass local filter keys.

Calls C++ function: void Qt3DRender::QRenderPass::removeFilterKey(Qt3DRender::QFilterKey* filterKey).

C++ documentation:

Removes filterKey from the Qt3DRender::QRenderPass local filter keys.

pub unsafe fn remove_parameter(&self, p: impl CastInto<Ptr<QParameter>>)[src]

Remove parameter from the render pass' parameters.

Calls C++ function: void Qt3DRender::QRenderPass::removeParameter(Qt3DRender::QParameter* p).

C++ documentation:

Remove parameter from the render pass' parameters.

pub unsafe fn remove_render_state(
    &self,
    state: impl CastInto<Ptr<QRenderState>>
)
[src]

Removes state from the Qt3DRender::QRenderPass local render state.

Calls C++ function: void Qt3DRender::QRenderPass::removeRenderState(Qt3DRender::QRenderState* state).

C++ documentation:

Removes state from the Qt3DRender::QRenderPass local render state.

pub unsafe fn render_states(&self) -> CppBox<QVectorOfQRenderState>[src]

Returns the list of Qt3DRender::QRenderState state objects making up the render state of the Qt3DRender::QRenderPass.

Calls C++ function: QVector<Qt3DRender::QRenderState*> Qt3DRender::QRenderPass::renderStates() const.

C++ documentation:

Returns the list of Qt3DRender::QRenderState state objects making up the render state of the Qt3DRender::QRenderPass.

pub unsafe fn set_shader_program(
    &self,
    shader_program: impl CastInto<Ptr<QShaderProgram>>
)
[src]

Specifies the shader program to be used for this render pass.

Calls C++ function: [slot] void Qt3DRender::QRenderPass::setShaderProgram(Qt3DRender::QShaderProgram* shaderProgram).

C++ documentation:

Specifies the shader program to be used for this render pass.

Access functions:

QShaderProgram *shaderProgram() const
void setShaderProgram(QShaderProgram *shaderProgram)

Notifier signal:

void shaderProgramChanged(QShaderProgram *shaderProgram)

pub unsafe fn shader_program(&self) -> QPtr<QShaderProgram>[src]

Specifies the shader program to be used for this render pass.

Calls C++ function: Qt3DRender::QShaderProgram* Qt3DRender::QRenderPass::shaderProgram() const.

C++ documentation:

Specifies the shader program to be used for this render pass.

Access functions:

QShaderProgram *shaderProgram() const
void setShaderProgram(QShaderProgram *shaderProgram)

Notifier signal:

void shaderProgramChanged(QShaderProgram *shaderProgram)

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

Returns a reference to the staticMetaObject field.

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

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

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

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

Trait Implementations

impl CppDeletable for QRenderPass[src]

unsafe fn delete(&self)[src]

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

impl Deref for QRenderPass[src]

type Target = QNode

The resulting type after dereferencing.

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

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

impl DynamicCast<QRenderPass> for QNode[src]

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

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

impl DynamicCast<QRenderPass> for QObject[src]

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

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

impl StaticDowncast<QRenderPass> for QNode[src]

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

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

impl StaticDowncast<QRenderPass> for QObject[src]

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

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

impl StaticUpcast<QNode> for QRenderPass[src]

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

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

impl StaticUpcast<QObject> for QRenderPass[src]

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

Calls C++ function: QObject* static_cast<QObject*>(Qt3DRender::QRenderPass* 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.