Skip to content

Commit 470d5f0

Browse files
committed
Merge remote-tracking branch 'fancy2209/SDL3' into fancy2209-SDL3-fixes
2 parents cc1a8c8 + 60f391e commit 470d5f0

File tree

160 files changed

+81825
-2054
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

160 files changed

+81825
-2054
lines changed

.github/workflows/main.yml

Lines changed: 57 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ env:
77
jobs:
88

99
linux:
10-
runs-on: ubuntu-20.04
10+
runs-on: ubuntu-22.04
1111
steps:
1212

1313
- uses: actions/checkout@v4
@@ -29,6 +29,7 @@ jobs:
2929
3030
- name: Install Haxe dependencies
3131
run: |
32+
haxelib --global update haxelib --quiet
3233
curl --output ../hxcpp-4.3.73.zip --location https://github.com/HaxeFoundation/hxcpp/releases/download/v4.3.73/hxcpp-4.3.73.zip
3334
haxelib install ../hxcpp-4.3.73.zip --quiet
3435
haxelib install format --quiet
@@ -50,6 +51,13 @@ jobs:
5051
lime rebuild linux -64 -release -nocolor -verbose -nocffi
5152
lime rebuild hl -clean -release -nocolor -verbose -nocffi
5253
54+
- name: Rebuild Lime svg.n
55+
working-directory: tools
56+
run: |
57+
haxelib install openfl
58+
haxelib install svg
59+
haxe svg.hxml
60+
5361
- uses: actions/upload-artifact@v4
5462
with:
5563
name: Linux-NDLL
@@ -116,6 +124,7 @@ jobs:
116124
rm /usr/local/bin/idle3*
117125
rm /usr/local/bin/pydoc3*
118126
rm /usr/local/bin/python3*
127+
rm /usr/local/bin/pip3*
119128
brew bundle
120129
popd
121130
@@ -142,6 +151,13 @@ jobs:
142151
lime rebuild macos -clean -release -arm64 -nocolor -verbose -nocffi
143152
lime rebuild hl -clean -release -nocolor -verbose -nocffi
144153
154+
- name: Rebuild Lime svg.n
155+
working-directory: tools
156+
run: |
157+
haxelib install openfl
158+
haxelib install svg
159+
haxe svg.hxml
160+
145161
- uses: actions/upload-artifact@v4
146162
with:
147163
name: Mac64-NDLL
@@ -223,6 +239,13 @@ jobs:
223239
lime rebuild windows -64 -release -nocolor -verbose -nocffi
224240
lime rebuild hl -clean -release -nocolor -verbose -nocffi
225241
242+
- name: Rebuild Lime svg.n
243+
working-directory: tools
244+
run: |
245+
haxelib install openfl
246+
haxelib install svg
247+
haxe svg.hxml
248+
226249
- uses: actions/upload-artifact@v4
227250
with:
228251
name: Windows-NDLL
@@ -272,7 +295,11 @@ jobs:
272295
lime build SimpleAudio windows -release -verbose -nocolor
273296
274297
android:
275-
runs-on: ubuntu-20.04
298+
runs-on: ubuntu-22.04
299+
strategy:
300+
matrix:
301+
ndk-version: [r28c, stable]
302+
fail-fast: false
276303
steps:
277304

278305
- uses: actions/checkout@v4
@@ -282,8 +309,9 @@ jobs:
282309
- name: Install Android NDK
283310
uses: nttld/setup-ndk@v1
284311
id: setup-ndk
312+
if: matrix.ndk-version != 'stable'
285313
with:
286-
ndk-version: r21e
314+
ndk-version: ${{ matrix.ndk-version }}
287315

288316
- uses: actions/setup-java@v4
289317
with:
@@ -317,22 +345,32 @@ jobs:
317345
- name: Configure Android support
318346
run: |
319347
lime config ANDROID_SDK $ANDROID_HOME -eval
320-
lime config ANDROID_NDK_ROOT ${{ steps.setup-ndk.outputs.ndk-path }} -eval
348+
lime config ANDROID_NDK_ROOT ${{ env.LIME_NDK_ROOT }} -eval
321349
lime config JAVA_HOME $JAVA_HOME -eval
322350
lime config ANDROID_SETUP true -eval
323351
lime config -eval
352+
env:
353+
LIME_NDK_ROOT: ${{ matrix.ndk-version == 'stable' && '$ANDROID_NDK_ROOT' || steps.setup-ndk.outputs.ndk-path }}
324354

325355
- name: Rebuild Lime (Android)
326356
run: |
327357
lime rebuild android -release -nocolor -verbose -nocffi -eval
328358
359+
- name: Rebuild Lime svg.n
360+
working-directory: tools
361+
run: |
362+
haxelib install openfl
363+
haxelib install svg
364+
haxe svg.hxml
365+
329366
- uses: actions/upload-artifact@v4
330367
with:
331368
name: Android-NDLL
332369
path: |
333370
ndll/Android/
334371
!**/.gitignore
335372
if-no-files-found: error
373+
if: matrix.ndk-version != 'stable'
336374

337375
- name: Install samples
338376
run: |
@@ -388,6 +426,13 @@ jobs:
388426
run: |
389427
lime rebuild ios -clean -release -verbose -nocolor -eval
390428
429+
- name: Rebuild Lime svg.n
430+
working-directory: tools
431+
run: |
432+
haxelib install openfl
433+
haxelib install svg
434+
haxe svg.hxml
435+
391436
- uses: actions/upload-artifact@v4
392437
with:
393438
name: iPhone-NDLL
@@ -417,7 +462,7 @@ jobs:
417462
418463
package-haxelib:
419464
needs: [linux, macos, windows, android, ios]
420-
runs-on: ubuntu-20.04
465+
runs-on: ubuntu-22.04
421466
steps:
422467

423468
- uses: actions/checkout@v4
@@ -533,7 +578,7 @@ jobs:
533578
if-no-files-found: error
534579

535580
docs:
536-
runs-on: ubuntu-20.04
581+
runs-on: ubuntu-22.04
537582
steps:
538583

539584
- uses: actions/checkout@v4
@@ -563,7 +608,7 @@ jobs:
563608
if-no-files-found: error
564609

565610
flash-samples:
566-
runs-on: ubuntu-20.04
611+
runs-on: ubuntu-22.04
567612
steps:
568613

569614
- uses: actions/checkout@v4
@@ -659,7 +704,7 @@ jobs:
659704
needs: package-haxelib
660705
strategy:
661706
matrix:
662-
os: [windows-latest, ubuntu-20.04, macos-13]
707+
os: [windows-latest, ubuntu-22.04, macos-13]
663708
runs-on: ${{ matrix.os }}
664709
steps:
665710

@@ -709,7 +754,7 @@ jobs:
709754
needs: package-haxelib
710755
strategy:
711756
matrix:
712-
os: [windows-latest, ubuntu-20.04, macos-13]
757+
os: [windows-latest, ubuntu-22.04, macos-13]
713758
runs-on: ${{ matrix.os }}
714759
steps:
715760

@@ -757,7 +802,7 @@ jobs:
757802
758803
html5-samples:
759804
needs: package-haxelib
760-
runs-on: ubuntu-20.04
805+
runs-on: ubuntu-22.04
761806
strategy:
762807
matrix:
763808
haxe-version: [4.0.5, 4.1.5, 4.2.5, 4.3.6]
@@ -823,7 +868,7 @@ jobs:
823868
strategy:
824869
matrix:
825870
haxe-version: [4.2.5]
826-
os: [windows-latest, ubuntu-20.04, macos-13]
871+
os: [windows-latest, ubuntu-22.04, macos-13]
827872
runs-on: ${{ matrix.os }}
828873
steps:
829874

@@ -870,7 +915,7 @@ jobs:
870915
lime build SimpleAudio neko -release -verbose -nocolor
871916
872917
notify:
873-
runs-on: ubuntu-20.04
918+
runs-on: ubuntu-22.04
874919
needs: [package-haxelib, docs, android, flash-samples, air-samples, hashlink-samples, hashlinkc-samples, html5-samples, ios, linux, macos, neko-samples, windows]
875920
if: ${{ github.repository == 'openfl/lime' && github.event_name != 'pull_request' }}
876921
steps:

CONTRIBUTING.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,24 @@ You may consider creating a branch specific to the fix or improvement you wish t
1616

1717
It is our goal to help Lime evolve as a clean, easy-to-use (but powerful) layer for cross-platform development. Thanks for being a part of making this possible!
1818

19+
## Versioning and Branching Guidelines
20+
21+
We follow Semantic Versioning (semver): MAJOR.MINOR.PATCH.
22+
23+
### Patch Updates (x.x.x)
24+
25+
All bug fixes should be submitted to the current stable development branch (e.g., develop).
26+
27+
These changes are released as patch versions (e.g., 8.2.3 → 8.2.4).
28+
29+
### Minor Updates (x.x.0)
30+
31+
All new features (non-breaking) should be submitted to the next minor development branch, named x.x.x-dev.
32+
33+
For example, if the current version is 8.2.2, features targeting 8.3.0 should go into 8.3.0-dev.
34+
35+
### Major Updates (x.0.0)
36+
37+
Any breaking changes or major version updates must be submitted to the next major development branch, named x.0.0-dev.
38+
39+
For example, breaking changes intended for 9.0.0 go into 9.0.0-dev.

MAINTAINERS.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Maintainer Collaboration Guidelines
2+
3+
## Ownership Boundaries
4+
Core ownership includes final authority on major project direction, branding, external representation (e.g., website, GitHub org settings), and financial decisions. Project leadership roles should support this structure, not compete with it.
5+
Joshua Granick remains the primary owner of OpenFL and related projects under its umbrella, including all copyrights, branding, and rights to external representations.
6+
7+
## Commit Transparency
8+
All commits — especially those involving the website or project structure — should be clearly described. Avoid vague or misleading commit messages.
9+
10+
## No Unilateral Decisions
11+
Significant changes to the public-facing site, GitHub structure, or future policies (including donation links) must be discussed with the core team before being merged.
12+
High contribution volume does not entitle anyone to override team consensus or operate outside the established process. We value impact, but we expect humility and collaboration in return.
13+
14+
## Respect Other Maintainers’ Work
15+
Reverting, overwriting, or contradicting another maintainer’s contribution must go through discussion first — ideally via PR, not direct commit.
16+
17+
## Escalation Policy
18+
If collaboration issues persist after a discussion, core owners may revoke elevated roles or privileges to protect the health of the project. This isn’t personal — it’s structural.
19+
20+
## Donations & Monetization
21+
Any personal monetization links (Patreon, Ko-fi, etc.) require approval by the core **owners**. We want to keep funding equitable and transparent.
22+
23+
## Communication First
24+
If you disagree with a decision or direction, bring it up in team chat or discussion threads — not by taking action in silence.
25+
26+
## We Are a Team
27+
Leadership means contributing to both the codebase and the culture. If you’re not supporting both, you’re not fulfilling the role.

include.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
<define name="lime-howlerjs" if="html5" />
2020
<define name="lime-html5" if="html5" />
2121
<define name="lime-native" if="native" />
22-
<define name="lime-openal" unless="lime-console || flash || html5" />
22+
<define name="lime-openalsoft" if="windows || linux || mac || android" unless="static_link || lime-mojoal || winrt" />
23+
<define name="lime-mojoal" if="lime-switch || static_link || winrt" unless="lime-openalsoft" />
24+
<define name="lime-openal" if="ios || tvos || emscripten || lime-openalsoft || lime-mojoal" />
2325
<define name="lime-opengl" if="desktop" unless="html5" />
2426
<define name="lime-opengles" if="emscripten || mobile" />
2527
<define name="lime-vorbis" if="native" />
@@ -78,6 +80,9 @@
7880
<haxedef name="lime-threads" if="neko || cpp || html5" unless="emscripten" />
7981
<!-- `target.threaded` isn't available, so enumerate the targets instead. -->
8082
<haxedef name="lime-threads" if="cs || java || python || hl" unless="${${haxe_ver} < 4}" />
83+
84+
<!-- For internal use; may be removed or renamed without warning. -->
85+
<haxedef name="lime-threads-deque" if="neko || cpp || cs || java || python || hl" />
8186
</section>
8287

8388
<section if="cpp ${${haxe_ver} < 3.3}" unless="static_link">

project/Build.xml

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,14 @@
2222
<set name="LIME_MBEDTLS" value="1" unless="emscripten || winrt" />
2323
<!-- <set name="LIME_NEKO" value="1" if="linux" /> -->
2424
<set name="LIME_OGG" value="1" />
25-
<set name="LIME_OPENALSOFT" value="1" if="windows || linux || mac || android" unless="static_link" />
26-
<set name="LIME_OPENAL" value="1" if="iphone || webassembly || tvos" />
27-
<set name="LIME_MOJOAL" value="1" if="switch || static_link || winrt || mojoal" unless="LIME_OPENAL" />
28-
<unset name="LIME_OPENALSOFT" if="LIME_MOJOAL" />
29-
<set name="LIME_OPENAL" value="1" if="LIME_OPENALSOFT" />
30-
<set name="LIME_OPENAL" value="1" if="LIME_MOJOAL" />
25+
<set name="LIME_OPENALSOFT" value="1" if="lime-openalsoft" />
26+
<set name="LIME_OPENAL" value="1" if="lime-openal" />
27+
<set name="LIME_MOJOAL" value="1" if="lime-mojoal" />
3128
<set name="LIME_OPENGL" value="1" />
3229
<set name="LIME_PIXMAN" value="1" />
3330
<set name="LIME_PNG" value="1" />
34-
<!-- <set name="LIME_SDL" value="1" /> -->
35-
<set name="LIME_SDL3" value="1" />
31+
<set name="LIME_SDL" value="1" if="mojoal || winrt || switch" />
32+
<set name="LIME_SDL3" value="1" unless="LIME_SDL" />
3633
<!-- <set name="LIME_SDL_ANGLE" value="1" if="windows" unless="static_link" /> -->
3734
<set name="LIME_SDL_ANGLE" value="1" if="windows LIME_SDL_ANGLE" unless="static_link" />
3835
<set name="LIME_SDL_ANGLE" value="1" if="windows angle" unless="static_link" />
@@ -59,6 +56,8 @@
5956

6057
<files id="lime">
6158

59+
<!-- setting HXCPP_CPP11 doesn't seem to apply to .mm files -->
60+
<compilerflag value="-std=c++11" unless="isMsvc" />
6261
<compilerflag value="-Iinclude" />
6362

6463
<file name="src/ExternalInterface.cpp" />
@@ -492,7 +491,7 @@
492491
<lib name="shell32.lib" />
493492
<lib name="comdlg32.lib" />
494493
<lib name="setupapi.lib" />
495-
494+
496495
<lib name="avrt.lib" if ="LIME_OPENALSOFT"/>
497496

498497
<lib name="usp10.lib" if="LIME_HARFBUZZ" />
@@ -540,15 +539,20 @@
540539
<vflag name="-framework" value="AppKit" />
541540
<vflag name="-framework" value="AudioToolbox" />
542541
<vflag name="-framework" value="AudioUnit" />
542+
<vflag name="-framework" value="AVFoundation" />
543543
<vflag name="-framework" value="Carbon" />
544544
<vflag name="-framework" value="Cocoa" />
545-
<vflag name="-framework" value="AVFoundation" />
545+
<vflag name="-framework" value="QuartzCore" />
546546
<vflag name="-framework" value="CoreAudio" />
547547
<vflag name="-framework" value="CoreVideo" />
548-
<vflag name="-framework" value="CoreHaptics" />
548+
<vflag name="-framework" value="CoreMedia" />
549+
<vflag name="-framework" value="CoreHaptics" />
549550
<vflag name="-framework" value="ForceFeedback" />
551+
<vflag name="-framework" value="GameController" />
550552
<vflag name="-framework" value="OpenAL" />
551553
<vflag name="-framework" value="OpenGL" />
554+
<vflag name="-framework" value="Metal" />
555+
<vflag name="-framework" value="UniformTypeIdentifiers" />
552556
<vflag name="-framework" value="SystemConfiguration" />
553557

554558
<lib name="/opt/local/lib/libgc.a" if="LIME_NEKO" />
@@ -586,15 +590,23 @@
586590

587591
<section if="tvos">
588592

593+
589594
<vflag name="-framework" value="UIKit" />
590595
<vflag name="-framework" value="Foundation" />
591596
<vflag name="-framework" value="AudioToolbox" />
592597
<vflag name="-framework" value="AudioUnit" />
598+
<vflag name="-framework" value="AVFoundation" />
593599
<vflag name="-framework" value="CoreAudio" />
600+
<vflag name="-framework" value="CoreMotion" />
601+
<vflag name="-framework" value="CoreText" />
594602
<vflag name="-framework" value="CoreVideo" />
603+
<vflag name="-framework" value="CoreMedia" />
604+
<vflag name="-framework" value="CoreHaptics" />
605+
<vflag name="-framework" value="ForceFeedback" />
595606
<vflag name="-framework" value="GameController" />
596607
<vflag name="-framework" value="OpenAL" />
597608
<vflag name="-framework" value="OpenGLES" />
609+
<vflag name="-framework" value="Metal" />
598610
<!-- <vflag name="-framework" value="CoreBluetooth" /> -->
599611

600612
<lib name="-ldl" />
@@ -609,12 +621,18 @@
609621
<vflag name="-framework" value="Foundation" />
610622
<vflag name="-framework" value="AudioToolbox" />
611623
<vflag name="-framework" value="AudioUnit" />
624+
<vflag name="-framework" value="AVFoundation" />
612625
<vflag name="-framework" value="CoreAudio" />
613626
<vflag name="-framework" value="CoreMotion" />
614627
<vflag name="-framework" value="CoreText" />
615628
<vflag name="-framework" value="CoreVideo" />
629+
<vflag name="-framework" value="CoreMedia" />
630+
<vflag name="-framework" value="CoreHaptics" />
631+
<vflag name="-framework" value="ForceFeedback" />
632+
<vflag name="-framework" value="GameController" />
616633
<vflag name="-framework" value="OpenAL" />
617634
<vflag name="-framework" value="OpenGLES" />
635+
<vflag name="-framework" value="Metal" />
618636
<!-- <vflag name="-framework" value="CoreBluetooth" /> -->
619637

620638
<lib name="-ldl" />

0 commit comments

Comments
 (0)