From c463e36ce6978900932b3248a1f264316647c046 Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Thu, 10 Dec 2015 14:02:52 -0800 Subject: [PATCH 1/3] make particle explorer visible --- examples/particle_explorer/particleExplorer.js | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/particle_explorer/particleExplorer.js b/examples/particle_explorer/particleExplorer.js index 16c75e18c6..0cc51c1a39 100644 --- a/examples/particle_explorer/particleExplorer.js +++ b/examples/particle_explorer/particleExplorer.js @@ -128,7 +128,6 @@ function setUp() { blue: 255 }, lifespan: 5.0, - visible: false, locked: false, isEmitting: true, lifetime: 3600 // 1 hour; just in case From 98263f0c0d270c35b4d0cf90afecc7099e985ef2 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Wed, 18 Nov 2015 15:20:29 -0800 Subject: [PATCH 2/3] Moving sdl2 to external plugin --- cmake/externals/sdl2/CMakeLists.txt | 8 ++++ interface/src/Application.cpp | 10 ----- libraries/input-plugins/CMakeLists.txt | 4 +- .../src/input-plugins/InputPlugin.cpp | 2 - plugins/hifiSdl2/CMakeLists.txt | 12 +++++ .../hifiSdl2/src}/Joystick.cpp | 0 .../hifiSdl2/src}/Joystick.h | 0 .../hifiSdl2/src}/SDL2Manager.cpp | 4 +- .../hifiSdl2/src}/SDL2Manager.h | 3 +- plugins/hifiSdl2/src/SDL2Provider.cpp | 44 +++++++++++++++++++ plugins/hifiSdl2/src/plugin.json | 1 + 11 files changed, 69 insertions(+), 19 deletions(-) create mode 100644 plugins/hifiSdl2/CMakeLists.txt rename {libraries/input-plugins/src/input-plugins => plugins/hifiSdl2/src}/Joystick.cpp (100%) rename {libraries/input-plugins/src/input-plugins => plugins/hifiSdl2/src}/Joystick.h (100%) rename {libraries/input-plugins/src/input-plugins => plugins/hifiSdl2/src}/SDL2Manager.cpp (99%) rename {libraries/input-plugins/src/input-plugins => plugins/hifiSdl2/src}/SDL2Manager.h (98%) create mode 100644 plugins/hifiSdl2/src/SDL2Provider.cpp create mode 100644 plugins/hifiSdl2/src/plugin.json diff --git a/cmake/externals/sdl2/CMakeLists.txt b/cmake/externals/sdl2/CMakeLists.txt index ee1d57d2e9..4222cd41f0 100644 --- a/cmake/externals/sdl2/CMakeLists.txt +++ b/cmake/externals/sdl2/CMakeLists.txt @@ -63,7 +63,11 @@ set_target_properties(${EXTERNAL_NAME} PROPERTIES FOLDER "hidden/externals") if (APPLE) + +# NOOP + elseif (WIN32) + ExternalProject_Get_Property(${EXTERNAL_NAME} SOURCE_DIR) set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIR ${SOURCE_DIR}/include CACHE PATH "Location of SDL2 include directory") @@ -75,8 +79,12 @@ elseif (WIN32) set(${EXTERNAL_NAME_UPPER}_DLL_PATH ${SOURCE_DIR}/lib/x86 CACHE PATH "Location of SDL2 DLL") endif() + add_paths_to_fixup_libs(${${EXTERNAL_NAME_UPPER}_DLL_PATH}) + else () + ExternalProject_Get_Property(${EXTERNAL_NAME} INSTALL_DIR) set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIR ${INSTALL_DIR}/include/SDL2 CACHE PATH "Location of SDL2 include directory") set(${EXTERNAL_NAME_UPPER}_LIBRARY_TEMP ${INSTALL_DIR}/lib/libSDL2.so CACHE FILEPATH "Path to SDL2 library") + endif () diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index a79c23712e..a55c4d3617 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -68,7 +68,6 @@ #include #include #include -#include // this should probably be removed #include #include #include @@ -4004,13 +4003,6 @@ void Application::saveScripts() { settings.endArray(); } -QScriptValue joystickToScriptValue(QScriptEngine *engine, Joystick* const &in) { - return engine->newQObject(in); -} - -void joystickFromScriptValue(const QScriptValue &object, Joystick* &out) { - out = qobject_cast(object.toQObject()); -} void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scriptEngine) { // setup the packet senders and jurisdiction listeners of the script engine's scripting interfaces so @@ -4075,8 +4067,6 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri scriptEngine->registerGlobalObject("AvatarManager", DependencyManager::get().data()); - qScriptRegisterMetaType(scriptEngine, joystickToScriptValue, joystickFromScriptValue); - scriptEngine->registerGlobalObject("UndoStack", &_undoStackScriptingInterface); scriptEngine->registerGlobalObject("LODManager", DependencyManager::get().data()); diff --git a/libraries/input-plugins/CMakeLists.txt b/libraries/input-plugins/CMakeLists.txt index 592f1fcc84..b81554511d 100644 --- a/libraries/input-plugins/CMakeLists.txt +++ b/libraries/input-plugins/CMakeLists.txt @@ -1,7 +1,5 @@ set(TARGET_NAME input-plugins) setup_hifi_library() -link_hifi_libraries(shared plugins controllers script-engine) +link_hifi_libraries(shared plugins controllers) GroupSources("src/input-plugins") - -target_sdl2() diff --git a/libraries/input-plugins/src/input-plugins/InputPlugin.cpp b/libraries/input-plugins/src/input-plugins/InputPlugin.cpp index d226797e95..4d59adb602 100644 --- a/libraries/input-plugins/src/input-plugins/InputPlugin.cpp +++ b/libraries/input-plugins/src/input-plugins/InputPlugin.cpp @@ -13,13 +13,11 @@ #include #include "KeyboardMouseDevice.h" -#include "SDL2Manager.h" // TODO migrate to a DLL model where plugins are discovered and loaded at runtime by the PluginManager class InputPluginList getInputPlugins() { InputPlugin* PLUGIN_POOL[] = { new KeyboardMouseDevice(), - new SDL2Manager(), nullptr }; diff --git a/plugins/hifiSdl2/CMakeLists.txt b/plugins/hifiSdl2/CMakeLists.txt new file mode 100644 index 0000000000..2f106aedce --- /dev/null +++ b/plugins/hifiSdl2/CMakeLists.txt @@ -0,0 +1,12 @@ +# +# Created by Bradley Austin Davis on 2015/11/18 +# Copyright 2015 High Fidelity, Inc. +# +# Distributed under the Apache License, Version 2.0. +# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html +# + +set(TARGET_NAME hifiSdl2) +setup_hifi_plugin(Script Qml Widgets) +link_hifi_libraries(shared controllers plugins input-plugins script-engine) +target_sdl2() diff --git a/libraries/input-plugins/src/input-plugins/Joystick.cpp b/plugins/hifiSdl2/src/Joystick.cpp similarity index 100% rename from libraries/input-plugins/src/input-plugins/Joystick.cpp rename to plugins/hifiSdl2/src/Joystick.cpp diff --git a/libraries/input-plugins/src/input-plugins/Joystick.h b/plugins/hifiSdl2/src/Joystick.h similarity index 100% rename from libraries/input-plugins/src/input-plugins/Joystick.h rename to plugins/hifiSdl2/src/Joystick.h diff --git a/libraries/input-plugins/src/input-plugins/SDL2Manager.cpp b/plugins/hifiSdl2/src/SDL2Manager.cpp similarity index 99% rename from libraries/input-plugins/src/input-plugins/SDL2Manager.cpp rename to plugins/hifiSdl2/src/SDL2Manager.cpp index c6f5491a5a..7ca49bbd75 100644 --- a/libraries/input-plugins/src/input-plugins/SDL2Manager.cpp +++ b/plugins/hifiSdl2/src/SDL2Manager.cpp @@ -11,8 +11,6 @@ #include -#include -#include #include #include @@ -163,6 +161,7 @@ void SDL2Manager::pluginUpdate(float deltaTime, bool jointsCaptured) { joystick->handleButtonEvent(event.cbutton); } +#if 0 if (event.cbutton.button == SDL_CONTROLLER_BUTTON_BACK) { // this will either start or stop a global back event QEvent::Type backType = (event.type == SDL_CONTROLLERBUTTONDOWN) @@ -172,6 +171,7 @@ void SDL2Manager::pluginUpdate(float deltaTime, bool jointsCaptured) { qApp->sendEvent(qApp, &backEvent); } +#endif } else if (event.type == SDL_CONTROLLERDEVICEADDED) { SDL_GameController* controller = SDL_GameControllerOpen(event.cdevice.which); diff --git a/libraries/input-plugins/src/input-plugins/SDL2Manager.h b/plugins/hifiSdl2/src/SDL2Manager.h similarity index 98% rename from libraries/input-plugins/src/input-plugins/SDL2Manager.h rename to plugins/hifiSdl2/src/SDL2Manager.h index d6b6de24b3..61e2d37fd5 100644 --- a/libraries/input-plugins/src/input-plugins/SDL2Manager.h +++ b/plugins/hifiSdl2/src/SDL2Manager.h @@ -17,8 +17,7 @@ #endif #include - -#include "InputPlugin.h" +#include #include "Joystick.h" class SDL2Manager : public InputPlugin { diff --git a/plugins/hifiSdl2/src/SDL2Provider.cpp b/plugins/hifiSdl2/src/SDL2Provider.cpp new file mode 100644 index 0000000000..1c387a9886 --- /dev/null +++ b/plugins/hifiSdl2/src/SDL2Provider.cpp @@ -0,0 +1,44 @@ +// +// Created by Bradley Austin Davis on 2015/10/25 +// Copyright 2015 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include + +#include +#include +#include + +#include +#include + +#include "SDL2Manager.h" + +class SDL2Provider : public QObject, public InputProvider { + Q_OBJECT + Q_PLUGIN_METADATA(IID InputProvider_iid FILE "plugin.json") + Q_INTERFACES(InputProvider) + +public: + SDL2Provider(QObject* parent = nullptr) : QObject(parent) {} + virtual ~SDL2Provider() {} + + virtual InputPluginList getInputPlugins() override { + static std::once_flag once; + std::call_once(once, [&] { + InputPluginPointer plugin(new SDL2Manager()); + if (plugin->isSupported()) { + _inputPlugins.push_back(plugin); + } + }); + return _inputPlugins; + } + +private: + InputPluginList _inputPlugins; +}; + +#include "SDL2Provider.moc" diff --git a/plugins/hifiSdl2/src/plugin.json b/plugins/hifiSdl2/src/plugin.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/plugins/hifiSdl2/src/plugin.json @@ -0,0 +1 @@ +{} From 4c8b7aa800772d7f1716cf3d3653ebc1b30d2c17 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Thu, 10 Dec 2015 16:26:16 -0800 Subject: [PATCH 3/3] Fix EntityErase packets not being handled on agents --- assignment-client/src/Agent.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp index d744acc42b..46fa8c8181 100644 --- a/assignment-client/src/Agent.cpp +++ b/assignment-client/src/Agent.cpp @@ -102,8 +102,10 @@ void Agent::handleOctreePacket(QSharedPointer message, SharedNo packetType = message->getType(); } // fall through to piggyback message - if (packetType == PacketType::EntityData || packetType == PacketType::EntityErase) { + if (packetType == PacketType::EntityData) { _entityViewer.processDatagram(*message, senderNode); + } else if (packetType == PacketType::EntityErase) { + _entityViewer.processEraseMessage(*message, senderNode); } }