axmol/CHANGELOG.md

16 KiB

axmol-2.0.0 Sep.9 2023

  • Add experimental WebAssembly build support(WebGL 2.0) by @nowasm
    • List of known issues maybe help wanted
      • WebGL context lost not handled yet
    • A demo avaiable on axmol gh-pages: cpp-tests.html, build from branch dev
    • Note: Follow functionals require wasm pthread support, and needs server enable https://web.dev/coop-coep/ response with specified header, and by default thread support was enabled by axmol client build commands
      • AudioEngine
      • ASTC multi-thread software decoder
      • TextureCache::addImageAsync
      • MeshRenderer::createAsync
      • Extension: live2d not support due to it's sdk core not opensource and not contains wasm prebuilt libs
    • Quick build and run cpp_tests on local machine, the command use emrun to preview, and it's response with specified headers which wasm pthread support required, so above functionals with multi-threading works well.
      • axmol run -p wasm -xb "--target,cpp_tests"
    • Add 2 cmake options: AX_WASM_THREADS, AX_WASM_SHELL_FILE, refer to CMakeOptions.md
  • OpenGL3/GLES3 support, add new cmake option AX_GLES_PROFILE to control GLES profile, refer to #1279
  • Mesh instancing draw support
  • Use glslcc(a spriv-corss & glslang wrapper tool) as new shader workflow, write shader by ESSL310, build to target platforms:
    • MSL for Apple(macOS/iOS/tvOS)
    • ESSL300 for Android, ANGLE
    • GLSL330 for Desktop GL
    • GLSL100 for Android old devices e.g android-4.2
    • Restrict ESSL310 input shader: please only define 1 uniform block at per shader stage
  • Improve ProgramManager for loading custom shader program more easy
  • Improve text rendering, label SDF outline support
  • Improve FileStream, handle large 4GB+ files
  • Improve ASTC hardware support detection
  • Use ANGLE as default renderer library on win32
  • Thirdparty Updates
    • ANGLE: 113.0.5672.128 ==> 115.0.5790.173
    • curl: 8.1.2 ==> 8.2.1
    • fmtlib: 10.0.0 ==> 10.1.0
    • FreeType: 2.13.0 ==> 2.13.2
    • llhttp: 8.1.1 ==> 9.0.1
    • OpenSSL: 3.0.9 ==> 3.0.10
    • webp: 1.3.0 ==> 1.3.1
    • xxHash: 0.8.1 ==> 0.8.2
    • zlib: 1.2.13 ==> 1.3
  • API changes:
    • CHANGED: The prototype of ProgramManager::registerCustomProgram was changed
    • ADDED: ProgramManager::loadProgram
    • REMOVED: ProgramManager::getCustomProgram
    • REMOVED: CommandBuffer::setLineWidth
  • Many other improvements

axmol-1.0.1 Sep.8 2023

  • [NEW] Add install-pwsh.sh to make installing powershell on macOS, Ubuntu, ArchLinux more easier

  • [NEW] Axmol console next, now almost powershell (except luabinding generator required python3)

    • The axmol console commands axmol run, axmol deploy aslo support winuwp
    • The axmol console commands not only used by axmol, it's could be used to build any other project based on cmake build system, i.e, goto any cmake based project directory, then run command: axmol build -p win32 -xb "--target, <your_project_cmake_target>"
  • [NEW] ArchLinux now official supported by axmol community, means, with 2 steps:

    1. install-pwsh.sh
    2. pwsh .\setup.ps1 then you can compile for targets: linux and android (apk) by commands in your axmol's project root directory
    • axmol build -p linux for linux
    • axmol build -p android -a arm64 for android
  • [REFINE] Lock android ndk revision to r23c

axmol-1.0.0 Aug.9 2023

  • [HIGHLIGHT] Reimplemented MediaPlayer support play media(video/audio) files for all platforms, and ui::VideoPlayer was renamed to ui::MediaPlayer
  • [HIGHLIGHT] Windows Store UWP apps support
  • [HIGHLIGHT] Add build windows with llvm-clang + ninja support
  • [HIGHLIGHT] Add extensions Effekseer support
  • [HIGHLIGHT] Replace all string map with robin_map which support heterogeneous lookup
  • [HIGHLIGHT] Add precompile_headers all platforms support, thanks to @crazyhappygame
  • [HIGHLIGHT] Refactor VertexLayout sharing mechanism
  • [HIGHLIGHT] Refactor shader program management: link when use, rename ProgramCache to ProgramManager
  • [HIGHLIGHT] Improve MeshRenderer #879 thanks @solan-solan (#904)
  • [HIGHLIGHT] Improve model loader, auto set texture for .obj file when texture path not specified
  • [HIGHLIGHT] Add apple M1, android x64 support, contributed by @pietpukkel
  • [HIGHLIGHT] Add apple tvos support, thanks to @paulocoutinhox
  • [HIGHLIGHT] Add Particle System Animations, Alpha Masks & Improvements, thanks to @DelinWorks
  • [HIGHLIGHT] Add wireframe rendering and function classification improvements, thanks to @DelinWorks
  • [HIGHLIGHT] Improve text rendering
  • [HIGHLIGHT] Improve windows workflow, support linking with engine prebuilt libs
  • [HIGHLIGHT] Improve spine RTTI compare performance when compiler string pooling enabled
  • [HIGHLIGHT] Implement Windows WebView using WebView2 Edge Chromium, thanks to @rh101
  • [HIGHLIGHT] Windows x64 build support
  • [HIGHLIGHT] Support custom texture atlas formats, thanks to @rh101
  • [HIGHLIGHT] Downloader realtime md5 checksum calculation support
  • [HIGHLIGHT] Decompress astc parallel support
  • [HIGHLIGHT] Reimplement HttpClient based on yasio for concurrent http request support
  • [HIGHLIGHT] Improve Lua RTTI performance and less memory cost
  • [HIGHLIGHT] Virtual File System support, thanks to @rh101
  • [HIGHLIGHT] Refactor lua loader, speed up 30%+
  • [HIGHLIGHT] Update plainlua version to 5.4.4
  • [HIGHLIGHT] Use Openal-Soft for all platform
  • [HIGHLIGHT] Refactor UserDefault with mio, speed up 100x+
  • [HIGHLIGHT] Implement all .wav formats supported by Openal-Soft, such as MS-ADPCM, ADPCM
  • [HIGHLIGHT] Use modern GL loader glad (v2.0.2)
  • [HIGHLIGHT] Add google angle (version 5672) renderer backend support for windows
  • [HIGHLIGHT] Update codebase to C++ 17/20 standard
  • [HIGHLIGHT] Remove tinyxml2
  • [HIGHLIGHT] Use fast pugixml
  • [HIGHLIGHT] Spine-3.6~4.1 support, default is 4.1
  • [HIGHLIGHT] ASTC 4x4/6x6/8x8 support (if hardware decoder not present, use software decoder)
  • [HIGHLIGHT] ETC2 RGB/RGBA support (if hardware decoder not present, use software decoder)
  • [HIGHLIGHT] ImGui integrated for Android platform, thanks to @rh101
  • [HIGHLIGHT] ImGui integrated for PC platforms
  • [HIGHLIGHT] Add extension FairyGUI support
  • [HIGHLIGHT] Add extension Live2D support
  • [HIGHLIGHT] Use curl for transferring data with URL syntax
  • [HIGHLIGHT] Modularize all optional extension, move from engine core to folder extensions
  • [HIGHLIGHT] Improve thirdparty libs building, 100% of them build from sources or github actions with latest toolchain, see also: axmolengine/buildware
  • [HIGHLIGHT] Add new API Director::setChildrenIndexerEnabled for speed up getChildByTag & getChildByName support
  • [HIGHLIGHT] Add new API FontFreeType::setStreamParsingEnabled for stream parsing support . It's very useful for reducing memory costs when loading a large .ttf font file
  • [HIGHLIGHT] Remove all unnecessary std::nothrow stubs
  • [HIGHLIGHT] Use c++17 string_view instead const std::string&
  • [HIGHLIGHT] Improve code quality (stage1.Oct) (#916)
  • [HIGHLIGHT] Remove CC prefix from code file name
  • [NEW] Add closeKeyboard() method for EditBox, thanks to @theunwisewolf
  • [NEW] Added automake and automake to dependency list, thanks to @clawfinger
  • [NEW] Add primitive type support for mesh materials, thanks to @DelinWorks
  • [NEW] Add int64_t/uint64_t support for cocos2d::Value
  • [NEW] Add support for scaling for RichElementImage, thanks to @theunwisewolf
  • [NEW] Add fmtlib 10.0.0
  • [NEW] Add llhttp 8.1.0
  • [NEW] Add return type 'ResourceData' for lua bindings, thanks to @tkzcfc
  • [NEW] Add spine binary support for lua bindings, thanks to @tkzcfc
  • [NEW] Add GL_RGBA32F GL backend support by @solan-solan
  • [NEW] CI: add upload android apk support by @crazyhappygame
  • [NEW] Add Anchored Sprite Class by @DelinWorks
  • [NEW] Update app icon to Axmol logo by @rh101
  • [NEW] Add HSV/HSL types support by @DelinWorks
  • [NEW] Add support for haptic feedback on iOS and Android devices by @maksg
  • [FIX] Fix for UIEditBox password on Mac/iOS (Montery+/15+), thanks to @Niborski
  • [Fix] Fix to ensure Component::onEnter() is called (#867), thanks to @rh101
  • [Fix] Fix Label overflow shrink bug
  • [FIX] Fix uniform location mismatch when more than 1 spine with different shaders
  • [FIX] Fix imgui draw frame cause afterimage when game scene nothing to draw
  • [FIX] Set global Z value of label debug layer to be the same as the parent label to fix display issue
  • [FIX] Use TTF scaled metrics to calculate line height, thanks to @rh101
  • [FIX] Fix Memory leak in ShaderModuleGL::getErrorLog(), thanks to @Xrysnow
  • [FIX] Fix console output text encoding for win32
  • [FIX] Fix charset process for fontName on win32
  • [FIX] Fix crash on ParticleBatchNode::updateProgramStateTexture()
  • [FIX] Fix crash on SpriteBatchNode::appendChild when CC_SPRITE_DEBUG_DRAW==1
  • [FIX] Fix Lua can't get unsigned char or unsigned int values of ValueMap
  • [FIX] Fix crash on AudioEngine::end after the Director was destroyed
  • [FIX] Fix font atlas will leak when it does not exist in the atlas cache, thanks to @rh101
  • [FIX] Fix ScrollView shows incorrect position in vertical direction some time, thanks to @wzhengsen
  • [FIX] Fix Spine ClippingAttachment doesn't work
  • [FIX] Fix render problem with boss.obj
  • [FIX] Fix downloader crash in lua coroutine, thanks to @tkzcfc
  • [FIX] Fix memory leak (VertexLayout) at Program constructor
  • [FIX] Fix missed edge case when resizing the memorymapped file in UserDefault that could cause a crash, thanks to @theunwisewolf
  • [FIX] Fix http post with uri params
  • [FIX] Fix extension issue - FairyGUI BMFont don't load, reported by @theSlyest
  • [FIX] Fix download task creation failure Program crash, reported by @tkzcfc
  • [FIX] Fix charset process in glfwCharCallback (cocos2dx-all)
  • [FIX] Fix positionColorLengthTexture.vert shader compilation, thanks to @DelinWorks
  • [FIX] Fixed resize on Windows by @Niborski
  • [FIX] Trim leading space from wrapped lines of text in RichText by @rh101
  • [FIX] Fix TileMap OpenGL pixel-tolerance by @DelinWorks
  • [FIX] Fix TileMap flipped/rotated animated tiles incorrect rendering by @DelinWorks
  • [FIX] Fix TiledMap sprite position by @rh101
  • [FIX] Fix for incorrect tile sprite setup on creation by @rh101
  • [FIX] Fix return reference to local temporary value by @rh101
  • [FIX] Fix TMX Tiled Map CSV, BASE64, & ZLIB incorrect parsing by @DelinWorks
  • [FIX] Fix to ensure new line is correctly added to RichText by @rh101
  • [FIX] Fix tilemap camera move and zoom culling by @DelinWorks
  • [FIX] Fix some audio test case can't hear sound
  • [FIX] Fix RenderTexture memory leak and increased memory usage when initWithWidthAndHeight is called by @rh101
  • [REFINE] Improved error handling in shader initialization by @CodeAndWeb
  • [REFINE] Move getWroldPosition from Widget to Node class, thanks to @rh101
  • [REFINE] Improve FileUtils::addSearchPath, thanks to @tkzcfc
  • [REFINE] Allow the forced reformatting of RichText contents, thanks to @rh101
  • [REFINE] Upgrade android toolsets to ndk-r23 LTS
  • [REFINE] CCValue move construct and assign with std::string support
  • [REFINE] Improve windows dev workflow, use working directory instead copy resources to build binary directory
  • [REFINE] Add lua debug project file to lua project template
  • [REFINE] Remove lua 64bit spec search path, since we can compile compatible bytecode for both plainlua and luajit
  • [REFINE] Put stats labels to safe origin to make sure we can see it integral at some mobile device
  • [REFINE] Improve cmake scripts
  • [REFINE] Replace deprecated repo jcenter with mavenCentral
  • [REFINE] Lua-5.4 compatible
  • [REFINE] Improve cmdline-tools
  • [REFINE] Ensure label underline node has the same global Z value as the label node to fix visibility issue when global Z is not 0
  • [REFINE] Improve android astc support check
  • [REFINE] Improve the "Physics part" (#379), thanks to @aismann
  • [REFINE] Rename command line to to axmol
  • [REFINE] Update imgui to 1.88
  • [REFINE] Rename thirdparty folder external to thirdparty
  • [REFINE] Building plainlua as dll on windows always for debugger happy to debug app quickly
  • [REFINE] Avoid OS_WINDOWS conflict with system macro
  • [REFINE] Update OpenSSL to v3.0.x latest
  • [REFINE] Update FreeType to latest
  • [REFINE] Use Freetype SDF render when label distance field enabled
  • [REFINE] Always enable string pooling for msvc on cmake
  • [REFINE] Change DrawNode api color parameters from Color4F to low Color4B
  • [REFINE] Improve DrawNode GC allocs
  • [REFINE] Use jni.hpp to improve jni call without method signature GC allocs
  • [REFINE] Rename is64BitIOSDevice to is64BitMobileDevice
  • [REFINE] Fix Android screen blank issue after unlocking device with application running, thanks to @rh101
  • [REFINE] Update zlib to v1.2.13
  • [REFINE] Add explicit cmake options
  • [REFINE] Migrate cross platform ci checks to github actions
  • [REFINE] Replace push_back with emplace_back
  • [REFINE] Improve Camera, thanks to @DelinWorks
  • [REFINE] Use jpeg-turbo for jpg image decoding
  • [REFINE] Update clipper1 to clipper2 1.x
  • [REFINE] Update flatbuffers to v2.0.8
  • [REFINE] Change Program::getActiveAttributes return type to reference
  • [REFINE] Rename Sprite3D to MeshRenderer
  • [REFINE] Improve AutoPolygon::generateTriangles performance (#905)
  • [REFINE] Add many box2d testbed, thanks to @aismann
  • [REFINE] Improve c++11 for-loop performance with Universal References (#760), thanks to @aismann
  • [REFINE] New engine logo & splash
  • [REFINE] Improve gradle scripts
  • [REFINE] Replace use of deprecated sprintf with snprintf, thanks to @euler0
  • [REFINE] Fix some warnings compilation in linux gcc 12.2.0, thanks to @Joilnen
  • [REFINE] Add linux prebuilt support, thanks to @AsakuraMizu
  • [REFINE] Fix wanings implicit conversion loses and use of deprecated function, thanks to @euler0
  • [REFINE] Clarify the order of steps required to create and build new projects, thanks to @rh101
  • [REFINE] Add a pool for GroupCommand rendering commands, thanks to @rh101
  • [REFINE] Improve ci scripts, thanks to @crazyhappygame
  • [REFINE] Improve lua and android cmake, thanks to @crazyhappygame
  • [REFINE] Update libpng to 1.6.39
  • [REFINE] Improve cpp template, thanks to @aismann
  • [REFINE] Improve drawCircle rendering for big ring, thanks to @aismann
  • [REFINE] Add windows dll build checks for GH actions
  • [REFINE] Improve test naming by @DelinWorks
  • [REFINE] Scrollbar visibility fix for when auto hide is disabled by @rh101
  • [REFINE] Improve richtext word wrapping by @rh101
  • [REFINE] Tidy project tree and full symlink support
  • [REFINE] Impore Metal Renderer Dirty Detection by @Yehsam23
  • [REFINE] Improve Android performance
  • [REFINE] Add 1 overload AudioEngine::play2d for time offset support
  • [REFINE] Improve exit flow
  • [REFINE] Use ipv4 address preferred for console command server
  • [REFINE] Reopen alsoft device when default device changed
  • [REFINE] Factor in protected nodes when creating global Z node priority map for event dispatcher by @rh101

cocos2d-x-4.0 Dec.3 2019

  • [HIGHLIGHT] Support metal
  • [HIGHLIGHT] Use CMake for all platforms
  • [REFINE] Update glfw to 3.3
  • [REFINE] Update minizip to 1.2
  • [CHANGE] remove deprecated functions
  • [CHANGE] remove h5 engine and JSB
  • [CHANGE] remove tiff
  • [CHANGE] remove experimental namespace
  • [FIX] system font can not work correctly on macOS 15
  • [FIX] TextField can not work if using system input to get Chinese characters with iOS13
  • [FIX] UIWebView uses WKWebView instead
  • [FIX] VideoPlayer uses AVPlayerController instead
  • [FX] lua crashes on 64it devcices