Skip to content

Commit

Permalink
Merge pull request #12262 from AndreaCatania/pplug
Browse files Browse the repository at this point in the history
Physics server plug
  • Loading branch information
reduz authored Nov 4, 2017
2 parents 25c38c7 + 7a9ca08 commit 7715a26
Show file tree
Hide file tree
Showing 28 changed files with 286 additions and 152 deletions.
40 changes: 39 additions & 1 deletion main/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@
#include "scene/main/scene_tree.h"
#include "servers/arvr_server.h"
#include "servers/audio_server.h"
#include "servers/physics_2d_server.h"
#include "servers/physics_server.h"

#include "io/resource_loader.h"
#include "script_language.h"
Expand Down Expand Up @@ -84,6 +86,8 @@ static bool _start_success = false;
static ScriptDebugger *script_debugger = NULL;
AudioServer *audio_server = NULL;
ARVRServer *arvr_server = NULL;
PhysicsServer *physics_server = NULL;
Physics2DServer *physics_2d_server = NULL;

static MessageQueue *message_queue = NULL;
static Performance *performance = NULL;
Expand Down Expand Up @@ -120,6 +124,35 @@ static int fixed_fps = -1;

static OS::ProcessID allow_focus_steal_pid = 0;

void initialize_physics() {

/// 3D Physics Server
physics_server = PhysicsServerManager::new_server(ProjectSettings::get_singleton()->get(PhysicsServerManager::setting_property_name));
if (!physics_server) {
// Physics server not found, Use the default physics
physics_server = PhysicsServerManager::new_default_server();
}
ERR_FAIL_COND(!physics_server);
physics_server->init();

/// 2D Physics server
physics_2d_server = Physics2DServerManager::new_server(ProjectSettings::get_singleton()->get(Physics2DServerManager::setting_property_name));
if (!physics_2d_server) {
// Physics server not found, Use the default physics
physics_2d_server = Physics2DServerManager::new_default_server();
}
ERR_FAIL_COND(!physics_2d_server);
physics_2d_server->init();
}

void finalize_physics() {
physics_server->finish();
memdelete(physics_server);

physics_2d_server->finish();
memdelete(physics_2d_server);
}

static String unescape_cmdline(const String &p_str) {

return p_str.replace("%20", " ");
Expand Down Expand Up @@ -1072,9 +1105,13 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
OS::get_singleton()->enable_for_stealing_focus(allow_focus_steal_pid);
}

MAIN_PRINT("Main: Load Scripts, Modules, Drivers");
MAIN_PRINT("Main: Load Modules, Physics, Drivers, Scripts");

register_module_types();

initialize_physics();
register_server_singletons();

register_driver_types();

ScriptServer::init_languages();
Expand Down Expand Up @@ -1791,6 +1828,7 @@ void Main::cleanup() {
unregister_server_types();

OS::get_singleton()->finalize();
finalize_physics();

if (packed_data)
memdelete(packed_data);
Expand Down
5 changes: 0 additions & 5 deletions platform/android/os_android.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,11 +157,6 @@ void OS_Android::initialize(const VideoMode &p_desired, int p_video_driver, int

AudioDriverManager::initialize(p_audio_driver);

physics_server = memnew(PhysicsServerSW);
physics_server->init();
physics_2d_server = Physics2DServerWrapMT::init_server<Physics2DServerSW>();
physics_2d_server->init();

input = memnew(InputDefault);
input->set_fallback_mapping("Default Android Gamepad");

Expand Down
5 changes: 0 additions & 5 deletions platform/android/os_android.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,6 @@
#include "os/main_loop.h"
//#include "power_android.h"
#include "servers/audio_server.h"
#include "servers/physics/physics_server_sw.h"
#include "servers/physics_2d/physics_2d_server_sw.h"
#include "servers/physics_2d/physics_2d_server_wrap_mt.h"
#include "servers/visual/rasterizer.h"

#ifdef ANDROID_NATIVE_ACTIVITY
Expand Down Expand Up @@ -106,8 +103,6 @@ class OS_Android : public OS_Unix {
bool use_16bits_fbo;

VisualServer *visual_server;
PhysicsServer *physics_server;
Physics2DServer *physics_2d_server;

mutable String data_dir_cache;

Expand Down
13 changes: 0 additions & 13 deletions platform/haiku/os_haiku.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,13 +130,6 @@ void OS_Haiku::initialize(const VideoMode &p_desired, int p_video_driver, int p_
window->Show();
visual_server->init();

physics_server = memnew(PhysicsServerSW);
physics_server->init();
physics_2d_server = memnew(Physics2DServerSW);
// TODO: enable multithreaded PS
//physics_2d_server = Physics2DServerWrapMT::init_server<Physics2DServerSW>();
physics_2d_server->init();

AudioDriverManager::initialize(p_audio_driver);

power_manager = memnew(PowerHaiku);
Expand All @@ -153,12 +146,6 @@ void OS_Haiku::finalize() {
memdelete(visual_server);
memdelete(rasterizer);

physics_server->finish();
memdelete(physics_server);

physics_2d_server->finish();
memdelete(physics_2d_server);

memdelete(input);

#if defined(OPENGL_ENABLED)
Expand Down
4 changes: 0 additions & 4 deletions platform/haiku/os_haiku.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@
#include "main/input_default.h"
#include "power_haiku.h"
#include "servers/audio_server.h"
#include "servers/physics_2d/physics_2d_server_sw.h"
#include "servers/physics_server.h"
#include "servers/visual/rasterizer.h"
#include "servers/visual_server.h"

Expand All @@ -52,8 +50,6 @@ class OS_Haiku : public OS_Unix {
Rasterizer *rasterizer;
VisualServer *visual_server;
VideoMode current_video_mode;
PhysicsServer *physics_server;
Physics2DServer *physics_2d_server;
PowerHaiku *power_manager;

#ifdef MEDIA_KIT_ENABLED
Expand Down
13 changes: 0 additions & 13 deletions platform/iphone/os_iphone.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,13 +138,6 @@ void OSIPhone::initialize(const VideoMode &p_desired, int p_video_driver, int p_
AudioDriverManager::add_driver(&audio_driver);
AudioDriverManager::initialize(p_audio_driver);

// init physics servers
physics_server = memnew(PhysicsServerSW);
physics_server->init();
//physics_2d_server = memnew( Physics2DServerSW );
physics_2d_server = Physics2DServerWrapMT::init_server<Physics2DServerSW>();
physics_2d_server->init();

input = memnew(InputDefault);

/*
Expand Down Expand Up @@ -384,12 +377,6 @@ void OSIPhone::finalize() {
memdelete(visual_server);
// memdelete(rasterizer);

physics_server->finish();
memdelete(physics_server);

physics_2d_server->finish();
memdelete(physics_2d_server);

memdelete(input);
};

Expand Down
5 changes: 0 additions & 5 deletions platform/iphone/os_iphone.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,6 @@
#include "in_app_store.h"
#include "main/input_default.h"
#include "servers/audio_server.h"
#include "servers/physics/physics_server_sw.h"
#include "servers/physics_2d/physics_2d_server_sw.h"
#include "servers/physics_2d/physics_2d_server_wrap_mt.h"
#include "servers/visual/rasterizer.h"
#include "servers/visual_server.h"

Expand All @@ -66,8 +63,6 @@ class OSIPhone : public OS_Unix {
uint8_t supported_orientations;

VisualServer *visual_server;
PhysicsServer *physics_server;
Physics2DServer *physics_2d_server;

AudioDriverCoreAudio audio_driver;

Expand Down
5 changes: 0 additions & 5 deletions platform/javascript/os_javascript.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -480,11 +480,6 @@ void OS_JavaScript::initialize(const VideoMode &p_desired, int p_video_driver, i

print_line("Init Physicsserver");

physics_server = memnew(PhysicsServerSW);
physics_server->init();
physics_2d_server = memnew(Physics2DServerSW);
physics_2d_server->init();

input = memnew(InputDefault);
_input = input;

Expand Down
4 changes: 0 additions & 4 deletions platform/javascript/os_javascript.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@
#include "os/main_loop.h"
#include "power_javascript.h"
#include "servers/audio_server.h"
#include "servers/physics/physics_server_sw.h"
#include "servers/physics_2d/physics_2d_server_sw.h"
#include "servers/visual/rasterizer.h"

#include <emscripten/html5.h>
Expand All @@ -54,8 +52,6 @@ class OS_JavaScript : public OS_Unix {
int64_t last_sync_time;

VisualServer *visual_server;
PhysicsServer *physics_server;
Physics2DServer *physics_2d_server;
AudioDriverJavaScript audio_driver_javascript;
const char *gl_extensions;

Expand Down
1 change: 1 addition & 0 deletions platform/osx/crash_handler_osx.mm
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
/*************************************************************************/
#include "main/main.h"
#include "os_osx.h"
#include "project_settings.h"

#include <string.h>
#include <unistd.h>
Expand Down
6 changes: 0 additions & 6 deletions platform/osx/os_osx.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,6 @@
#include "os/input.h"
#include "power_osx.h"
#include "servers/audio_server.h"
#include "servers/physics_2d/physics_2d_server_sw.h"
#include "servers/physics_2d/physics_2d_server_wrap_mt.h"
#include "servers/physics_server.h"
#include "servers/visual/rasterizer.h"
#include "servers/visual/visual_server_wrap_mt.h"
#include "servers/visual_server.h"
Expand All @@ -62,9 +59,6 @@ class OS_OSX : public OS_Unix {
List<String> args;
MainLoop *main_loop;

PhysicsServer *physics_server;
Physics2DServer *physics_2d_server;

IP_Unix *ip_unix;

AudioDriverCoreAudio audio_driver;
Expand Down
14 changes: 0 additions & 14 deletions platform/osx/os_osx.mm
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
#include "os/keyboard.h"
#include "print_string.h"
#include "sem_osx.h"
#include "servers/physics/physics_server_sw.h"
#include "servers/visual/visual_server_raster.h"

#include <Carbon/Carbon.h>
Expand Down Expand Up @@ -1092,13 +1091,6 @@ static void keyboardLayoutChanged(CFNotificationCenterRef center, void *observer

AudioDriverManager::initialize(p_audio_driver);

//
physics_server = memnew(PhysicsServerSW);
physics_server->init();
//physics_2d_server = memnew( Physics2DServerSW );
physics_2d_server = Physics2DServerWrapMT::init_server<Physics2DServerSW>();
physics_2d_server->init();

input = memnew(InputDefault);
joypad_osx = memnew(JoypadOSX);

Expand All @@ -1120,12 +1112,6 @@ static void keyboardLayoutChanged(CFNotificationCenterRef center, void *observer
visual_server->finish();
memdelete(visual_server);
//memdelete(rasterizer);

physics_server->finish();
memdelete(physics_server);

physics_2d_server->finish();
memdelete(physics_2d_server);
}

void OS_OSX::set_main_loop(MainLoop *p_main_loop) {
Expand Down
12 changes: 0 additions & 12 deletions platform/server/os_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
//#include "servers/visual/rasterizer_dummy.h"
#include "os_server.h"
#include "print_string.h"
#include "servers/physics/physics_server_sw.h"
#include <stdio.h>
#include <stdlib.h>

Expand Down Expand Up @@ -75,11 +74,6 @@ void OS_Server::initialize(const VideoMode &p_desired, int p_video_driver, int p
ERR_FAIL_COND(!visual_server);

visual_server->init();
//
physics_server = memnew(PhysicsServerSW);
physics_server->init();
physics_2d_server = memnew(Physics2DServerSW);
physics_2d_server->init();

input = memnew(InputDefault);

Expand Down Expand Up @@ -111,12 +105,6 @@ void OS_Server::finalize() {
memdelete(visual_server);
//memdelete(rasterizer);

physics_server->finish();
memdelete(physics_server);

physics_2d_server->finish();
memdelete(physics_2d_server);

memdelete(input);

args.clear();
Expand Down
5 changes: 0 additions & 5 deletions platform/server/os_server.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@
#include "drivers/unix/os_unix.h"
#include "main/input_default.h"
#include "servers/audio_server.h"
#include "servers/physics_2d/physics_2d_server_sw.h"
#include "servers/physics_server.h"
#include "servers/visual/rasterizer.h"
#include "servers/visual_server.h"

Expand All @@ -56,9 +54,6 @@ class OS_Server : public OS_Unix {

bool grab;

PhysicsServer *physics_server;
Physics2DServer *physics_2d_server;

virtual void delete_main_loop();
IP_Unix *ip_unix;

Expand Down
13 changes: 0 additions & 13 deletions platform/uwp/os_uwp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -264,13 +264,6 @@ void OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_aud
}
*/

//
physics_server = memnew(PhysicsServerSW);
physics_server->init();

physics_2d_server = memnew(Physics2DServerSW);
physics_2d_server->init();

visual_server->init();

input = memnew(InputDefault);
Expand Down Expand Up @@ -369,12 +362,6 @@ void OSUWP::finalize() {

memdelete(input);

physics_server->finish();
memdelete(physics_server);

physics_2d_server->finish();
memdelete(physics_2d_server);

joypad = nullptr;
}

Expand Down
4 changes: 0 additions & 4 deletions platform/uwp/os_uwp.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@
#include "os/os.h"
#include "power_uwp.h"
#include "servers/audio_server.h"
#include "servers/physics/physics_server_sw.h"
#include "servers/physics_2d/physics_2d_server_sw.h"
#include "servers/visual/rasterizer.h"
#include "servers/visual_server.h"

Expand Down Expand Up @@ -94,8 +92,6 @@ class OSUWP : public OS {
int old_x, old_y;
Point2i center;
VisualServer *visual_server;
PhysicsServer *physics_server;
Physics2DServer *physics_2d_server;
int pressrc;

ContextEGL *gl_context;
Expand Down
1 change: 1 addition & 0 deletions platform/windows/crash_handler_win.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
/*************************************************************************/
#include "main/main.h"
#include "os_windows.h"
#include "project_settings.h"

#ifdef CRASH_HANDLER_EXCEPTION

Expand Down
Loading

0 comments on commit 7715a26

Please sign in to comment.