From c7639adb1596131c4a5d75b4336aca7badd6c776 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Sat, 19 Jan 2019 14:49:31 +0100 Subject: [PATCH 1/3] Remove warnings in Clang --- ext/ghoul | 2 +- modules/gaia/rendering/octreeculler.cpp | 4 --- modules/imgui/src/gui.cpp | 8 ----- modules/server/servermodule.cpp | 1 - modules/server/src/connection.cpp | 2 +- modules/server/src/serverinterface.cpp | 10 +++--- modules/space/rendering/renderablestars.cpp | 32 +++++++++++++------ modules/webbrowser/include/browserinstance.h | 9 ++++++ modules/webbrowser/include/eventhandler.h | 9 ++++++ .../webbrowser/include/screenspacebrowser.h | 9 ++++++ .../webbrowser/include/webkeyboardhandler.h | 10 ++++++ modules/webgui/webguimodule.cpp | 2 +- 12 files changed, 68 insertions(+), 30 deletions(-) diff --git a/ext/ghoul b/ext/ghoul index 5e70561a05..f819f18803 160000 --- a/ext/ghoul +++ b/ext/ghoul @@ -1 +1 @@ -Subproject commit 5e70561a05142c6bbb2484399b6816f61ce01bf7 +Subproject commit f819f18803cdfd479fe80e18816c0fe800b64910 diff --git a/modules/gaia/rendering/octreeculler.cpp b/modules/gaia/rendering/octreeculler.cpp index c3a28004f9..04df883c77 100644 --- a/modules/gaia/rendering/octreeculler.cpp +++ b/modules/gaia/rendering/octreeculler.cpp @@ -27,10 +27,6 @@ #include #include -namespace { - constexpr const char* _loggerCat = "OctreeCuller"; -} // namespace - namespace openspace { namespace { diff --git a/modules/imgui/src/gui.cpp b/modules/imgui/src/gui.cpp index a77a6b41cf..5070129ff7 100644 --- a/modules/imgui/src/gui.cpp +++ b/modules/imgui/src/gui.cpp @@ -95,14 +95,6 @@ namespace { "Tooltip Delay (in s)", "This value determines the delay in seconds after which the tooltip is shown." }; - - constexpr openspace::properties::Property::PropertyInfo HiddenInfo = { - "IsHidden", - "Is Hidden", - "If this value is true, all GUI items will not be rendered, regardless of their " - "status" - }; - } // namespace namespace openspace::gui { diff --git a/modules/server/servermodule.cpp b/modules/server/servermodule.cpp index 89d4cfa922..33a805b591 100644 --- a/modules/server/servermodule.cpp +++ b/modules/server/servermodule.cpp @@ -37,7 +37,6 @@ #include namespace { - constexpr const char* _loggerCat = "ServerModule"; constexpr const char* KeyInterfaces = "Interfaces"; } // namespace diff --git a/modules/server/src/connection.cpp b/modules/server/src/connection.cpp index 728afab4dd..9fdc542b78 100644 --- a/modules/server/src/connection.cpp +++ b/modules/server/src/connection.cpp @@ -76,7 +76,7 @@ Connection::Connection(std::unique_ptr s, _topicFactory.registerClass( AuthenticationTopicKey, - [password](bool useDictionary, const ghoul::Dictionary& dict) { + [password](bool, const ghoul::Dictionary&) { return new AuthorizationTopic(password); } ); diff --git a/modules/server/src/serverinterface.cpp b/modules/server/src/serverinterface.cpp index cbc2cadfc4..49b62d55b9 100644 --- a/modules/server/src/serverinterface.cpp +++ b/modules/server/src/serverinterface.cpp @@ -89,22 +89,22 @@ namespace { namespace openspace { std::unique_ptr ServerInterface::createFromDictionary( - const ghoul::Dictionary& config) + const ghoul::Dictionary& config) { // TODO: Use documentation to verify dictionary std::unique_ptr si = std::make_unique(config); - return std::move(si); + return si; } ServerInterface::ServerInterface(const ghoul::Dictionary& config) : properties::PropertyOwner({ "", "", "" }) , _type(TypeInfo) , _port(PortInfo, 0) - , _defaultAccess(DefaultAccessInfo) + , _enabled(EnabledInfo) , _allowAddresses(AllowAddressesInfo) , _requirePasswordAddresses(RequirePasswordAddressesInfo) , _denyAddresses(DenyAddressesInfo) - , _enabled(EnabledInfo) + , _defaultAccess(DefaultAccessInfo) , _password(PasswordInfo) { @@ -117,7 +117,7 @@ ServerInterface::ServerInterface(const ghoul::Dictionary& config) const std::string identifier = config.value(KeyIdentifier); - std::function readList = + auto readList = [config](const std::string& key, properties::StringListProperty& list) { if (config.hasValue(key)) { const ghoul::Dictionary& dict = config.value(key); diff --git a/modules/space/rendering/renderablestars.cpp b/modules/space/rendering/renderablestars.cpp index 2d0c9787d4..09060984cb 100644 --- a/modules/space/rendering/renderablestars.cpp +++ b/modules/space/rendering/renderablestars.cpp @@ -41,6 +41,8 @@ #include #include +#include + namespace { constexpr const char* _loggerCat = "RenderableStars"; @@ -56,27 +58,39 @@ namespace { constexpr int8_t CurrentCacheVersion = 2; - struct CommonDataLayout { + struct ColorVBOLayout { + std::array position; // (x,y,z,e) + float value; + float luminance; + float absoluteMagnitude; + }; + + struct VelocityVBOLayout { std::array position; // (x,y,z,e) float value; float luminance; float absoluteMagnitude; - }; - - struct ColorVBOLayout : public CommonDataLayout {}; - - struct VelocityVBOLayout : public CommonDataLayout { float vx; // v_x float vy; // v_y float vz; // v_z }; - struct SpeedVBOLayout : public CommonDataLayout { + struct SpeedVBOLayout { + std::array position; // (x,y,z,e) + float value; + float luminance; + float absoluteMagnitude; + float speed; }; - struct OtherDataLayout : public CommonDataLayout {}; + struct OtherDataLayout { + std::array position; // (x,y,z,e) + float value; + float luminance; + float absoluteMagnitude; + }; constexpr openspace::properties::Property::PropertyInfo SpeckFileInfo = { "SpeckFile", @@ -407,7 +421,7 @@ void RenderableStars::initializeGL() { LERROR(fmt::format("Could not find other data column {}", _queuedOtherData)); } else { - _otherDataOption = std::distance(_dataNames.begin(), it); + _otherDataOption = static_cast(std::distance(_dataNames.begin(), it)); _queuedOtherData.clear(); } } diff --git a/modules/webbrowser/include/browserinstance.h b/modules/webbrowser/include/browserinstance.h index ab6df6a94d..aa5261d3fd 100644 --- a/modules/webbrowser/include/browserinstance.h +++ b/modules/webbrowser/include/browserinstance.h @@ -30,8 +30,17 @@ #pragma warning (disable : 4100) #endif // _MSC_VER +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-parameter" +#endif // __clang__ + #include +#ifdef __clang__ +#pragma clang diagnostic pop +#endif // __clang__ + #ifdef _MSC_VER #pragma warning (pop) #endif // _MSC_VER diff --git a/modules/webbrowser/include/eventhandler.h b/modules/webbrowser/include/eventhandler.h index 16a6ba046c..eb7e0725f6 100644 --- a/modules/webbrowser/include/eventhandler.h +++ b/modules/webbrowser/include/eventhandler.h @@ -35,8 +35,17 @@ #pragma warning (disable : 4100) #endif // _MSC_VER +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-parameter" +#endif // __clang__ + #include +#ifdef __clang__ +#pragma clang diagnostic pop +#endif // __clang__ + #ifdef _MSC_VER #pragma warning (pop) #endif // _MSC_VER diff --git a/modules/webbrowser/include/screenspacebrowser.h b/modules/webbrowser/include/screenspacebrowser.h index 88010829ba..be248483b1 100644 --- a/modules/webbrowser/include/screenspacebrowser.h +++ b/modules/webbrowser/include/screenspacebrowser.h @@ -36,8 +36,17 @@ #pragma warning (disable : 4100) #endif // _MSC_VER +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-parameter" +#endif // __clang__ + #include +#ifdef __clang__ +#pragma clang diagnostic pop +#endif // __clang__ + #ifdef _MSC_VER #pragma warning (pop) #endif // _MSC_VER diff --git a/modules/webbrowser/include/webkeyboardhandler.h b/modules/webbrowser/include/webkeyboardhandler.h index b723be63bd..2e609145a1 100644 --- a/modules/webbrowser/include/webkeyboardhandler.h +++ b/modules/webbrowser/include/webkeyboardhandler.h @@ -30,8 +30,18 @@ #pragma warning (disable : 4100) #endif // _MSC_VER + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-parameter" +#endif // __clang__ + #include +#ifdef __clang__ +#pragma clang diagnostic pop +#endif // __clang__ + #ifdef _MSC_VER #pragma warning (pop) #endif // _MSC_VER diff --git a/modules/webgui/webguimodule.cpp b/modules/webgui/webguimodule.cpp index ac5a1bcabf..a4444272c2 100644 --- a/modules/webgui/webguimodule.cpp +++ b/modules/webgui/webguimodule.cpp @@ -85,8 +85,8 @@ WebGuiModule::WebGuiModule() , _enabled(ServerProcessEnabledInfo, false) , _entryPoint(ServerProcessEntryPointInfo) , _webDirectory(WebDirectoryInfo) - , _address(AddressInfo, DefaultAddress) , _port(PortInfo, DefaultPort) + , _address(AddressInfo, DefaultAddress) , _webSocketInterface(WebSocketInterfaceInfo, "") { addProperty(_enabled); From c3cc53f08df54ba20bc8c828e30f56777d829bd6 Mon Sep 17 00:00:00 2001 From: Emil Axelsson Date: Sat, 19 Jan 2019 19:16:56 -0500 Subject: [PATCH 2/3] Make it possible to rescale web gui --- modules/cefwebgui/cefwebguimodule.cpp | 22 +++++++++++++++++++- modules/cefwebgui/cefwebguimodule.h | 2 ++ modules/webbrowser/include/browserinstance.h | 8 +++++++ modules/webbrowser/src/browserinstance.cpp | 10 +++++++++ openspace.cfg | 1 + 5 files changed, 42 insertions(+), 1 deletion(-) diff --git a/modules/cefwebgui/cefwebguimodule.cpp b/modules/cefwebgui/cefwebguimodule.cpp index 6d649a95cd..74478683e2 100644 --- a/modules/cefwebgui/cefwebguimodule.cpp +++ b/modules/cefwebgui/cefwebguimodule.cpp @@ -57,6 +57,12 @@ namespace { "GUI URL", "The URL of the webpage that is used to load the WebGUI from." }; + + constexpr openspace::properties::Property::PropertyInfo GuiScaleInfo = { + "GuiScale", + "Gui Scale", + "GUI scale multiplier." + }; } // namespace namespace openspace { @@ -66,10 +72,12 @@ CefWebGuiModule::CefWebGuiModule() , _enabled(EnabledInfo, true) , _visible(VisibleInfo, true) , _url(GuiUrlInfo, "") + , _guiScale(GuiScaleInfo, 1.0, 0.1, 3.0) { addProperty(_enabled); addProperty(_visible); addProperty(_url); + addProperty(_guiScale); } void CefWebGuiModule::startOrStopGui() { @@ -95,6 +103,9 @@ void CefWebGuiModule::startOrStopGui() { if (_visible) { webBrowserModule->attachEventHandler(_instance.get()); } + + _instance->setZoom(2.0); + webBrowserModule->addBrowser(_instance.get()); } else if (_instance) { _instance->close(true); @@ -124,6 +135,12 @@ void CefWebGuiModule::internalInitialize(const ghoul::Dictionary& configuration) } }); + _guiScale.onChange([this]() { + if (_instance) { + _instance->setZoom(_guiScale); + } + }); + _visible.onChange([this, webBrowserModule]() { if (_visible && _instance) { webBrowserModule->attachEventHandler(_instance.get()); @@ -132,7 +149,6 @@ void CefWebGuiModule::internalInitialize(const ghoul::Dictionary& configuration) } }); - if (configuration.hasValue(GuiUrlInfo.identifier)) { _url = configuration.value(GuiUrlInfo.identifier); } else { @@ -141,6 +157,10 @@ void CefWebGuiModule::internalInitialize(const ghoul::Dictionary& configuration) std::to_string(webGuiModule->port()) + "/#/onscreen"; } + if (configuration.hasValue(GuiScaleInfo.identifier)) { + _guiScale = configuration.value(GuiScaleInfo.identifier); + } + _enabled = configuration.hasValue(EnabledInfo.identifier) && configuration.value(EnabledInfo.identifier); diff --git a/modules/cefwebgui/cefwebguimodule.h b/modules/cefwebgui/cefwebguimodule.h index e506248c14..f2960a15bc 100644 --- a/modules/cefwebgui/cefwebguimodule.h +++ b/modules/cefwebgui/cefwebguimodule.h @@ -28,6 +28,7 @@ #include #include +#include #include namespace openspace { @@ -48,6 +49,7 @@ private: properties::BoolProperty _enabled; properties::BoolProperty _visible; properties::StringProperty _url; + properties::FloatProperty _guiScale; std::unique_ptr _instance; }; diff --git a/modules/webbrowser/include/browserinstance.h b/modules/webbrowser/include/browserinstance.h index aa5261d3fd..99457043e9 100644 --- a/modules/webbrowser/include/browserinstance.h +++ b/modules/webbrowser/include/browserinstance.h @@ -99,6 +99,13 @@ public: * \return if this scroll should be blocked or not */ bool sendMouseWheelEvent(const CefMouseEvent& event, const glm::ivec2& delta); + + /** + * Set the browser zoom level. + * 1.0 = default, 2.0 = double, etc. + */ + void setZoom(float ratio); + void reloadBrowser(); const CefRefPtr& getBrowser() const; @@ -111,6 +118,7 @@ private: CefRefPtr _client; CefRefPtr _browser; bool _isInitialized = false; + double _zoomLevel = 1.0; }; } // namespace openspace diff --git a/modules/webbrowser/src/browserinstance.cpp b/modules/webbrowser/src/browserinstance.cpp index 9ecccc4fd1..bc92ce429a 100644 --- a/modules/webbrowser/src/browserinstance.cpp +++ b/modules/webbrowser/src/browserinstance.cpp @@ -97,6 +97,9 @@ void BrowserInstance::reshape(const glm::ivec2& windowSize) { } void BrowserInstance::draw() { + if (_zoomLevel != _browser->GetHost()->GetZoomLevel()) { + _browser->GetHost()->SetZoomLevel(_zoomLevel); + } _renderHandler->draw(); } @@ -142,6 +145,13 @@ bool BrowserInstance::sendMouseWheelEvent(const CefMouseEvent& event, return hasContent(event.x, event.y); } +void BrowserInstance::setZoom(float ratio) { + //Zooming in CEF is non-linear according to this: + //https://www.magpcss.org/ceforum/viewtopic.php?f=6&t=11491 + _zoomLevel = glm::log(static_cast(ratio))/glm::log(1.2); + _browser->GetHost()->SetZoomLevel(_zoomLevel); +} + void BrowserInstance::reloadBrowser() { _browser->Reload(); } diff --git a/openspace.cfg b/openspace.cfg index 5a4e163781..58e0446fca 100644 --- a/openspace.cfg +++ b/openspace.cfg @@ -121,6 +121,7 @@ ModuleConfigurations = { }, CefWebGui = { -- GuiUrl = "http://localhost:4680/#/onscreen/", + -- GuiScale = 2.0, Enabled = true, Visible = true } From 8b396b60288c351775f3a9ee8cb8a126c0361451 Mon Sep 17 00:00:00 2001 From: Emil Axelsson Date: Tue, 22 Jan 2019 10:53:26 +0100 Subject: [PATCH 3/3] Fix gui scale bug --- modules/cefwebgui/cefwebguimodule.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cefwebgui/cefwebguimodule.cpp b/modules/cefwebgui/cefwebguimodule.cpp index 74478683e2..37cd95a7d1 100644 --- a/modules/cefwebgui/cefwebguimodule.cpp +++ b/modules/cefwebgui/cefwebguimodule.cpp @@ -104,7 +104,7 @@ void CefWebGuiModule::startOrStopGui() { webBrowserModule->attachEventHandler(_instance.get()); } - _instance->setZoom(2.0); + _instance->setZoom(_guiScale); webBrowserModule->addBrowser(_instance.get()); } else if (_instance) {