Merge remote-tracking branch 'origin/master'
Conflicts: drivers/windows/dir_access_windows.cpp
This commit is contained in:
commit
fbbe7dcdfb
1229 changed files with 10151 additions and 5497 deletions
|
|
@ -7,7 +7,7 @@
|
|||
>
|
||||
<supports-screens android:smallScreens="true"
|
||||
android:normalScreens="true"
|
||||
android:largeScreens="true"
|
||||
android:largeScreens="false"
|
||||
android:xlargeScreens="true"/>
|
||||
|
||||
<application android:label="@string/godot_project_name_string" android:icon="@drawable/icon" android:allowBackup="false" $$ADD_APPATTRIBUTE_CHUNKS$$ >
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
android:label="@string/godot_project_name_string"
|
||||
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="portrait"
|
||||
android:screenOrientation="landscape"
|
||||
android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize">
|
||||
|
||||
<intent-filter>
|
||||
|
|
@ -200,6 +200,6 @@ $$ADD_PERMISSION_CHUNKS$$
|
|||
<uses-permission android:name="godot.custom.18"/>
|
||||
<uses-permission android:name="godot.custom.19"/>
|
||||
|
||||
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15"/>
|
||||
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19"/>
|
||||
|
||||
</manifest>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
/* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ def get_opts():
|
|||
('NDK_TOOLCHAIN', 'toolchain to use for the NDK',"arm-eabi-4.4.0"),
|
||||
#android 2.3
|
||||
('ndk_platform', 'compile for platform: (2.2,2.3)',"2.2"),
|
||||
('NDK_TARGET', 'toolchain to use for the NDK',"arm-linux-androideabi-4.9"),
|
||||
('NDK_TARGET', 'toolchain to use for the NDK',"arm-linux-androideabi-4.8"),
|
||||
('android_stl','enable STL support in android port (for modules)','no'),
|
||||
('armv6','compile for older phones running arm v6 (instead of v7+neon+smp)','no'),
|
||||
('x86','Xompile for Android-x86','no')
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -31,11 +31,15 @@
|
|||
#include "dir_access_jandroid.h"
|
||||
#include "file_access_jandroid.h"
|
||||
#include "thread_jandroid.h"
|
||||
#include "print_string.h"
|
||||
|
||||
|
||||
jobject DirAccessJAndroid::io=NULL;
|
||||
jclass DirAccessJAndroid::cls=NULL;
|
||||
jmethodID DirAccessJAndroid::_dir_open=NULL;
|
||||
jmethodID DirAccessJAndroid::_dir_next=NULL;
|
||||
jmethodID DirAccessJAndroid::_dir_close=NULL;
|
||||
jmethodID DirAccessJAndroid::_dir_is_dir=NULL;
|
||||
|
||||
|
||||
DirAccess *DirAccessJAndroid::create_fs() {
|
||||
|
|
@ -67,43 +71,18 @@ String DirAccessJAndroid::get_next(){
|
|||
if (!str)
|
||||
return "";
|
||||
|
||||
int sl = env->GetStringLength(str);
|
||||
if (sl==0) {
|
||||
env->DeleteLocalRef((jobject)str);
|
||||
return "";
|
||||
}
|
||||
|
||||
CharString cs;
|
||||
cs.resize(sl+1);
|
||||
env->GetStringRegion(str,0,sl,(jchar*)&cs[0]);
|
||||
cs[sl]=0;
|
||||
|
||||
String ret;
|
||||
ret.parse_utf8(&cs[0]);
|
||||
String ret = String::utf8(env->GetStringUTFChars( (jstring)str, NULL ));
|
||||
env->DeleteLocalRef((jobject)str);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
bool DirAccessJAndroid::current_is_dir() const{
|
||||
|
||||
|
||||
JNIEnv *env = ThreadAndroid::get_env();
|
||||
String sd;
|
||||
if (current_dir=="")
|
||||
sd=current;
|
||||
else
|
||||
sd=current_dir+"/"+current;
|
||||
|
||||
jstring js = env->NewStringUTF(sd.utf8().get_data());
|
||||
return env->CallBooleanMethod(io,_dir_is_dir,id);
|
||||
|
||||
int res = env->CallIntMethod(io,_dir_open,js);
|
||||
if (res<=0)
|
||||
return false;
|
||||
|
||||
env->CallObjectMethod(io,_dir_close,res);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DirAccessJAndroid::current_is_hidden() const {
|
||||
|
|
@ -142,24 +121,31 @@ Error DirAccessJAndroid::change_dir(String p_dir){
|
|||
|
||||
String new_dir;
|
||||
|
||||
if (p_dir!="res://" && p_dir.length()>1 && p_dir.ends_with("/"))
|
||||
p_dir=p_dir.substr(0,p_dir.length()-1);
|
||||
|
||||
if (p_dir.begins_with("/"))
|
||||
new_dir=p_dir.substr(1,p_dir.length());
|
||||
else if (p_dir.begins_with("res://"))
|
||||
new_dir=p_dir.substr(6,p_dir.length());
|
||||
else //relative
|
||||
new_dir=new_dir+"/"+p_dir;
|
||||
else if (current_dir=="")
|
||||
new_dir=p_dir;
|
||||
else
|
||||
new_dir=current_dir.plus_file(p_dir);
|
||||
|
||||
//print_line("new dir is: "+new_dir);
|
||||
//test if newdir exists
|
||||
new_dir=new_dir.simplify_path();
|
||||
|
||||
jstring js = env->NewStringUTF(new_dir.utf8().get_data());
|
||||
int res = env->CallIntMethod(io,_dir_open,js);
|
||||
env->DeleteLocalRef(js);
|
||||
if (res<=0)
|
||||
return ERR_INVALID_PARAMETER;
|
||||
|
||||
env->CallObjectMethod(io,_dir_close,res);
|
||||
|
||||
|
||||
current_dir=new_dir;
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
|
@ -176,7 +162,7 @@ bool DirAccessJAndroid::file_exists(String p_file){
|
|||
if (current_dir=="")
|
||||
sd=p_file;
|
||||
else
|
||||
sd=current_dir+"/"+p_file;
|
||||
sd=current_dir.plus_file(p_file);
|
||||
|
||||
FileAccessJAndroid *f = memnew(FileAccessJAndroid);
|
||||
bool exists = f->file_exists(sd);
|
||||
|
|
@ -190,12 +176,19 @@ bool DirAccessJAndroid::dir_exists(String p_dir) {
|
|||
JNIEnv *env = ThreadAndroid::get_env();
|
||||
|
||||
String sd;
|
||||
|
||||
|
||||
if (current_dir=="")
|
||||
sd=p_dir;
|
||||
else
|
||||
sd=current_dir+"/"+p_dir;
|
||||
else {
|
||||
if (p_dir.is_rel_path())
|
||||
sd=current_dir.plus_file(p_dir);
|
||||
else
|
||||
sd=fix_path(p_dir);
|
||||
}
|
||||
|
||||
String path=sd.simplify_path();
|
||||
|
||||
String path=fix_path(sd).simplify_path();
|
||||
if (path.begins_with("/"))
|
||||
path=path.substr(1,path.length());
|
||||
else if (path.begins_with("res://"))
|
||||
|
|
@ -203,6 +196,7 @@ bool DirAccessJAndroid::dir_exists(String p_dir) {
|
|||
|
||||
jstring js = env->NewStringUTF(path.utf8().get_data());
|
||||
int res = env->CallIntMethod(io,_dir_open,js);
|
||||
env->DeleteLocalRef(js);
|
||||
if (res<=0)
|
||||
return false;
|
||||
|
||||
|
|
@ -256,6 +250,10 @@ void DirAccessJAndroid::setup( jobject p_io) {
|
|||
if(_dir_close != 0) {
|
||||
__android_log_print(ANDROID_LOG_INFO,"godot","*******GOT METHOD _dir_close ok!!");
|
||||
}
|
||||
_dir_is_dir = env->GetMethodID(cls, "dir_is_dir", "(I)Z");
|
||||
if(_dir_is_dir != 0) {
|
||||
__android_log_print(ANDROID_LOG_INFO,"godot","*******GOT METHOD _dir_is_dir ok!!");
|
||||
}
|
||||
|
||||
// (*env)->CallVoidMethod(env,obj,aMethodID, myvar);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -47,6 +47,7 @@ class DirAccessJAndroid : public DirAccess {
|
|||
static jmethodID _dir_open;
|
||||
static jmethodID _dir_next;
|
||||
static jmethodID _dir_close;
|
||||
static jmethodID _dir_is_dir;
|
||||
|
||||
int id;
|
||||
|
||||
|
|
|
|||
|
|
@ -185,6 +185,10 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
|||
bool _signed;
|
||||
bool apk_expansion;
|
||||
bool remove_prev;
|
||||
bool use_32_fb;
|
||||
bool immersive;
|
||||
bool export_arm;
|
||||
bool export_x86;
|
||||
String apk_expansion_salt;
|
||||
String apk_expansion_pkey;
|
||||
int orientation;
|
||||
|
|
@ -221,6 +225,8 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
|||
|
||||
static void _device_poll_thread(void *ud);
|
||||
|
||||
String get_package_name();
|
||||
|
||||
String get_project_name() const;
|
||||
void _fix_manifest(Vector<uint8_t>& p_manifest);
|
||||
void _fix_resources(Vector<uint8_t>& p_manifest);
|
||||
|
|
@ -279,6 +285,14 @@ bool EditorExportPlatformAndroid::_set(const StringName& p_name, const Variant&
|
|||
icon=p_value;
|
||||
else if (n=="package/signed")
|
||||
_signed=p_value;
|
||||
else if (n=="architecture/arm")
|
||||
export_arm=p_value;
|
||||
else if (n=="architecture/x86")
|
||||
export_x86=p_value;
|
||||
else if (n=="screen/use_32_bits_view")
|
||||
use_32_fb=p_value;
|
||||
else if (n=="screen/immersive_mode")
|
||||
immersive=p_value;
|
||||
else if (n=="screen/orientation")
|
||||
orientation=p_value;
|
||||
else if (n=="screen/support_small")
|
||||
|
|
@ -344,6 +358,14 @@ bool EditorExportPlatformAndroid::_get(const StringName& p_name,Variant &r_ret)
|
|||
r_ret=icon;
|
||||
else if (n=="package/signed")
|
||||
r_ret=_signed;
|
||||
else if (n=="architecture/arm")
|
||||
r_ret=export_arm;
|
||||
else if (n=="architecture/x86")
|
||||
r_ret=export_x86;
|
||||
else if (n=="screen/use_32_bits_view")
|
||||
r_ret=use_32_fb;
|
||||
else if (n=="screen/immersive_mode")
|
||||
r_ret=immersive;
|
||||
else if (n=="screen/orientation")
|
||||
r_ret=orientation;
|
||||
else if (n=="screen/support_small")
|
||||
|
|
@ -393,6 +415,10 @@ void EditorExportPlatformAndroid::_get_property_list( List<PropertyInfo> *p_list
|
|||
p_list->push_back( PropertyInfo( Variant::STRING, "package/name") );
|
||||
p_list->push_back( PropertyInfo( Variant::STRING, "package/icon",PROPERTY_HINT_FILE,"png") );
|
||||
p_list->push_back( PropertyInfo( Variant::BOOL, "package/signed") );
|
||||
p_list->push_back( PropertyInfo( Variant::BOOL, "architecture/arm") );
|
||||
p_list->push_back( PropertyInfo( Variant::BOOL, "architecture/x86") );
|
||||
p_list->push_back( PropertyInfo( Variant::BOOL, "screen/use_32_bits_view") );
|
||||
p_list->push_back( PropertyInfo( Variant::BOOL, "screen/immersive_mode") );
|
||||
p_list->push_back( PropertyInfo( Variant::INT, "screen/orientation",PROPERTY_HINT_ENUM,"Landscape,Portrait") );
|
||||
p_list->push_back( PropertyInfo( Variant::BOOL, "screen/support_small") );
|
||||
p_list->push_back( PropertyInfo( Variant::BOOL, "screen/support_normal") );
|
||||
|
|
@ -629,11 +655,11 @@ void EditorExportPlatformAndroid::_fix_manifest(Vector<uint8_t>& p_manifest) {
|
|||
|
||||
int iofs=ofs+8;
|
||||
|
||||
uint32_t string_count=decode_uint32(&p_manifest[iofs]);
|
||||
uint32_t styles_count=decode_uint32(&p_manifest[iofs+4]);
|
||||
string_count=decode_uint32(&p_manifest[iofs]);
|
||||
styles_count=decode_uint32(&p_manifest[iofs+4]);
|
||||
uint32_t string_flags=decode_uint32(&p_manifest[iofs+8]);
|
||||
uint32_t string_data_offset=decode_uint32(&p_manifest[iofs+12]);
|
||||
uint32_t styles_offset=decode_uint32(&p_manifest[iofs+16]);
|
||||
string_data_offset=decode_uint32(&p_manifest[iofs+12]);
|
||||
styles_offset=decode_uint32(&p_manifest[iofs+16]);
|
||||
/*
|
||||
printf("string count: %i\n",string_count);
|
||||
printf("flags: %i\n",string_flags);
|
||||
|
|
@ -732,7 +758,7 @@ void EditorExportPlatformAndroid::_fix_manifest(Vector<uint8_t>& p_manifest) {
|
|||
if (tname=="manifest" && attrname=="package") {
|
||||
|
||||
print_line("FOUND PACKAGE");
|
||||
string_table[attr_value]=package;
|
||||
string_table[attr_value]=get_package_name();
|
||||
}
|
||||
|
||||
//print_line("tname: "+tname);
|
||||
|
|
@ -756,19 +782,21 @@ void EditorExportPlatformAndroid::_fix_manifest(Vector<uint8_t>& p_manifest) {
|
|||
|
||||
if (tname=="activity" && /*nspace=="android" &&*/ attrname=="screenOrientation") {
|
||||
|
||||
encode_uint32(orientation==0?0:1,&p_manifest[iofs+16]);
|
||||
/*
|
||||
print_line("FOUND screen orientation");
|
||||
if (attr_value==0xFFFFFFFF) {
|
||||
WARN_PRINT("Version name in a resource, should be plaintext")
|
||||
} else {
|
||||
string_table[attr_value]=(orientation==0?"landscape":"portrait");
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
if (tname=="application" && /*nspace=="android" &&*/ attrname=="label") {
|
||||
|
||||
print_line("FOUND application");
|
||||
if (attr_value==0xFFFFFFFF) {
|
||||
WARN_PRINT("Application name in a resource, should be plaintext.")
|
||||
WARN_PRINT("Application name in a resource, should be plaintext (but you can ignore this).")
|
||||
} else {
|
||||
|
||||
String aname = get_project_name();
|
||||
|
|
@ -779,7 +807,7 @@ void EditorExportPlatformAndroid::_fix_manifest(Vector<uint8_t>& p_manifest) {
|
|||
|
||||
print_line("FOUND activity name");
|
||||
if (attr_value==0xFFFFFFFF) {
|
||||
WARN_PRINT("Activity name in a resource, should be plaintext")
|
||||
WARN_PRINT("Activity name in a resource, should be plaintext (but you can ignore this)")
|
||||
} else {
|
||||
String aname;
|
||||
if (this->name!="") {
|
||||
|
|
@ -823,23 +851,19 @@ void EditorExportPlatformAndroid::_fix_manifest(Vector<uint8_t>& p_manifest) {
|
|||
WARN_PRINT("Screen res name in a resource, should be plaintext")
|
||||
} else if (attrname=="smallScreens") {
|
||||
|
||||
print_line("SMALLSCREEN");
|
||||
string_table[attr_value]=screen_support[SCREEN_SMALL]?"true":"false";
|
||||
encode_uint32(screen_support[SCREEN_SMALL]?0xFFFFFFFF:0,&p_manifest[iofs+16]);
|
||||
|
||||
} else if (attrname=="mediumScreens") {
|
||||
|
||||
print_line("MEDSCREEN");
|
||||
string_table[attr_value]=screen_support[SCREEN_NORMAL]?"true":"false";
|
||||
encode_uint32(screen_support[SCREEN_NORMAL]?0xFFFFFFFF:0,&p_manifest[iofs+16]);
|
||||
|
||||
} else if (attrname=="largeScreens") {
|
||||
|
||||
print_line("LARGECREEN");
|
||||
string_table[attr_value]=screen_support[SCREEN_LARGE]?"true":"false";
|
||||
encode_uint32(screen_support[SCREEN_LARGE]?0xFFFFFFFF:0,&p_manifest[iofs+16]);
|
||||
|
||||
} else if (attrname=="xlargeScreens") {
|
||||
|
||||
print_line("XLARGECREEN");
|
||||
string_table[attr_value]=screen_support[SCREEN_XLARGE]?"true":"false";
|
||||
encode_uint32(screen_support[SCREEN_XLARGE]?0xFFFFFFFF:0,&p_manifest[iofs+16]);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1035,6 +1059,8 @@ Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_d
|
|||
char fname[16384];
|
||||
ret = unzGetCurrentFileInfo(pkg,&info,fname,16384,NULL,0,NULL,0);
|
||||
|
||||
bool skip=false;
|
||||
|
||||
String file=fname;
|
||||
|
||||
Vector<uint8_t> data;
|
||||
|
|
@ -1087,20 +1113,31 @@ Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_d
|
|||
}
|
||||
}
|
||||
|
||||
print_line("ADDING: "+file);
|
||||
zipOpenNewFileInZip(apk,
|
||||
file.utf8().get_data(),
|
||||
NULL,
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
Z_DEFLATED,
|
||||
Z_DEFAULT_COMPRESSION);
|
||||
if (file=="lib/x86/libgodot_android.so" && !export_x86) {
|
||||
skip=true;
|
||||
}
|
||||
|
||||
zipWriteInFileInZip(apk,data.ptr(),data.size());
|
||||
zipCloseFileInZip(apk);
|
||||
if (file=="lib/armeabi/libgodot_android.so" && !export_arm) {
|
||||
skip=true;
|
||||
}
|
||||
|
||||
print_line("ADDING: "+file);
|
||||
|
||||
if (!skip) {
|
||||
zipOpenNewFileInZip(apk,
|
||||
file.utf8().get_data(),
|
||||
NULL,
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
Z_DEFLATED,
|
||||
Z_DEFAULT_COMPRESSION);
|
||||
|
||||
zipWriteInFileInZip(apk,data.ptr(),data.size());
|
||||
zipCloseFileInZip(apk);
|
||||
}
|
||||
|
||||
ret = unzGoToNextFile(pkg);
|
||||
}
|
||||
|
|
@ -1134,7 +1171,7 @@ Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_d
|
|||
|
||||
if (apk_expansion) {
|
||||
|
||||
String apkfname="main."+itos(version_code)+"."+package+".obb";
|
||||
String apkfname="main."+itos(version_code)+"."+get_package_name()+".obb";
|
||||
String fullpath=p_path.get_base_dir().plus_file(apkfname);
|
||||
FileAccess *pf = FileAccess::open(fullpath,FileAccess::WRITE);
|
||||
if (!pf) {
|
||||
|
|
@ -1158,8 +1195,16 @@ Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_d
|
|||
|
||||
err = export_project_files(save_apk_file,&ed,false);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (use_32_fb)
|
||||
cl.push_back("-use_depth_32");
|
||||
|
||||
if (immersive)
|
||||
cl.push_back("-use_immersive");
|
||||
|
||||
if (cl.size()) {
|
||||
//add comandline
|
||||
Vector<uint8_t> clf;
|
||||
|
|
@ -1471,7 +1516,7 @@ Error EditorExportPlatformAndroid::run(int p_device, bool p_dumb) {
|
|||
args.push_back("-s");
|
||||
args.push_back(devices[p_device].id);
|
||||
args.push_back("uninstall");
|
||||
args.push_back(package);
|
||||
args.push_back(get_package_name());
|
||||
|
||||
err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv);
|
||||
#if 0
|
||||
|
|
@ -1509,7 +1554,7 @@ Error EditorExportPlatformAndroid::run(int p_device, bool p_dumb) {
|
|||
args.push_back("-a");
|
||||
args.push_back("android.intent.action.MAIN");
|
||||
args.push_back("-n");
|
||||
args.push_back(package+"/com.android.godot.Godot");
|
||||
args.push_back(get_package_name()+"/com.android.godot.Godot");
|
||||
|
||||
err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv);
|
||||
if (err || rv!=0) {
|
||||
|
|
@ -1521,12 +1566,37 @@ Error EditorExportPlatformAndroid::run(int p_device, bool p_dumb) {
|
|||
return OK;
|
||||
}
|
||||
|
||||
String EditorExportPlatformAndroid::get_package_name() {
|
||||
|
||||
String pname = package;
|
||||
String basename = Globals::get_singleton()->get("application/name");
|
||||
basename=basename.to_lower();
|
||||
|
||||
String name;
|
||||
bool first=true;
|
||||
for(int i=0;i<basename.length();i++) {
|
||||
CharType c = basename[i];
|
||||
if (c>='0' && c<='9' && first) {
|
||||
continue;
|
||||
}
|
||||
if ((c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9')) {
|
||||
name+=String::chr(c);
|
||||
first=false;
|
||||
}
|
||||
}
|
||||
if (name=="")
|
||||
name="noname";
|
||||
|
||||
pname=pname.replace("$genname",name);
|
||||
return pname;
|
||||
|
||||
}
|
||||
|
||||
EditorExportPlatformAndroid::EditorExportPlatformAndroid() {
|
||||
|
||||
version_code=1;
|
||||
version_name="1.0";
|
||||
package="com.android.noname";
|
||||
package="org.godotengine.$genname";
|
||||
name="";
|
||||
_signed=true;
|
||||
apk_expansion=false;
|
||||
|
|
@ -1534,6 +1604,12 @@ EditorExportPlatformAndroid::EditorExportPlatformAndroid() {
|
|||
quit_request=false;
|
||||
orientation=0;
|
||||
remove_prev=true;
|
||||
use_32_fb=true;
|
||||
immersive=true;
|
||||
|
||||
export_arm=true;
|
||||
export_x86=false;
|
||||
|
||||
|
||||
device_thread=Thread::create(_device_poll_thread,this);
|
||||
devices_changed=true;
|
||||
|
|
@ -1613,8 +1689,11 @@ bool EditorExportPlatformAndroid::can_export(String *r_error) const {
|
|||
|
||||
EditorExportPlatformAndroid::~EditorExportPlatformAndroid() {
|
||||
|
||||
|
||||
quit_request=true;
|
||||
Thread::wait_to_finish(device_thread);
|
||||
memdelete(device_lock);
|
||||
memdelete(device_thread);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -67,7 +67,6 @@ Error FileAccessJAndroid::_open(const String& p_path, int p_mode_flags) {
|
|||
|
||||
jstring js = env->NewStringUTF(path.utf8().get_data());
|
||||
int res = env->CallIntMethod(io,_file_open,js,p_mode_flags&WRITE?true:false);
|
||||
|
||||
env->DeleteLocalRef(js);
|
||||
|
||||
if (res<=0)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 17 KiB |
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -109,6 +109,8 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC
|
|||
private Button mPauseButton;
|
||||
private Button mWiFiSettingsButton;
|
||||
|
||||
private boolean use_32_bits=false;
|
||||
private boolean use_immersive=false;
|
||||
private boolean mStatePaused;
|
||||
private int mState;
|
||||
|
||||
|
|
@ -255,7 +257,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC
|
|||
// ...add to FrameLayout
|
||||
layout.addView(edittext);
|
||||
|
||||
mView = new GodotView(getApplication(),io,use_gl2, this);
|
||||
mView = new GodotView(getApplication(),io,use_gl2,use_32_bits, this);
|
||||
layout.addView(mView,new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
|
||||
mView.setKeepScreenOn(true);
|
||||
|
||||
|
|
@ -373,6 +375,8 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC
|
|||
mRemoteService.onClientUpdated(mDownloaderClientStub.getMessenger());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle icicle) {
|
||||
|
||||
|
|
@ -399,7 +403,22 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC
|
|||
for(int i=0;i<command_line.length;i++) {
|
||||
|
||||
boolean has_extra = i< command_line.length -1;
|
||||
if (command_line[i].equals("-use_apk_expansion")) {
|
||||
if (command_line[i].equals("-use_depth_32")) {
|
||||
use_32_bits=true;
|
||||
} else if (command_line[i].equals("-use_immersive")) {
|
||||
use_immersive=true;
|
||||
if(Build.VERSION.SDK_INT >= 19.0){ // check if the application runs on an android 4.4+
|
||||
window.getDecorView().setSystemUiVisibility(
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
|
||||
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
|
||||
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
|
||||
|
||||
UiChangeListener();
|
||||
}
|
||||
} else if (command_line[i].equals("-use_apk_expansion")) {
|
||||
use_apk_expansion=true;
|
||||
} else if (has_extra && command_line[i].equals("-apk_expansion_md5")) {
|
||||
main_pack_md5=command_line[i+1];
|
||||
|
|
@ -557,6 +576,16 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC
|
|||
mView.onResume();
|
||||
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
|
||||
GodotLib.focusin();
|
||||
if(use_immersive && Build.VERSION.SDK_INT >= 19.0){ // check if the application runs on an android 4.4+
|
||||
Window window = getWindow();
|
||||
window.getDecorView().setSystemUiVisibility(
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
|
||||
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
|
||||
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
|
||||
}
|
||||
|
||||
for(int i=0;i<singleton_count;i++) {
|
||||
|
||||
|
|
@ -567,10 +596,43 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC
|
|||
|
||||
}
|
||||
|
||||
public void UiChangeListener() {
|
||||
final View decorView = getWindow().getDecorView();
|
||||
decorView.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() {
|
||||
@Override
|
||||
public void onSystemUiVisibilityChange(int visibility) {
|
||||
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
|
||||
decorView.setSystemUiVisibility(
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
||||
| View.SYSTEM_UI_FLAG_FULLSCREEN
|
||||
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override public void onSensorChanged(SensorEvent event) {
|
||||
float x = event.values[0];
|
||||
float y = event.values[1];
|
||||
float z = event.values[2];
|
||||
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
|
||||
int displayRotation = display.getRotation();
|
||||
|
||||
float[] adjustedValues = new float[3];
|
||||
final int axisSwap[][] = {
|
||||
{ 1, -1, 0, 1 }, // ROTATION_0
|
||||
{-1, -1, 1, 0 }, // ROTATION_90
|
||||
{-1, 1, 0, 1 }, // ROTATION_180
|
||||
{ 1, 1, 1, 0 } }; // ROTATION_270
|
||||
|
||||
final int[] as = axisSwap[displayRotation];
|
||||
adjustedValues[0] = (float)as[0] * event.values[ as[2] ];
|
||||
adjustedValues[1] = (float)as[1] * event.values[ as[3] ];
|
||||
adjustedValues[2] = event.values[2];
|
||||
|
||||
float x = adjustedValues[0];
|
||||
float y = adjustedValues[1];
|
||||
float z = adjustedValues[2];
|
||||
GodotLib.accelerometer(x,y,z);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -271,6 +271,7 @@ public class GodotIO {
|
|||
|
||||
public String[] files;
|
||||
public int current;
|
||||
public String path;
|
||||
}
|
||||
|
||||
public int last_dir_id=1;
|
||||
|
|
@ -281,6 +282,7 @@ public class GodotIO {
|
|||
|
||||
AssetDir ad = new AssetDir();
|
||||
ad.current=0;
|
||||
ad.path=path;
|
||||
|
||||
try {
|
||||
ad.files = am.list(path);
|
||||
|
|
@ -290,6 +292,7 @@ public class GodotIO {
|
|||
return -1;
|
||||
}
|
||||
|
||||
//System.out.printf("Opened dir: %s\n",path);
|
||||
++last_dir_id;
|
||||
dirs.put(last_dir_id,ad);
|
||||
|
||||
|
|
@ -297,6 +300,32 @@ public class GodotIO {
|
|||
|
||||
}
|
||||
|
||||
public boolean dir_is_dir(int id) {
|
||||
if (!dirs.containsKey(id)) {
|
||||
System.out.printf("dir_next: invalid dir id: %d\n",id);
|
||||
return false;
|
||||
}
|
||||
AssetDir ad = dirs.get(id);
|
||||
//System.out.printf("go next: %d,%d\n",ad.current,ad.files.length);
|
||||
int idx = ad.current;
|
||||
if (idx>0)
|
||||
idx--;
|
||||
|
||||
if (idx>=ad.files.length)
|
||||
return false;
|
||||
String fname = ad.files[idx];
|
||||
|
||||
try {
|
||||
if (ad.path.equals(""))
|
||||
am.open(fname);
|
||||
else
|
||||
am.open(ad.path+"/"+fname);
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public String dir_next(int id) {
|
||||
|
||||
if (!dirs.containsKey(id)) {
|
||||
|
|
@ -305,8 +334,12 @@ public class GodotIO {
|
|||
}
|
||||
|
||||
AssetDir ad = dirs.get(id);
|
||||
if (ad.current>=ad.files.length)
|
||||
//System.out.printf("go next: %d,%d\n",ad.current,ad.files.length);
|
||||
|
||||
if (ad.current>=ad.files.length) {
|
||||
ad.current++;
|
||||
return "";
|
||||
}
|
||||
String r = ad.files[ad.current];
|
||||
ad.current++;
|
||||
return r;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -71,14 +71,16 @@ public class GodotView extends GLSurfaceView {
|
|||
private static GodotIO io;
|
||||
private static boolean firsttime=true;
|
||||
private static boolean use_gl2=false;
|
||||
private static boolean use_32=false;
|
||||
|
||||
private Godot activity;
|
||||
|
||||
public GodotView(Context context,GodotIO p_io,boolean p_use_gl2, Godot p_activity) {
|
||||
public GodotView(Context context,GodotIO p_io,boolean p_use_gl2, boolean p_use_32_bits, Godot p_activity) {
|
||||
super(context);
|
||||
ctx=context;
|
||||
io=p_io;
|
||||
use_gl2=p_use_gl2;
|
||||
use_32=p_use_32_bits;
|
||||
|
||||
activity = p_activity;
|
||||
|
||||
|
|
@ -366,9 +368,17 @@ public class GodotView extends GLSurfaceView {
|
|||
* custom config chooser. See ConfigChooser class definition
|
||||
* below.
|
||||
*/
|
||||
setEGLConfigChooser( translucent ?
|
||||
new ConfigChooser(8, 8, 8, 8, depth, stencil) :
|
||||
new ConfigChooser(5, 6, 5, 0, depth, stencil) );
|
||||
|
||||
if (use_32) {
|
||||
setEGLConfigChooser( translucent ?
|
||||
new ConfigChooser(8, 8, 8, 8, 24, stencil) :
|
||||
new ConfigChooser(8, 8, 8, 8, 24, stencil) );
|
||||
|
||||
} else {
|
||||
setEGLConfigChooser( translucent ?
|
||||
new ConfigChooser(8, 8, 8, 8, 16, stencil) :
|
||||
new ConfigChooser(5, 6, 5, 0, 16, stencil) );
|
||||
}
|
||||
|
||||
/* Set the renderer responsible for frame rendering */
|
||||
setRenderer(new Renderer());
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -12,4 +12,4 @@
|
|||
|
||||
# Project target.
|
||||
#android.library=true
|
||||
target=android-15
|
||||
target=android-19
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -764,6 +764,8 @@ EditorExportPlatformBB10::~EditorExportPlatformBB10() {
|
|||
|
||||
quit_request=true;
|
||||
Thread::wait_to_finish(device_thread);
|
||||
memdelete(device_lock);
|
||||
memdelete(device_thread);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ def get_name():
|
|||
|
||||
def can_build():
|
||||
|
||||
import os
|
||||
if (not os.environ.has_key("EMSCRIPTEN_ROOT")):
|
||||
return False
|
||||
import os
|
||||
if (not os.environ.has_key("EMSCRIPTEN_ROOT")):
|
||||
return False
|
||||
return True
|
||||
|
||||
def get_opts():
|
||||
|
|
@ -36,6 +36,7 @@ def get_flags():
|
|||
('squish', 'no'),
|
||||
('speex', 'no'),
|
||||
('old_scenes', 'no'),
|
||||
('etc1', 'no'),
|
||||
# ('default_gui_theme', 'no'),
|
||||
|
||||
#('builtin_zlib', 'no'),
|
||||
|
|
@ -44,33 +45,36 @@ def get_flags():
|
|||
|
||||
|
||||
def configure(env):
|
||||
|
||||
|
||||
env.Append(CPPPATH=['#platform/javascript'])
|
||||
|
||||
|
||||
em_path=os.environ["EMSCRIPTEN_ROOT"]
|
||||
|
||||
|
||||
env['ENV']['PATH'] = em_path+":"+env['ENV']['PATH']
|
||||
|
||||
env['CC'] = em_path+'/emcc'
|
||||
env['CXX'] = em_path+'/emcc'
|
||||
env['AR'] = em_path+"/emar"
|
||||
env['RANLIB'] = em_path+"/emranlib"
|
||||
#env['AR'] = em_path+"/emar"
|
||||
env['AR'] = em_path+"/emcc"
|
||||
env['ARFLAGS'] = "-o"
|
||||
|
||||
# env['RANLIB'] = em_path+"/emranlib"
|
||||
env['RANLIB'] = em_path + "/emcc"
|
||||
env['OBJSUFFIX'] = '.bc'
|
||||
env['LIBSUFFIX'] = '.bc'
|
||||
env['CCCOM'] = "$CC -o $TARGET $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"
|
||||
env['CXXCOM'] = "$CC -o $TARGET $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"
|
||||
|
||||
# env.Append(LIBS=['c','m','stdc++','log','GLESv1_CM','GLESv2'])
|
||||
|
||||
# env["LINKFLAGS"]= string.split(" -g --sysroot="+ld_sysroot+" -Wl,--no-undefined -Wl,-z,noexecstack ")
|
||||
|
||||
if (env["target"]=="release"):
|
||||
|
||||
env.Append(CCFLAGS=['-O2'])
|
||||
|
||||
elif (env["target"]=="release_debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
|
||||
|
||||
elif (env["target"]=="debug"):
|
||||
env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-O2', '-DDEBUG_ENABLED'])
|
||||
#env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-g4', '-DDEBUG_ENABLED'])
|
||||
env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
|
||||
|
||||
env.Append(CPPFLAGS=["-fno-exceptions",'-DNO_SAFE_CAST','-fno-rtti'])
|
||||
|
|
@ -84,10 +88,11 @@ def configure(env):
|
|||
lzma_binpath = em_path+"/third_party/lzma.js/lzma-native"
|
||||
lzma_decoder = em_path+"/third_party/lzma.js/lzma-decoder.js"
|
||||
lzma_dec = "LZMA.decompress"
|
||||
|
||||
env.Append(LINKFLAGS=['--compression',lzma_binpath+","+lzma_decoder+","+lzma_dec])
|
||||
|
||||
env.Append(LINKFLAGS=['-s','ASM_JS=1'])
|
||||
env.Append(LINKFLAGS=['-O2'])
|
||||
|
||||
|
||||
#env.Append(LINKFLAGS=['-g4'])
|
||||
|
||||
#print "CCCOM is:", env.subst('$CCCOM')
|
||||
#print "P: ", env['p'], " Platofrm: ", env['platform']
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -230,6 +230,12 @@ OS::VideoMode OS_JavaScript::get_video_mode(int p_screen) const {
|
|||
|
||||
return default_videomode;
|
||||
}
|
||||
|
||||
Size2 OS_JavaScript::get_window_size() const {
|
||||
|
||||
return Vector2(default_videomode.width,default_videomode.height);
|
||||
}
|
||||
|
||||
void OS_JavaScript::get_fullscreen_mode_list(List<VideoMode> *p_list,int p_screen) const {
|
||||
|
||||
p_list->push_back(default_videomode);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -127,6 +127,7 @@ public:
|
|||
virtual VideoMode get_video_mode(int p_screen=0) const;
|
||||
virtual void get_fullscreen_mode_list(List<VideoMode> *p_list,int p_screen=0) const;
|
||||
|
||||
virtual Size2 get_window_size() const;
|
||||
virtual String get_name();
|
||||
virtual MainLoop *get_main_loop() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -99,6 +99,13 @@ public:
|
|||
|
||||
CursorShape cursor_shape;
|
||||
MouseMode mouse_mode;
|
||||
|
||||
bool minimized;
|
||||
bool maximized;
|
||||
bool zoomed;
|
||||
Vector<Rect2> screens;
|
||||
int current_screen;
|
||||
Rect2 restore_rect;
|
||||
protected:
|
||||
|
||||
virtual int get_video_driver_count() const;
|
||||
|
|
@ -112,16 +119,13 @@ protected:
|
|||
virtual void set_main_loop( MainLoop * p_main_loop );
|
||||
virtual void delete_main_loop();
|
||||
|
||||
|
||||
public:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static OS_OSX* singleton;
|
||||
|
||||
void wm_minimized(bool p_minimized);
|
||||
|
||||
virtual String get_name();
|
||||
|
||||
virtual void set_cursor_shape(CursorShape p_shape);
|
||||
|
|
@ -162,6 +166,24 @@ public:
|
|||
|
||||
virtual void move_window_to_foreground();
|
||||
|
||||
virtual int get_screen_count() const;
|
||||
virtual int get_current_screen() const;
|
||||
virtual void set_current_screen(int p_screen);
|
||||
virtual Point2 get_screen_position(int p_screen=0);
|
||||
virtual Point2 get_window_position() const;
|
||||
virtual void set_window_position(const Point2& p_position);
|
||||
virtual void set_window_size(const Size2 p_size);
|
||||
virtual void set_window_fullscreen(bool p_enabled);
|
||||
virtual bool is_window_fullscreen() const;
|
||||
virtual void set_window_resizable(bool p_enabled);
|
||||
virtual bool is_window_resizable() const;
|
||||
virtual void set_window_minimized(bool p_enabled);
|
||||
virtual bool is_window_minimized() const;
|
||||
virtual void set_window_maximized(bool p_enabled);
|
||||
virtual bool is_window_maximized() const;
|
||||
Size2 get_screen_size(int p_screen);
|
||||
|
||||
|
||||
void run();
|
||||
|
||||
void set_mouse_mode(MouseMode p_mode);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -227,19 +227,6 @@ static int button_mask=0;
|
|||
// centerCursor(window);
|
||||
}
|
||||
|
||||
- (void)windowDidMiniaturize:(NSNotification *)notification
|
||||
{
|
||||
// _GodotInputWindowIconify(window, GL_TRUE);
|
||||
}
|
||||
|
||||
- (void)windowDidDeminiaturize:(NSNotification *)notification
|
||||
{
|
||||
//if (window->monitor)
|
||||
// enterFullscreenMode(window);
|
||||
|
||||
// _GodotInputWindowIconify(window, GL_FALSE);
|
||||
}
|
||||
|
||||
- (void)windowDidBecomeKey:(NSNotification *)notification
|
||||
{
|
||||
// _GodotInputWindowFocus(window, GL_TRUE);
|
||||
|
|
@ -256,6 +243,21 @@ static int button_mask=0;
|
|||
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
|
||||
}
|
||||
|
||||
- (void)windowDidMiniaturize:(NSNotification*)notification
|
||||
{
|
||||
OS_OSX::singleton->wm_minimized(true);
|
||||
if (OS_OSX::singleton->get_main_loop())
|
||||
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
|
||||
};
|
||||
|
||||
- (void)windowDidDeminiaturize:(NSNotification*)notification
|
||||
{
|
||||
|
||||
OS_OSX::singleton->wm_minimized(false);
|
||||
if (OS_OSX::singleton->get_main_loop())
|
||||
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
|
||||
};
|
||||
|
||||
@end
|
||||
|
||||
@interface GodotContentView : NSView
|
||||
|
|
@ -903,7 +905,7 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
|
|||
unsigned int attributeCount = 0;
|
||||
|
||||
// OS X needs non-zero color size, so set resonable values
|
||||
int colorBits = 24;
|
||||
int colorBits = 32;
|
||||
|
||||
// Fail if a robustness strategy was requested
|
||||
|
||||
|
|
@ -1018,7 +1020,15 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
|
|||
|
||||
_ensure_data_dir();
|
||||
|
||||
NSArray *screenArray = [NSScreen screens];
|
||||
printf("nscreen count %i\n", (int)[screenArray count]);
|
||||
for (int i=0; i<[screenArray count]; i++) {
|
||||
|
||||
NSRect nsrect = [[screenArray objectAtIndex: i] visibleFrame];
|
||||
screens.push_back(Rect2(nsrect.origin.x, nsrect.origin.y, nsrect.size.width, nsrect.size.height));
|
||||
printf("added screen %i\n", screens.size());
|
||||
};
|
||||
restore_rect = Rect2(get_window_position(), get_window_size());
|
||||
}
|
||||
void OS_OSX::finalize() {
|
||||
|
||||
|
|
@ -1231,7 +1241,10 @@ void OS_OSX::swap_buffers() {
|
|||
|
||||
}
|
||||
|
||||
void OS_OSX::wm_minimized(bool p_minimized) {
|
||||
|
||||
minimized = p_minimized;
|
||||
};
|
||||
|
||||
void OS_OSX::set_video_mode(const VideoMode& p_video_mode,int p_screen) {
|
||||
|
||||
|
|
@ -1245,9 +1258,118 @@ void OS_OSX::get_fullscreen_mode_list(List<VideoMode> *p_list,int p_screen) cons
|
|||
|
||||
}
|
||||
|
||||
|
||||
int OS_OSX::get_screen_count() const {
|
||||
|
||||
return screens.size();
|
||||
};
|
||||
|
||||
int OS_OSX::get_current_screen() const {
|
||||
|
||||
return current_screen;
|
||||
};
|
||||
|
||||
void OS_OSX::set_current_screen(int p_screen) {
|
||||
|
||||
current_screen = p_screen;
|
||||
};
|
||||
|
||||
Point2 OS_OSX::get_screen_position(int p_screen) {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_screen, screens.size(), Point2());
|
||||
return screens[p_screen].pos;
|
||||
};
|
||||
|
||||
Size2 OS_OSX::get_screen_size(int p_screen) {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_screen, screens.size(), Point2());
|
||||
return screens[p_screen].size;
|
||||
};
|
||||
|
||||
Point2 OS_OSX::get_window_position() const {
|
||||
|
||||
return Size2([window_object frame].origin.x, [window_object frame].origin.y);
|
||||
};
|
||||
|
||||
|
||||
void OS_OSX::set_window_position(const Point2& p_position) {
|
||||
|
||||
[window_object setFrame:NSMakeRect(p_position.x, p_position.y, [window_object frame].size.width, [window_object frame].size.height) display:YES];
|
||||
};
|
||||
|
||||
Size2 OS_OSX::get_window_size() const {
|
||||
return Vector2(current_videomode.width, current_videomode.height);
|
||||
}
|
||||
|
||||
return Size2([window_object frame].size.width, [window_object frame].size.height);
|
||||
};
|
||||
|
||||
void OS_OSX::set_window_size(const Size2 p_size) {
|
||||
|
||||
NSRect frame = [window_object frame];
|
||||
[window_object setFrame:NSMakeRect(frame.origin.x, frame.origin.y, p_size.x, p_size.y) display:YES];
|
||||
};
|
||||
|
||||
void OS_OSX::set_window_fullscreen(bool p_enabled) {
|
||||
|
||||
[window_object performZoom:nil];
|
||||
zoomed = p_enabled;
|
||||
};
|
||||
|
||||
bool OS_OSX::is_window_fullscreen() const {
|
||||
|
||||
if ( [window_object respondsToSelector:@selector(isZoomed)] )
|
||||
return [window_object isZoomed];
|
||||
|
||||
return zoomed;
|
||||
};
|
||||
|
||||
void OS_OSX::set_window_resizable(bool p_enabled) {
|
||||
|
||||
if (p_enabled)
|
||||
[window_object setStyleMask:[window_object styleMask] | NSResizableWindowMask ];
|
||||
else
|
||||
[window_object setStyleMask:[window_object styleMask] & ~NSResizableWindowMask ];
|
||||
};
|
||||
|
||||
bool OS_OSX::is_window_resizable() const {
|
||||
|
||||
return [window_object styleMask] & NSResizableWindowMask;
|
||||
};
|
||||
|
||||
void OS_OSX::set_window_minimized(bool p_enabled) {
|
||||
|
||||
if (p_enabled)
|
||||
[window_object performMiniaturize:nil];
|
||||
else
|
||||
[window_object deminiaturize:nil];
|
||||
};
|
||||
|
||||
bool OS_OSX::is_window_minimized() const {
|
||||
|
||||
if ( [window_object respondsToSelector:@selector(isMiniaturized)])
|
||||
return [window_object isMiniaturized];
|
||||
|
||||
return minimized;
|
||||
};
|
||||
|
||||
|
||||
void OS_OSX::set_window_maximized(bool p_enabled) {
|
||||
|
||||
if (p_enabled) {
|
||||
restore_rect = Rect2(get_window_position(), get_window_size());
|
||||
[window_object setFrame:[[[NSScreen screens] objectAtIndex:current_screen] visibleFrame] display:YES];
|
||||
} else {
|
||||
set_window_size(restore_rect.size);
|
||||
set_window_position(restore_rect.pos);
|
||||
};
|
||||
maximized = p_enabled;
|
||||
};
|
||||
|
||||
bool OS_OSX::is_window_maximized() const {
|
||||
|
||||
// don't know
|
||||
return maximized;
|
||||
};
|
||||
|
||||
|
||||
void OS_OSX::move_window_to_foreground() {
|
||||
|
||||
|
|
@ -1477,5 +1599,9 @@ OS_OSX::OS_OSX() {
|
|||
last_id=1;
|
||||
cursor_shape=CURSOR_ARROW;
|
||||
|
||||
current_screen = 0;
|
||||
|
||||
maximized = false;
|
||||
minimized = false;
|
||||
zoomed = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -56,7 +56,6 @@ void OS_Server::initialize(const VideoMode& p_desired,int p_video_driver,int p_a
|
|||
args=OS::get_singleton()->get_cmdline_args();
|
||||
current_videomode=p_desired;
|
||||
main_loop=NULL;
|
||||
|
||||
|
||||
rasterizer = memnew( RasterizerDummy );
|
||||
|
||||
|
|
@ -163,6 +162,12 @@ OS::VideoMode OS_Server::get_video_mode(int p_screen) const {
|
|||
|
||||
return current_videomode;
|
||||
}
|
||||
|
||||
Size2 OS_Server::get_window_size() const {
|
||||
|
||||
return Vector2(current_videomode.width,current_videomode.height) ;
|
||||
}
|
||||
|
||||
void OS_Server::get_fullscreen_mode_list(List<VideoMode> *p_list,int p_screen) const {
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -109,6 +109,8 @@ public:
|
|||
virtual VideoMode get_video_mode(int p_screen=0) const;
|
||||
virtual void get_fullscreen_mode_list(List<VideoMode> *p_list,int p_screen=0) const;
|
||||
|
||||
virtual Size2 get_window_size() const;
|
||||
|
||||
virtual void move_window_to_foreground();
|
||||
|
||||
void run();
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -12,3 +12,9 @@ common_win=[
|
|||
]
|
||||
|
||||
env.Program('#bin/godot',['godot_win.cpp']+common_win,PROGSUFFIX=env["PROGSUFFIX"])
|
||||
|
||||
# Microsoft Visual Studio Project Generation
|
||||
if (env['vsproj'])=="yes":
|
||||
env.vs_srcs = env.vs_srcs + ["platform/windows/godot_win.cpp"]
|
||||
for x in common_win:
|
||||
env.vs_srcs = env.vs_srcs + ["platform/windows/" + x]
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -26,161 +26,161 @@
|
|||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
#ifdef OPENGL_ENABLED
|
||||
#include "ctxgl_procaddr.h"
|
||||
#include <GL/gl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
static PROC _gl_procs[]={
|
||||
(PROC)glCullFace,
|
||||
(PROC)glFrontFace,
|
||||
(PROC)glHint,
|
||||
(PROC)glLineWidth,
|
||||
(PROC)glPointSize,
|
||||
(PROC)glPolygonMode,
|
||||
(PROC)glScissor,
|
||||
(PROC)glTexParameterf,
|
||||
(PROC)glTexParameterfv,
|
||||
(PROC)glTexParameteri,
|
||||
(PROC)glTexParameteriv,
|
||||
(PROC)glTexImage1D,
|
||||
(PROC)glTexImage2D,
|
||||
(PROC)glDrawBuffer,
|
||||
(PROC)glClear,
|
||||
(PROC)glClearColor,
|
||||
(PROC)glClearStencil,
|
||||
(PROC)glClearDepth,
|
||||
(PROC)glStencilMask,
|
||||
(PROC)glColorMask,
|
||||
(PROC)glDepthMask,
|
||||
(PROC)glDisable,
|
||||
(PROC)glEnable,
|
||||
(PROC)glFinish,
|
||||
(PROC)glFlush,
|
||||
(PROC)glBlendFunc,
|
||||
(PROC)glLogicOp,
|
||||
(PROC)glStencilFunc,
|
||||
(PROC)glStencilOp,
|
||||
(PROC)glDepthFunc,
|
||||
(PROC)glPixelStoref,
|
||||
(PROC)glPixelStorei,
|
||||
(PROC)glReadBuffer,
|
||||
(PROC)glReadPixels,
|
||||
(PROC)glGetBooleanv,
|
||||
(PROC)glGetDoublev,
|
||||
(PROC)glGetError,
|
||||
(PROC)glGetFloatv,
|
||||
(PROC)glGetIntegerv,
|
||||
(PROC)glGetString,
|
||||
(PROC)glGetTexImage,
|
||||
(PROC)glGetTexParameterfv,
|
||||
(PROC)glGetTexParameteriv,
|
||||
(PROC)glGetTexLevelParameterfv,
|
||||
(PROC)glGetTexLevelParameteriv,
|
||||
(PROC)glIsEnabled,
|
||||
(PROC)glDepthRange,
|
||||
(PROC)glViewport,
|
||||
/* not detected in ATI */
|
||||
(PROC)glDrawArrays,
|
||||
(PROC)glDrawElements,
|
||||
(PROC)glGetPointerv,
|
||||
(PROC)glPolygonOffset,
|
||||
(PROC)glCopyTexImage1D,
|
||||
(PROC)glCopyTexImage2D,
|
||||
(PROC)glCopyTexSubImage1D,
|
||||
(PROC)glCopyTexSubImage2D,
|
||||
(PROC)glTexSubImage1D,
|
||||
(PROC)glTexSubImage2D,
|
||||
(PROC)glBindTexture,
|
||||
(PROC)glDeleteTextures,
|
||||
(PROC)glGenTextures,
|
||||
(PROC)glIsTexture,
|
||||
|
||||
0
|
||||
};
|
||||
|
||||
static const char* _gl_proc_names[]={
|
||||
"glCullFace",
|
||||
"glFrontFace",
|
||||
"glHint",
|
||||
"glLineWidth",
|
||||
"glPointSize",
|
||||
"glPolygonMode",
|
||||
"glScissor",
|
||||
"glTexParameterf",
|
||||
"glTexParameterfv",
|
||||
"glTexParameteri",
|
||||
"glTexParameteriv",
|
||||
"glTexImage1D",
|
||||
"glTexImage2D",
|
||||
"glDrawBuffer",
|
||||
"glClear",
|
||||
"glClearColor",
|
||||
"glClearStencil",
|
||||
"glClearDepth",
|
||||
"glStencilMask",
|
||||
"glColorMask",
|
||||
"glDepthMask",
|
||||
"glDisable",
|
||||
"glEnable",
|
||||
"glFinish",
|
||||
"glFlush",
|
||||
"glBlendFunc",
|
||||
"glLogicOp",
|
||||
"glStencilFunc",
|
||||
"glStencilOp",
|
||||
"glDepthFunc",
|
||||
"glPixelStoref",
|
||||
"glPixelStorei",
|
||||
"glReadBuffer",
|
||||
"glReadPixels",
|
||||
"glGetBooleanv",
|
||||
"glGetDoublev",
|
||||
"glGetError",
|
||||
"glGetFloatv",
|
||||
"glGetIntegerv",
|
||||
"glGetString",
|
||||
"glGetTexImage",
|
||||
"glGetTexParameterfv",
|
||||
"glGetTexParameteriv",
|
||||
"glGetTexLevelParameterfv",
|
||||
"glGetTexLevelParameteriv",
|
||||
"glIsEnabled",
|
||||
"glDepthRange",
|
||||
"glViewport",
|
||||
/* not detected in ati */
|
||||
"glDrawArrays",
|
||||
"glDrawElements",
|
||||
"glGetPointerv",
|
||||
"glPolygonOffset",
|
||||
"glCopyTexImage1D",
|
||||
"glCopyTexImage2D",
|
||||
"glCopyTexSubImage1D",
|
||||
"glCopyTexSubImage2D",
|
||||
"glTexSubImage1D",
|
||||
"glTexSubImage2D",
|
||||
"glBindTexture",
|
||||
"glDeleteTextures",
|
||||
"glGenTextures",
|
||||
"glIsTexture",
|
||||
|
||||
0
|
||||
};
|
||||
|
||||
PROC get_gl_proc_address(const char* p_address) {
|
||||
|
||||
PROC proc = wglGetProcAddress((const CHAR*)p_address);
|
||||
if (!proc) {
|
||||
|
||||
int i=0;
|
||||
while(_gl_procs[i]) {
|
||||
|
||||
if (strcmp(p_address,_gl_proc_names[i])==0) {
|
||||
return _gl_procs[i];
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
return proc;
|
||||
}
|
||||
#endif
|
||||
#ifdef OPENGL_ENABLED
|
||||
#include "ctxgl_procaddr.h"
|
||||
#include <GL/gl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
static PROC _gl_procs[]={
|
||||
(PROC)glCullFace,
|
||||
(PROC)glFrontFace,
|
||||
(PROC)glHint,
|
||||
(PROC)glLineWidth,
|
||||
(PROC)glPointSize,
|
||||
(PROC)glPolygonMode,
|
||||
(PROC)glScissor,
|
||||
(PROC)glTexParameterf,
|
||||
(PROC)glTexParameterfv,
|
||||
(PROC)glTexParameteri,
|
||||
(PROC)glTexParameteriv,
|
||||
(PROC)glTexImage1D,
|
||||
(PROC)glTexImage2D,
|
||||
(PROC)glDrawBuffer,
|
||||
(PROC)glClear,
|
||||
(PROC)glClearColor,
|
||||
(PROC)glClearStencil,
|
||||
(PROC)glClearDepth,
|
||||
(PROC)glStencilMask,
|
||||
(PROC)glColorMask,
|
||||
(PROC)glDepthMask,
|
||||
(PROC)glDisable,
|
||||
(PROC)glEnable,
|
||||
(PROC)glFinish,
|
||||
(PROC)glFlush,
|
||||
(PROC)glBlendFunc,
|
||||
(PROC)glLogicOp,
|
||||
(PROC)glStencilFunc,
|
||||
(PROC)glStencilOp,
|
||||
(PROC)glDepthFunc,
|
||||
(PROC)glPixelStoref,
|
||||
(PROC)glPixelStorei,
|
||||
(PROC)glReadBuffer,
|
||||
(PROC)glReadPixels,
|
||||
(PROC)glGetBooleanv,
|
||||
(PROC)glGetDoublev,
|
||||
(PROC)glGetError,
|
||||
(PROC)glGetFloatv,
|
||||
(PROC)glGetIntegerv,
|
||||
(PROC)glGetString,
|
||||
(PROC)glGetTexImage,
|
||||
(PROC)glGetTexParameterfv,
|
||||
(PROC)glGetTexParameteriv,
|
||||
(PROC)glGetTexLevelParameterfv,
|
||||
(PROC)glGetTexLevelParameteriv,
|
||||
(PROC)glIsEnabled,
|
||||
(PROC)glDepthRange,
|
||||
(PROC)glViewport,
|
||||
/* not detected in ATI */
|
||||
(PROC)glDrawArrays,
|
||||
(PROC)glDrawElements,
|
||||
(PROC)glGetPointerv,
|
||||
(PROC)glPolygonOffset,
|
||||
(PROC)glCopyTexImage1D,
|
||||
(PROC)glCopyTexImage2D,
|
||||
(PROC)glCopyTexSubImage1D,
|
||||
(PROC)glCopyTexSubImage2D,
|
||||
(PROC)glTexSubImage1D,
|
||||
(PROC)glTexSubImage2D,
|
||||
(PROC)glBindTexture,
|
||||
(PROC)glDeleteTextures,
|
||||
(PROC)glGenTextures,
|
||||
(PROC)glIsTexture,
|
||||
|
||||
0
|
||||
};
|
||||
|
||||
static const char* _gl_proc_names[]={
|
||||
"glCullFace",
|
||||
"glFrontFace",
|
||||
"glHint",
|
||||
"glLineWidth",
|
||||
"glPointSize",
|
||||
"glPolygonMode",
|
||||
"glScissor",
|
||||
"glTexParameterf",
|
||||
"glTexParameterfv",
|
||||
"glTexParameteri",
|
||||
"glTexParameteriv",
|
||||
"glTexImage1D",
|
||||
"glTexImage2D",
|
||||
"glDrawBuffer",
|
||||
"glClear",
|
||||
"glClearColor",
|
||||
"glClearStencil",
|
||||
"glClearDepth",
|
||||
"glStencilMask",
|
||||
"glColorMask",
|
||||
"glDepthMask",
|
||||
"glDisable",
|
||||
"glEnable",
|
||||
"glFinish",
|
||||
"glFlush",
|
||||
"glBlendFunc",
|
||||
"glLogicOp",
|
||||
"glStencilFunc",
|
||||
"glStencilOp",
|
||||
"glDepthFunc",
|
||||
"glPixelStoref",
|
||||
"glPixelStorei",
|
||||
"glReadBuffer",
|
||||
"glReadPixels",
|
||||
"glGetBooleanv",
|
||||
"glGetDoublev",
|
||||
"glGetError",
|
||||
"glGetFloatv",
|
||||
"glGetIntegerv",
|
||||
"glGetString",
|
||||
"glGetTexImage",
|
||||
"glGetTexParameterfv",
|
||||
"glGetTexParameteriv",
|
||||
"glGetTexLevelParameterfv",
|
||||
"glGetTexLevelParameteriv",
|
||||
"glIsEnabled",
|
||||
"glDepthRange",
|
||||
"glViewport",
|
||||
/* not detected in ati */
|
||||
"glDrawArrays",
|
||||
"glDrawElements",
|
||||
"glGetPointerv",
|
||||
"glPolygonOffset",
|
||||
"glCopyTexImage1D",
|
||||
"glCopyTexImage2D",
|
||||
"glCopyTexSubImage1D",
|
||||
"glCopyTexSubImage2D",
|
||||
"glTexSubImage1D",
|
||||
"glTexSubImage2D",
|
||||
"glBindTexture",
|
||||
"glDeleteTextures",
|
||||
"glGenTextures",
|
||||
"glIsTexture",
|
||||
|
||||
0
|
||||
};
|
||||
|
||||
PROC get_gl_proc_address(const char* p_address) {
|
||||
|
||||
PROC proc = wglGetProcAddress((const CHAR*)p_address);
|
||||
if (!proc) {
|
||||
|
||||
int i=0;
|
||||
while(_gl_procs[i]) {
|
||||
|
||||
if (strcmp(p_address,_gl_proc_names[i])==0) {
|
||||
return _gl_procs[i];
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
return proc;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -26,13 +26,13 @@
|
|||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
#ifndef CTXGL_PROCADDR_H
|
||||
#define CTXGL_PROCADDR_H
|
||||
|
||||
#ifdef OPENGL_ENABLED
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
PROC get_gl_proc_address(const char* p_address);
|
||||
#endif
|
||||
#endif // CTXGL_PROCADDR_H
|
||||
#ifndef CTXGL_PROCADDR_H
|
||||
#define CTXGL_PROCADDR_H
|
||||
|
||||
#ifdef OPENGL_ENABLED
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
PROC get_gl_proc_address(const char* p_address);
|
||||
#endif
|
||||
#endif // CTXGL_PROCADDR_H
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
/* GODOT ENGINE */
|
||||
/* http://www.godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
|
|
@ -26,26 +26,26 @@
|
|||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
#ifndef KEY_MAPPING_WINDOWS_H
|
||||
#define KEY_MAPPING_WINDOWS_H
|
||||
|
||||
|
||||
#include "os/keyboard.h"
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include <winuser.h>
|
||||
|
||||
|
||||
class KeyMappingWindows {
|
||||
|
||||
KeyMappingWindows() {};
|
||||
public:
|
||||
|
||||
static unsigned int get_keysym(unsigned int p_code);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
#ifndef KEY_MAPPING_WINDOWS_H
|
||||
#define KEY_MAPPING_WINDOWS_H
|
||||
|
||||
|
||||
#include "os/keyboard.h"
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include <winuser.h>
|
||||
|
||||
|
||||
class KeyMappingWindows {
|
||||
|
||||
KeyMappingWindows() {};
|
||||
public:
|
||||
|
||||
static unsigned int get_keysym(unsigned int p_code);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue