mirror of https://github.com/axmolengine/axmol.git
9774d4751c
* 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> |
||
---|---|---|
.github | ||
1k | ||
cmake | ||
core | ||
docs | ||
extensions | ||
templates | ||
tests | ||
thirdparty | ||
tools | ||
.appveyor.yml | ||
.clang-format | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
AUTHORS.md | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
CMakeOptions.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
README_CN.md | ||
build.ps1 | ||
manifest.json | ||
setup.ps1 |
README.md
Axmol Engine
A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A fork of Cocos2d-x-4.0)
Supported Platforms
- Windows(win32,winuwp,win32-clang)
- Linux
- macOS
- Android
- iOS/tvOS
- WASM
experimental
Building
View the Dev setup instructions.
Axmol WebAssembly preview
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.
Reference links
- 1kiss: A cross-platform one step build powershell script with auto setup general dependent tools
- axmolengine/glslcc: A fork of glslcc for axmol new shader workflow tool
- Interesting related
- Axmols contributing guide
- Official Cocos2d-x
If Axmol Engine helped you please consider adding a star on GitHub. This means a lot to the authors.