QGIS API Documentation 4.1.0-Master (9af12b5a203)
Loading...
Searching...
No Matches
qgsbloomupsampleentity.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsbloomupsampleentity.cpp
3 --------------------------------------
4 Date : May 2026
5 Copyright : (C) 2026 by Nyall Dawson
6 Email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
17
18#include <QString>
19#include <Qt3DRender/QMaterial>
20#include <Qt3DRender/QParameter>
21#include <Qt3DRender/QShaderProgram>
22#include <Qt3DRender/QTexture>
23
24#include "moc_qgsbloomupsampleentity.cpp"
25
26using namespace Qt::StringLiterals;
27
28QgsBloomUpsampleEntity::QgsBloomUpsampleEntity( Qt3DRender::QTexture2D *texture, Qt3DRender::QLayer *layer, QNode *parent )
29 : QgsRenderPassQuad( layer, parent )
30{
31 mSourceTextureParameter = new Qt3DRender::QParameter( u"srcTexture"_s, texture );
32 mMaterial->addParameter( mSourceTextureParameter );
33
34 const QString vertexShaderPath = u"qrc:/shaders/postprocess.vert"_s;
35 const QString fragmentShaderPath = u"qrc:/shaders/bloom_upsample.frag"_s;
36
37 mShader->setVertexShaderCode( Qt3DRender::QShaderProgram::loadSource( QUrl( vertexShaderPath ) ) );
38 mShader->setFragmentShaderCode( Qt3DRender::QShaderProgram::loadSource( QUrl( fragmentShaderPath ) ) );
39}
40
41void QgsBloomUpsampleEntity::addParameters( const QVector<Qt3DRender::QParameter *> &parameters )
42{
43 for ( Qt3DRender::QParameter *parameter : parameters )
44 {
45 mMaterial->addParameter( parameter );
46 }
47}
QgsBloomUpsampleEntity(Qt3DRender::QTexture2D *texture, Qt3DRender::QLayer *layer, QNode *parent=nullptr)
Constructor.
void addParameters(const QVector< Qt3DRender::QParameter * > &parameters)
Adds parameters to the entity.
QgsRenderPassQuad(Qt3DRender::QLayer *layer, QNode *parent=nullptr)
Constructor.
Qt3DRender::QShaderProgram * mShader
Qt3DRender::QMaterial * mMaterial