Skip to content

Commit 5a0ea4e

Browse files
committed
Merge branch 'release/2.x' into dev
2 parents edc3fb3 + 290af5f commit 5a0ea4e

5 files changed

Lines changed: 52 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
# axmol-2.11.1 (Dec 31, 2025)
2+
3+
## Significant changes relative to 2.11.0
4+
5+
- Disable `streamParsingEnabled` by default (true -> false) @halx99
6+
- Add debian-12+ build support by @halx99 in [#2956](https://github.com/axmolengine/axmol/pull/2956)
7+
8+
## Bug fixes
9+
10+
- Fix android assets missing when build first time by @halx99 in [#2975](https://github.com/axmolengine/axmol/pull/2975)
11+
- Fix partial cleanup issue by reusing existing SpriteSheet by @suhailmalik07 in [#2978](https://github.com/axmolengine/axmol/pull/2978)
12+
- Fix fairygui memory issues by @halx99
13+
14+
## Improvements
15+
16+
- Improve build system: No longer create ninja symlink into cmake bin dir by @halx99 in [#2976](https://github.com/axmolengine/axmol/pull/2976)
17+
- Refactor `DevSetup.md` for clarity and consistency by @halx99
18+
- Use `apt-get` insetad `apt` in axmol cmdline tool scripts by @halx99
19+
- Use binary search to find fitting font size for labels shrinking on overflow by @j-jorge in [#2960](https://github.com/axmolengine/axmol/pull/2960)
20+
21+
## SDK & Tools updates
22+
23+
- Android appcompat: `1.7.0` => `1.7.1`
24+
- Android guava: `33.3.1` => `33.5.0`
25+
26+
## 3rdparty updates
27+
28+
- clipper2: 1.5.4 => 2.0.1
29+
30+
131
# axmol-2.11.0 Dec.19 2025
232

333
## Bug fixes

axmol/2d/PlistSpriteSheetLoader.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,14 @@ void PlistSpriteSheetLoader::addSpriteFramesWithDictionary(ValueMap& dictionary,
190190
if (dictionary["frames"].getType() != ax::Value::Type::MAP)
191191
return;
192192

193-
auto spriteSheet = std::make_shared<SpriteSheet>();
194-
spriteSheet->format = getFormat();
195-
spriteSheet->path = plist;
193+
auto spriteSheet = cache.getSpriteSheet(plist);
194+
if (!spriteSheet)
195+
{
196+
// create a new sprite sheet
197+
spriteSheet = std::make_shared<SpriteSheet>();
198+
spriteSheet->format = getFormat();
199+
spriteSheet->path = plist;
200+
}
196201

197202
auto& framesDict = dictionary["frames"].asValueMap();
198203
int format = 0;

axmol/2d/SpriteFrameCache.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,4 +459,13 @@ ISpriteSheetLoader* SpriteFrameCache::getSpriteSheetLoader(uint32_t spriteSheetF
459459
return nullptr;
460460
}
461461

462+
std::shared_ptr<SpriteSheet> SpriteFrameCache::getSpriteSheet(std::string_view filePath)
463+
{
464+
auto it = _spriteSheets.find(computeHash(filePath));
465+
if (it != _spriteSheets.end())
466+
return it->second;
467+
468+
return nullptr;
469+
}
470+
462471
} // namespace ax

axmol/2d/SpriteFrameCache.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,10 @@ class AX_DLL SpriteFrameCache
254254

255255
ISpriteSheetLoader* getSpriteSheetLoader(uint32_t spriteSheetFormat);
256256

257+
#ifndef _AX_GEN_SCRIPT_BINDINGS
258+
std::shared_ptr<SpriteSheet> getSpriteSheet(std::string_view spriteSheetFileName);
259+
#endif
260+
257261
protected:
258262
// MARMALADE: Made this protected not private, as deriving from this class is pretty useful
259263
SpriteFrameCache() {}

tools/ci/publish.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ $excludes = @(
6464
'axmol-*.zip'
6565
'out'
6666
'*/_x/*'
67+
'cache/cmake-*'
6768
)
6869

6970
if($is_v3) {

0 commit comments

Comments
 (0)