Commit Graph

5920 Commits

Author SHA1 Message Date
Chris Speciale
c622000c4c Remove Typos from build
Seems my toddler got her little hands on my keyboard!
2025-11-13 15:59:29 -05:00
Chris Speciale
f57f2e5601 Update known extensions 2025-11-13 15:41:04 -05:00
Chris Speciale
2695286d6e Init sdl_sound 2025-11-13 15:32:00 -05:00
Chris Speciale
57e20208c5 add SDL_sound decoder backend (SDLSound.cpp/.h) 2025-11-13 15:31:03 -05:00
Chris Speciale
c0c118f8d2 Add SDLSound hooks 2025-11-13 15:24:07 -05:00
Chris Speciale
d5455f0e8f Update Build.xml 2025-11-13 15:22:11 -05:00
Chris Speciale
ee7ac0f5d4 Add sdl_sound-files config 2025-11-13 15:18:32 -05:00
Chris Speciale
ca58342a9e Include the sdl_sound submodule
Allows us to use sdl_sound to decode extended audio formats
2025-11-13 15:16:35 -05:00
Tobiasz Laskowski
4bb0380b39 Update mojoal to fix audio bug 2025-10-28 14:44:59 -07:00
player-03
6a7239ca2a Fix duplicate code in PlatformTarget subclasses, fix assets being included twice. (#1980) 2025-10-22 22:57:16 -04:00
Joseph Cloutier
ad52eb7848 Improve EventMacro error messages.
Haxe will usually prevent `EventMacro.build()` from running if there are the wrong number of type params. Therefore the "wrong number" message would usually only appear when there were the right number of params (one) and the type was wrong.
2025-10-22 22:25:20 -04:00
Joseph Cloutier
82618ef4c2 Merge branch '8.4.0-dev' into PlatformTarget_update_consistency 2025-10-22 20:15:10 -04:00
Joseph Cloutier
76034d97ae Merge branch 'develop' into 8.4.0-dev 2025-10-22 19:34:54 -04:00
Joseph Cloutier
c0ebb5bd13 Add a reminder to investigate WebAssemblyPlatform.watch(). 2025-10-22 19:22:33 -04:00
Joseph Cloutier
0d3f193021 Remove _appinfo.json_ special case.
Two reasons:

1. This is how it always worked in practice. The old special case actually did nothing due to an oversight.
2. Per the principle of least astonishment, Lime should avoid messing with the user's assets. If they wanted it to be a template, they would have specified `type="template"`.
2025-10-22 19:21:51 -04:00
player-03
7d1139634e Implement Promise.completeAsync(). (#1838) 2025-10-22 18:48:33 -04:00
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
Joseph Cloutier
5e3f77a44f Unify PlatformTarget.clean().
All of the implementations were identical, except for `FlashPlatform`, which was identical with extra steps.
2025-08-31 22:35:35 -04:00
Joseph Cloutier
057a2a4f5e Unify PlatformTarget.watch().
The implementation was copy-pasted, so it makes more sense to have only a single copy. `HTML5Platform` added a comment about possible future changes, so I kept that. Future changes will still be possible by overriding the function.
2025-08-31 22:30:05 -04:00
Joseph Cloutier
6ed53a9b92 Handle appinfo.json as a template on Tizen.
The old code appeared to be trying to do this, but it didn't work. When it found appinfo.json, it would call `copyAsset()` with an extra `context` argument, which is what you do for templates. However, `copyAsset()` only processes templates when `type == TEMPLATE`, otherwise it ignores the extra argument and processes it as a normal asset.
2025-08-31 22:12:16 -04:00
Joseph Cloutier
31af41e69c Unify asset copying code, and standardize asset embedding.
Having eight separate implementations made it harder to maintain. While an asset embedding bug got fixed on desktop targets, it got overlooked on others. This lead to assets being included twice on those other targets: once embedded, and once normally. (#1898) Now, that behavior is controlled from one place, and the bug is fixed for eight targets at once.

This also standardizes the case of `asset.embed == true && asset.type == TEMPLATE`. Previously, some targets would prioritze `embed` over `type`, embedding the template into the app without even processing it as a template. Now, it will always prioritize `type`, processing templates as templates and never trying to embed them.

Three targets are left out since they have more complex asset embedding behavior. I haven't checked if the bug is present on any of those.
2025-08-31 22:07:10 -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