33
33
#include < Qt3DRender/QTexture>
34
34
#include < Qt3DRender/QViewport>
35
35
36
- // TODO: set size
37
- // TODO: destructor
38
36
39
37
QgsOffscreen3DEngine::QgsOffscreen3DEngine ()
40
38
{
@@ -48,7 +46,7 @@ QgsOffscreen3DEngine::QgsOffscreen3DEngine()
48
46
49
47
// Set up a camera to point at the shapes.
50
48
mCamera = new Qt3DRender::QCamera;
51
- mCamera ->lens ()->setPerspectiveProjection ( 45 .0f , 1200 . 0f / 800 . 0f , 0 .1f , 1000 .0f );
49
+ mCamera ->lens ()->setPerspectiveProjection ( 45 .0f , float ( mSize . width () ) / float ( mSize . height () ) , 0 .1f , 1000 .0f );
52
50
mCamera ->setPosition ( QVector3D ( 0 , 0 , 20 .0f ) );
53
51
mCamera ->setUpVector ( QVector3D ( 0 , 1 , 0 ) );
54
52
mCamera ->setViewCenter ( QVector3D ( 0 , 0 , 0 ) );
@@ -84,6 +82,22 @@ QgsOffscreen3DEngine::QgsOffscreen3DEngine()
84
82
85
83
}
86
84
85
+ QgsOffscreen3DEngine::~QgsOffscreen3DEngine ()
86
+ {
87
+ delete mAspectEngine ;
88
+ }
89
+
90
+ void QgsOffscreen3DEngine::setSize ( const QSize &s )
91
+ {
92
+ mSize = s;
93
+
94
+ mTexture ->setSize ( mSize .width (), mSize .height () );
95
+ mDepthTexture ->setSize ( mSize .width (), mSize .height () );
96
+ mSurfaceSelector ->setExternalRenderTargetSize ( mSize );
97
+
98
+ mCamera ->setAspectRatio ( float ( mSize .width () ) / float ( mSize .height () ) );
99
+ }
100
+
87
101
void QgsOffscreen3DEngine::setClearColor ( const QColor &color )
88
102
{
89
103
mClearBuffers ->setClearColor ( color );
0 commit comments