diff --git a/BUILD.md b/BUILD.md index 9bd5da7c14..c7b343baa1 100644 --- a/BUILD.md +++ b/BUILD.md @@ -7,6 +7,7 @@ * IMPORTANT: OpenSSL 1.0.1g is critical to avoid a security vulnerability. * [Intel Threading Building Blocks](https://www.threadingbuildingblocks.org/) ~> 4.3 * [Bullet Physics Engine](https://code.google.com/p/bullet/downloads/list) ~> 2.82 +* [Gverb](https://github.com/highfidelity/gverb/archive/master.zip) (direct download to latest version) ### OS Specific Build Guides * [BUILD_WIN.md](BUILD_WIN.md) - additional instructions for Windows. @@ -54,11 +55,11 @@ In the examples below the variable $NAME would be replaced by the name of the de ####QXmpp -You can find QXmpp [here](https://github.com/qxmpp-project/qxmpp). The inclusion of the QXmpp enables text chat in the Interface client. +You can [find QXmpp here](https://github.com/qxmpp-project/qxmpp), 0.7.6 is the version you want. The inclusion of the QXmpp enables text chat in the Interface client. OS X users who tap our [homebrew formulas repository](https://github.com/highfidelity/homebrew-formulas) can install QXmpp via homebrew - `brew install highfidelity/formulas/qxmpp`. ####Devices -You can support external input/output devices such as Leap Motion, Faceshift, PrioVR, MIDI, Razr Hydra and more by adding each individual SDK in the visible building path. Refer to the readme file available in each device folder in [interface/external/](interface/external) for the detailed explanation of the requirements to use the device. +You can support external input/output devices such as Oculus Rift, Leap Motion, Faceshift, PrioVR, MIDI, Razr Hydra and more by adding each individual SDK in the visible building path. Refer to the readme file available in each device folder in [interface/external/](interface/external) for the detailed explanation of the requirements to use the device. diff --git a/BUILD_WIN.md b/BUILD_WIN.md index 5045201f62..27f0e02ea7 100644 --- a/BUILD_WIN.md +++ b/BUILD_WIN.md @@ -38,6 +38,8 @@ Once Qt is installed, you need to manually configure the following: ###External Libraries +As it stands, Hifi/Interface is a 32-bit application, so all libraries should also be 32-bit. + CMake will need to know where the headers and libraries for required external dependencies are. The recommended route for CMake to find the external dependencies is to place all of the dependencies in one folder and set one ENV variable - HIFI_LIB_DIR. That ENV variable should point to a directory with the following structure: @@ -75,7 +77,7 @@ As with the Qt libraries, you will need to make sure that directories containing ###OpenSSL -QT will use OpenSSL if it's available, but it doesn't install it, so you must install it separately. +Qt will use OpenSSL if it's available, but it doesn't install it, so you must install it separately. Your system may already have several versions of the OpenSSL DLL's (ssleay32.dll, libeay32.dll) lying around, but they may be the wrong version. If these DLL's are in the PATH then QT will try to use them, and if they're the wrong version then you will see the following errors in the console: @@ -89,7 +91,7 @@ Your system may already have several versions of the OpenSSL DLL's (ssleay32.dll To prevent these problems, install OpenSSL yourself. Download the following binary packages [from this website](http://slproweb.com/products/Win32OpenSSL.html): * Visual C++ 2008 Redistributables -* Win32 OpenSSL v1.0.1h +* Win32 OpenSSL v1.0.1L Install OpenSSL into the Windows system directory, to make sure that Qt uses the version that you've just installed, and not some other version. @@ -133,6 +135,20 @@ This package contains only headers, so there's nothing to add to the PATH. Be careful with glm. For the folder other libraries would normally call 'include', the folder containing the headers, glm opts to use 'glm'. You will have a glm folder nested inside the top-level glm folder. +###Gverb + +1. Go to https://github.com/highfidelity/gverb + Or download the sources directly via this link: + https://github.com/highfidelity/gverb/archive/master.zip + +2. Extract the archive + +3. Place the directories “include” and “src” in interface/external/gverb + (Normally next to this readme) + +4. Clear your build directory, run cmake, build and you should be all set. + + ###Bullet Bullet 2.82 source can be [downloaded here](https://code.google.com/p/bullet/downloads/detail?name=bullet-2.82-r2704.zip). Bullet does not come with prebuilt libraries, you need to make those yourself. diff --git a/assignment-client/src/AssignmentClient.cpp b/assignment-client/src/AssignmentClient.cpp index 7a5ad26726..709f318d2c 100644 --- a/assignment-client/src/AssignmentClient.cpp +++ b/assignment-client/src/AssignmentClient.cpp @@ -9,10 +9,11 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index 791c7e37b6..3686be0f00 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -13,21 +13,22 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include #include +#include #include #include #include @@ -1920,10 +1921,8 @@ Headers DomainServer::setupCookieHeadersFromProfileReply(QNetworkReply* profileR _cookieSessionHash.insert(cookieUUID, sessionData); // persist the cookie to settings file so we can get it back on DS relaunch - QSettings localSettings; - localSettings.beginGroup(DS_SETTINGS_SESSIONS_GROUP); - QVariant sessionVariant = QVariant::fromValue(sessionData); - localSettings.setValue(cookieUUID.toString(), QVariant::fromValue(sessionData)); + QStringList path = QStringList() << DS_SETTINGS_SESSIONS_GROUP << cookieUUID.toString(); + SettingHandles::SettingHandle(path).set(QVariant::fromValue(sessionData)); // setup expiry for cookie to 1 month from today QDateTime cookieExpiry = QDateTime::currentDateTimeUtc().addMonths(1); @@ -1943,11 +1942,12 @@ Headers DomainServer::setupCookieHeadersFromProfileReply(QNetworkReply* profileR void DomainServer::loadExistingSessionsFromSettings() { // read data for existing web sessions into memory so existing sessions can be leveraged - QSettings domainServerSettings; + Settings domainServerSettings; domainServerSettings.beginGroup(DS_SETTINGS_SESSIONS_GROUP); foreach(const QString& uuidKey, domainServerSettings.childKeys()) { - _cookieSessionHash.insert(QUuid(uuidKey), domainServerSettings.value(uuidKey).value()); + _cookieSessionHash.insert(QUuid(uuidKey), + domainServerSettings.value(uuidKey).value()); qDebug() << "Pulled web session from settings - cookie UUID is" << uuidKey; } } diff --git a/examples/editEntities.js b/examples/editEntities.js index 9187b624fd..e2c7a6d435 100644 --- a/examples/editEntities.js +++ b/examples/editEntities.js @@ -669,6 +669,10 @@ function mouseClickEvent(event) { print("Model selected: " + foundEntity.id); selectionDisplay.select(selectedEntityID, event); + + cameraManager.focus(selectionManager.worldPosition, + selectionManager.worldDimensions, + Menu.isOptionChecked(MENU_EASE_ON_FOCUS)); } } } diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 4537b3eb91..5a60be39a1 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -38,8 +38,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -73,13 +73,16 @@ #include #include #include +#include #include #include #include #include #include "Application.h" +#include "Audio.h" #include "InterfaceVersion.h" +#include "LODManager.h" #include "Menu.h" #include "ModelUploader.h" #include "Util.h" @@ -100,7 +103,6 @@ #include "gpu/Batch.h" #include "gpu/GLBackend.h" - #include "scripting/AccountScriptingInterface.h" #include "scripting/AudioDeviceScriptingInterface.h" #include "scripting/ClipboardScriptingInterface.h" @@ -112,9 +114,16 @@ #include "scripting/WindowScriptingInterface.h" #include "scripting/WebWindowClass.h" +#if defined(Q_OS_MAC) || defined(Q_OS_WIN) +#include "SpeechRecognizer.h" +#endif + #include "ui/DataWebDialog.h" +#include "ui/DialogsManager.h" #include "ui/InfoView.h" +#include "ui/LoginDialog.h" #include "ui/Snapshot.h" +#include "ui/StandAloneJSConsole.h" #include "ui/Stats.h" @@ -137,6 +146,12 @@ const QString SKIP_FILENAME = QStandardPaths::writableLocation(QStandardPaths::D const QString DEFAULT_SCRIPTS_JS_URL = "http://s3.amazonaws.com/hifi-public/scripts/defaultScripts.js"; +namespace SettingHandles { + const SettingHandle firstRun("firstRun", true); + const SettingHandle lastScriptLocation("LastScriptLocation"); + const SettingHandle scriptsLocation("scriptsLocation"); +} + void messageHandler(QtMsgType type, const QMessageLogContext& context, const QString& message) { QString logMessage = LogHandler::getInstance().printMessage((LogMsgType) type, context, message); @@ -183,6 +198,12 @@ bool setupEssentials(int& argc, char** argv) { auto ddeFaceTracker = DependencyManager::set(); auto modelBlender = DependencyManager::set(); auto audioToolBox = DependencyManager::set(); + auto lodManager = DependencyManager::set(); + auto jsConsole = DependencyManager::set(); + auto dialogsManager = DependencyManager::set(); +#if defined(Q_OS_MAC) || defined(Q_OS_WIN) + auto speechRecognizer = DependencyManager::set(); +#endif return true; } @@ -276,6 +297,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : auto audioIO = DependencyManager::get