Juan Linietsky
15144c24bd
Implement a transient_to_focused mode
...
This intends to be the correct way to handle non-child windows becoming covered by the current window when becoming focused.
Enabling this property on select windows, they will become transient to the currently focused one when becoming visible.
This deprecates the "unparent_when_invisible" function introduced by #76025 .
2024-01-14 18:51:44 +01:00
bruvzg
3badb90020
[Windows] Add support for hex vendor/device IDs in the Angle blocklist. Add Intel Gen5/Gen6/Gen7 GPUs to Angle blocklist.
2024-01-09 19:28:45 +02:00
Rémi Verschelde
ceafa6120d
Merge pull request #84246 from bruvzg/win_frac_refresh
...
[Windows] Use CCD API to get fractional screen refresh rates.
2024-01-04 14:25:14 +01:00
Yuri Sizov
3a8524dd92
Merge pull request #83452 from RandomShaper/rd_common
...
Split `RenderingDevice` into API-agnostic and `RenderingDeviceDriver` parts
2023-12-20 20:09:18 +01:00
Pedro J. Estébanez
12a519bae2
Split RenderingDevice into API-agnostic and RenderingDeviceDriver parts
...
Credit and thanks to @bruzvg for multiple build fixes, update of 3rd-party items and MinGW support.
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-12-20 19:18:08 +01:00
Yuri Sizov
aee8a3bada
Merge pull request #75489 from bruvzg/init_pos_usable
...
[DisplayServer] Use screen "usable rect" instead of full rect to calculate initial window rect.
2023-12-19 20:32:10 +01:00
bruvzg
e01b22a69d
[Windows] Make Windows Ink tablet API default, add dummy driver to disable tablet input.
2023-12-18 22:36:54 +02:00
Rémi Verschelde
41365c6c8b
Merge pull request #70315 from RandomShaper/d3d12_mesa
...
Direct3D 12 Rendering Driver (Mesa NIR approach)
2023-12-12 21:58:57 +01:00
Pedro J. Estébanez
2f47c57385
Add Direct3D 12 RenderingDevice implementation
2023-12-12 19:10:04 +01:00
bruvzg
b65635ae51
[Windows] Always use ANGLE in ARM builds.
2023-12-09 20:47:46 +02:00
bruvzg
b02cf351f3
[DisplayServer] Use screen "usable rect" instead of full rect to calculate initial window rect.
2023-12-04 07:56:33 +02:00
Marius Hanl
40d7320a17
Do not consume (eat) mouse messages with no_focus Window's (Godot PopupMenu)
...
Window's with the no_focus flag should still process mouse events and not consume them. Otherwise all mouse pressed operations will not work inside Godot's PopupMenu.
This problem is Windows only, all other platforms do process mouse events for PopupMenu's correctly.
2023-11-28 19:43:07 +01:00
Rémi Verschelde
15b8185c68
Don't use TTR/RTR for ERR/WARN prints
...
We don't translate those, only editor strings are translated.
2023-11-12 12:00:55 +01:00
bruvzg
173b84127b
[Windows] Add some AMD GPUs to the OpenGL blocklist.
2023-11-09 20:11:04 +02:00
jitspoe
7918e2b6d9
Fix bug where maximized->fullscreen->windowed mode stays maximized.
2023-11-06 02:36:12 -05:00
bruvzg
6bd639f9df
[Windows] Use CCD API to get fractional screen refresh rates.
2023-11-02 13:10:23 +02:00
bruvzg
b52826bf55
Add error messages to the native menu and file dialogs callback.
2023-10-14 18:10:39 +03:00
kobewi
09b30be86d
Add vararg call() method to C++ Callable
2023-10-05 11:35:29 +02:00
bruvzg
43e4708dff
[Native File Dialogs] Improve filter list handling, add selected filter to the callback.
2023-10-03 19:26:16 +03:00
Rémi Verschelde
30bc077756
Merge pull request #82364 from bruvzg/angle_lists_and_defaults
...
[ANGLE] Add fallback control options and defaults.
2023-10-03 17:22:53 +02:00
Rémi Verschelde
31dbbc2c5a
Merge pull request #80952 from bruvzg/nfdlg_refocus
...
[Native File Dialogs] Refocus last focused window on close.
2023-10-03 17:13:58 +02:00
bruvzg
ac3fc2a8a1
[ANGLE] Add fallback control options and defaults.
...
[macOS] Use ANGLE by default if engine is built with statically linked ANGLE.
[Windows] Add option enable/disable fallback to ANGLE and option force specific GPU to always use ANGLE.
2023-10-03 16:23:43 +03:00
bruvzg
72e2e47059
[DisplayServer] Add method to estimate window title bar size.
2023-10-03 16:13:52 +03:00
A Thousand Ships
517e9f8aef
[Modules] Replace ERR_FAIL_COND
with ERR_FAIL_NULL
where applicable
2023-09-26 16:44:52 +02:00
Rémi Verschelde
cc0a02c75c
Merge pull request #82031 from bruvzg/borderless_fs
...
[Windows] Use clear color for non exclusive fullscreen border, fix maximize for borderless window switching to exclusive fs.
2023-09-21 14:27:39 +02:00
bruvzg
1887a9df19
[macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching.
...
Co-authored-by: Riteo <riteo@posteo.net>
2023-09-21 14:21:00 +03:00
bruvzg
b826cd5acd
[Windows] Use clear color for non exclusive fullscreen border, fix maximize for borderless window switching to exclusive fs.
2023-09-21 11:24:40 +03:00
A Thousand Ships
3565d1bf7e
[Drivers,Platform] Replace ERR_FAIL_COND
with ERR_FAIL_NULL
where applicable
2023-09-12 20:13:32 +02:00
bruvzg
2e1f48ff6e
[Native File Dialogs] Refocus last focused window on close.
2023-08-24 09:34:58 +03:00
Chia-Hsiang Cheng
669ce39f95
Ensure the active window gains the keyboard focus
2023-08-12 16:35:44 +08:00
Rémi Verschelde
048a164083
Merge pull request #79693 from bruvzg/com_ath
...
[Windows] Initialize COM as apartment-threaded.
2023-08-07 14:48:40 +02:00
bruvzg
e26a6c36c8
Fix native popups auto-closing when interacting with non-client area.
2023-08-07 10:01:48 +03:00
bruvzg
b240b5be84
[Windows] Do not force redraw window background on mouse pass-through region change.
2023-08-02 10:40:40 +03:00
Markus Sauermann
8c1ce404d7
Fix crash on Windows when closing Window
...
Send `WINDOW_EVENT_MOUSE_EXIT` when a window is destroyed.
Ensure, that on Windows, the event_callback is still valid during
destroying the `Window`.
2023-08-02 00:17:25 +02:00
Yuri Sizov
0c2399d6ec
Merge pull request #63826 from deakcor/dev_clipboard
...
Add `clipboard_has/get_image` methods to DisplayServer
2023-07-27 15:22:16 +02:00
Yuri Sizov
c8e191b7f4
Merge pull request #79724 from Repiteo/gcc-windows-fixes
...
Fix gcc builds failing on windows
2023-07-24 19:33:19 +02:00
Yuri Sizov
88c1e0d528
Merge pull request #79350 from kleonc/screen_to_pixel_byte_to_float_conversion_fix
...
Fix byte to float color conversion in `DisplayServerWindows::screen_get_pixel`
2023-07-21 17:54:21 +02:00
Thaddeus Crews
d848c95748
Fix gcc builds failing on windows
2023-07-20 18:01:52 -05:00
bruvzg
4bfb820d32
[Windows] Initialize COM as apartment-threaded.
2023-07-20 12:14:16 +03:00
Yuri Sizov
0c2144da90
Remove excessive include that breaks compilation on Windows
2023-07-18 22:09:48 +02:00
bruvzg
d3ca91ad6a
[Windows] Implement native file selection dialog support.
2023-07-18 17:23:58 +03:00
Vincent D
c13e3a9fb0
add clipboard get image methods for windows and macos
...
Co-Authored-By: RedworkDE <10944644+RedworkDE@users.noreply.github.com>
Co-Authored-By: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-07-17 23:47:27 +02:00
Hendrik Brucker
7e21eb7e00
Extract and reorganize texture resource classes
2023-07-14 20:04:21 +02:00
kleonc
9d45dd812f
Fix byte to float color conversion in DisplayServerWindows::screen_get_pixel
2023-07-12 21:31:02 +02:00
Yuri Sizov
ff689003a5
Merge pull request #77993 from bruvzg/key_lbl_from_p
...
Implement DisplayServer.keyboard_get_label_from_physical method.
2023-07-12 21:02:37 +02:00
Yuri Sizov
2b47f6715e
Merge pull request #78437 from bruvzg/set_icon
...
Add error checks and harmonize behavior of the `set_icon` method.
2023-07-12 15:09:14 +02:00
Rémi Verschelde
988abb2161
Merge pull request #79016 from bruvzg/fix_win_initial_ne_fs
...
[Windows] Fix setting initial non-exclusive window mode.
2023-07-08 18:21:04 +02:00
Rémi Verschelde
3a3ec4add1
Merge pull request #78263 from bruvzg/fl_all
...
[Windows] Flash both the window caption and taskbar button on `request_attention`.
2023-07-07 16:02:38 +02:00
bruvzg
db0109b237
[Windows] Fix setting initial non-exclusive window mode.
2023-07-04 13:09:26 +03:00
bruvzg
9c5a0c6c10
Add error checks and harmonize behavior of the set_icon method.
2023-07-03 13:48:28 +03:00
Rémi Verschelde
d586096415
Merge pull request #72720 from pkdawson/fix-mouse-capture
...
DisplayServerWindows: Fix mouse capture when button up message is missed
2023-06-22 18:29:34 +02:00
Rémi Verschelde
356a602186
Merge pull request #74511 from AThousandShips/win_cursor_fix
...
Fix clearing custom cursor
2023-06-20 00:00:57 +02:00
bruvzg
28db3c7158
[DisplayServer] Add method to check if native window is focused.
2023-06-16 10:27:52 +03:00
bruvzg
49af2582c4
[Windows] Flash both the window caption and taskbar button on request_attention
.
2023-06-15 11:04:54 +03:00
jpcerrone
a80584664c
Fix window resizing problems on Windows
...
Fixes godotengine#76847, Fixes godotengine#74286
Reorders problematic steps from the DisplayServerWindows::window_set_mode function.
These were causing a resize with the dimensions of the previously used mode instead
of the current one.
2023-06-12 15:26:34 -03:00
Rémi Verschelde
26e5a98306
Merge pull request #77770 from jpcerrone/fix_minimize_missing
...
Fix minimize button missing in non-resizable projects
2023-06-12 11:39:08 +02:00
Rémi Verschelde
759309ba18
Merge pull request #77977 from zaevi/fix_windows_popup_ime
...
Fix IME doesn't work under Popup on Windows.
2023-06-09 11:06:02 +02:00
Rémi Verschelde
9e4315bb50
Style: Harmonize header includes in platform ports
...
This applies our existing style guide, and adds a new rule to that style
guide for modular components such as platform ports and modules:
Includes from the platform port or module should be included with relative
paths (relative to the root folder of the modular component, e.g.
`platform/linuxbsd/`), in their own section before Godot's "core" includes.
The `api` and `export` subfolders also need to be handled as self-contained
(and thus use relative paths for their "local" includes) as they are all
compiled for each editor platform, without necessarily having the api/export
matching platform folder in the include path.
E.g. the Linux editor build will compile `platform/android/{api,export}/*.cpp`
and those need to use relative includes for it to work.
2023-06-08 15:19:19 +02:00
bruvzg
08e8ff371d
Implement keyboard_get_label_from_physical method.
2023-06-08 10:13:31 +03:00
Zae
1b149b7440
Fix IME doesn't work under Popup on Windows.
2023-06-08 02:40:36 +08:00
jpcerrone
c819da7fdb
Fix minimize button missing in non-resizable projects.
...
Fixes https://github.com/godotengine/godot/issues/77603 .
On Windows, disabling the 'resizable' flag on the project
settings would also remove the minimize button from the window.
2023-06-02 10:31:50 -03:00
bruvzg
5b9984b5a2
Add audio/general/text_to_speech
project setting to enable/disable TTS.
2023-05-18 20:16:03 +03:00
bitsawer
68da61e74c
Fix for Clang dev_mode Windows build
2023-05-17 19:35:37 +03:00
Rémi Verschelde
265c70a369
Merge pull request #75142 from bruvzg/scr
...
[DisplayServer] Implement screen_get_image method for LinuxBSD/X11, macOS and Windows.
2023-05-16 10:48:16 +02:00
Hugo Locurcio
303bf247de
Add support for VRAM-compressed custom mouse cursor images
...
No memory is actually saved when using this, so lossless modes are
still recommended as they look better and load faster.
2023-04-21 18:01:47 +02:00
bruvzg
520a8d8ed2
Add project manager / editor initial screen settings, implement DisplayServer.get_keyboard_focus_screen method.
2023-04-19 08:54:53 +03:00
Rémi Verschelde
c2edf14faf
Merge pull request #75881 from bruvzg/win_coinit
...
[Windows] Cleanup COM library initialization/uninitialization.
2023-04-18 23:40:06 +02:00
Kvel2D
41f0a523db
Fix custom cursor using atlas texture
...
Remove image.is_valid() check
There is already a fail condition and image is not used before that
Move up texture_is_valid() check
2023-04-11 19:16:24 +02:00
bruvzg
83dc545ea2
[Windows] Cleanup COM library initialization/uninitialization.
2023-04-10 10:38:25 +03:00
bruvzg
e6067a39b5
[Windows] Remove meta_mem update on keyup/keydown.
2023-03-21 09:16:10 +02:00
bruvzg
ab94024ce1
[DisplayServer] Implement screen_get_image method for LinuxBSD/X11, macOS and Windows.
2023-03-20 14:58:21 +02:00
Ninni Pipping
a419325753
Fix clearing custom cursor
2023-03-10 11:59:49 +01:00
Hugo Locurcio
ddc9cc3e49
Tweak command syntax in Vulkan renderer failure message
...
This quotes the executable name so that copying it always works
(even if the path contains spaces).
The command is also indented from the rest of the text and is
no longer single-quoted, as that can prevent the command from
running if the line is copied in its entirety (with the quotes).
2023-03-08 22:28:23 +01:00
Rémi Verschelde
918c910b4d
Merge pull request #73878 from RedMser/fix-clipboard-focus-windows
...
Fix clipboard relying on focused window
2023-03-07 12:04:26 +01:00
Rémi Verschelde
5f2137a050
Merge pull request #74087 from bruvzg/get_screen_px
...
[DisplayServer] Implement screen_get_pixel method for LinuxBSD/X11, macOS and Windows.
2023-03-06 21:58:58 +01:00
bruvzg
ba995c6ea1
[Windows] Update modifier key status during IME input.
2023-03-06 10:31:23 +02:00
bruvzg
e7647b5ee5
[DisplayServer] Implement screen_get_pixel method for LinuxBSD/X11, macOS and Windows.
2023-03-01 09:32:23 +02:00
RedMser
942f8b9858
Fix clipboard relying on focused window
2023-02-24 16:31:57 +01:00
bruvzg
ba7ab0e1cb
[Windows] Take initial flags into account when creating main window.
2023-02-22 10:52:26 +02:00
Rémi Verschelde
4574b97752
Fix crash with bogus shape index to DisplayServer.cursor_set_custom_image()
...
Fixes #66605 .
2023-02-17 14:17:37 +01:00
bruvzg
a322f3f578
[InputEventKey] Avoid setting both key and modifier to the same value.
2023-02-14 09:05:58 +02:00
Patrick Dawson
7275819a91
DisplayServerWindows: Fix mouse capture when button up message is missed
2023-02-04 17:36:47 +01:00
Rémi Verschelde
d8c3fc1f56
Merge pull request #72624 from pkdawson/fix-last-focus
...
DisplayServerWindows: Update `last_focused_window` when the focused subwindow is deleted
2023-02-03 06:24:05 +01:00
Markus Sauermann
6165498d0e
Fix windowsize for fullscreen windows on windowcreation on Windows
...
Fortunately the location in the codebase was easy to find because there
was a FIXME comment.
2023-02-02 22:40:03 +01:00
Patrick Dawson
cba1fd7cca
DisplayServerWindows: Update last_focused_window
when the focused subwindow is deleted
2023-02-02 21:41:36 +01:00
Rémi Verschelde
707ccc09ab
Merge pull request #72104 from bruvzg/popup-non-popups
...
Extend special popup window handling to any non-popup child of a popup.
2023-02-01 11:07:39 +01:00
Rémi Verschelde
b8ef55a427
Merge pull request #71174 from RedMser/fix-confined-mouse-mode-update
...
Fix confined mouse mode not updating on resize
2023-01-31 15:56:29 +01:00
Juan Linietsky
28f51ba547
Refactor high quality texture import
...
* Only two texture import modes for low/high quality now:
* S3TC/BPTC
* ETC2/ASTC
* Makes sense given this is the general preferred and most compatible combination in most platforms.
* Removed lossy_quality from VRAM texture compression options. It was unused everywhere.
* Added a new "high_quality" option to texture import. When enabled, it uses BPTC/ASTC (BC7/ASTC4x4) instead of S3TC/ETC2 (DXT1-5/ETC2,ETCA).
* Changed MacOS export settings so required texture formats depend on the architecture selected.
This solves the following problems:
* Makes it simpler to import textures as high quality, without having to worry about the specific format used.
* As the editor can now run on platforms such as web, Mac OS with Apple Silicion and Android, it should no longer be assumed that S3TC/BPTC is available by default for it.
2023-01-30 15:53:23 +01:00
bruvzg
700d85bd19
Extend special popup window handling to any non-popup child of a popup.
2023-01-26 12:38:53 +02:00
bruvzg
e08a6e692d
[Windows] Fix committing IME text without IME deactivation.
2023-01-26 09:24:12 +02:00
bruvzg
c1c6ce9001
[Windows] Fix candidate window position with some third party IME engines.
2023-01-25 15:29:08 +02:00
bruvzg
8d51af1c8d
[Windows] Fix ToUnicodeEx resetting some dead key states.
2023-01-25 09:49:14 +02:00
bruvzg
daad4aed62
Cleanup and unify keyboard input.
...
- Unify keycode values (secondary label printed on a key), remove unused hardcoded Latin-1 codes.
- Unify IME behaviour, add inline composition string display on Windows and X11.
- Add key_label (localized label printed on a key) value to the key events, and allow mapping actions to the unshifted Unicode events.
- Add support for physical keyboard (Bluetooth or Sidecar) handling on iOS.
- Add support for media key handling on macOS.
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-01-23 15:08:12 +02:00
Juan Linietsky
e01452adb0
Fix AltGR getting stuck on Windows right alt-tab
...
Fixes #28511 .
2023-01-20 14:04:55 +01:00
bruvzg
2529ab332c
[Windows] Fix sub-window initial transparency and always-on-top state.
2023-01-19 09:21:36 +02:00
Rémi Verschelde
68d71f88f5
Improve DisplayServer message for video card drivers failure
...
And remove leftover duplicated message on Android.
2023-01-17 15:41:54 +01:00
bruvzg
34b34b104c
Add WINDOW_FLAG_MOUSE_PASSTHROUGH
flag and enabled it for tooltips. Expose window_set_mouse_passthrough
to Window
.
2023-01-16 11:42:49 +02:00
bruvzg
7fc8716aac
[Windows] Fix incorrect full-screen mode applied on start.
2023-01-16 09:17:20 +02:00
Pedro J. Estébanez
03b96c1c4b
Implement color flash avoidance for Windows
2023-01-12 21:42:51 +01:00
RedMser
951349c481
Fix confined mouse mode not updating on resize
2023-01-10 20:00:52 +01:00