summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
Diffstat (limited to 'platform')
-rw-r--r--platform/android/godot_android.cpp4
-rw-r--r--platform/android/java/src/org/godotengine/godot/Godot.java4
-rw-r--r--platform/android/java_glue.cpp4
-rw-r--r--platform/android/thread_jandroid.cpp3
-rw-r--r--platform/haiku/context_gl_haiku.cpp12
-rw-r--r--platform/haiku/context_gl_haiku.h5
-rw-r--r--platform/haiku/detect.py6
-rw-r--r--platform/windows/joystick.cpp2
-rw-r--r--platform/windows/os_windows.cpp8
-rw-r--r--platform/winrt/thread_winrt.cpp2
-rw-r--r--platform/x11/detect.py4
11 files changed, 40 insertions, 14 deletions
diff --git a/platform/android/godot_android.cpp b/platform/android/godot_android.cpp
index edb051575f..9f909d7041 100644
--- a/platform/android/godot_android.cpp
+++ b/platform/android/godot_android.cpp
@@ -910,7 +910,7 @@ static Variant::Type get_jni_type(const String& p_type) {
{"java.lang.String",Variant::STRING},
{"[I",Variant::INT_ARRAY},
{"[F",Variant::REAL_ARRAY},
- {"[java.lang.String",Variant::STRING_ARRAY},
+ {"[Ljava.lang.String;",Variant::STRING_ARRAY},
{NULL,Variant::NIL}
};
@@ -941,7 +941,7 @@ static const char* get_jni_sig(const String& p_type) {
{"java.lang.String","Ljava/lang/String;"},
{"[I","[I"},
{"[F","[F"},
- {"[java.lang.String","[Ljava/lang/String;"},
+ {"[Ljava.lang.String;","[Ljava/lang/String;"},
{NULL,"V"}
};
diff --git a/platform/android/java/src/org/godotengine/godot/Godot.java b/platform/android/java/src/org/godotengine/godot/Godot.java
index cdf17e3161..4c0f4878f5 100644
--- a/platform/android/java/src/org/godotengine/godot/Godot.java
+++ b/platform/android/java/src/org/godotengine/godot/Godot.java
@@ -602,8 +602,8 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC
}
mView.onResume();
- mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
- mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_NORMAL);
+ mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_GAME);
+ mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_GAME);
GodotLib.focusin();
if(use_immersive && Build.VERSION.SDK_INT >= 19.0){ // check if the application runs on an android 4.4+
Window window = getWindow();
diff --git a/platform/android/java_glue.cpp b/platform/android/java_glue.cpp
index 1ea7cd7ebb..5fd2ab8910 100644
--- a/platform/android/java_glue.cpp
+++ b/platform/android/java_glue.cpp
@@ -1563,7 +1563,7 @@ static Variant::Type get_jni_type(const String& p_type) {
{"[I",Variant::INT_ARRAY},
{"[B",Variant::RAW_ARRAY},
{"[F",Variant::REAL_ARRAY},
- {"[java.lang.String",Variant::STRING_ARRAY},
+ {"[Ljava.lang.String;",Variant::STRING_ARRAY},
{"org.godotengine.godot.Dictionary", Variant::DICTIONARY},
{NULL,Variant::NIL}
};
@@ -1599,7 +1599,7 @@ static const char* get_jni_sig(const String& p_type) {
{"[I","[I"},
{"[B","[B"},
{"[F","[F"},
- {"[java.lang.String","[Ljava/lang/String;"},
+ {"[Ljava.lang.String;","[Ljava/lang/String;"},
{NULL,"V"}
};
diff --git a/platform/android/thread_jandroid.cpp b/platform/android/thread_jandroid.cpp
index 1425e23c73..61ee237586 100644
--- a/platform/android/thread_jandroid.cpp
+++ b/platform/android/thread_jandroid.cpp
@@ -29,6 +29,7 @@
#include "thread_jandroid.h"
#include "os/memory.h"
+#include "script_language.h"
Thread::ID ThreadAndroid::get_ID() const {
@@ -44,8 +45,10 @@ void *ThreadAndroid::thread_callback(void *userdata) {
ThreadAndroid *t=reinterpret_cast<ThreadAndroid*>(userdata);
setup_thread();
+ ScriptServer::thread_enter(); //scripts may need to attach a stack
t->id=(ID)pthread_self();
t->callback(t->user);
+ ScriptServer::thread_exit();
return NULL;
}
diff --git a/platform/haiku/context_gl_haiku.cpp b/platform/haiku/context_gl_haiku.cpp
index 2fedd1532a..bf890d14bf 100644
--- a/platform/haiku/context_gl_haiku.cpp
+++ b/platform/haiku/context_gl_haiku.cpp
@@ -35,6 +35,8 @@ ContextGL_Haiku::ContextGL_Haiku(HaikuDirectWindow* p_window) {
uint32 type = BGL_RGB | BGL_DOUBLE | BGL_DEPTH;
view = new HaikuGLView(window->Bounds(), type);
+
+ use_vsync = false;
}
ContextGL_Haiku::~ContextGL_Haiku() {
@@ -57,7 +59,7 @@ void ContextGL_Haiku::make_current() {
}
void ContextGL_Haiku::swap_buffers() {
- view->SwapBuffers();
+ view->SwapBuffers(use_vsync);
}
int ContextGL_Haiku::get_window_width() {
@@ -68,4 +70,12 @@ int ContextGL_Haiku::get_window_height() {
return window->Bounds().IntegerHeight();
}
+void ContextGL_Haiku::set_use_vsync(bool p_use) {
+ use_vsync = p_use;
+}
+
+bool ContextGL_Haiku::is_using_vsync() const {
+ return use_vsync;
+}
+
#endif
diff --git a/platform/haiku/context_gl_haiku.h b/platform/haiku/context_gl_haiku.h
index 91aae6b382..c7f80543aa 100644
--- a/platform/haiku/context_gl_haiku.h
+++ b/platform/haiku/context_gl_haiku.h
@@ -40,6 +40,8 @@ class ContextGL_Haiku : public ContextGL {
private:
HaikuGLView* view;
HaikuDirectWindow* window;
+
+ bool use_vsync;
public:
ContextGL_Haiku(HaikuDirectWindow* p_window);
@@ -51,6 +53,9 @@ public:
virtual void swap_buffers();
virtual int get_window_width();
virtual int get_window_height();
+
+ virtual void set_use_vsync(bool p_use);
+ virtual bool is_using_vsync() const;
};
#endif
diff --git a/platform/haiku/detect.py b/platform/haiku/detect.py
index 6d1a96a8da..f36b0c567e 100644
--- a/platform/haiku/detect.py
+++ b/platform/haiku/detect.py
@@ -24,7 +24,7 @@ def get_opts():
def get_flags():
return [
('builtin_zlib', 'no'),
- #('glew', 'yes'), # TODO: investigate the GLEW situation on Haiku
+ ('glew', 'yes'),
]
def configure(env):
@@ -38,8 +38,8 @@ def configure(env):
env.Append(CPPPATH = ['#platform/haiku'])
- env["CC"] = "gcc"
- env["CXX"] = "g++"
+ env["CC"] = "gcc-x86"
+ env["CXX"] = "g++-x86"
if (env["target"]=="release"):
if (env["debug_release"]=="yes"):
diff --git a/platform/windows/joystick.cpp b/platform/windows/joystick.cpp
index 663bbe3b9b..e69bfe6a52 100644
--- a/platform/windows/joystick.cpp
+++ b/platform/windows/joystick.cpp
@@ -283,7 +283,7 @@ void joystick_windows::close_joystick(int id) {
d_joysticks[id].attached = false;
attached_joysticks[d_joysticks[id].id] = false;
d_joysticks[id].guid.Data1 = d_joysticks[id].guid.Data2 = d_joysticks[id].guid.Data3 = 0;
- input->joy_connection_changed(id, false, "");
+ input->joy_connection_changed(d_joysticks[id].id, false, "");
joystick_count--;
}
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 630d5715e9..9421e0d48e 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -604,8 +604,12 @@ LRESULT OS_Windows::WndProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam) {
} break;
case WM_SIZE: {
- video_mode.width=LOWORD(lParam);
- video_mode.height=HIWORD(lParam);
+ int window_w = LOWORD(lParam);
+ int window_h = HIWORD(lParam);
+ if (window_w > 0 && window_h > 0) {
+ video_mode.width = window_w;
+ video_mode.height = window_h;
+ }
//return 0; // Jump Back
} break;
case WM_SYSKEYDOWN:
diff --git a/platform/winrt/thread_winrt.cpp b/platform/winrt/thread_winrt.cpp
index 097050e511..e7028bd9dc 100644
--- a/platform/winrt/thread_winrt.cpp
+++ b/platform/winrt/thread_winrt.cpp
@@ -33,6 +33,8 @@
Thread* ThreadWinrt::create_func_winrt(ThreadCreateCallback p_callback,void *p_user,const Settings&) {
ThreadWinrt* thread = memnew(ThreadWinrt);
+
+
std::thread new_thread(p_callback, p_user);
std::swap(thread->thread, new_thread);
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index 5f272536ba..54940866b2 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -209,5 +209,7 @@ def configure(env):
if (env["use_static_cpp"]=="yes"):
env.Append(LINKFLAGS=['-static-libstdc++'])
- env["x86_opt_gcc"]=True
+ list_of_x86 = ['x86_64', 'x86', 'i386', 'i586']
+ if any(platform.machine() in s for s in list_of_x86):
+ env["x86_opt_gcc"]=True