diff --git a/CMakeLists.txt b/CMakeLists.txt
index dff49df7d7..d7803259c2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -125,6 +125,6 @@ if (NOT ANDROID)
add_subdirectory(interface)
add_subdirectory(tests)
add_subdirectory(tools)
-else ()
+elseif (ANDROID OR DESKTOP_GVR)
add_subdirectory(gvr-interface)
endif ()
\ No newline at end of file
diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json
index 83b270c772..1ff82f58eb 100644
--- a/domain-server/resources/describe-settings.json
+++ b/domain-server/resources/describe-settings.json
@@ -6,7 +6,7 @@
{
"name": "access_token",
"label": "Access Token",
- "help": "This is an access token generated on the My Security page of your High Fidelity account. Generate a token with the 'domains' scope and paste it here. This is required to associate this domain-server with a domain in your account."
+ "help": "This is an access token generated on the My Security page of your High Fidelity account. Generate a token with the 'domains' scope and paste it here. This is required to associate this domain-server with a domain in your account."
},
{
"name": "id",
@@ -30,7 +30,7 @@
},
{
"value": "disabled",
- "label": "None: use the network information I have entered for this domain at data.highfidelity.io"
+ "label": "None: use the network information I have entered for this domain at metaverse.highfidelity.io"
}
]
},
diff --git a/domain-server/resources/web/js/settings.js b/domain-server/resources/web/js/settings.js
index bdd80df9ec..f62515c863 100644
--- a/domain-server/resources/web/js/settings.js
+++ b/domain-server/resources/web/js/settings.js
@@ -652,7 +652,7 @@ function chooseFromHighFidelityDomains(clickedButton) {
clickedButton.attr('disabled', 'disabled')
// get a list of user domains from data-web
- data_web_domains_url = "https://data.highfidelity.io/api/v1/domains?access_token="
+ data_web_domains_url = "https://metaverse.highfidelity.io/api/v1/domains?access_token="
$.getJSON(data_web_domains_url + Settings.initialValues.metaverse.access_token, function(data){
modal_buttons = {
@@ -682,7 +682,7 @@ function chooseFromHighFidelityDomains(clickedButton) {
modal_buttons["success"] = {
label: 'Create new domain',
callback: function() {
- window.open("https://data.highfidelity.io/user/domains", '_blank');
+ window.open("https://metaverse.highfidelity.io/user/domains", '_blank');
}
}
modal_body = "
You do not have any domains in your High Fidelity account." +
diff --git a/examples/editEntities.js b/examples/editEntities.js
index d73c6fa6e7..ea566c6702 100644
--- a/examples/editEntities.js
+++ b/examples/editEntities.js
@@ -245,7 +245,7 @@ var toolBar = (function () {
};
var RESIZE_INTERVAL = 50;
- var RESIZE_TIMEOUT = 20000;
+ var RESIZE_TIMEOUT = 120000; // 2 minutes
var RESIZE_MAX_CHECKS = RESIZE_TIMEOUT / RESIZE_INTERVAL;
function addModel(url) {
var position;
@@ -425,7 +425,7 @@ var toolBar = (function () {
placingEntityID = Entities.addEntity({
type: "Text",
position: grid.snapToSurface(grid.snapToGrid(position, false, DEFAULT_DIMENSIONS), DEFAULT_DIMENSIONS),
- dimensions: { x: 0.5, y: 0.3, z: 0.01 },
+ dimensions: { x: 0.65, y: 0.3, z: 0.01 },
backgroundColor: { red: 64, green: 64, blue: 64 },
textColor: { red: 255, green: 255, blue: 255 },
text: "some text",
diff --git a/examples/html/entityList.html b/examples/html/entityList.html
index 01061f1eb0..bbfa4d81b8 100644
--- a/examples/html/entityList.html
+++ b/examples/html/entityList.html
@@ -168,14 +168,16 @@
-
+
-
+
+
+
diff --git a/examples/html/style.css b/examples/html/style.css
index 8b52447ea2..7177b8c8ba 100644
--- a/examples/html/style.css
+++ b/examples/html/style.css
@@ -86,6 +86,20 @@ input[type=button] {
font-weight: bold;
}
+#entity-list-header {
+ padding: 0.5em;
+}
+
+#search-area {
+ width: 100%;
+ padding: 0.5em;
+ box-sizing: border-box;
+}
+
+#search-area input {
+ width: 100%;
+}
+
textarea, input {
margin: 0;
padding: 1.5pt;
@@ -120,6 +134,7 @@ table#entity-table {
}
#entity-table tr.selected {
+ color: rgb(43, 43, 43);
background-color: #AAA;
}
diff --git a/examples/libraries/modelUploader.js b/examples/libraries/modelUploader.js
index 7f575a54ef..fcc96854ab 100644
--- a/examples/libraries/modelUploader.js
+++ b/examples/libraries/modelUploader.js
@@ -21,7 +21,7 @@ modelUploader = (function () {
//svoBuffer,
mapping,
geometry,
- API_URL = "https://data.highfidelity.io/api/v1/models",
+ API_URL = "https://metaverse.highfidelity.io/api/v1/models",
MODEL_URL = "http://public.highfidelity.io/models/content",
NAME_FIELD = "name",
SCALE_FIELD = "scale",
diff --git a/examples/lobby.js b/examples/lobby.js
index fcac7a490b..1936a4e531 100644
--- a/examples/lobby.js
+++ b/examples/lobby.js
@@ -152,7 +152,7 @@ var places = {};
function changeLobbyTextures() {
var req = new XMLHttpRequest();
- req.open("GET", "https://data.highfidelity.io/api/v1/places?limit=21", false);
+ req.open("GET", "https://metaverse.highfidelity.io/api/v1/places?limit=21", false);
req.send();
places = JSON.parse(req.responseText).data.places;
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 5162232281..d9bd5ed807 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -157,18 +157,27 @@ public:
bool nativeEventFilter(const QByteArray &eventType, void* msg, long* result) Q_DECL_OVERRIDE {
if (eventType == "windows_generic_MSG") {
MSG* message = (MSG*)msg;
+
if (message->message == UWM_IDENTIFY_INSTANCES) {
*result = UWM_IDENTIFY_INSTANCES;
return true;
}
- if (message->message == WM_SHOWWINDOW) {
- Application::getInstance()->getWindow()->showNormal();
+
+ if (message->message == UWM_SHOW_APPLICATION) {
+ MainWindow* applicationWindow = Application::getInstance()->getWindow();
+ if (applicationWindow->isMinimized()) {
+ applicationWindow->showNormal(); // Restores to windowed or maximized state appropriately.
+ }
+ Application::getInstance()->setActiveWindow(applicationWindow); // Flashes the taskbar icon if not focus.
+ return true;
}
+
if (message->message == WM_COPYDATA) {
COPYDATASTRUCT* pcds = (COPYDATASTRUCT*)(message->lParam);
QUrl url = QUrl((const char*)(pcds->lpData));
if (url.isValid() && url.scheme() == HIFI_URL_SCHEME) {
DependencyManager::get()->handleLookupString(url.toString());
+ return true;
}
}
}
diff --git a/interface/src/Application.h b/interface/src/Application.h
index e131766309..d015d09035 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -117,6 +117,8 @@ static const QString INFO_EDIT_ENTITIES_PATH = "html/edit-entities-commands.html
#ifdef Q_OS_WIN
static const UINT UWM_IDENTIFY_INSTANCES =
RegisterWindowMessage("UWM_IDENTIFY_INSTANCES_{8AB82783-B74A-4258-955B-8188C22AA0D6}");
+static const UINT UWM_SHOW_APPLICATION =
+ RegisterWindowMessage("UWM_SHOW_APPLICATION_{71123FD6-3DA8-4DC1-9C27-8A12A6250CBA}");
#endif
class Application;
diff --git a/interface/src/main.cpp b/interface/src/main.cpp
index 4881bd4ff4..64ecb2b9e7 100644
--- a/interface/src/main.cpp
+++ b/interface/src/main.cpp
@@ -8,6 +8,7 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
+#include
#include
#include
#include
@@ -36,7 +37,7 @@ static BOOL CALLBACK enumWindowsCallback(HWND hWnd, LPARAM lParam) {
#endif
-int main(int argc, const char * argv[]) {
+int main(int argc, const char* argv[]) {
#ifdef Q_OS_WIN
// Run only one instance of Interface at a time.
HANDLE mutex = CreateMutex(NULL, FALSE, "High Fidelity Interface");
@@ -46,15 +47,32 @@ int main(int argc, const char * argv[]) {
HWND otherInstance = NULL;
EnumWindows(enumWindowsCallback, (LPARAM)&otherInstance);
if (otherInstance) {
- ShowWindow(otherInstance, SW_RESTORE);
- SetForegroundWindow(otherInstance);
+ // Show other instance.
+ SendMessage(otherInstance, UWM_SHOW_APPLICATION, 0, 0);
- QUrl url = QUrl(argv[1]);
- if (url.isValid() && url.scheme() == HIFI_URL_SCHEME) {
- COPYDATASTRUCT cds;
- cds.cbData = strlen(argv[1]) + 1;
- cds.lpData = (PVOID)argv[1];
- SendMessage(otherInstance, WM_COPYDATA, 0, (LPARAM)&cds);
+ // Send command line --url value to other instance.
+ if (argc >= 3) {
+ QStringList arguments;
+ for (int i = 0; i < argc; i += 1) {
+ arguments << argv[i];
+ }
+
+ QCommandLineParser parser;
+ QCommandLineOption urlOption("url", "", "value");
+ parser.addOption(urlOption);
+ parser.process(arguments);
+
+ if (parser.isSet(urlOption)) {
+ QUrl url = QUrl(parser.value(urlOption));
+ if (url.isValid() && url.scheme() == HIFI_URL_SCHEME) {
+ QByteArray urlBytes = url.toString().toLatin1();
+ const char* urlChars = urlBytes.data();
+ COPYDATASTRUCT cds;
+ cds.cbData = urlBytes.length() + 1;
+ cds.lpData = (PVOID)urlChars;
+ SendMessage(otherInstance, WM_COPYDATA, 0, (LPARAM)&cds);
+ }
+ }
}
}
return 0;
diff --git a/interface/src/ui/LoginDialog.cpp b/interface/src/ui/LoginDialog.cpp
index 3fd6e8e3cd..049e5bd1cd 100644
--- a/interface/src/ui/LoginDialog.cpp
+++ b/interface/src/ui/LoginDialog.cpp
@@ -22,7 +22,7 @@
#include "ui_loginDialog.h"
#include "LoginDialog.h"
-const QString FORGOT_PASSWORD_URL = "https://data.highfidelity.io/users/password/new";
+const QString FORGOT_PASSWORD_URL = "https://metaverse.highfidelity.io/users/password/new";
LoginDialog::LoginDialog(QWidget* parent) :
FramelessDialog(parent, 0, FramelessDialog::POSITION_TOP),
diff --git a/interface/ui/loginDialog.ui b/interface/ui/loginDialog.ui
index 73d466b68a..c986db7f50 100644
--- a/interface/ui/loginDialog.ui
+++ b/interface/ui/loginDialog.ui
@@ -136,7 +136,7 @@
<style type="text/css">
a { text-decoration: none; color: #267077;}
</style>
-Invalid username or password. <a href="https://data.highfidelity.io/password/new">Recover?</a>
+Invalid username or password. <a href="https://metaverse.highfidelity.io/password/new">Recover?</a>
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
@@ -458,7 +458,7 @@ border-radius: 4px; padding-top: 1px;
<style type="text/css">
a { text-decoration: none; color: #267077;}
</style>
-<a href="https://data.highfidelity.io/password/new">Recover password?</a>
+<a href="https://metaverse.highfidelity.io/password/new">Recover password?</a>
true
diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp
index 9f569c9893..7f6c509626 100644
--- a/libraries/audio-client/src/AudioClient.cpp
+++ b/libraries/audio-client/src/AudioClient.cpp
@@ -135,6 +135,15 @@ AudioClient::AudioClient() :
updateTimer->start(DEVICE_CHECK_INTERVAL_MSECS);
}
+AudioClient::~AudioClient() {
+ if (_gverbLocal) {
+ gverb_free(_gverbLocal);
+ }
+ if (_gverb) {
+ gverb_free(_gverb);
+ }
+}
+
void AudioClient::reset() {
_receivedAudioStream.reset();
_stats.reset();
@@ -522,10 +531,17 @@ bool AudioClient::switchOutputToAudioDevice(const QString& outputDeviceName) {
void AudioClient::initGverb() {
// Initialize a new gverb instance
+ if (_gverbLocal) {
+ gverb_free(_gverbLocal);
+ }
_gverbLocal = gverb_new(_outputFormat.sampleRate(), _reverbOptions->getMaxRoomSize(), _reverbOptions->getRoomSize(),
_reverbOptions->getReverbTime(), _reverbOptions->getDamping(), _reverbOptions->getSpread(),
_reverbOptions->getInputBandwidth(), _reverbOptions->getEarlyLevel(),
_reverbOptions->getTailLevel());
+
+ if (_gverb) {
+ gverb_free(_gverb);
+ }
_gverb = gverb_new(_outputFormat.sampleRate(), _reverbOptions->getMaxRoomSize(), _reverbOptions->getRoomSize(),
_reverbOptions->getReverbTime(), _reverbOptions->getDamping(), _reverbOptions->getSpread(),
_reverbOptions->getInputBandwidth(), _reverbOptions->getEarlyLevel(),
diff --git a/libraries/audio-client/src/AudioClient.h b/libraries/audio-client/src/AudioClient.h
index ed487e4ea1..e55a116e06 100644
--- a/libraries/audio-client/src/AudioClient.h
+++ b/libraries/audio-client/src/AudioClient.h
@@ -186,6 +186,7 @@ signals:
protected:
AudioClient();
+ ~AudioClient();
private:
void outputFormatChanged();
diff --git a/libraries/fbx/src/FBXReader.cpp b/libraries/fbx/src/FBXReader.cpp
index 1da0a7e09f..043bd43115 100644
--- a/libraries/fbx/src/FBXReader.cpp
+++ b/libraries/fbx/src/FBXReader.cpp
@@ -1166,7 +1166,6 @@ int matchTextureUVSetToAttributeChannel(const QString& texUVSetName, const QHash
FBXLight extractLight(const FBXNode& object) {
FBXLight light;
- int unkwnon = 0;
foreach (const FBXNode& subobject, object.children) {
QString childname = QString(subobject.name);
if (subobject.name == "Properties70") {
diff --git a/libraries/gpu/src/gpu/Batch.h b/libraries/gpu/src/gpu/Batch.h
index 64b94344c2..0657eacd6e 100644
--- a/libraries/gpu/src/gpu/Batch.h
+++ b/libraries/gpu/src/gpu/Batch.h
@@ -129,17 +129,7 @@ public:
void _glUniform1f(GLint location, GLfloat v0);
void _glUniform2f(GLint location, GLfloat v0, GLfloat v1);
void _glUniform4fv(GLint location, GLsizei count, const GLfloat* value);
- void _glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-
- void _glMatrixMode(GLenum mode);
- void _glPushMatrix();
- void _glPopMatrix();
- void _glMultMatrixf(const GLfloat *m);
- void _glLoadMatrixf(const GLfloat *m);
- void _glLoadIdentity(void);
- void _glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
- void _glScalef(GLfloat x, GLfloat y, GLfloat z);
- void _glTranslatef(GLfloat x, GLfloat y, GLfloat z);
+ void _glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
void _glDrawArrays(GLenum mode, GLint first, GLsizei count);
void _glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
@@ -201,16 +191,6 @@ public:
COMMAND_glUniform4fv,
COMMAND_glUniformMatrix4fv,
- COMMAND_glMatrixMode,
- COMMAND_glPushMatrix,
- COMMAND_glPopMatrix,
- COMMAND_glMultMatrixf,
- COMMAND_glLoadMatrixf,
- COMMAND_glLoadIdentity,
- COMMAND_glRotatef,
- COMMAND_glScalef,
- COMMAND_glTranslatef,
-
COMMAND_glDrawArrays,
COMMAND_glDrawRangeElements,
diff --git a/libraries/gpu/src/gpu/GLBackend.cpp b/libraries/gpu/src/gpu/GLBackend.cpp
index 519b20eca7..34ca47f300 100644
--- a/libraries/gpu/src/gpu/GLBackend.cpp
+++ b/libraries/gpu/src/gpu/GLBackend.cpp
@@ -54,16 +54,6 @@ GLBackend::CommandCall GLBackend::_commandCalls[Batch::NUM_COMMANDS] =
(&::gpu::GLBackend::do_glUniform4fv),
(&::gpu::GLBackend::do_glUniformMatrix4fv),
- (&::gpu::GLBackend::do_glMatrixMode),
- (&::gpu::GLBackend::do_glPushMatrix),
- (&::gpu::GLBackend::do_glPopMatrix),
- (&::gpu::GLBackend::do_glMultMatrixf),
- (&::gpu::GLBackend::do_glLoadMatrixf),
- (&::gpu::GLBackend::do_glLoadIdentity),
- (&::gpu::GLBackend::do_glRotatef),
- (&::gpu::GLBackend::do_glScalef),
- (&::gpu::GLBackend::do_glTranslatef),
-
(&::gpu::GLBackend::do_glDrawArrays),
(&::gpu::GLBackend::do_glDrawRangeElements),
@@ -747,127 +737,6 @@ void GLBackend::do_glUniformMatrix4fv(Batch& batch, uint32 paramOffset) {
CHECK_GL_ERROR();
}
-void Batch::_glMatrixMode(GLenum mode) {
- ADD_COMMAND_GL(glMatrixMode);
-
- _params.push_back(mode);
-
- DO_IT_NOW(_glMatrixMode, 1);
-}
-void GLBackend::do_glMatrixMode(Batch& batch, uint32 paramOffset) {
- glMatrixMode(batch._params[paramOffset]._uint);
- CHECK_GL_ERROR();
-}
-
-void Batch::_glPushMatrix() {
- ADD_COMMAND_GL(glPushMatrix);
-
- DO_IT_NOW(_glPushMatrix, 0);
-}
-void GLBackend::do_glPushMatrix(Batch& batch, uint32 paramOffset) {
- glPushMatrix();
- CHECK_GL_ERROR();
-}
-
-void Batch::_glPopMatrix() {
- ADD_COMMAND_GL(glPopMatrix);
-
- DO_IT_NOW(_glPopMatrix, 0);
-}
-void GLBackend::do_glPopMatrix(Batch& batch, uint32 paramOffset) {
- glPopMatrix();
- CHECK_GL_ERROR();
-}
-
-void Batch::_glMultMatrixf(const GLfloat *m) {
- ADD_COMMAND_GL(glMultMatrixf);
-
- const int MATRIX4_SIZE = 16 * sizeof(float);
- _params.push_back(cacheData(MATRIX4_SIZE, m));
-
- DO_IT_NOW(_glMultMatrixf, 1);
-}
-void GLBackend::do_glMultMatrixf(Batch& batch, uint32 paramOffset) {
- glMultMatrixf((const GLfloat*)batch.editData(batch._params[paramOffset]._uint));
- CHECK_GL_ERROR();
-}
-
-void Batch::_glLoadMatrixf(const GLfloat *m) {
- ADD_COMMAND_GL(glLoadMatrixf);
-
- const int MATRIX4_SIZE = 16 * sizeof(float);
- _params.push_back(cacheData(MATRIX4_SIZE, m));
-
- DO_IT_NOW(_glLoadMatrixf, 1);
-}
-void GLBackend::do_glLoadMatrixf(Batch& batch, uint32 paramOffset) {
- glLoadMatrixf((const GLfloat*)batch.editData(batch._params[paramOffset]._uint));
- CHECK_GL_ERROR();
-}
-
-void Batch::_glLoadIdentity(void) {
- ADD_COMMAND_GL(glLoadIdentity);
-
- DO_IT_NOW(_glLoadIdentity, 0);
-}
-void GLBackend::do_glLoadIdentity(Batch& batch, uint32 paramOffset) {
- glLoadIdentity();
- CHECK_GL_ERROR();
-}
-
-void Batch::_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) {
- ADD_COMMAND_GL(glRotatef);
-
- _params.push_back(z);
- _params.push_back(y);
- _params.push_back(x);
- _params.push_back(angle);
-
- DO_IT_NOW(_glRotatef, 4);
-}
-void GLBackend::do_glRotatef(Batch& batch, uint32 paramOffset) {
- glRotatef(
- batch._params[paramOffset + 3]._float,
- batch._params[paramOffset + 2]._float,
- batch._params[paramOffset + 1]._float,
- batch._params[paramOffset + 0]._float);
- CHECK_GL_ERROR();
-}
-
-void Batch::_glScalef(GLfloat x, GLfloat y, GLfloat z) {
- ADD_COMMAND_GL(glScalef);
-
- _params.push_back(z);
- _params.push_back(y);
- _params.push_back(x);
-
- DO_IT_NOW(_glScalef, 3);
-}
-void GLBackend::do_glScalef(Batch& batch, uint32 paramOffset) {
- glScalef(
- batch._params[paramOffset + 2]._float,
- batch._params[paramOffset + 1]._float,
- batch._params[paramOffset + 0]._float);
- CHECK_GL_ERROR();
-}
-
-void Batch::_glTranslatef(GLfloat x, GLfloat y, GLfloat z) {
- ADD_COMMAND_GL(glTranslatef);
-
- _params.push_back(z);
- _params.push_back(y);
- _params.push_back(x);
-
- DO_IT_NOW(_glTranslatef, 3);
-}
-void GLBackend::do_glTranslatef(Batch& batch, uint32 paramOffset) {
- glTranslatef(
- batch._params[paramOffset + 2]._float,
- batch._params[paramOffset + 1]._float,
- batch._params[paramOffset + 0]._float);
- CHECK_GL_ERROR();
-}
-
void Batch::_glDrawArrays(GLenum mode, GLint first, GLsizei count) {
ADD_COMMAND_GL(glDrawArrays);
diff --git a/libraries/gpu/src/gpu/GLBackend.h b/libraries/gpu/src/gpu/GLBackend.h
index 1731701022..e3450ae71a 100644
--- a/libraries/gpu/src/gpu/GLBackend.h
+++ b/libraries/gpu/src/gpu/GLBackend.h
@@ -175,17 +175,7 @@ protected:
void do_glUniform1f(Batch& batch, uint32 paramOffset);
void do_glUniform2f(Batch& batch, uint32 paramOffset);
void do_glUniform4fv(Batch& batch, uint32 paramOffset);
- void do_glUniformMatrix4fv(Batch& batch, uint32 paramOffset);
-
- void do_glMatrixMode(Batch& batch, uint32 paramOffset);
- void do_glPushMatrix(Batch& batch, uint32 paramOffset);
- void do_glPopMatrix(Batch& batch, uint32 paramOffset);
- void do_glMultMatrixf(Batch& batch, uint32 paramOffset);
- void do_glLoadMatrixf(Batch& batch, uint32 paramOffset);
- void do_glLoadIdentity(Batch& batch, uint32 paramOffset);
- void do_glRotatef(Batch& batch, uint32 paramOffset);
- void do_glScalef(Batch& batch, uint32 paramOffset);
- void do_glTranslatef(Batch& batch, uint32 paramOffset);
+ void do_glUniformMatrix4fv(Batch& batch, uint32 paramOffset);
void do_glDrawArrays(Batch& batch, uint32 paramOffset);
void do_glDrawRangeElements(Batch& batch, uint32 paramOffset);
diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp
index 5fa6d43b9a..13bb2b1ad8 100644
--- a/libraries/networking/src/LimitedNodeList.cpp
+++ b/libraries/networking/src/LimitedNodeList.cpp
@@ -36,7 +36,7 @@ const char SOLO_NODE_TYPES[2] = {
NodeType::AudioMixer
};
-const QUrl DEFAULT_NODE_AUTH_URL = QUrl("https://data.highfidelity.io");
+const QUrl DEFAULT_NODE_AUTH_URL = QUrl("https://metaverse.highfidelity.io");
LimitedNodeList::LimitedNodeList(unsigned short socketListenPort, unsigned short dtlsListenPort) :
_sessionUUID(),
diff --git a/libraries/render-utils/src/GeometryCache.cpp b/libraries/render-utils/src/GeometryCache.cpp
index abf57843b7..2d9791409f 100644
--- a/libraries/render-utils/src/GeometryCache.cpp
+++ b/libraries/render-utils/src/GeometryCache.cpp
@@ -999,12 +999,12 @@ void GeometryCache::renderBevelCornersRect(int x, int y, int width, int height,
void GeometryCache::renderQuad(const glm::vec2& minCorner, const glm::vec2& maxCorner, const glm::vec4& color, int id) {
bool registered = (id != UNKNOWN_ID);
- Vec2Pair key(minCorner, maxCorner);
+ Vec4Pair key(glm::vec4(minCorner.x, minCorner.y, maxCorner.x, maxCorner.y), color);
BatchItemDetails& details = registered ? _registeredQuad2D[id] : _quad2D[key];
// if this is a registered quad, and we have buffers, then check to see if the geometry changed and rebuild if needed
if (registered && details.isCreated) {
- Vec2Pair& lastKey = _lastRegisteredQuad2D[id];
+ Vec4Pair & lastKey = _lastRegisteredQuad2D[id];
if (lastKey != key) {
details.clear();
_lastRegisteredQuad2D[id] = key;
@@ -1082,12 +1082,14 @@ void GeometryCache::renderQuad(const glm::vec2& minCorner, const glm::vec2& maxC
const glm::vec4& color, int id) {
bool registered = (id != UNKNOWN_ID);
- Vec2PairPair key(Vec2Pair(minCorner, maxCorner), Vec2Pair(texCoordMinCorner, texCoordMaxCorner));
+ Vec4PairVec4 key(Vec4Pair(glm::vec4(minCorner.x, minCorner.y, maxCorner.x, maxCorner.y),
+ glm::vec4(texCoordMinCorner.x, texCoordMinCorner.y, texCoordMaxCorner.x, texCoordMaxCorner.y)),
+ color);
BatchItemDetails& details = registered ? _registeredQuad2DTextures[id] : _quad2DTextures[key];
// if this is a registered quad, and we have buffers, then check to see if the geometry changed and rebuild if needed
if (registered && details.isCreated) {
- Vec2PairPair& lastKey = _lastRegisteredQuad2DTexture[id];
+ Vec4PairVec4& lastKey = _lastRegisteredQuad2DTexture[id];
if (lastKey != key) {
details.clear();
_lastRegisteredQuad2DTexture[id] = key;
@@ -1172,12 +1174,12 @@ void GeometryCache::renderQuad(const glm::vec2& minCorner, const glm::vec2& maxC
void GeometryCache::renderQuad(const glm::vec3& minCorner, const glm::vec3& maxCorner, const glm::vec4& color, int id) {
bool registered = (id != UNKNOWN_ID);
- Vec3Pair key(minCorner, maxCorner);
+ Vec3PairVec4 key(Vec3Pair(minCorner, maxCorner), color);
BatchItemDetails& details = registered ? _registeredQuad3D[id] : _quad3D[key];
// if this is a registered quad, and we have buffers, then check to see if the geometry changed and rebuild if needed
if (registered && details.isCreated) {
- Vec3Pair& lastKey = _lastRegisteredQuad3D[id];
+ Vec3PairVec4& lastKey = _lastRegisteredQuad3D[id];
if (lastKey != key) {
details.clear();
_lastRegisteredQuad3D[id] = key;
@@ -1753,15 +1755,18 @@ bool NetworkGeometry::isLoadedWithTextures() const {
if (!isLoaded()) {
return false;
}
- foreach (const NetworkMesh& mesh, _meshes) {
- foreach (const NetworkMeshPart& part, mesh.parts) {
- if ((part.diffuseTexture && !part.diffuseTexture->isLoaded()) ||
- (part.normalTexture && !part.normalTexture->isLoaded()) ||
- (part.specularTexture && !part.specularTexture->isLoaded()) ||
- (part.emissiveTexture && !part.emissiveTexture->isLoaded())) {
- return false;
+ if (!_isLoadedWithTextures) {
+ foreach (const NetworkMesh& mesh, _meshes) {
+ foreach (const NetworkMeshPart& part, mesh.parts) {
+ if ((part.diffuseTexture && !part.diffuseTexture->isLoaded()) ||
+ (part.normalTexture && !part.normalTexture->isLoaded()) ||
+ (part.specularTexture && !part.specularTexture->isLoaded()) ||
+ (part.emissiveTexture && !part.emissiveTexture->isLoaded())) {
+ return false;
+ }
}
}
+ _isLoadedWithTextures = true;
}
return true;
}
@@ -1938,6 +1943,7 @@ void NetworkGeometry::setTextureWithNameToURL(const QString& name, const QUrl& u
// we don't have meshes downloaded yet, so hold this texture as pending
_pendingTextureChanges.insert(name, url);
}
+ _isLoadedWithTextures = false;
}
QStringList NetworkGeometry::getTextureNames() const {
diff --git a/libraries/render-utils/src/GeometryCache.h b/libraries/render-utils/src/GeometryCache.h
index 300e68aadd..864c5ff24c 100644
--- a/libraries/render-utils/src/GeometryCache.h
+++ b/libraries/render-utils/src/GeometryCache.h
@@ -41,7 +41,9 @@ typedef QPair Vec2PairPair;
typedef QPair Vec3Pair;
typedef QPair Vec4Pair;
typedef QPair Vec3PairVec2Pair;
+typedef QPair Vec3PairVec4;
typedef QPair Vec3PairVec4Pair;
+typedef QPair Vec4PairVec4;
typedef QPair Vec4PairVec4Pair;
inline uint qHash(const glm::vec2& v, uint seed) {
@@ -87,6 +89,14 @@ inline uint qHash(const Vec3PairVec2Pair& v, uint seed) {
5077 * v.second.second.x + 5081 * v.second.second.y, seed);
}
+inline uint qHash(const Vec3PairVec4& v, uint seed) {
+ // multiply by prime numbers greater than the possible size
+ return qHash(v.first.first.x + 5009 * v.first.first.y + 5011 * v.first.first.z +
+ 5021 * v.first.second.x + 5023 * v.first.second.y + 5039 * v.first.second.z +
+ 5051 * v.second.x + 5059 * v.second.y + 5077 * v.second.z + 5081 * v.second.w, seed);
+}
+
+
inline uint qHash(const Vec3PairVec4Pair& v, uint seed) {
// multiply by prime numbers greater than the possible size
return qHash(v.first.first.x + 5009 * v.first.first.y + 5011 * v.first.first.z
@@ -96,6 +106,14 @@ inline uint qHash(const Vec3PairVec4Pair& v, uint seed) {
seed);
}
+inline uint qHash(const Vec4PairVec4& v, uint seed) {
+ // multiply by prime numbers greater than the possible size
+ return qHash(v.first.first.x + 5009 * v.first.first.y + 5011 * v.first.first.z + 5021 * v.first.first.w
+ + 5023 * v.first.second.x + 5039 * v.first.second.y + 5051 * v.first.second.z + 5059 * v.first.second.w
+ + 5077 * v.second.x + 5081 * v.second.y + 5087 * v.second.z + 5099 * v.second.w,
+ seed);
+}
+
inline uint qHash(const Vec4PairVec4Pair& v, uint seed) {
// multiply by prime numbers greater than the possible size
return qHash(v.first.first.x + 5009 * v.first.first.y + 5011 * v.first.first.z + 5021 * v.first.first.w
@@ -236,16 +254,16 @@ private:
QHash _quad3DTextures;
QHash _registeredQuad3DTextures;
- QHash _lastRegisteredQuad2DTexture;
- QHash _quad2DTextures;
+ QHash _lastRegisteredQuad2DTexture;
+ QHash _quad2DTextures;
QHash _registeredQuad2DTextures;
- QHash _lastRegisteredQuad3D;
- QHash _quad3D;
+ QHash _lastRegisteredQuad3D;
+ QHash _quad3D;
QHash _registeredQuad3D;
- QHash _lastRegisteredQuad2D;
- QHash _quad2D;
+ QHash _lastRegisteredQuad2D;
+ QHash _quad2D;
QHash _registeredQuad2D;
QHash _lastRegisteredBevelRects;
@@ -339,6 +357,8 @@ private:
QHash, QVector > _jointMappings;
QHash _pendingTextureChanges;
+
+ mutable bool _isLoadedWithTextures = false;
};
/// The state associated with a single mesh part.
diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp
index 79f938e7f6..f166aecae9 100644
--- a/libraries/render-utils/src/Model.cpp
+++ b/libraries/render-utils/src/Model.cpp
@@ -686,7 +686,6 @@ bool Model::renderCore(float alpha, RenderMode mode, RenderArgs* args) {
// Let's introduce a gpu::Batch to capture all the calls to the graphics api
_renderBatch.clear();
gpu::Batch& batch = _renderBatch;
- GLBATCH(glPushMatrix)();
// Capture the view matrix once for the rendering of this model
if (_transforms.empty()) {
@@ -835,12 +834,21 @@ bool Model::renderCore(float alpha, RenderMode mode, RenderArgs* args) {
GLBATCH(glBindBuffer)(GL_ELEMENT_ARRAY_BUFFER, 0);
GLBATCH(glBindTexture)(GL_TEXTURE_2D, 0);
- GLBATCH(glPopMatrix)();
-
// Render!
{
PROFILE_RANGE("render Batch");
+
+ #if defined(ANDROID)
+ #else
+ glPushMatrix();
+ #endif
+
::gpu::GLBackend::renderBatch(batch);
+
+ #if defined(ANDROID)
+ #else
+ glPopMatrix();
+ #endif
}
// restore all the default material settings
@@ -1638,7 +1646,6 @@ void Model::startScene(RenderArgs::RenderSide renderSide) {
}
void Model::setupBatchTransform(gpu::Batch& batch) {
- GLBATCH(glPushMatrix)();
// Capture the view matrix once for the rendering of this model
if (_transforms.empty()) {
@@ -1811,7 +1818,17 @@ void Model::endScene(RenderMode mode, RenderArgs* args) {
// Render!
{
PROFILE_RANGE("render Batch");
+ #if defined(ANDROID)
+ #else
+ glPushMatrix();
+ #endif
+
::gpu::GLBackend::renderBatch(_sceneRenderBatch);
+
+ #if defined(ANDROID)
+ #else
+ glPopMatrix();
+ #endif
}
// restore all the default material settings
@@ -2271,7 +2288,6 @@ int Model::renderMeshesForModelsInScene(gpu::Batch& batch, RenderMode mode, bool
}
model->setupBatchTransform(batch);
meshPartsRendered += model->renderMeshesFromList(list, batch, mode, translucent, alphaThreshold, args, locations, skinLocations);
- GLBATCH(glPopMatrix)();
}
}
}
@@ -2371,8 +2387,6 @@ int Model::renderMeshesFromList(QVector& list, gpu::Batch& batch, RenderMod
}
}
- // GLBATCH(glPushMatrix)();
-
const MeshState& state = _meshStates.at(i);
if (state.clusterMatrices.size() > 1) {
GLBATCH(glUniformMatrix4fv)(skinLocations->clusterMatrices, state.clusterMatrices.size(), false,
@@ -2437,11 +2451,9 @@ int Model::renderMeshesFromList(QVector& list, gpu::Batch& batch, RenderMod
}
static bool showDiffuse = true;
if (showDiffuse && diffuseMap) {
- // GLBATCH(glBindTexture)(GL_TEXTURE_2D, diffuseMap->getID());
batch.setUniformTexture(0, diffuseMap->getGPUTexture());
} else {
- // GLBATCH(glBindTexture)(GL_TEXTURE_2D, textureCache->getWhiteTextureID());
batch.setUniformTexture(0, textureCache->getWhiteTexture());
}
diff --git a/libraries/script-engine/src/XMLHttpRequestClass.cpp b/libraries/script-engine/src/XMLHttpRequestClass.cpp
index cd2e2f3732..116548db61 100644
--- a/libraries/script-engine/src/XMLHttpRequestClass.cpp
+++ b/libraries/script-engine/src/XMLHttpRequestClass.cpp
@@ -207,7 +207,7 @@ void XMLHttpRequestClass::open(const QString& method, const QString& url, bool a
notImplemented();
}
} else {
- if (url.toLower().left(33) == "https://data.highfidelity.io/api/") {
+ if (url.toLower().left(33) == "https://metaverse.highfidelity.io/api/") {
AccountManager& accountManager = AccountManager::getInstance();
if (accountManager.hasValidAccessToken()) {