Skip to content

Commit d6a12e0

Browse files
committed
Fix 3D build on windows
1 parent 949d216 commit d6a12e0

File tree

5 files changed

+30
-21
lines changed

5 files changed

+30
-21
lines changed

ms-windows/osgeo4w/package-nightly.cmd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ cmake -G Ninja ^
165165
-D WITH_SERVER=TRUE ^
166166
-D SERVER_SKIP_ECW=TRUE ^
167167
-D WITH_GRASS=TRUE ^
168+
-D WITH_3D=TRUE ^
168169
-D WITH_GRASS7=TRUE ^
169170
-D GRASS_PREFIX7=%GRASS72_PATH:\=/% ^
170171
-D WITH_GLOBE=FALSE ^
@@ -324,6 +325,7 @@ exit /b 1
324325
:error
325326
echo BUILD ERROR %ERRORLEVEL%: %DATE% %TIME%
326327
if exist %PACKAGENAME%-%VERSION%-%PACKAGE%.tar.bz2 del %PACKAGENAME%-%VERSION%-%PACKAGE%.tar.bz2
328+
exit /b 1
327329

328330
:end
329331
echo FINISHED: %DATE% %TIME%

src/3d/qgs3dmapscene.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,8 @@ void Qgs3DMapScene::onCameraChanged()
203203
{
204204
Qt3DRender::QCamera *camera = cameraController()->camera();
205205
QMatrix4x4 viewMatrix = camera->viewMatrix();
206-
float near = 1e9;
207-
float far = 0;
206+
float fnear = 1e9;
207+
float ffar = 0;
208208

209209
QList<QgsChunkNode *> activeNodes = mTerrain->activeNodes();
210210

@@ -227,27 +227,27 @@ void Qgs3DMapScene::onCameraChanged()
227227
QVector4D pc = viewMatrix * p;
228228

229229
float dst = -pc.z(); // in camera coordinates, x grows right, y grows down, z grows to the back
230-
if ( dst < near )
231-
near = dst;
232-
if ( dst > far )
233-
far = dst;
230+
if ( dst < fnear )
231+
fnear = dst;
232+
if ( dst > ffar )
233+
ffar = dst;
234234
}
235235
}
236-
if ( near < 1 )
237-
near = 1; // does not really make sense to use negative far plane (behind camera)
236+
if ( fnear < 1 )
237+
fnear = 1; // does not really make sense to use negative far plane (behind camera)
238238

239-
if ( near == 1e9 && far == 0 )
239+
if ( fnear == 1e9 && ffar == 0 )
240240
{
241241
// the update didn't work out... this should not happen
242242
// well at least temprarily use some conservative starting values
243243
qDebug() << "oops... this should not happen! couldn't determine near/far plane. defaulting to 1...1e9";
244-
near = 1;
245-
far = 1e9;
244+
fnear = 1;
245+
ffar = 1e9;
246246
}
247247

248248
// set near/far plane - with some tolerance in front/behind expected near/far planes
249-
camera->setFarPlane( far * 2 );
250-
camera->setNearPlane( near / 2 );
249+
camera->setFarPlane( ffar * 2 );
250+
camera->setNearPlane( fnear / 2 );
251251
}
252252
else
253253
qDebug() << "no terrain - not setting near/far plane";

src/3d/qgsvectorlayer3drenderer.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
#include "qgs3drendererregistry.h"
2222
#include "qgsabstract3drenderer.h"
23+
#include "qgsabstract3dsymbol.h"
2324

2425
#include "qgsphongmaterialsettings.h"
2526
#include "qgs3dutils.h"
@@ -30,8 +31,6 @@
3031

3132
class QgsVectorLayer;
3233

33-
class QgsAbstract3DSymbol;
34-
3534

3635
/**
3736
* \ingroup core

src/3d/terrain/qgsdemterraingenerator.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ QgsDemTerrainGenerator::QgsDemTerrainGenerator()
2626
{
2727
}
2828

29+
QgsDemTerrainGenerator::~QgsDemTerrainGenerator()
30+
{
31+
delete mHeightMapGenerator;
32+
}
33+
2934
void QgsDemTerrainGenerator::setLayer( QgsRasterLayer *layer )
3035
{
3136
mLayer = QgsMapLayerRef( layer );
@@ -91,11 +96,13 @@ void QgsDemTerrainGenerator::updateGenerator()
9196
if ( dem )
9297
{
9398
mTerrainTilingScheme = QgsTilingScheme( dem->extent(), dem->crs() );
94-
mHeightMapGenerator.reset( new QgsDemHeightMapGenerator( dem, mTerrainTilingScheme, mResolution ) );
99+
delete mHeightMapGenerator;
100+
mHeightMapGenerator = new QgsDemHeightMapGenerator( dem, mTerrainTilingScheme, mResolution );
95101
}
96102
else
97103
{
98104
mTerrainTilingScheme = QgsTilingScheme();
99-
mHeightMapGenerator.reset();
105+
delete mHeightMapGenerator;
106+
mHeightMapGenerator = nullptr;
100107
}
101108
}

src/3d/terrain/qgsdemterraingenerator.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020

2121
#include "qgsterraingenerator.h"
2222

23-
#include <memory>
2423

25-
class QgsDemHeightMapGenerator;
24+
#include <memory>
2625

2726
class QgsRasterLayer;
27+
class QgsDemHeightMapGenerator;
2828

2929
#include "qgsmaplayerref.h"
3030

@@ -37,6 +37,7 @@ class _3D_EXPORT QgsDemTerrainGenerator : public QgsTerrainGenerator
3737
{
3838
public:
3939
QgsDemTerrainGenerator();
40+
~QgsDemTerrainGenerator();
4041

4142
//! Sets raster layer with elevation model to be used for terrain generation
4243
void setLayer( QgsRasterLayer *layer );
@@ -49,7 +50,7 @@ class _3D_EXPORT QgsDemTerrainGenerator : public QgsTerrainGenerator
4950
int resolution() const { return mResolution; }
5051

5152
//! Returns height map generator object - takes care of extraction of elevations from the layer)
52-
QgsDemHeightMapGenerator *heightMapGenerator() { return mHeightMapGenerator.get(); }
53+
QgsDemHeightMapGenerator *heightMapGenerator() { return mHeightMapGenerator; }
5354

5455
virtual QgsTerrainGenerator *clone() const override SIP_FACTORY;
5556
Type type() const override;
@@ -64,7 +65,7 @@ class _3D_EXPORT QgsDemTerrainGenerator : public QgsTerrainGenerator
6465
private:
6566
void updateGenerator();
6667

67-
std::unique_ptr<QgsDemHeightMapGenerator> mHeightMapGenerator;
68+
QgsDemHeightMapGenerator *mHeightMapGenerator = nullptr;
6869

6970
//! source layer for heights
7071
QgsMapLayerRef mLayer;

0 commit comments

Comments
 (0)