void View::mouseReleaseEvent(QMouseEvent *event) { if (QGraphicsItem *item = itemAt(event->pos())) { if (ImageItem *image = qgraphicsitem_cast<ImageItem *>(item)) //showInformation(image); showViewer(image); } QGraphicsView::mouseReleaseEvent(event); }
void Engine::onDeviceResume() { if (mIsInitialized) { showViewer(); mSoundManager->setPaused(false); for (QQuickItem* child : mInputArea->findChildren<QQuickItem*>()) { if (Util::javaScriptFuncExists(child, "onDeviceResume")) { QMetaObject::invokeMethod(child, "onDeviceResume"); } } } resume(); emit deviceResume(); }
void Engine::init() { if (mIsInitialized) { return; } // Create renderer. mRenderer.reset(new Renderer()); mRenderList.reset(new RenderList()); // Create window. mViewer.reset(new QQuickView()); mViewer->setSource(Util::getUrlPathToAsset("Engine/qml/main.qml")); mViewer->setResizeMode(QQuickView::SizeRootObjectToView); // Initially set the window to call glClear for us. This is to prevent an uninitialized frame // buffer from being displayed to the user. We prevent the window from calling glClear later // so that we can render under it. mViewer->setColor(QColor::fromRgba(0x00000000)); mViewer->setClearBeforeRendering(true); // Attempt to select RGB565 with a 16-bit depth buffer. // TODO: According to comments in q_createConfigAttributesFromFormat (qeglconvenience.cpp) this // doesn't work. QSurfaceFormat surfaceFormat; surfaceFormat.setSwapBehavior(QSurfaceFormat::DoubleBuffer); surfaceFormat.setRedBufferSize(5); surfaceFormat.setGreenBufferSize(6); surfaceFormat.setBlueBufferSize(5); surfaceFormat.setDepthBufferSize(16); surfaceFormat.setStencilBufferSize(8); surfaceFormat.setAlphaBufferSize(0); surfaceFormat.setSamples(0); mViewer->setFormat(surfaceFormat); showViewer(); // Load materials. mTextureManager.reset(new TextureManager()); mTerrainMaterials.reset(new TerrainMaterials(Util::getPathToData("materials.json"))); mSoundManager.reset(new SoundManager(this)); // Create UI components. mInputArea = getRoot()->findChild<InputArea*>("inputArea"); Q_ASSERT(mInputArea); mCamera = mViewer->rootObject()->findChild<Camera*>("camera"); mLevelLoader = mCamera->findChild<QQuickItem*>("levelLoader"); // Other connections. connect(mViewer.get(), &QQuickView::beforeSynchronizing, this, &Engine::onBeforeSynchronizing, Qt::DirectConnection); connect(mViewer.get(), &QQuickView::beforeRendering, this, &Engine::onBeforeRendering, Qt::DirectConnection); connect(mViewer.get(), &QQuickView::afterRendering, this, &Engine::onAfterRendering, Qt::DirectConnection); connect(mViewer.get(), &QQuickView::afterAnimating, this, &Engine::update, Qt::DirectConnection); connect(mLevelLoader, SIGNAL(loadCompleted(bool)), this, SLOT(onLoadCompleted(bool))); mContactListener.reset(new ContactListener()); mDestructionListener.reset(new DestructionListener()); mDebugDraw.reset(new LiquidFunDebugDraw()); mIsInitialized = true; }