44Viewport3d::Viewport3d (QWidget *parent) :
55 QDockWidget(parent)
66{
7+
78 this ->renderTarget = new QWidget (this );
89 this ->setWidget (this ->renderTarget );
910
1011 this ->renderTimer = new QTimer (this );
1112 connect (this ->renderTimer , &QTimer::timeout, this , &Viewport3d::timer_tick);
13+
1214}
1315
1416Viewport3d::~Viewport3d ()
@@ -18,13 +20,11 @@ Viewport3d::~Viewport3d()
1820
1921void Viewport3d::initVulkanRender ()
2022{
21-
2223 this ->ziEngine .reset (new ZittelmenEngine ());
2324 this ->ziEngine ->setTargetRenderSurface (this ->renderTarget );
2425 this ->ziEngine ->initialize ();
2526
2627 this ->renderTimer ->start (0 );
27-
2828}
2929
3030void Viewport3d::destroyRenderer ()
@@ -34,17 +34,18 @@ void Viewport3d::destroyRenderer()
3434
3535void Viewport3d::timer_tick ()
3636{
37-
38-
39-
4037 this ->ziEngine ->renderFrame ();
4138}
4239
4340bool Viewport3d::event (QEvent* event)
4441{
42+
4543 if (event->type () == QEvent::Resize) {
4644 QResizeEvent *resizeEvent = static_cast <QResizeEvent*>(event);
4745 this ->ziEngine ->resize (resizeEvent->size ().width (), resizeEvent->size ().height ());
46+
47+ } else if (event->type () == QEvent::Close) {
48+ this ->ziEngine ->destroy ();
4849 }
4950
5051 return QDockWidget::event (event);
0 commit comments