Skip to content

Commit

Permalink
Fix skybox cubemap issue
Browse files Browse the repository at this point in the history
  • Loading branch information
NEDJIMAbelgacem committed Aug 2, 2020
1 parent 53ab042 commit a320b1f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 13 deletions.
27 changes: 15 additions & 12 deletions src/3d/qgsskyboxentity.cpp
Expand Up @@ -151,25 +151,28 @@ void QgsCubeFacesSkyboxEntity::init()
mCubeFacesPaths[Qt3DRender::QTextureCubeMap::CubeMapNegativeY] = QString();
mCubeFacesPaths[Qt3DRender::QTextureCubeMap::CubeMapNegativeZ] = QString();

for ( auto it = mCubeFacesPaths.begin(); it != mCubeFacesPaths.end(); ++it )
{
Qt3DRender::QTextureCubeMap::CubeMapFace face = it.key();
Qt3DRender::QTextureImage *image = new Qt3DRender::QTextureImage( this );
image->setFace( face );
image->setMirrored( false );
mCubeFacesTextures[ face ] = image;
mCubeMap->addTextureImage( image );
}

mTextureParameter->setName( "skyboxTexture" );
mTextureParameter->setValue( QVariant::fromValue( mCubeMap ) );
}

void QgsCubeFacesSkyboxEntity::reloadTexture()
{
for ( auto it = mCubeFacesTextures.begin(); it != mCubeFacesTextures.end(); ++it )
for ( Qt3DRender::QAbstractTextureImage *textureImage : mFacesTextureImages )
{
Qt3DRender::QTextureImage *image = it.value();
mCubeMap->removeTextureImage( textureImage );
delete textureImage;
}
mFacesTextureImages.clear();

for ( auto it = mCubeFacesPaths.begin(); it != mCubeFacesPaths.end(); ++it )
{
Qt3DRender::QTextureCubeMap::CubeMapFace face = it.key();
QString texturePath = it.value();
Qt3DRender::QTextureImage *image = new Qt3DRender::QTextureImage( this );
image->setFace( face );
image->setMirrored( false );
image->setSource( QUrl::fromUserInput( mCubeFacesPaths[ it.key() ] ) );
mCubeMap->addTextureImage( image );
mFacesTextureImages.push_back( image );
}
}
2 changes: 1 addition & 1 deletion src/3d/qgsskyboxentity.h
Expand Up @@ -55,8 +55,8 @@ class QgsCubeFacesSkyboxEntity : public QgsSkyboxEntity
void reloadTexture();
private:
QMap<Qt3DRender::QTextureCubeMap::CubeMapFace, QString> mCubeFacesPaths;
QMap<Qt3DRender::QTextureCubeMap::CubeMapFace, Qt3DRender::QTextureImage *> mCubeFacesTextures;
Qt3DRender::QShaderProgram *mGlShader;
QVector<Qt3DRender::QTextureImage *> mFacesTextureImages;
Qt3DRender::QTextureCubeMap *mCubeMap;
};

Expand Down

0 comments on commit a320b1f

Please sign in to comment.