45  mCamera = 
new Qt3DRender::QCamera;
 
   46  mCamera->lens()->setPerspectiveProjection( 45.0f, 
float( mSize.width() ) / 
float( mSize.height() ), 0.1f, 1000.0f );
 
   47  mCamera->setPosition( QVector3D( 0, 0, 20.0f ) );
 
   48  mCamera->setUpVector( QVector3D( 0, 1, 0 ) );
 
   49  mCamera->setViewCenter( QVector3D( 0, 0, 0 ) );
 
   52  mAspectEngine = 
new Qt3DCore::QAspectEngine();
 
   54#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) 
   55  mRenderAspect = 
new Qt3DRender::QRenderAspect( Qt3DRender::QRenderAspect::Threaded ); 
 
   57  mRenderAspect = 
new Qt3DRender::QRenderAspect();
 
   60  mLogicAspect = 
new Qt3DLogic::QLogicAspect();
 
   62  mAspectEngine->registerAspect( mRenderAspect );
 
   63  mAspectEngine->registerAspect( mLogicAspect );
 
   70  mRoot = 
new Qt3DCore::QEntity;
 
   71  mRenderSettings = 
new Qt3DRender::QRenderSettings( mRoot );
 
   72  mRoot->addComponent( mRenderSettings );
 
   74  mCamera->setParent( mRoot );
 
   78  mOffscreenSurface = 
new QOffscreenSurface();
 
   80  QSurfaceFormat format;
 
   83  if ( QCoreApplication::instance() && QCoreApplication::instance()->testAttribute( Qt::AA_ShareOpenGLContexts ) )
 
   85    format = QSurfaceFormat::defaultFormat();
 
   90    format.setRenderableType( QSurfaceFormat::OpenGL );
 
   92    format.setVersion( 4, 1 ); 
 
   93    format.setProfile( QSurfaceFormat::CoreProfile );
 
   95    format.setVersion( 4, 3 );
 
   96    format.setProfile( QSurfaceFormat::CoreProfile );
 
   98    format.setDepthBufferSize( 24 );
 
   99    format.setSamples( 4 );
 
  100    format.setStencilBufferSize( 8 );
 
  103  mOffscreenSurface->setFormat( format );
 
  104  mOffscreenSurface->create();
 
  113  mAspectEngine->setRootEntity( Qt3DCore::QEntityPtr( mRoot ) );