Skip to content

Commit 5a6f9c4

Browse files
committed
Merge branch 'release/2.x' into dev
2 parents 53c18ca + 5338283 commit 5a6f9c4

15 files changed

Lines changed: 154 additions & 58 deletions

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ jobs:
142142
- name: Build
143143
shell: pwsh
144144
run: .\tools\cmdline\axmol -p win32 -a x64 -dll
145-
linux:
145+
linux-ogl:
146146
runs-on: ubuntu-latest
147147
steps:
148148
- uses: actions/checkout@v6
@@ -190,7 +190,7 @@ jobs:
190190
- name: Build
191191
shell: pwsh
192192
run: ./tools/cmdline/axmol -p osx -a x64
193-
android:
193+
android-ogl:
194194
runs-on: ubuntu-latest
195195
strategy:
196196
matrix:
@@ -211,7 +211,7 @@ jobs:
211211
./tools/cmdline/axmol -p android -a $env:BUILD_ARCH
212212
- uses: actions/upload-artifact@v6
213213
with:
214-
name: android_${{ matrix.arch }}
214+
name: android_${{ matrix.arch }}_ogl
215215
path: |
216216
templates/**/*.apk
217217
tests/**/*.apk

.github/workflows/verify-app.yml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ on:
1414

1515
run-name: verify-app-pr${{ inputs.pr_id }}
1616

17-
# env:
18-
# pr_id: '${{ inputs.pr_id }}'
17+
env:
18+
GH_XCODE_VER: '16.4'
1919

2020
jobs:
2121
win32:
@@ -70,23 +70,31 @@ jobs:
7070
axmol new HelloCpp
7171
axmol -d HelloCpp
7272
osx-arm64:
73-
runs-on: macos-latest
73+
runs-on: ${{ vars.GH_MACOS_VER }}
7474
steps:
7575
- uses: actions/checkout@v6
7676
with:
7777
ref: 'refs/pull/${{ inputs.pr_id }}/merge'
78+
- uses: maxim-lobanov/setup-xcode@v1
79+
id: setup-xcode
80+
with:
81+
xcode-version: '${{ env.GH_XCODE_VER }}'
7882
- name: Build
7983
shell: pwsh
8084
run: |
8185
./setup.ps1
8286
axmol new HelloCpp
8387
axmol -d HelloCpp
8488
osx-x64:
85-
runs-on: macos-13
89+
runs-on: ${{ vars.GH_MACOS_VER }}-intel
8690
steps:
8791
- uses: actions/checkout@v6
8892
with:
8993
ref: 'refs/pull/${{ inputs.pr_id }}/merge'
94+
- uses: maxim-lobanov/setup-xcode@v1
95+
id: setup-xcode
96+
with:
97+
xcode-version: '${{ env.GH_XCODE_VER }}'
9098
- name: Build
9199
shell: pwsh
92100
run: |
@@ -106,7 +114,7 @@ jobs:
106114
axmol new HelloCpp
107115
axmol -p android -d HelloCpp
108116
ios:
109-
runs-on: macos-latest
117+
runs-on: ${{ vars.GH_MACOS_VER }}
110118
strategy:
111119
matrix:
112120
target_os:
@@ -118,6 +126,10 @@ jobs:
118126
- uses: actions/checkout@v6
119127
with:
120128
ref: 'refs/pull/${{ inputs.pr_id }}/merge'
129+
- uses: maxim-lobanov/setup-xcode@v1
130+
id: setup-xcode
131+
with:
132+
xcode-version: '${{ env.GH_XCODE_VER }}'
121133
- name: Build
122134
shell: pwsh
123135
run: |

1k/build.profiles

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ axslcc=3.3.1+
1010

1111
# The cmake, @gradle @axmol-cmdline
1212
# as latest as possible
13-
cmake=4.2.0+
13+
cmake=4.2.0~4.2.1+
1414

1515
# The ninja
1616
ninja=1.10.0~1.13.1+
@@ -34,7 +34,7 @@ llvm=21.1.5
3434
# region platform:android
3535

3636
# The microsoft openjdk, @axmol-cmdline
37-
jdk=17.0.10~17.0.15+
37+
jdk=17.0.10~17.0.17+
3838

3939
# The android cmdline-tools aka sdkmanager, as stable as possible
4040
cmdlinetools=19.0

1k/install-pwsh.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ mkdir -p $cacheDir
1212

1313
pwsh_ver=$1
1414
if [ "$pwsh_ver" = "" ] ; then
15-
pwsh_ver='7.5.3'
15+
pwsh_ver='7.5.4'
1616
fi
1717

1818
pwsh_min_ver=$2

3rdparty/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
## c-ares
2424
- [![Upstream](https://img.shields.io/github/v/release/c-ares/c-ares?label=Upstream)](https://github.com/c-ares/c-ares)
25-
- Version: 1.34.5
25+
- Version: 1.34.6
2626
- License: MIT
2727

2828
## Clipper2
@@ -98,7 +98,7 @@
9898

9999
## jpeg-turbo
100100
- [![Upstream](https://img.shields.io/github/v/release/libjpeg-turbo/libjpeg-turbo?label=Upstream)](https://github.com/libjpeg-turbo/libjpeg-turbo)
101-
- Version: 3.1.2
101+
- Version: 3.1.3
102102
- License: BSD-style (IJG,BSD-3-Clause,zlib)
103103

104104
## kcp
@@ -124,7 +124,7 @@
124124

125125
- luajit
126126
- Upstream: https://github.com/LuaJIT/LuaJIT
127-
- Version: 2.1-68354f4
127+
- Version: 2.1-7152e15
128128
- License: MIT
129129

130130
- tolua

CHANGELOG.md

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
1+
# axmol-2.11.0 ?? 2025
2+
3+
## Bug fixes
4+
5+
- Fix audio stop blocking on iOS during active phone calls by @halx99 in [#2950](https://github.com/axmolengine/axmol/pull/2950)
6+
- Fix WebSocket close code byte order for [#2889](https://github.com/axmolengine/axmol/issues/2889) by @halx99
7+
- Fix Xcode 14.2 compatibility linking issue by @halx99
8+
- Fix `build-docs.ps1` failing to build 2.10.x by @halx99
9+
- Fix `AX_USE_ALSOFT` definition by @halx99 in [#2912](https://github.com/axmolengine/axmol/pull/2912)
10+
- Fix compile error when `AX_CORE_PROFILE` is defined by @crazyhappygame in [#2910](https://github.com/axmolengine/axmol/pull/2910)
11+
- Fix luabinding generator not working due to missing `clang-ver.ps1` by @halx99
12+
- Fix isolated Axmol apps unable to find NuGet program for [#2926](https://github.com/axmolengine/axmol/issues/2926) by @halx99
13+
- Fix various Particle System bugs by @WUCJ638 in [#2935](https://github.com/axmolengine/axmol/pull/2935)
14+
15+
## Improvements
16+
17+
- Allow overriding `FileUtils::getWritablePath()` on Linux by @j-jorge in [#2906](https://github.com/axmolengine/axmol/pull/2906)
18+
- CI: Stop generating Axmol BS package by @halx99
19+
- CI: Relax map-diff CHECK condition in unit-tests to avoid flaky CI failures by @halx99
20+
- CI: Improve macOS runners and build commands by @halx99
21+
- Add `Node::getHashOfName()` by @j-jorge in [#2907](https://github.com/axmolengine/axmol/pull/2907)
22+
- Lock `axslcc` version to `1.9.6` for Axmol 2.x by @halx99
23+
- Minor performance-related improvements in FontFreeType by @j-jorge
24+
- Delete pending `AsyncStruct`s when `TextureCache` loading thread is destroyed by @j-jorge in [#2911](https://github.com/axmolengine/axmol/pull/2911)
25+
26+
## SDK & Tools updates
27+
28+
- cmake: 4.2.0 => 4.2.1
29+
- jdk: 17.0.15 => 17.0.17
30+
- webview2: 1.0.3595.46 => 1.0.3650.58
31+
32+
## 3rdparty updates
33+
34+
- c-ares: 1.34.5 => 1.34.6
35+
- jpeg-turbo: 3.1.2 => 3.1.3
36+
- libpng: 1.6.50 => 1.6.53
37+
- luajit: 2.1-68354f4 => 2.1-7152e15
38+
39+
140
# axmol-2.10.0 Nov.27 2025
241

342
## Significant changes relative to 2.9.1
@@ -29,14 +68,14 @@
2968

3069
## SDK & Tools updates
3170

32-
- cmake: 4.1.1 4.2.0 (required for VS2026 support)
33-
- gradle: 9.2.0 9.2.1
34-
- webview2: 1.0.3537.50 1.0.3595.46
71+
- cmake: 4.1.1 => 4.2.0 (required for VS2026 support)
72+
- gradle: 9.2.0 => 9.2.1
73+
- webview2: 1.0.3537.50 => 1.0.3595.46
3574

3675
## 3rdparty updates
3776

38-
- curl: 8.16.0 8.17.0
39-
- luajit: 2.1-871db2c 2.1-68354f4
77+
- curl: 8.16.0 => 8.17.0
78+
- luajit: 2.1-871db2c => 2.1-68354f4
4079

4180
## Community News
4281

@@ -441,7 +480,7 @@ across different devices and orientations.
441480

442481
## 3rdparty updates
443482

444-
- cares: 1.34.4 => 1.34.5
483+
- c-ares: 1.34.4 => 1.34.5
445484
- Clipper2: 1.5.2 => 1.5.3
446485
- doctest: 2.4.11 => 2.4.12
447486
- fmtlib: 11.1.4 => 11.2.0

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
# build engine library and all tests
2929

30-
cmake_minimum_required(VERSION 3.22...4.1)
30+
cmake_minimum_required(VERSION 3.22...4.2)
3131

3232
project(axmol)
3333

INFRA.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
## Microsoft.Web.WebView2
1212

1313
- [![nuget](https://img.shields.io/nuget/v/Microsoft.Web.WebView2?label=Upstream)](https://www.nuget.org/packages/Microsoft.Web.WebView2)
14-
- Version: 1.0.3595.46
15-
- License: https://www.nuget.org/packages/Microsoft.Web.WebView2/1.0.3595.46/License
14+
- Version: 1.0.3650.58
15+
- License: https://www.nuget.org/packages/Microsoft.Web.WebView2/1.0.3650.58/License
1616
- Platform: Win32
1717
- Managed by: `cmake/Modules/AXConfigDefine.cmake`
1818

axmol/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
# include_guard (GLOBAL)
3333

3434
# The version number
35-
set(_AX_VERSION 2.8)
35+
set(_AX_VERSION 3.0)
3636

3737
if(NOT DEFINED _AX_CORE_LIB)
3838
set(_AX_CORE_LIB axmol CACHE INTERNAL "The axmol engine lib name")
@@ -596,4 +596,4 @@ elseif(LINUX)
596596
target_include_directories(${_AX_CORE_LIB} PUBLIC ${WEBKIT2GTK_INCLUDE_DIRS})
597597
target_link_libraries(${_AX_CORE_LIB} ${WEBKIT2GTK_LIBRARIES})
598598
endif()
599-
endif()
599+
endif()

axmol/audio/AudioEngineImpl.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ static ALCdevice* s_ALDevice = nullptr;
4444
static ALCcontext* s_ALContext = nullptr;
4545
static ax::AudioEngineImpl* s_instance = nullptr;
4646

47+
#if defined(__APPLE__)
48+
bool __axmolAudioSessionInterrupted = false;
49+
#endif
50+
4751
namespace ax
4852
{
4953
static void pauseAudioDevice()
@@ -122,15 +126,14 @@ static void resumeAudioDevice()
122126

123127
- (void)handleInterruption:(NSNotification*)notification
124128
{
125-
static bool isAudioSessionInterrupted = false;
126-
static bool resumeOnBecomingActive = false;
129+
static bool resumeOnBecomingActive = false;
127130

128131
if ([notification.name isEqualToString:AVAudioSessionInterruptionNotification])
129132
{
130133
NSInteger reason = [[[notification userInfo] objectForKey:AVAudioSessionInterruptionTypeKey] integerValue];
131134
if (reason == AVAudioSessionInterruptionTypeBegan)
132135
{
133-
isAudioSessionInterrupted = true;
136+
__axmolAudioSessionInterrupted = true;
134137

135138
AXLOGD("AVAudioSessionInterruptionTypeBegan, alcMakeContextCurrent(nullptr)");
136139

@@ -139,7 +142,7 @@ static void resumeAudioDevice()
139142
}
140143
else if (reason == AVAudioSessionInterruptionTypeEnded)
141144
{
142-
isAudioSessionInterrupted = false;
145+
__axmolAudioSessionInterrupted = false;
143146

144147
if ([UIApplication sharedApplication].applicationState == UIApplicationStateActive)
145148
{
@@ -174,7 +177,7 @@ static void resumeAudioDevice()
174177
if (resumeOnBecomingActive)
175178
{
176179
resumeOnBecomingActive = false;
177-
if (!isAudioSessionInterrupted)
180+
if (!__axmolAudioSessionInterrupted)
178181
ax::pauseAudioDevice();
179182

180183
AXLOGD("UIApplicationDidBecomeActiveNotification, resume audio device");
@@ -189,7 +192,7 @@ static void resumeAudioDevice()
189192

190193
ax::resumeAudioDevice();
191194
}
192-
else if (isAudioSessionInterrupted)
195+
else if (__axmolAudioSessionInterrupted)
193196
{
194197
AXLOGD("Audio session is still interrupted!");
195198
}
@@ -851,7 +854,7 @@ void AudioEngineImpl::stop(AUDIO_ID audioID)
851854
return;
852855

853856
auto player = iter->second;
854-
player->destroy();
857+
player->stop();
855858

856859
// Call '_updatePlayersState' method to cleanup immediately since the schedule may be cancelled without any
857860
// notification.
@@ -863,7 +866,7 @@ void AudioEngineImpl::stopAll()
863866
std::lock_guard<std::recursive_mutex> lck(_threadMutex);
864867
for (auto&& player : _audioPlayers)
865868
{
866-
player.second->destroy();
869+
player.second->stop();
867870
}
868871
// Note: Don't set the flag to false here, it should be set in 'update' function.
869872
// Otherwise, the state got from alSourceState may be wrong

0 commit comments

Comments
 (0)