1
0
Fork 0
Commit Graph

566 Commits

Author SHA1 Message Date
A Thousand Ships 331a43a9d8
Add `String::remove_char(s)` methods for performance and convenience 2025-03-10 13:19:28 +01:00
Thaddeus Crews 2324805fdc
Merge pull request #103773 from Calinou/windows-low-processor-mode-sleep-cpu
Use more efficient sleep approach on Windows when low-processor mode is enabled
2025-03-09 09:05:27 -05:00
Thaddeus Crews c937b6d180
Merge pull request #102419 from Ivorforce/std-size
Use `std::size` instead of `sizeof(a) / sizeof(a[0])` pattern throughout the codebase.
2025-03-07 15:12:25 -06:00
Hugo Locurcio 03b4e0dd58
Use more efficient sleep approach on Windows when low-processor mode is enabled
This aims to fix the idle CPU utilization regression from 4.3 to 4.4
by reverting to the previous approach, but only when low-processor mode
is enabled.
2025-03-07 18:06:41 +01:00
Pāvels Nadtočajevs 6ed12bfc5d [Linux/BSD] Offload RenderingDevice creation test to subprocess. 2025-03-04 13:18:26 +02:00
Pāvels Nadtočajevs ddd807ff7d Add `(void *)` cast directly to `GetProcAddress` calls. 2025-02-27 12:30:04 +02:00
Pāvels Nadtočajevs ab717497ef [Windows] Offload `RenderingDevice` creation test to subprocess. 2025-02-24 19:40:10 +02:00
Lukas Tenbrink e34f1f504c Use `std::size` instead of `sizeof(a) / sizeof(a[0])` pattern throughout the codebase. 2025-02-07 14:57:48 +01:00
NOLogicalSense b38103e95d Windows: Normalize slashes in return of `OS.get_temp_dir()` 2025-01-30 22:02:20 +01:00
Ricardo Subtil b77aa473a1 Implement a "Recovery Mode" for recovering crashing/hanging projects during initialization 2025-01-03 10:50:15 +00:00
Thaddeus Crews 9300c2bdc9
Merge pull request #100400 from CrabNickolson/windows-thread-names
Add support for thread naming on windows platform
2024-12-19 19:59:41 -06:00
Hugo Locurcio 928982891e Add `OS.get_version_alias()` to return a human-readable Windows/macOS version number
Windows 11's major version number is actually 10.x.x, which can be confusing
if you don't know about this quirk. `OS.get_version_alias()` avoids this
by displaying the "branding" version number and the build number as a suffix,
so that individual updates can still be distinguished from each other.

On macOS, `OS.get_version_alias()` returns the version number prepended
with the version name (e.g. Sequoia for macOS 15).

On other operating systems, this returns the same value as `OS.get_version()`.
2024-12-14 18:47:50 +01:00
Ramón Grill d848835f8c Add support for thread naming on windows platform 2024-12-14 14:42:39 +01:00
Thaddeus Crews a607bca2fd
Merge pull request #100024 from Ivorforce/optimize-string-single-char
Optimize string single char contains calls.
2024-12-09 14:33:24 -06:00
Lukas Tenbrink b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01:00
Ross Rothenstine 35faf99755 windows: Fix underflow before delay_usec 2024-12-04 23:54:53 -08:00
Thaddeus Crews 156bc92282
Merge pull request #98397 from adamscott/add-tmp-support
Add temp utilities (alias `OS::get_temp_dir()`, `FileAccess::create_temp()`, and `DirAccess::create_temp()`)
2024-12-03 14:40:59 -06:00
Adam Scott 1b3e483899
Add file and dir temporary utilities
Co-authored by @Alex2782 for the Android bindings.
Many thanks to the reviewers also.

Co-authored-by: Alex <alex.hart.278@gmail.com>
2024-12-02 12:08:14 -05:00
mrsaturnsan b57ceefec1 [Windows] Improve frame pacing by busy waiting as needed 2024-11-29 14:04:18 +01:00
Thaddeus Crews 0045b1a513
Merge pull request #98862 from HuntJSparra/early-projsettings-registration
Register Engine, OS, ProjectSettings, and Time singletons in time for for `INITIZATION_LEVEL_CORE`
2024-11-26 13:04:51 -06:00
Thaddeus Crews 0d88737a9f Merge pull request #99542 from bruvzg/stdin_str
Convert line breaks to `\n` and strip line break from the end of string returned by `OS::read_string_from_stdin`/`OS::get_stdin_string`.
2024-11-25 13:22:30 -06:00
Rémi Verschelde 8e1a6ea431
Revert "Make delay_usec more precise"
This reverts commit df3367f334.

Fixes #99593.
2024-11-25 19:43:21 +01:00
Pāvels Nadtočajevs e9b57fce82 Convert line breaks to `\n` and strip line break from the end of string returned by `OS::read_string_from_stdin`/`OS::get_stdin_string`. 2024-11-23 15:11:50 +02:00
Hunt J. Sparra 48fbe4172b Register Engine, OS, ProjectSettings, and Time early. 2024-11-21 18:09:03 -05:00
Thaddeus Crews 449d90b64e
Merge pull request #99178 from mrsaturnsan/windows_sleep_precision
Make `delay_usec` more precise on Windows to fix framepacing
2024-11-18 09:23:50 -06:00
Thaddeus Crews 1dcb686325
Merge pull request #99026 from Faless/net/split_ip
[Net] Split Unix/Windows IP implementation
2024-11-18 09:23:43 -06:00
bruvzg 8bb3e5360e Disable Nahimic code injection. 2024-11-18 13:00:55 +02:00
mrsaturnsan df3367f334 Make delay_usec more precise
Comment fix
2024-11-16 09:15:46 -06:00
Pāvels Nadtočajevs 287b7543a0 Fix 32-bit Windows build. 2024-11-15 15:49:08 +02:00
Thaddeus Crews 179321a0a3
Merge pull request #91201 from bruvzg/con_type
[OS] Add functions to determine standard I/O device type.
2024-11-12 12:13:12 -06:00
Thaddeus Crews 190670d16b
Merge pull request #99107 from RandomShaper/win_less_inheritance
Windows: Avoid child processes inheriting all file handles
2024-11-12 12:13:06 -06:00
Fabio Alessandrelli 168a2a1466 [Net] Split Unix/Windows IP implementation 2024-11-12 17:33:47 +01:00
Thaddeus Crews cb286da1dd
Merge pull request #99112 from bruvzg/get_model_name
Implement `get_model_name` on macOS and Windows.
2024-11-12 09:27:52 -06:00
Pedro J. Estébanez 7fcf3c491d Windows: Avoid child processes inheriting all file handles 2024-11-12 12:25:28 +01:00
Pāvels Nadtočajevs a6dfd1cf6e Implement `get_model_name` on macOS and Windows. 2024-11-12 10:34:24 +02:00
Fabio Alessandrelli 0c620b29cd [Net] Split Unix/Windows NetSocket implementation 2024-11-10 16:13:50 +01:00
bruvzg 76164c2aa9
[OS] Add functions to determine standard I/O device type. 2024-11-06 13:33:38 +02:00
Thaddeus Crews bb5f390fb9
Style: Apply `clang-tidy` fixes (superficial)
• `modernize-use-bool-literals`, `modernize-use-nullptr`, and `readability-braces-around-statements`
2024-11-04 12:11:14 -06:00
Adam Scott 0d350e7108
Set clang-format `RemoveSemicolon` rule to `true`
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Rémi Verschelde 2c8ab6e7eb
Merge pull request #94839 from alvinhochun/win-set-console-mode
Combine existing modes when calling SetConsoleMode
2024-09-18 11:15:22 +02:00
bruvzg 2c991a727b [Windows] Only use long executable path when necessary, fix broken apksigner detection. 2024-09-10 10:34:44 +03:00
bruvzg 10f3c1f587
Add support for non-blocking IO mode to `OS.execute_with_pipe`. 2024-09-06 14:16:39 +03:00
bruvzg 319bfa9965
[Windows] Use the same API for all `OS_Windows::*_environment` functions. 2024-09-03 16:02:35 +03:00
bruvzg d528f28275 [Windows] Fix OS.open_dynamic_library 2024-08-28 20:12:09 +03:00
bruvzg ae334e069c
[Windows] Always use absolute UNC paths and long path aware APIs, add "long path aware" flag to the application manifest. 2024-08-28 11:15:57 +03:00
Rémi Verschelde 96159ebc5d
Merge pull request #96192 from dsnopek/windows-gdext-adddlldirectory
Windows: Call `AddDllDirectory()` with an absolute path
2024-08-28 09:45:35 +02:00
David Snopek e8bd385f53 Windows: Call `AddDllDirectory()` with an absolute path 2024-08-27 17:38:30 -05:00
Rémi Verschelde 330fca1ffd
Merge pull request #93985 from alvinhochun/windows-gpu-pref
Respect integrated GPU preference in Windows Settings
2024-08-28 00:11:45 +02:00
Sébastien Dunne Fulmer c3ed8a842c
Remove confusing USER prefix from script-logged errors 2024-08-27 15:00:48 +01:00
Joel Croteau f44d6a235f Fix reload of GDExtension libraries in framework package on macos
`GDExtension::open_library` has a check in it to see if the library was loaded
from a temp file, and if it was to restore the original name as that is the one
we actually care about. This check is breaking extension reloading on Mac when
the library path is to a framework folder, as the file inside the framework
will not generally be the same name as the folder.

This check also shouldn't be necessary even on Windows, which is the only
platform that uses `generate_temp_files`, since disposal of the created temp
file is handled within `OS_Windows::open_dynamic_library`, and
`GDExtension::open_library` (which is the only function to call
`open_dynamic_library` with a `p_data` argument) only cares about the original
library file path and has to do extra work to remove the name of the temp file.
Instead, I have removed that check and set `OS_Windows::open_dynamic_library`
to return the name of the original file and not the name of the copy.

This fixes GDExtension reloading on macOS. I do not have a Windows machine
available to test that it still works properly on Windows, so someone should
check that before merging this.
2024-08-08 08:31:49 -06:00