void CameraControllerComponent::setRenderTargetMaterial( GluonGraphics::MaterialInstance* material )
{
    if( d->material )
    {
        d->material->deref();
        Asset* materialAsset = qobject_cast<Asset*>( d->material->parent() );
        if( materialAsset )
            materialAsset->deref();
    }
    d->material = material;
    if( d->material )
    {
        d->material->ref();
        Asset* materialAsset = qobject_cast<Asset*>( d->material->parent() );
        if( materialAsset )
            materialAsset->ref();
    }

    GluonGraphics::RenderTarget* target = GluonGraphics::Engine::instance()->mainRenderTarget();
    if( target )
    {
        if( material )
        {
            target->setMaterialInstance( material );
        }
        else
        {
            target->setMaterialInstance( GluonGraphics::Engine::instance()->material( "default" )->createInstance( fullyQualifiedName() ) );
        }
    }
}
CameraControllerComponent::~CameraControllerComponent()
{
    if( d->material )
    {
        d->material->deref();
        Asset* materialAsset = qobject_cast<Asset*>( d->material->parent() );
        if( materialAsset )
            materialAsset->deref();
    }
    delete d;
}
Example #3
0
void BeamRendererComponent::Private::acquireReleaseMaterial( GluonGraphics::MaterialInstance* acquire, GluonGraphics::MaterialInstance* release )
{
    if( release )
    {
        release->deref();
        Asset* materialAsset = qobject_cast<Asset*>( release->parent() );
        if( materialAsset )
            materialAsset->deref();
    }
    if( acquire )
    {
        acquire->ref();
        Asset* materialAsset = qobject_cast<Asset*>( acquire->parent() );
        if( materialAsset )
            materialAsset->ref();
    }
}