Commit Graph

5899 Commits

Author SHA1 Message Date
Josh Tynjala
0c669739bd ThreadPool: similar to other uses of Application.current, check if it is null
Similar checks in BackgroundWorker and FileWatcher.

OpenFL's tests can pass without fully bootstrapping Lime if we add this check.
2025-10-16 08:46:40 -07:00
Josh Tynjala
ea496bacb6 IconHelper: fix conditional compilation
Followup to commit 8cd89e1fb5
2025-10-14 15:54:27 -07:00
Josh Tynjala
8cd89e1fb5 fix more implicit Dynamic variable types by explicitly declaring a type
These variables were being initialized with null, weren't initialized at all, or were initialized with an empty array, all of which introduce Dynamic
2025-10-14 15:47:47 -07:00
ACrazyTown
3643bf0830 OpenALBindings: fix crash on HL when passing NULL device 2025-10-14 08:35:56 -07:00
Josh Tynjala
e947771f35 actions: update to macos-14 because macos-13 will be removed in December 2025
We might as well do it for 8.3.0, so that it and 9.3.x patches can hopefully target the same version.

This means that our CI now runs on ARM64 instead of x86_64 for macOS.

To build HashLink, we need to install x86_64 Homebrew to get the necessary dependencies.

We also need a new enough krdlab/setup-haxe that supports ARM64 macOS, and can run older Haxe versions. This is currently commit 8f35d1215b93e940a76f9470e22e8a5ba6149598, but hopefully, setup-haxe's v2 tag will be updated in the future.
2025-10-09 10:30:31 -07:00
Josh Tynjala
df4519b313 MacPlatform: report an error if the HashLink binary directory doesn't exist
Better than this: Uncaught exception - std@sys_read_dir
2025-10-06 15:48:19 -07:00
Josh Tynjala
c3852d7fcd Window: don't use separate __visible and __hidden private variables
They were getting out of sync on native, which caused OpenFL to think the window was visible, when it wasn't.

Followup to commit 6450e5b.
2025-10-06 10:28:46 -07:00
Josh Tynjala
9bea6169bf SDLApplication: fix crash in SDL_Quit on Windows by calling SDL_QuitSubSystem first with the same flags passed to SDL_Init (closes #1934)
As far as I can tell, SDL_QuitSubSystem is not required, and SDL_Quit should automatically quit each subsystem. However, this stops the crash, so maybe there's some kind of race condition that this avoids.
2025-10-03 14:54:29 -07:00
Josh Tynjala
48969a3d81 AndroidPlatform: minimum SDK 21
To match commit ee1d56e864
2025-10-03 10:55:13 -07:00
Chris Speciale
9f2f518857 Include PLATFORM define for older NDK support (#1925)
Hxcpp needs the PLATFORM define for older ndks that require the gcc toolchain. We initially removed it since Lime potentially was going to have a minimum requirement of android sdk 28 due to openal soft version 1.20.1, however, this was solved by upgrading to 1.21.1 which presented no further conflicts with sdk 21. 

To simply things, we just provide both defines for now.

Co-authored-by: player-03 <player3.14@gmail.com>
2025-10-03 10:05:09 -07:00
Josh Tynjala
80eb17b050 Merge branch 'develop' into 8.3.0-Dev 2025-10-03 08:57:14 -07:00
Josh Tynjala
f41614b1ed prepare for 8.2.3 8.2.3 2025-10-01 09:56:31 -07:00
Josh Tynjala
68107eeaa8 IOSHelper: fix missing break from outer loop when device UUID is found
Followup to commit b9fecd2ab0
2025-09-18 10:18:00 -07:00
Josh Tynjala
fc58879a1a Merge branch 'develop' into 8.3.0-Dev 2025-09-18 09:42:54 -07:00
Josh Tynjala
30b77ebd53 System: populate Display's safeArea property on non-native targets 2025-09-15 09:02:29 -07:00
Josh Tynjala
05591ebdb0 NativeCFFI: fix key_code_to_scan_code and key_code_from_scan_code
They were using float values, but they should have been int values instead.

The numeric type conversion was causing some kind of data loss that resulted in wrong values being returned in some cases. In particular, arrow keys.
2025-09-12 15:59:46 -07:00
Josh Tynjala
afbac6d35f some more API docs 2025-09-12 12:24:38 -07:00
Joseph Cloutier
58e15337db Fix hl_gamepad_rumble function signature. 2025-09-01 16:59:33 -04:00
player-03
cb41de5300 Add seperate defines for OpenAL Soft and MojoAL (#1912) 2025-09-01 01:49:41 -04:00
Joseph Cloutier
57355ba8cf Merge branch 'develop' into 8.3.0-Dev 2025-09-01 00:42:57 -04:00
player-03
86283df77e Simplify Timer.stop() (#1839) 2025-09-01 00:36:33 -04:00
Regan Green
c8beb396f6 Implement controller rumble support in Gamepad (#1739)
* Add SDL rumble

* Fix rumble

* whitespace fixins real (#2)

* whitespacing real.. please!

* nativecffi rumble thing fix lol

* Remove trailing whitespace.

* Use SDL's argument names and order.

* Standardize formatting.

* Make `SDLGamepad` fully static again, for simplicity.

Also, consistently use `find()` instead of array access, to avoid accidentally creating entries.

Also also, consistently use guard clauses instead of indenting.

* Make another guard clause.

* Update CFFI function signature.

* Use `clamp()` instead of `if` statements.

* Include required header for `std::clamp()`.

* Revert "Use `clamp()` instead of `if` statements."

`std::clamp()` was not available until C++17, and we'd like to continue supporting older versions.

This reverts commit 715a270f79.

* Revert "Include required header for `std::clamp()`."

This reverts commit f47aebf640.

* Tidy up.

* Document `Gamepad.rumble()`'s arguments.

* Don't limit rumble duration.

SDL apparently supports the full Uint32 range, so there's no reason for Lime to restrict it.

* Fix whitespace.

* Add rumble support in HTML5 (experimental).

---------

Co-authored-by: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Co-authored-by: player-03 <player3.14@gmail.com>
2025-09-01 00:29:58 -04:00
player-03
06c4934f45 Fix old android ndk error not showing (#1926) 2025-09-01 00:23:29 -04:00
player-03
5b05c3f77e Implement onUncaughtError event for thread pools (#1777) 2025-08-31 23:24:14 -04:00
player-03
2bdd41ef57 Memory leak fix in curl bindings (#1856) 2025-08-31 23:20:16 -04:00
player-03
0b1ab0a245 Update tinyfiledialogs to fix compatibility with zenity. (#1964) 2025-08-31 15:07:19 -04:00
Giuppe
e439f0d0ae Allow setting Gradle properties in project.xml (#1859)
* allow setting gradle jvmargs in project.xml

* Make gradle.properties fully configurable from project.xml.

---------

Co-authored-by: Joseph Cloutier <player3.14@gmail.com>
2025-08-31 15:05:03 -04:00
Chris Speciale
2b1a627ed0 Clarify versioning and branching guidelines
Documented semver-based versioning flow
- Explained usage of patch (develop), minor (x.x.x-dev), and major (x.0.0-dev) branches
- Added guidance on where to submit bug fixes, new features, and breaking changes
- Improves contributor clarity and aligns with current project workflow (e.g., Lime 8.2.2 -> 8.3.0-dev, 9.0.0-dev)

This helps reduce confusion about where to submit changes and ensures consistency across releases.
2025-08-31 03:43:19 -04:00
Josh Tynjala
ab132da0fe didn't need to update tools.n
Followup to commit 9b6f81d006
2025-08-25 14:22:43 -07:00
Josh Tynjala
9b6f81d006 Font: add strikethroughPosition and strikethroughThickness
Similar to underlinePosition and underlineThickness
2025-08-25 14:11:47 -07:00
Apprentice-Alchemist
8d81a0fc8e HashLink 1.14 (closes #1827) (closes #1801) (closes #1967)
Co-Authored-By: Josh Tynjala <joshtynjala@users.noreply.github.com>
2025-08-22 15:43:26 -07:00
Rainy
945a2ec8e0 Perform null check for XMLHttpRequest.upload
Some browsers may not support uploading, and accessing upload will return null.
2025-08-20 11:50:17 -07:00
Josh Tynjala
54516f8693 Merge branch 'develop' into 8.3.0-Dev 2025-08-20 07:33:22 -07:00
ACrazyTown
4913ae6626 fix handling of winrt 2025-08-20 00:14:41 +02:00
unknown
75f994afb7 Add seperate defines for OpenAL Soft and MojoAL 2025-08-19 23:41:23 +02:00
Tobiasz Laskowski
d1369f1aaa Fix merge error from 985e0994d9 2025-08-18 18:40:13 +01:00
Tobiasz Laskowski
985e0994d9 Fix unicode system path conversions on linux
For non windows platforms, we previously just passed char* into wstring,
which didn't perform the necessary conversion into utf32 which is
expected when hxcpp converts a wchar string to a hxstring on platforms
where wchar has 4 bytes.
2025-08-18 09:32:28 -07:00
Tobiasz Laskowski
c81d70c303 Fix NULL handling in GetDirectory(DESKTOP)
If HOME is NULL, we cannot return here immediately, since we haven't
called `System::GCExitBlocking()`. This currently causes:
```
Critical Error: Allocating from a GC-free thread
```

This is already handled correctly for `USER` and `DOCUMENTS`, however
`DESKTOP` was missed out in f6e38208d3
2025-08-18 08:41:28 -07:00
Tobiasz Laskowski
cbcb5f029e Fix crash on null returns from sdl path functions
On android SDL_GetBasePath is not implemented and returns NULL, which
means that calling strlen causes a crash:

1f21aae242/src/filesystem/android/SDL_sysfilesystem.c (L35-L40)

According to sdl docs, SDL_GetPrefPath can also return NULL, so we also
need to check for that:
https://wiki.libsdl.org/SDL2/SDL_GetPrefPath#return-value
https://wiki.libsdl.org/SDL2/SDL_GetBasePath#return-value
2025-08-18 08:39:58 -07:00
Tobiasz Laskowski
99e986ce39 Fix typos in mbedtls xml includes 2025-08-15 15:13:38 -07:00
Thomas Cashman
52ad5b1b24 Fix GetDirectory UTF16 encoding issue 2025-08-14 09:43:29 -07:00
Josh Tynjala
a999a7b219 Assets: document getImage() result behavior
Multiple calls to getImage() with the same ID may return a new Image instance on
some targets, but the same Image instance on other targets.
2025-08-11 15:02:49 -07:00
Joseph Cloutier
1e47c4d0be Fix tinyfiledialogs compatibility with zenity. 2025-07-24 15:47:19 -04:00
Josh Tynjala
b9fecd2ab0 IOSHelper: more refinements to selecting a physical device for lime test ios (closes #1957)
Followup to 6f2f88ca74

Now checks for devices with filters in the following order of preference:

1. State == 'connected' AND transportType == 'wired'
2. State == 'connected' AND transportType == 'localNetwork'
3. State == 'available (paired)' AND transportType == 'wired'
3. State == 'available (paired)' AND transportType == 'localNetwork'

Also adds developerModeStatus == 'enabled' filter as a requirement for all checks.

If the app is meant to be iPhone-only or iPad-only, adds the appropriate filter for that too.
2025-07-23 10:32:50 -07:00
Josh Tynjala
f8229bf7ae AndroidPlatform: target-sdk-version 35 is the current minimum requirement for new apps 2025-07-21 08:55:06 -07:00
Josh Tynjala
67d2261f11 actions: compile Android with NDK r28c
Needed for required 16KB native library alignment
2025-07-21 08:37:30 -07:00
player-03
3c86d2cd39 Simplify logic in createCanvas().
I assume we used `untyped __js__` to get around incomplete externs, but Haxe 3.2 updated the externs, and they've included the second argument ever since.
2025-07-13 21:15:39 -04:00
Joseph Cloutier
e8b031a8a8 Implement ThreadPool.onUncaughtError.
This restores the behavior of `onError` to what it was in 8.1.0.
2025-07-13 20:10:33 -04:00
player-03
112664aa35 Fix deprecation warning. 2025-07-13 19:48:01 -04:00
Josh Tynjala
7b5a5e1d0a Set hl-ver for Lime's bundled HashLink
Haxe 5 defaults to 1.15, but we're currently still bundling an older version. So we need to specify hl-ver or it won't work properly because Haxe 5 will produce code that older HashLink isn't compatible with.

If hl-ver is already specified, or if a custom HL_PATH is defined, does not set hl-ver because that may be undesirable.
2025-07-09 10:24:20 -07:00