History

Merge branch 'master' of https://github.com/highfidelity/hifi into gpuStreamizing

ZappoMan committed 11 years ago

Commit db949492 parents 2f549c7 89967fb109 files · +681 −487Browse files

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

Unified · Split

interface/src/Application.cpp+76−45
@@ -85,6 +85,8 @@ · 84 unmodified lines
8585 #include "Util.h"
8686
8787 #include "audio/AudioToolBox.h"
88+#include "audio/AudioIOStatsRenderer.h"
89+#include "audio/AudioScope.h"
8890
8991 #include "devices/DdeFaceTracker.h"
9092 #include "devices/Faceshift.h"
@@ -142,8 +144,42 @@ void messageHandler(QtMsgType type, const QMessageLogContext& context, const QSt · 51 unmodified lines
142144 }
143145 }
144146
147+bool setupEssentials(int& argc, char** argv) {
148+ unsigned int listenPort = 0; // bind to an ephemeral port by default
149+ const char** constArgv = const_cast<const char**>(argv);
150+ const char* portStr = getCmdOption(argc, constArgv, "--listenPort");
151+ if (portStr) {
152+ listenPort = atoi(portStr);
153+ }
154+
155+ DependencyManager::registerInheritance<LimitedNodeList, NodeList>();
156+
157+ // Set dependencies
158+ auto glCanvas = DependencyManager::set<GLCanvas>();
159+ auto addressManager = DependencyManager::set<AddressManager>();
160+ auto nodeList = DependencyManager::set<NodeList>(NodeType::Agent, listenPort);
161+ auto geometryCache = DependencyManager::set<GeometryCache>();
162+ auto glowEffect = DependencyManager::set<GlowEffect>();
163+ auto faceshift = DependencyManager::set<Faceshift>();
164+ auto audio = DependencyManager::set<Audio>();
165+ auto audioScope = DependencyManager::set<AudioScope>();
166+ auto audioIOStatsRenderer = DependencyManager::set<AudioIOStatsRenderer>();
167+ auto deferredLightingEffect = DependencyManager::set<DeferredLightingEffect>();
168+ auto ambientOcclusionEffect = DependencyManager::set<AmbientOcclusionEffect>();
169+ auto textureCache = DependencyManager::set<TextureCache>();
170+ auto animationCache = DependencyManager::set<AnimationCache>();
171+ auto visage = DependencyManager::set<Visage>();
172+ auto ddeFaceTracker = DependencyManager::set<DdeFaceTracker>();
173+ auto modelBlender = DependencyManager::set<ModelBlender>();
174+ auto audioToolBox = DependencyManager::set<AudioToolBox>();
175+
176+ return true;
177+}
178+
179+
145180 Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) :
146181 QApplication(argc, argv),
182+ _dependencyManagerIsSetup(setupEssentials(argc, argv)),
147183 _window(new MainWindow(desktop())),
148184 _toolWindow(NULL),
149185 _nodeThread(new QThread(this)),
@@ -189,9 +225,11 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 39 unmodified lines
189225 _isVSyncOn(true),
190226 _aboutToQuit(false)
191227 {
192− GLCanvas::SharedPointer glCanvas = DependencyManager::get<GLCanvas>();
228+ auto glCanvas = DependencyManager::get<GLCanvas>();
229+ auto nodeList = DependencyManager::get<NodeList>();
193230 Model::setAbstractViewStateInterface(this); // The model class will sometimes need to know view state details from us
194231
232+
195233 // read the ApplicationInfo.ini file for Name/Version/Domain information
196234 QSettings applicationInfo(PathUtils::resourcesPath() + "info/ApplicationInfo.ini", QSettings::IniFormat);
197235
@@ -222,23 +260,14 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 24 unmodified lines
222260 _window->setMenuBar(Menu::getInstance());
223261
224262 _runningScriptsWidget = new RunningScriptsWidget(_window);
225−
226− unsigned int listenPort = 0; // bind to an ephemeral port by default
227− const char** constArgv = const_cast<const char**>(argv);
228− const char* portStr = getCmdOption(argc, constArgv, "--listenPort");
229− if (portStr) {
230− listenPort = atoi(portStr);
231− }
232263
233264 // start the nodeThread so its event loop is running
234265 _nodeThread->start();
235266
236267 // make sure the node thread is given highest priority
237268 _nodeThread->setPriority(QThread::TimeCriticalPriority);
238−
269+
239270 // put the NodeList and datagram processing on the node thread
240− NodeList* nodeList = NodeList::createInstance(NodeType::Agent, listenPort);
241−
242271 nodeList->moveToThread(_nodeThread);
243272 _datagramProcessor.moveToThread(_nodeThread);
244273
@@ -248,7 +277,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 3 unmodified lines
248277 // put the audio processing on a separate thread
249278 QThread* audioThread = new QThread(this);
250279
251− Audio::SharedPointer audioIO = DependencyManager::get<Audio>();
280+ auto audioIO = DependencyManager::get<Audio>();
252281 audioIO->moveToThread(audioThread);
253282 connect(audioThread, &QThread::started, audioIO.data(), &Audio::start);
254283
@@ -271,11 +300,11 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 16 unmodified lines
271300 connect(locationUpdateTimer, &QTimer::timeout, this, &Application::updateLocationInServer);
272301 locationUpdateTimer->start(DATA_SERVER_LOCATION_CHANGE_UPDATE_MSECS);
273302
274− connect(nodeList, &NodeList::nodeAdded, this, &Application::nodeAdded);
275− connect(nodeList, &NodeList::nodeKilled, this, &Application::nodeKilled);
276− connect(nodeList, SIGNAL(nodeKilled(SharedNodePointer)), SLOT(nodeKilled(SharedNodePointer)));
277− connect(nodeList, &NodeList::uuidChanged, _myAvatar, &MyAvatar::setSessionUUID);
278− connect(nodeList, &NodeList::limitOfSilentDomainCheckInsReached, nodeList, &NodeList::reset);
303+ connect(nodeList.data(), &NodeList::nodeAdded, this, &Application::nodeAdded);
304+ connect(nodeList.data(), &NodeList::nodeKilled, this, &Application::nodeKilled);
305+ connect(nodeList.data(), SIGNAL(nodeKilled(SharedNodePointer)), SLOT(nodeKilled(SharedNodePointer)));
306+ connect(nodeList.data(), &NodeList::uuidChanged, _myAvatar, &MyAvatar::setSessionUUID);
307+ connect(nodeList.data(), &NodeList::limitOfSilentDomainCheckInsReached, nodeList.data(), &NodeList::reset);
279308
280309 // connect to appropriate slots on AccountManager
281310 AccountManager& accountManager = AccountManager::getInstance();
@@ -301,7 +330,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 19 unmodified lines
301330 // once the event loop has started, check and signal for an access token
302331 QMetaObject::invokeMethod(&accountManager, "checkAndSignalForAccessToken", Qt::QueuedConnection);
303332
304− AddressManager::SharedPointer addressManager = DependencyManager::get<AddressManager>();
333+ auto addressManager = DependencyManager::get<AddressManager>();
305334
306335 // use our MyAvatar position and quat for address manager path
307336 addressManager->setPositionGetter(getPositionForPath);
@@ -325,7 +354,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 17 unmodified lines
325354
326355 // move the silentNodeTimer to the _nodeThread
327356 QTimer* silentNodeTimer = new QTimer();
328− connect(silentNodeTimer, SIGNAL(timeout()), nodeList, SLOT(removeSilentNodes()));
357+ connect(silentNodeTimer, SIGNAL(timeout()), nodeList.data(), SLOT(removeSilentNodes()));
329358 silentNodeTimer->start(NODE_SILENCE_THRESHOLD_MSECS);
330359 silentNodeTimer->moveToThread(_nodeThread);
331360
@@ -444,7 +473,7 @@ Application::~Application() { · 112 unmodified lines
444473 // kill any audio injectors that are still around
445474 AudioScriptingInterface::getInstance().stopAllInjectors();
446475
447− Audio::SharedPointer audioIO = DependencyManager::get<Audio>();
476+ auto audioIO = DependencyManager::get<Audio>();
448477
449478 // stop the audio process
450479 QMetaObject::invokeMethod(audioIO.data(), "stop", Qt::BlockingQueuedConnection);
@@ -459,6 +488,8 @@ Application::~Application() { · 8 unmodified lines
459488 Menu::getInstance()->deleteLater();
460489
461490 _myAvatar = NULL;
491+
492+ DependencyManager::destroy<GLCanvas>();
462493 }
463494
464495 void Application::saveSettings() {
@@ -734,7 +765,7 @@ void Application::controlledBroadcastToNodes(const QByteArray& packet, const Nod · 269 unmodified lines
734765 foreach(NodeType_t type, destinationNodeTypes) {
735766
736767 // Perform the broadcast for one type
737− int nReceivingNodes = NodeList::getInstance()->broadcastToNodes(packet, NodeSet() << type);
768+ int nReceivingNodes = DependencyManager::get<NodeList>()->broadcastToNodes(packet, NodeSet() << type);
738769
739770 // Feed number of bytes to corresponding channel of the bandwidth meter, if any (done otherwise)
740771 BandwidthMeter::ChannelIndex channel;
@@ -953,7 +984,7 @@ void Application::keyPressEvent(QKeyEvent* event) { · 212 unmodified lines
953984 if (isShifted) {
954985 _viewFrustum.setFocalLength(_viewFrustum.getFocalLength() - 0.1f);
955986 if (TV3DManager::isConnected()) {
956− GLCanvas::SharedPointer glCanvas = DependencyManager::get<GLCanvas>();
987+ auto glCanvas = DependencyManager::get<GLCanvas>();
957988 TV3DManager::configureCamera(_myCamera, glCanvas->getDeviceWidth(), glCanvas->getDeviceHeight());
958989 }
959990 } else {
@@ -966,7 +997,7 @@ void Application::keyPressEvent(QKeyEvent* event) { · 6 unmodified lines
966997 if (isShifted) {
967998 _viewFrustum.setFocalLength(_viewFrustum.getFocalLength() + 0.1f);
968999 if (TV3DManager::isConnected()) {
969− GLCanvas::SharedPointer glCanvas = DependencyManager::get<GLCanvas>();
1000+ auto glCanvas = DependencyManager::get<GLCanvas>();
9701001 TV3DManager::configureCamera(_myCamera, glCanvas->getDeviceWidth(), glCanvas->getDeviceHeight());
9711002 }
9721003
@@ -1328,7 +1359,7 @@ void Application::dropEvent(QDropEvent *event) { · 355 unmodified lines
13281359 SnapshotMetaData* snapshotData = Snapshot::parseSnapshotData(snapshotPath);
13291360 if (snapshotData) {
13301361 if (!snapshotData->getDomain().isEmpty()) {
1331− NodeList::getInstance()->getDomainHandler().setHostnameAndPort(snapshotData->getDomain());
1362+ DependencyManager::get<NodeList>()->getDomainHandler().setHostnameAndPort(snapshotData->getDomain());
13321363 }
13331364
13341365 _myAvatar->setPosition(snapshotData->getLocation());
@@ -1342,7 +1373,7 @@ void Application::dropEvent(QDropEvent *event) { · 7 unmodified lines
13421373 }
13431374
13441375 void Application::sendPingPackets() {
1345− QByteArray pingPacket = NodeList::getInstance()->constructPingPacket();
1376+ QByteArray pingPacket = DependencyManager::get<NodeList>()->constructPingPacket();
13461377 controlledBroadcastToNodes(pingPacket, NodeSet()
13471378 << NodeType::EntityServer
13481379 << NodeType::AudioMixer << NodeType::AvatarMixer
@@ -1368,7 +1399,7 @@ void Application::timer() { · 19 unmodified lines
13681399 _timerStart.start();
13691400
13701401 // ask the node list to check in with the domain server
1371− NodeList::getInstance()->sendDomainServerCheckIn();
1402+ DependencyManager::get<NodeList>()->sendDomainServerCheckIn();
13721403 }
13731404
13741405 void Application::idle() {
@@ -1424,7 +1455,7 @@ void Application::idle() { · 49 unmodified lines
14241455
14251456 void Application::checkBandwidthMeterClick() {
14261457 // ... to be called upon button release
1427− GLCanvas::SharedPointer glCanvas = DependencyManager::get<GLCanvas>();
1458+ auto glCanvas = DependencyManager::get<GLCanvas>();
14281459 if (Menu::getInstance()->isOptionChecked(MenuOption::Bandwidth) &&
14291460 Menu::getInstance()->isOptionChecked(MenuOption::Stats) &&
14301461 Menu::getInstance()->isOptionChecked(MenuOption::UserInterface) &&
@@ -1460,7 +1491,7 @@ void Application::setFullscreen(bool fullscreen) { · 29 unmodified lines
14601491 }
14611492
14621493 void Application::setEnable3DTVMode(bool enable3DTVMode) {
1463− GLCanvas::SharedPointer glCanvas = DependencyManager::get<GLCanvas>();
1494+ auto glCanvas = DependencyManager::get<GLCanvas>();
14641495 resizeGL(glCanvas->getDeviceWidth(), glCanvas->getDeviceHeight());
14651496 }
14661497
@@ -1486,7 +1517,7 @@ void Application::setEnableVRMode(bool enableVRMode) { · 19 unmodified lines
14861517 _myCamera.setHmdRotation(glm::quat());
14871518 }
14881519
1489− GLCanvas::SharedPointer glCanvas = DependencyManager::get<GLCanvas>();
1520+ auto glCanvas = DependencyManager::get<GLCanvas>();
14901521 resizeGL(glCanvas->getDeviceWidth(), glCanvas->getDeviceHeight());
14911522 }
14921523
@@ -1496,7 +1527,7 @@ void Application::setLowVelocityFilter(bool lowVelocityFilter) { · 3 unmodified lines
14961527
14971528 bool Application::mouseOnScreen() const {
14981529 if (OculusManager::isConnected()) {
1499− GLCanvas::SharedPointer glCanvas = DependencyManager::get<GLCanvas>();
1530+ auto glCanvas = DependencyManager::get<GLCanvas>();
15001531 return getMouseX() >= 0 && getMouseX() <= glCanvas->getDeviceWidth() &&
15011532 getMouseY() >= 0 && getMouseY() <= glCanvas->getDeviceHeight();
15021533 }
@@ -1538,9 +1569,9 @@ int Application::getMouseDragStartedY() const { · 35 unmodified lines
15381569 }
15391570
15401571 FaceTracker* Application::getActiveFaceTracker() {
1541− Faceshift::SharedPointer faceshift = DependencyManager::get<Faceshift>();
1542− Visage::SharedPointer visage = DependencyManager::get<Visage>();
1543− DdeFaceTracker::SharedPointer dde = DependencyManager::get<DdeFaceTracker>();
1572+ auto faceshift = DependencyManager::get<Faceshift>();
1573+ auto visage = DependencyManager::get<Visage>();
1574+ auto dde = DependencyManager::get<DdeFaceTracker>();
15441575
15451576 return (dde->isActive() ? static_cast<FaceTracker*>(dde.data()) :
15461577 (faceshift->isActive() ? static_cast<FaceTracker*>(faceshift.data()) :
@@ -1656,7 +1687,7 @@ void Application::init() { · 109 unmodified lines
16561687 Leapmotion::init();
16571688
16581689 // fire off an immediate domain-server check in now that settings are loaded
1659− NodeList::getInstance()->sendDomainServerCheckIn();
1690+ DependencyManager::get<NodeList>()->sendDomainServerCheckIn();
16601691
16611692 _entities.init();
16621693 _entities.setViewFrustum(getViewFrustum());
@@ -1684,7 +1715,7 @@ void Application::init() { · 21 unmodified lines
16841715
16851716 _metavoxels.init();
16861717
1687− GLCanvas::SharedPointer glCanvas = DependencyManager::get<GLCanvas>();
1718+ auto glCanvas = DependencyManager::get<GLCanvas>();
16881719 _rearMirrorTools = new RearMirrorTools(glCanvas.data(), _mirrorViewRect, _settings);
16891720
16901721 connect(_rearMirrorTools, SIGNAL(closeView()), SLOT(closeMirrorView()));
@@ -1774,7 +1805,7 @@ void Application::updateMouseRay() { · 83 unmodified lines
17741805 void Application::updateFaceshift() {
17751806 bool showWarnings = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings);
17761807 PerformanceWarning warn(showWarnings, "Application::updateFaceshift()");
1777− Faceshift::SharedPointer faceshift = DependencyManager::get<Faceshift>();
1808+ auto faceshift = DependencyManager::get<Faceshift>();
17781809 // Update faceshift
17791810 faceshift->update();
17801811
@@ -2123,7 +2154,7 @@ int Application::sendNackPackets() { · 342 unmodified lines
21232154 char packet[MAX_PACKET_SIZE];
21242155
21252156 // iterates thru all nodes in NodeList
2126− NodeList* nodeList = NodeList::getInstance();
2157+ auto nodeList = DependencyManager::get<NodeList>();
21272158
21282159 nodeList->eachNode([&](const SharedNodePointer& node){
21292160
@@ -2221,7 +2252,7 @@ void Application::queryOctree(NodeType_t serverType, PacketType packetType, Node · 91 unmodified lines
22212252 int inViewServers = 0;
22222253 int unknownJurisdictionServers = 0;
22232254
2224− NodeList* nodeList = NodeList::getInstance();
2255+ auto nodeList = DependencyManager::get<NodeList>();
22252256
22262257 nodeList->eachNode([&](const SharedNodePointer& node) {
22272258 // only send to the NodeTypes that are serverType
@@ -2585,7 +2616,7 @@ void Application::updateShadowMap() { · 357 unmodified lines
25852616
25862617 fbo->release();
25872618
2588− GLCanvas::SharedPointer glCanvas = DependencyManager::get<GLCanvas>();
2619+ auto glCanvas = DependencyManager::get<GLCanvas>();
25892620 glViewport(0, 0, glCanvas->getDeviceWidth(), glCanvas->getDeviceHeight());
25902621 }
25912622
@@ -2921,7 +2952,7 @@ bool Application::getCascadeShadowsEnabled() { · 329 unmodified lines
29212952 }
29222953
29232954 glm::vec2 Application::getScaledScreenPoint(glm::vec2 projectedPoint) {
2924− GLCanvas::SharedPointer glCanvas = DependencyManager::get<GLCanvas>();
2955+ auto glCanvas = DependencyManager::get<GLCanvas>();
29252956 float horizontalScale = glCanvas->getDeviceWidth() / 2.0f;
29262957 float verticalScale = glCanvas->getDeviceHeight() / 2.0f;
29272958
@@ -3107,7 +3138,7 @@ void Application::setMenuShortcutsEnabled(bool enabled) { · 179 unmodified lines
31073138 void Application::updateWindowTitle(){
31083139
31093140 QString buildVersion = " (build " + applicationVersion() + ")";
3110− NodeList* nodeList = NodeList::getInstance();
3141+ auto nodeList = DependencyManager::get<NodeList>();
31113142
31123143 QString connectionStatus = nodeList->getDomainHandler().isConnected() ? "" : " (NOT CONNECTED) ";
31133144 QString username = AccountManager::getInstance().getAccountInfo().getUsername();
@@ -3124,7 +3155,7 @@ void Application::updateWindowTitle(){ · 10 unmodified lines
31243155 void Application::updateLocationInServer() {
31253156
31263157 AccountManager& accountManager = AccountManager::getInstance();
3127− DomainHandler& domainHandler = NodeList::getInstance()->getDomainHandler();
3158+ DomainHandler& domainHandler = DependencyManager::get<NodeList>()->getDomainHandler();
31283159
31293160 if (accountManager.isLoggedIn() && domainHandler.isConnected() && !domainHandler.getUUID().isNull()) {
31303161
@@ -3175,7 +3206,7 @@ void Application::domainChanged(const QString& domainHostname) { · 44 unmodified lines
31753206
31763207 void Application::connectedToDomain(const QString& hostname) {
31773208 AccountManager& accountManager = AccountManager::getInstance();
3178− const QUuid& domainID = NodeList::getInstance()->getDomainHandler().getUUID();
3209+ const QUuid& domainID = DependencyManager::get<NodeList>()->getDomainHandler().getUUID();
31793210
31803211 if (accountManager.isLoggedIn() && !domainID.isNull()) {
31813212 // update our data-server with the domain-server we're logged in with
@@ -3462,8 +3493,8 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri · 280 unmodified lines
34623493 // when the application is about to quit, stop our script engine so it unwinds properly
34633494 connect(this, SIGNAL(aboutToQuit()), scriptEngine, SLOT(stop()));
34643495
3465− NodeList* nodeList = NodeList::getInstance();
3466− connect(nodeList, &NodeList::nodeKilled, scriptEngine, &ScriptEngine::nodeKilled);
3496+ auto nodeList = DependencyManager::get<NodeList>();
3497+ connect(nodeList.data(), &NodeList::nodeKilled, scriptEngine, &ScriptEngine::nodeKilled);
34673498
34683499 scriptEngine->moveToThread(workerThread);
34693500

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