Axmol Engine – A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A radical fork of Cocos2d-x-4.0)
Go to file
Deal 9774d4751c
Fix memory leaks refreshed (#1638)
* Fix memory leaks when axmol apps exit on non-embed systems

    1. DriverBase no destroyInstance
    2. Every object inherited from ax::Ref shoud destory before ScriptEngineManager, otherwise will trigger it's reinit and leak
    3.  QuadCommand always leak isolated indices
    4. static singleton should'nt inhert from ax::Ref due to destory it before ScriptEngineManager impossible
    5. Make Director don't inherit from ax::Ref due to it also cause ScriptEngineManager re-init, because we destroy ScriptEngineManger in destructor of Director
    6. Explicit Director managed by Application and don't delete self at purgeDirector, since it will release at mainLoop and re-init in glView->pollEvents then leak
    7. Rename ApplicationProtocol to ApplicationBase
    8. Rename purgeDirector since we don't delete director self at it, maye rename to cleanup
    9. Change ShaderCache to new/delete singleton, managed by ProgramManager

---------

Co-authored-by: lich426 <lich426@gmail.com>
2024-01-29 22:30:14 +08:00
.github Fixup 2024-01-22 21:46:55 +08:00
1k release 2.1.0 finally (#1621) [release 2.1.0] 2024-01-20 16:16:53 +08:00
cmake Slient no shader discovered [skip ci][skip appveyor] 2024-01-25 22:20:04 +08:00
core Fix memory leaks refreshed (#1638) 2024-01-29 22:30:14 +08:00
docs Update docs [skip ci][skip appveyor] 2024-01-23 21:24:07 +08:00
extensions Fix memory leaks refreshed (#1638) 2024-01-29 22:30:14 +08:00
templates Rename cocos_android_app_init to axmol_android_app_init and othre code cleanup 2024-01-29 08:51:35 +08:00
tests Rename cocos_android_app_init to axmol_android_app_init and othre code cleanup 2024-01-29 08:51:35 +08:00
thirdparty Bump 2.1.0 2024-01-19 20:39:08 +08:00
tools Update docs [skip ci][skip appveyor] 2024-01-23 21:24:07 +08:00
.appveyor.yml Bump version to 2.1.1 2024-01-24 22:12:24 +08:00
.clang-format Tidy platform macros/consts value 2023-09-11 19:37:49 +08:00
.editorconfig Add apple tvos support (#846) 2022-09-05 14:13:52 +08:00
.gitattributes Improve make-pkg.ps1 2023-12-27 23:29:38 +08:00
.gitignore Improve build system 2023-12-22 02:39:38 +08:00
AUTHORS.md Update ChangeLog and Authors 2024-01-17 00:44:03 +08:00
CHANGELOG.md Slient no shader discovered [skip ci][skip appveyor] 2024-01-25 22:20:04 +08:00
CMakeLists.txt Improve android build gradle script 2024-01-16 00:47:19 +08:00
CMakeOptions.md Set DrawNodeEx default to 'OFF" (#1613) 2024-01-14 15:56:08 +08:00
CONTRIBUTING.md Final migrate (#876) 2022-10-01 16:24:52 +08:00
LICENSE Prepare 2.1.0 release 2023-12-08 01:04:43 +08:00
README.md Update reademe files 2024-01-10 00:02:00 +08:00
README_CN.md Update reademe files 2024-01-10 00:02:00 +08:00
build.ps1 Unify cmake minimal requirement 2024-01-18 21:12:45 +08:00
manifest.json Update imgui 1.89.8 ==> 1.90 2024-01-09 00:14:29 +08:00
setup.ps1 release 2.1.0 finally (#1621) [release 2.1.0] 2024-01-20 16:16:53 +08:00

README.md

axmol logo

Axmol Engine

A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A fork of Cocos2d-x-4.0)

Latest Release LICENSE Codacy Badge cxxstd

Build Status WASM Build Status

issues forks stars GitHub code size in bytes

PRs Welcome Discord

简体中文

Supported Platforms

  • Windows(win32,winuwp,win32-clang)
  • Linux
  • macOS
  • Android
  • iOS/tvOS
  • WASM experimental

Building

View the Dev setup instructions.

Axmol WebAssembly preview

https://axmol.netlify.app/

Renderer Backends

  • Metal for macOS and iOS
  • OpenGL 3.3+ for Linux, macOS and Win32
  • OpenGL ES 2.0+ for Android
  • OpenGL ES 3.0+ for iOS
  • ANGLE GLES 3.0+ for Win32 and UWP
  • WebGL 2.0(OpenGL ES 3.0): WASM (experimental)

New MediaPlayer

The new ui::MediaPlayer(renamed from ui::VideoPlayer) render video as Texture2D with designed corss-platform MediaEngine, the MediaEngine inspired from microsoft media foundation IMFMediaEngine, the MediaPlayer support all native platforms.

Target Platform Video Compress Format Video Pixel Format Container Format Backend
Windows Desktop H264, HEVC, VP90 YUY2, NV12, RGB32 .mp4,.mkv,.webm IMFMediaSession
Windows UWP H264, HEVC, VP90 BGR32 .mp4,.mkv,.webm IMFMediaEngine
Apple macOS H264, HEVC(hvc1) NV12, BGR32 .mp4 AVFoundation
Apple tvOS H264, HEVC(hvc1) NV12, BGR32 .mp4 AVFoundation
Apple iOS H264, HEVC(hvc1) NV12, BGR32 .mp4 AVFoundation
Android H264, HEVC NV12 .mp4,.mkv,.webm ExoPlayer2
Linux H264, HEVC NV12 .mp4,.mkv,.webm libVLC
WASM NA NA NA NA

Highlighted Features

  • WebAssembly support(experimental) by @nowasm
  • Windows UWP support, refer to: https://github.com/axmolengine/axmol/pull/1108
  • Add apple M1, android x64 support, contributed by @pietpukkel
  • Improve windows workflow, support linking with engine prebuilt libs, read windows workflow guide
  • Windows video player support (based on microsoft media foundation)
  • Windows x64 build support
  • Reimplement HttpClient based on yasio for concurrent http requests processing.
  • 'Upstream-Version-License' Third-party
    • Third-party license overview for easier publishing of your commercial apps based on axmol framework.
    • Some links to third party libs which support axmol too.
  • 'Upstream-Version-License' Extensions
    • Extensions license overview for easier publishing of your commercial apps based on axmol framework.
    • Spine support
    • FairyGUI support
    • DragonBones support
    • Live2D support
    • ImGui integrated, easy to write game embedded tools, very easy to use, read ImGui for more info
  • Refactor AudioEngine, OpenAL for all platforms
    • OpenAL Soft, pass -DAX_USE_ALSOFT=ON to cmake to force enabling it
    • OpenAL.framework, if no AX_USE_ALSOFT option specified, cmake script will choose it on osx/ios/tvos, even though it was marked as deprecated, but still available.
  • Refactor UserDefault with mio
  • Modularize all optional extensions, move from engine core folder to an extensions folder
  • Implement all .wav formats supported by OpenAL Soft, such as MS-ADPCM, ADPCM, ...
  • Use a modern GL loader Glad
  • Google angle renderer backend support
  • IOS/TVOS SDK 11.0 as minimal deployment
  • Use fast pugixml
  • Use curl for transferring data with URL syntax
  • Use SAX parser for all plist files
  • ASTC 4x4/6x6/8x8 support (if hardware decoding is not supported, then software decoding is used)
  • ETC2 RGB/RGBA support (if hardware decoding is not supported, then software decoding is used)
  • Supported 2D physics engines (see also 2D-Physics-Engines-informations):
    • Box2D
    • Box2D-optimized
    • Chipmunk2D
  • Supported 3D physics engines:
    • Bullet Physics SDK

Read Full changes since cocos2d-x-4.0

Open wiki for additional information and see Milestones for planed features too.

If Axmol Engine helped you please consider adding a star on GitHub. This means a lot to the authors.

The axmol Active Stats

Alt