summaryrefslogtreecommitdiff
path: root/platform/android
AgeCommit message (Collapse)Author
2019-04-30SCons: Always use env.Prepend for CPPPATHRémi Verschelde
Include paths are processed from left to right, so we use Prepend to ensure that paths to bundled thirdparty files will have precedence over system paths (e.g. `/usr/include` should have lowest priority).
2019-04-27Clean up latency related functionsJuan Linietsky
2019-04-25Merge pull request #28396 from akien-mga/scons-capture-the-flagsRémi Verschelde
SCons: Review uses of CCFLAGS, CXXFLAGS and CPPFLAGS
2019-04-24Rename wrong field.Juan Linietsky
2019-04-24Remove forgotten strings in configuration filesJuan Linietsky
2019-04-24SCons: Review uses of CCFLAGS, CXXFLAGS and CPPFLAGSRémi Verschelde
Many contributors (me included) did not fully understand what CCFLAGS, CXXFLAGS and CPPFLAGS refer to exactly, and were thus not using them in the way they are intended to be. As per the SCons manual: https://www.scons.org/doc/HTML/scons-user/apa.html - CCFLAGS: General options that are passed to the C and C++ compilers. - CFLAGS: General options that are passed to the C compiler (C only; not C++). - CXXFLAGS: General options that are passed to the C++ compiler. By default, this includes the value of $CCFLAGS, so that setting $CCFLAGS affects both C and C++ compilation. - CPPFLAGS: User-specified C preprocessor options. These will be included in any command that uses the C preprocessor, including not just compilation of C and C++ source files [...], but also [...] Fortran [...] and [...] assembly language source file[s]. TL;DR: Compiler options go to CCFLAGS, unless they must be restricted to either C (CFLAGS) or C++ (CXXFLAGS). Preprocessor defines go to CPPFLAGS.
2019-04-07Android now (optionally) builds the template when exportingJuan Linietsky
Added new way to create add-ons Removed old way to create add-ons
2019-04-07Add FileAccess::set_unix_permissions for Unix platformsJuan Linietsky
2019-04-22Merge pull request #27673 from qarmin/small_fixesRémi Verschelde
Small fixes, mostly duplicated code
2019-04-19Merge pull request #28164 from BastiaanOlij/AndroidCameraPermissionRémi Verschelde
Add camera permissions to android
2019-04-18Add camera permissions to androidBastiaan Olij
2019-04-18Merge pull request #28146 from volzhs/unique_id_androidRémi Verschelde
Fix get_unique_id() on Android
2019-04-18Fix get_unique_id() on Androidvolzhs
2019-04-15Add Input::get_current_cursor_shapeGuilherme Felipe
[Clean up] Removed unused/unnecessary methods.
2019-04-09Style: Apply new changes from clang-format 8.0Rémi Verschelde
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0, so contributors can keep using those versions for now (they will not undo those changes).
2019-04-08Small fixes, mostly dupicated codeqarmin
2019-04-06Remove unused importsHendrikto
2019-04-06Use mix rate and output latency constants in audio driversRémi Verschelde
Fix default mix rate in Xaudio2 and potential shadowing issue in JAndroid.
2019-04-05Restructuring glue code to make it easier to extendBastiaan Olij
2019-04-02Enable warnings=extra on clang and GCC testers.marxin
And remove 2 warnings from warnings=extra.
2019-03-08Request Android record permission when neededDESKTOP-3H3MR3A\eloisa
2019-03-07Define android/modules globally so it appears in Project SettingsRémi Verschelde
Until now people had to add it manually to project.godot to load custom modules.
2019-03-06Restart game on GL context loss on AndroidPedro J. Estébanez
Bonus: Remove useless old code about reload hooks Fixes #22955.
2019-03-06Fix directory check when exporting projectvolzhs
Fix #26702
2019-03-06Merge pull request #26633 from akien-mga/driver-fallback-etcRémi Verschelde
Disable driver fallback to GLES2 by default
2019-03-05Fixes misleading error message when trying to exportRicardo Lüders
This patch fixes the misleading error message when users try to "export all" into an invalid destination path. Closes #26539
2019-03-05Disable driver fallback to GLES2 by defaultRémi Verschelde
GLES2 is not designed to be a drop-in replacement for the GLES3 backend, so the fallback mode has to be used knowingly. It *can* make sense for simple projects which make sure to handle the differences between both rendering backends, but most users should stick to one supported backend. By making it opt-in, we can now use this parameter to define whether to export ETC textures to Android and iOS when using GLES3 + Fallback. When using GLES3 without Fallback on Android, set the proper min GLES version in the AndroidManifest. Also made the option boolean and renamed it for clarity and to avoid conflict with the previous String option (which would always evaluate as "true" otherwise). Fixes #26569.
2019-03-03Improve VRAM texture compression checks for mobile/webRémi Verschelde
For HTML5, we need to support S3TC if running on desktop, and ETC or ETC2 for mobile, so make this explicit. Add logic to check for ETC2 support on GLES3, and remove incorrect ETC feature for GLES3 on Android. Fix ETC check invalidating templates on HTML5. Fixes #26476.
2019-03-02SCons: Move platform-specific Opus config to its moduleRémi Verschelde
2019-03-01Merge pull request #26353 from ivanarh/android_hide_keyboard_crashRémi Verschelde
Android: Fixed a possible crash in keyboard hide method.
2019-02-28Implement Audio Input support on AndroidMarcelo Fernandez
2019-02-27Android: Fixed a possible crash in keyboard hide method. It's called not ↵Ivan Ponomarev
from main thread so InputMethodManager can't be used directly.
2019-02-27Android: Fixed problems with memory leaks due to absent ↵Ivan Ponomarev
ReleaseStringUTFChars calls.
2019-02-26-Properly handle missing ETC support on exportJuan Linietsky
-Added ability for resource importers to save metadata -Added ability for resource importers to validate depending on project settings
2019-02-26-Remove harcoded opengl extension testing from OS, ask rasterizer instead.Juan Linietsky
-Fixed a bug where etc textures were imported broken
2019-02-20Add -Wshadow=local to warnings and fix reported issues.marxin
Fixes #25316.
2019-02-12Platform: Ensure classes match their header filenameRémi Verschelde
Also drop some unused files. Renamed: - `platform/iphone/sem_iphone.h` -> `semaphore_iphone.h` (same for `osx`) - `platform/uwp/gl_context_egl.h` -> `context_egl_uwp.h` - in `platform/windows`: `context_gl_win.h`, `crash_handler_win.h`, `godot_win.cpp`, `joypad.h` and `key_mapping_win.h` all renamed to use `windows`. Some classes renamed accordingly too. - `EditorExportAndroid` and `EditorExportUWP` renamed to `EditorExportPlatformAndroid` and `EditorExportPlatformUWP` - `power_android` and `power_osx` renamed to `PowerAndroid` and `PowerOSX` - `OSUWP` renamed to `OS_UWP` Dropped: - `platform/windows/ctxgl_procaddr.h`
2019-01-26Fix code style issuesRémi Verschelde
2019-01-25Improve custom thread numbering for POSIXIgnacio Etcheverry
We lazily assign new IDs to threads that do not have one. This is the case for threads not created by the Godot API.
2019-01-21Add function to obtain filesystem type from DirAccess.Juan Linietsky
Change EditorFileSystem to not use directory modification times on FAT32, fixes #20946
2019-01-21ExportDialog: Make error messages translatableRémi Verschelde
Also fix missing newlines that caused #24202.
2019-01-16Android: Enable arm64-v8a export by defaultRémi Verschelde
From August 1, 2019, Google Play requires that all new apps and app updates include 64-bit versions, so we enable ARM64 by default. IINM support for x86 and x86_64 is still be optional, so not enabling them out of the box. Part of #25030.
2019-01-16SCons: Drop unused MPC_FIXED_POINT defineRémi Verschelde
2019-01-16Android: Add support for x86_64 architectureRémi Verschelde
Like arm64v8, this is only supported by API 21 and later, so we enforce 21 as min API for x86_64. Part of #25030.
2019-01-15Fix Android keep screen on working properlyvolzhs
2019-01-09Don't use -ffast-math or other unsafe math optimizationsHein-Pieter van Braam
Godot supports many different compilers and for production releases we have to support 3 currently: GCC8, Clang6, and MSVC2017. These compilers all do slightly different things with -ffast-math and it is causing issues now. See #24841, #24540, #10758, #10070. And probably other complaints about physics differences between release and release_debug builds. I've done some performance comparisons on Linux x86_64. All tests are ran 20 times. Bunnymark: (higher is better) (bunnies) min max stdev average fast-math 7332 7597 71 7432 this pr 7379 7779 108 7621 (102%) FPBench (gdscript port http://fpbench.org/) (lower is better) (ms) fast-math 15441 16127 192 15764 this pr 15671 16855 326 16001 (99%) Float_add (adding floats in a tight loop) (lower is better) (sec) fast-math 5.49 5.78 0.07 5.65 this pr 5.65 5.90 0.06 5.76 (98%) Float_div (dividing floats in a tight loop) (lower is better) (sec) fast-math 11.70 12.36 0.18 11.99 this pr 11.92 12.32 0.12 12.12 (99%) Float_mul (multiplying floats in a tight loop) (lower is better) (sec) fast-math 11.72 12.17 0.12 11.93 this pr 12.01 12.62 0.17 12.26 (97%) I have also looked at FPS numbers for tps-demo, 3d platformer, 2d platformer, and sponza and could not find any measurable difference. I believe that given the issues and oft-reported (physics) glitches on release builds I believe that the couple of percent of tight-loop floating point performance regression is well worth it. This fixes #24540 and fixes #24841
2019-01-04Merge pull request #24592 from volzhs/android-etcRémi Verschelde
Make possible to use ETC texture format with GLES3 on Android
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-12-26Make possible to use ETC texture format with GLES3 on Androidvolzhs
Currently, textures are not exported if use ETC on project settings and export project with GLES3. GLES3 should be able to use ETC format also.
2018-12-20Android: Better identify thirdparty C/C++ codeRémi Verschelde
- The `cpu-features.{c,h}` code was only used by chance by the webm (libvpx) code, so I moved it there. It was actually introduced before that and wasn't in use, and libvpx just happened to be able to compile thanks to it being bundled. It could potentially be compiled on the fly from the Android NDK, but since we plan to replace the webm module by a GDNative plugin in the near future, I went the bundling route. - `ifaddrs_android.h` is already provided in the Android NDK as `ifaddrs.h`, same as on other Unixes. Yet we cannot use it until we up the min API level to 24, where `getifaddrs` is first defined. I moved the files to `thirdparty/misc` and synced them with upstream WebRTC (only indentation changes and removal of `static` qualifiers). Also removes dropped thirdparty files from COPYRIGHT.txt after changes in #24105 and #24145.