summaryrefslogtreecommitdiffstats
path: root/platform/javascript/display_server_javascript.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* [HTML5] Easier HTML templates, better deinit/cleanup.Fabio Alessandrelli2021-02-191-1/+1
|
* [HTML5] Detect screen scale and DPI.Fabio Alessandrelli2021-02-121-2/+7
| | | | | | | | `OS.get_screen_scale` will now return the `window.devicePixelRatio` value, `OS.get_screen_dpi` uses CSS media queries to find approximate DPI value for the current display. `OS.get_screen_size` also return the actual screen size (not the CSS pixel size).
* [HTML5] Handle contextmenu, webglcontextlost internally.Fabio Alessandrelli2021-02-111-0/+3
| | | | | This way they are automatically cleaned up when the engine exits, landing a hand to browsers garbage collectors.
* [HTML5] Fix mouse_mode and fullscreen detection.Fabio Alessandrelli2021-02-021-2/+2
| | | | | | | The canvas_id is `#`-prefixed to work with emscripten as a CSS selector. When comparing to an event target ID (e.g. when checking if the canvas is fullscreen, or is locking the mouse) we need to skip the first char (the hash).
* [HTML5] Custom Gamepad library to allow remapping.Fabio Alessandrelli2021-01-181-45/+35
| | | | | | | No longer use emscripten functions for gamepads, implement them as library functions in library_godot_display.js instead. This allows us to do a better job at "guessing" vendorId, productId, OS, etc. thus allowing us to better find the remapping for the controller.
* Update copyright statements to 2021Rémi Verschelde2021-01-011-2/+2
| | | | | | | | | | | | | | Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
* Fix missed renamings from empty() to is_empty()Rémi Verschelde2020-12-291-1/+1
| | | | Those were missed in #44401 or added by later PRs.
* [HTML5] Fix broken layout on load in HiDPI screensFabio Alessandrelli2020-11-301-2/+2
| | | | | | | | | | | | | This was caused by the devicePixelRatio being applied twice, once by the HTML code, once by the OS code. More specifically, OS.get_window_size() would return the canvas element size, while OS.set_window_size() would set the element size to the specified value times the devicePixelRatio. Calling OS.set_window_size(OS.get_window_size()) would reapply the devicePixelRatio every time. This commit changes the behaviour so that OS.set_window_size() do not apply the devicePixelRatio to the canvas element size, by it divides the CSS size instead.
* Remove empty lines around braces with the formatting scriptAaron Franke2020-11-161-2/+0
|
* [HTML5] Port JavaScript inline code to libraries.Fabio Alessandrelli2020-11-101-237/+81
| | | | | | | | | The API is implemented in javascript, and generates C functions that can be called from godot. This allows much cleaner code replacing all `EM_ASM` calls in our C++ code with plain C function calls. This also gets rid of few hacks and comes with few optimizations (e.g. custom cursor shapes should be much faster now).
* Better HiDPI support in HTML5.Fabio Alessandrelli2020-09-231-2/+6
|
* Window event listener do not use capture.Fabio Alessandrelli2020-09-231-2/+5
|
* Small refactor to JavaScript handlers.Fabio Alessandrelli2020-09-231-19/+10
| | | | | Crated helper class in native/utils.js. Simplify code in OS/DisplayServer.
* Implement HTML5 cancel/ok button swap on Windows.Fabio Alessandrelli2020-07-271-0/+15
| | | | Platform is detected on init via the `navigator.platform` string.
* Properly set HTML5 DisplayServer init error value.Fabio Alessandrelli2020-07-271-0/+2
| | | | Checked in main.cpp, would cause the engine to not load.
* [JS] Check canvas size each loop, force redraw.Fabio Alessandrelli2020-07-011-0/+16
| | | | Fix compatibility issues, achieve smoother resizing.
* More static methods in DisplayServerJavaScript.Fabio Alessandrelli2020-07-011-9/+8
| | | | Were static functions in cpp file, polluting global namespace.
* Refactor canvas ID and locale handling.Fabio Alessandrelli2020-07-011-45/+23
|
* Swtich HTML5 key detection from keyCode to code.Fabio Alessandrelli2020-06-041-2/+2
| | | | | | | The value of this, does not include the layout. The code has extra logic to map the unicode value to our keylist, supporting ASCII and Latin-1. Also add support for `physical_keycode` in HTML5 platform.
* Style: Enforce separation line between function definitionsRémi Verschelde2020-05-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
* Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde2020-05-141-40/+0
| | | | | | | | | | | | | | Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
* Style: Fix missing/invalid copyright headersRémi Verschelde2020-05-141-0/+30
|
* Update game controller enums.Marcel Admiraal2020-05-131-8/+1
|
* Add drop files functionFabio Alessandrelli2020-05-101-2/+29
|
* Fix Closure compiler build, python style.Fabio Alessandrelli2020-05-101-5/+5
| | | | Move copyToFS into utils.js library included with '--pre-js'.
* DisplayServerJavaScript implementation.Fabio Alessandrelli2020-05-101-0/+1181