History

Working on plugin architecture

Bradley Austin Davis committed 11 years ago

Commit b73ce811 parent 28c873b8 files · +56 −114Browse files

Showing the changes to interface/src/Application.cpp (1 of 8 files). Show all

Unified · Split

interface/src/Application.cpp+34−93
@@ -290,7 +290,6 @@ bool setupEssentials(int& argc, char** argv) { · 289 unmodified lines
290290 Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) :
291291 QApplication(argc, argv),
292292 _dependencyManagerIsSetup(setupEssentials(argc, argv)),
293− _offscreenContext(new OffscreenGlContext()),
294293 _window(new MainWindow(desktop())),
295294 _toolWindow(NULL),
296295 _friendsWindow(NULL),
@@ -319,8 +318,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 22 unmodified lines
319318 _cursorVisible(true),
320319 _lastMouseMove(usecTimestampNow()),
321320 _lastMouseMoveWasSimulated(false),
322− _touchAvgX(0.0f),
323− _touchAvgY(0.0f),
324321 _isTouchPressed(false),
325322 _mousePressed(false),
326323 _enableProcessOctreeThread(true),
@@ -501,7 +498,9 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 174 unmodified lines
501498 ResourceCache::setRequestLimit(3);
502499
503500 _window->setCentralWidget(new QWidget());
501+
504502 _window->restoreGeometry();
503+
505504 _window->setVisible(true);
506505
507506 #if 0
@@ -592,7 +591,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 84 unmodified lines
592591 this->installEventFilter(this);
593592 // The offscreen UI needs to intercept the mouse and keyboard
594593 // events coming from the onscreen window
595− _glWidget->installEventFilter(DependencyManager::get<OffscreenUi>().data());
594+ this->installEventFilter(DependencyManager::get<OffscreenUi>().data());
596595
597596 // initialize our face trackers after loading the menu settings
598597 auto faceshiftTracker = DependencyManager::get<Faceshift>();
@@ -810,18 +809,14 @@ void Application::initializeUi() { · 211 unmodified lines
810809
811810 void Application::paintGL() {
812811 PROFILE_RANGE(__FUNCTION__);
813− _glWidget->makeCurrent();
812+ _offscreenContext->makeCurrent();
814813 PerformanceTimer perfTimer("paintGL");
815− //Need accurate frame timing for the oculus rift
816− if (OculusManager::isConnected()) {
817− OculusManager::beginFrameTiming();
818− }
814+ getActiveDisplayPlugin()->preDisplay();
819815
820816 PerformanceWarning::setSuppressShortTimings(Menu::getInstance()->isOptionChecked(MenuOption::SuppressShortTimings));
821817 bool showWarnings = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings);
822818 PerformanceWarning warn(showWarnings, "Application::paintGL()");
823819
824− _offscreenContext->makeCurrent();
825820 QSize fbSize = getActiveDisplayPlugin()->getRecommendedFramebufferSize() * getRenderResolutionScale();
826821 DependencyManager::get<TextureCache>()->setFrameBufferSize(fbSize);
827822
@@ -888,7 +883,8 @@ void Application::paintGL() { · 60 unmodified lines
888883 glPopMatrix();
889884
890885 if (Menu::getInstance()->isOptionChecked(MenuOption::FullscreenMirror)) {
891− _rearMirrorTools->render(true, _glWidget->mapFromGlobal(QCursor::pos()));
886+ glm::vec2 mpos = getActiveDisplayPlugin()->getUiMousePosition();
887+ _rearMirrorTools->render(true, QPoint(mpos.x, mpos.y));
892888 } else if (Menu::getInstance()->isOptionChecked(MenuOption::Mirror)) {
893889 renderRearViewMirror(_mirrorViewRect);
894890 }
@@ -1460,8 +1456,7 @@ void Application::mousePressEvent(QMouseEvent* event, unsigned int deviceID) { · 565 unmodified lines
14601456 _keyboardMouseDevice.mousePressEvent(event);
14611457
14621458 if (event->button() == Qt::LeftButton) {
1463− _mouseDragStartedX = getTrueMouseX();
1464− _mouseDragStartedY = getTrueMouseY();
1459+ _mouseDragStarted = getTrueMousePosition();
14651460 _mousePressed = true;
14661461
14671462 if (mouseOnScreen()) {
@@ -1563,22 +1558,18 @@ void Application::touchUpdateEvent(QTouchEvent* event) { · 95 unmodified lines
15631558 bool validTouch = false;
15641559 if (activeWindow() == _window) {
15651560 const QList<QTouchEvent::TouchPoint>& tPoints = event->touchPoints();
1566− _touchAvgX = 0.0f;
1567− _touchAvgY = 0.0f;
1561+ _touchAvg = glm::vec2(0);
15681562 int numTouches = tPoints.count();
15691563 if (numTouches > 1) {
15701564 for (int i = 0; i < numTouches; ++i) {
1571− _touchAvgX += tPoints[i].pos().x();
1572− _touchAvgY += tPoints[i].pos().y();
1565+ _touchAvg += toGlm(tPoints[i].pos());
15731566 }
1574− _touchAvgX /= (float)(numTouches);
1575− _touchAvgY /= (float)(numTouches);
1567+ _touchAvg /= numTouches;
15761568 validTouch = true;
15771569 }
15781570 }
15791571 if (!_isTouchPressed) {
1580− _touchDragStartedAvgX = _touchAvgX;
1581− _touchDragStartedAvgY = _touchAvgY;
1572+ _touchDragStartedAvg = _touchAvg;
15821573 }
15831574 _isTouchPressed = validTouch;
15841575 }
@@ -1614,8 +1605,7 @@ void Application::touchEndEvent(QTouchEvent* event) { · 29 unmodified lines
16141605 _keyboardMouseDevice.touchEndEvent(event);
16151606
16161607 // put any application specific touch behavior below here..
1617− _touchDragStartedAvgX = _touchAvgX;
1618− _touchDragStartedAvgY = _touchAvgY;
1608+ _touchDragStartedAvg = _touchAvg;
16191609 _isTouchPressed = false;
16201610
16211611 }
@@ -1736,13 +1726,11 @@ void Application::idle() { · 114 unmodified lines
17361726 const float BIGGEST_DELTA_TIME_SECS = 0.25f;
17371727 update(glm::clamp((float)timeSinceLastUpdate / 1000.0f, 0.0f, BIGGEST_DELTA_TIME_SECS));
17381728 }
1739−
17401729 {
17411730 PerformanceTimer perfTimer("updateGL");
17421731 PerformanceWarning warn(showWarnings, "Application::idle()... updateGL()");
17431732 getActiveDisplayPlugin()->idle();
17441733 }
1745−
17461734 {
17471735 PerformanceTimer perfTimer("rest");
17481736 PerformanceWarning warn(showWarnings, "Application::idle()... rest of it");
@@ -1822,15 +1810,12 @@ void Application::setFullscreen(bool fullscreen) { · 73 unmodified lines
18221810 }
18231811 }
18241812
1825−
1826−void Application::setEnable3DTVMode(bool enable3DTVMode) {
18271813 #if 0
1814+void Application::setEnable3DTVMode(bool enable3DTVMode) {
18281815 resizeGL(_glWidget->getDeviceWidth(), _glWidget->getDeviceHeight());
1829−#endif
18301816 }
18311817
18321818 void Application::setEnableVRMode(bool enableVRMode) {
1833−#if 0
18341819 if (Menu::getInstance()->isOptionChecked(MenuOption::EnableVRMode) != enableVRMode) {
18351820 Menu::getInstance()->getActionForOption(MenuOption::EnableVRMode)->setChecked(enableVRMode);
18361821 }
@@ -1855,8 +1840,8 @@ void Application::setEnableVRMode(bool enableVRMode) { · 18 unmodified lines
18551840 resizeGL(_glWidget->getDeviceWidth(), _glWidget->getDeviceHeight());
18561841
18571842 updateCursorVisibility();
1858−#endif
18591843 }
1844+#endif
18601845
18611846 void Application::setLowVelocityFilter(bool lowVelocityFilter) {
18621847 SixenseManager::getInstance().setLowVelocityFilter(lowVelocityFilter);
@@ -1875,16 +1860,15 @@ int Application::getMouseY() const { · 12 unmodified lines
18751860 }
18761861
18771862 ivec2 Application::getMouseDragStarted() const {
1878− return getActiveDisplaylugin()->trueMouseToUiMouse(
1879− glm::ivec2(getTrueMouseDragStartedX(), getTrueMouseDragStartedY()));
1863+ return getActiveDisplayPlugin()->trueMouseToUiMouse(getTrueMouseDragStarted());
18801864 }
18811865
18821866 int Application::getMouseDragStartedX() const {
1883− return getMouseDragStarted().x;
1867+ return getMouseDragStarted().x;
18841868 }
18851869
18861870 int Application::getMouseDragStartedY() const {
1887− return getMouseDragStarted().y;
1871+ return getMouseDragStarted().y;
18881872 }
18891873
18901874 FaceTracker* Application::getActiveFaceTracker() {
@@ -2221,9 +2205,8 @@ void Application::updateMyAvatarLookAtPosition() { · 330 unmodified lines
22212205 bool isLookingAtSomeone = false;
22222206 glm::vec3 lookAtSpot;
22232207 if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
2224−#if 0
22252208 // When I am in mirror mode, just look right at the camera (myself)
2226− if (!OculusManager::isConnected()) {
2209+ if (!isHMDMode()) {
22272210 lookAtSpot = _myCamera.getPosition();
22282211 } else {
22292212 if (_myAvatar->isLookingAtLeftEye()) {
@@ -2232,7 +2215,7 @@ void Application::updateMyAvatarLookAtPosition() { · 2 unmodified lines
22322215 lookAtSpot = OculusManager::getRightEyePosition();
22332216 }
22342217 }
2235−#endif
2218+
22362219 } else {
22372220 AvatarSharedPointer lookingAt = _myAvatar->getLookAtTargetAvatar().toStrongRef();
22382221 if (lookingAt && _myAvatar != lookingAt.data()) {
@@ -3190,12 +3173,12 @@ void Application::displaySide(Camera& theCamera, bool selfAvatarOnly, RenderArgs · 951 unmodified lines
31903173 _stars.render(theCamera.getFieldOfView(), theCamera.getAspectRatio(), theCamera.getNearClip(), alpha);
31913174 }
31923175
3193− // draw the sky dome
3194− if (!selfAvatarOnly && Menu::getInstance()->isOptionChecked(MenuOption::Atmosphere)) {
3195− PerformanceTimer perfTimer("atmosphere");
3196− PerformanceWarning warn(Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings),
3197− "Application::displaySide() ... atmosphere...");
3198− _environment.renderAtmospheres(theCamera);
3176+ // draw the sky dome
3177+ if (!selfAvatarOnly && Menu::getInstance()->isOptionChecked(MenuOption::Atmosphere)) {
3178+ PerformanceTimer perfTimer("atmosphere");
3179+ PerformanceWarning warn(Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings),
3180+ "Application::displaySide() ... atmosphere...");
3181+ _environment.renderAtmospheres(theCamera);
31993182 }
32003183
32013184 }
@@ -3444,7 +3427,8 @@ void Application::renderRearViewMirror(const QRect& region, bool billboard) { · 242 unmodified lines
34443427 glPopMatrix();
34453428
34463429 if (!billboard) {
3447− _rearMirrorTools->render(false, _glWidget->mapFromGlobal(QCursor::pos()));
3430+ glm::vec2 mpos = getActiveDisplayPlugin()->getUiMousePosition();
3431+ _rearMirrorTools->render(false, QPoint(mpos.x, mpos.y));
34483432 }
34493433
34503434 // reset Viewport and projection matrix
@@ -4320,6 +4304,7 @@ void Application::skipVersion(QString latestVersion) { · 869 unmodified lines
43204304 }
43214305
43224306 void Application::takeSnapshot() {
4307+#if 0
43234308 QMediaPlayer* player = new QMediaPlayer();
43244309 QFileInfo inf = QFileInfo(PathUtils::resourcesPath() + "sounds/snap.wav");
43254310 player->setMedia(QUrl::fromLocalFile(inf.absoluteFilePath()));
@@ -4336,6 +4321,8 @@ void Application::takeSnapshot() { · 10 unmodified lines
43364321 _snapshotShareDialog = new SnapshotShareDialog(fileName, desktop());
43374322 }
43384323 _snapshotShareDialog->show();
4324+#endif
4325+
43394326 }
43404327
43414328 void Application::setVSyncEnabled() {
@@ -4524,7 +4511,7 @@ glm::uvec2 Application::getCanvasSize() const { · 182 unmodified lines
45244511 }
45254512
45264513 QSize Application::getDeviceSize() const {
4527− return getActiveDisplayPlugin()->getRecommendedFramebufferSize(); // _glWidget->getDeviceSize();
4514+ return getActiveDisplayPlugin()->getDeviceSize();
45284515 }
45294516
45304517 void Application::resizeGL() {
@@ -4544,21 +4531,15 @@ glm::vec2 Application::getViewportDimensions() const { · 13 unmodified lines
45444531 glm::ivec2 Application::getTrueMousePosition() const {
45454532 return getActiveDisplayPlugin()->getTrueMousePosition();
45464533 }
4534+
45474535 glm::quat Application::getHeadOrientation() const {
45484536 return getActiveDisplayPlugin()->headOrientation();
45494537 }
4538+
45504539 glm::vec3 Application::getHeadPosition() const {
45514540 return getActiveDisplayPlugin()->headTranslation();
45524541 }
45534542
4554−int Application::getTrueMouseX() const {
4555− return getActiveDisplayPlugin()->getTrueMousePosition().x;
4556−}
4557−
4558−int Application::getTrueMouseY() const {
4559− return getActiveDisplayPlugin()->getTrueMousePosition().y;
4560−}
4561−
45624543 bool Application::isThrottleRendering() const {
45634544 return getActiveDisplayPlugin()->isThrottled();
45644545 }
@@ -4659,43 +4640,3 @@ void Application::initPlugins() { · 94 unmodified lines
46594640 void Application::shutdownPlugins() {
46604641 OculusManager::deinit();
46614642 }
4662−
4663−glm::vec3 Application::getHeadPosition() const {
4664− return OculusManager::getRelativePosition();
4665−}
4666−
4667−glm::quat Application::getHeadOrientation() const {
4668− return OculusManager::getOrientation();
4669−}
4670−
4671−glm::uvec2 Application::getCanvasSize() const {
4672− return glm::uvec2(_glWidget->width(), _glWidget->height());
4673−}
4674−
4675−QSize Application::getDeviceSize() const {
4676− return _glWidget->getDeviceSize();
4677−}
4678−
4679−int Application::getTrueMouseX() const {
4680− return _glWidget->mapFromGlobal(QCursor::pos()).x();
4681−}
4682−
4683−int Application::getTrueMouseY() const {
4684− return _glWidget->mapFromGlobal(QCursor::pos()).y();
4685−}
4686−
4687−bool Application::isThrottleRendering() const {
4688− return _glWidget->isThrottleRendering();
4689−}
4690−
4691−PickRay Application::computePickRay() const {
4692− return computePickRay(getTrueMouseX(), getTrueMouseY());
4693−}
4694−
4695−bool Application::hasFocus() const {
4696− return _glWidget->hasFocus();
4697−}
4698−
4699−void Application::resizeGL() {
4700− this->resizeGL(_glWidget->getDeviceWidth(), _glWidget->getDeviceHeight());
4701−}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t