- [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.3
- [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
- [HIGHLIGHT] Google angle renderer backend support
- [HIGHLIGHT] Update codebase to C++ 17 standard
- [HIGHLIGHT] Remove tinyxml2
- [HIGHLIGHT] Use fast pugixml
- [HIGHLIGHT] Spine-3.6~4.0 support
- [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 PC platforms
- [HIGHLIGHT] Extension FairyGUI 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, 99% of them build from sources or github actions with latest toolchain, see also: `adxeproject/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 reduce memory cost when load large .ttf font file
- [HIGHLIGHT] Remove all unnecessary `std::nothrow` stubs
- [NEW] Add int64_t/uint64_t support for `cocos2d::Value`
- [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
- [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
[FIX] the color of underline is different from the text color
[FIX] memory leak in `MenuItemToggle::create()`
[FIX] crash after removing a physics body right after adding it
[FIX] SpriteBatchNode crash if CC_SPRITE_DEBUG_DRAW is enabled
[FIX] memory leak in `Data::move()`
[FIX] crash in `EaseExpoentialOut::clone()`
[FIX] buffer over-read in `GLProgram::updateUniformLocation()`
[FIX] `dirty` variable incorrectly reset with a multiple camera setup causing drawing issues on Sprite
[FIX] fix label text formatter right alignment
[FIX] `bsd_signal` link error on Android
[FIX] crash while decoding small MP3 file on Android
[FIX] `AppDelegate::applicationWillEnterForeground()` is invoked at launch on Android
[FIX] fix `relocation overflow in R_ARM_THM_CALL` on Android
[FIX] navigation bar doesn't hide if show and dismiss keyboard on Android
[FIX] `utils::getTimeInMilliseconds()` may return wrong value on Android
[FiX] link error that `bsd_sinal` is not defined if building with API level 21+ and uses libwebsockets on Android
[FIX] compiling error with Android 6.0(API 23)
[FIX] music is not resumed when app is reactived on iOS
[FIX] random crash in `alGenBuffers` at startup on iOS
[FIX] can not play audio if uncache and play audio many times on iOS
[FIX] `Text::create()` crash if it contains invalid string on iOS
[FIX] `FileUtils::removeDirectory()` can not work on all platforms except iOS and Mac
[FIX] can not compile cocos2d-x on Mac OS X 10.10 and lower
[FIX] new js project link error on linux
[FIX] AudioEngine can not play large ogg file on Windows
[FIX] design resolution broken after minimize on desk platforms
[FIX] can not get the `backClicked` in lua
[FIX] `cc.convertColor` issue in lua
[FIX] browser version detection
[FIX] compiling error with `cocos gen-libs`
[FIX] spine track entry can circle reference each other
[FIX] global object can leak during restart in JSB
[FIX] progress timer nested sprite can't change color in Canvas
[FIX] layout refresh issue in web engine
[FIX] dom element position synchronization issue in web engine
[FIX] armature position shake when parent node move in web engine
[FIX] rendering issue for Armature using sprite as display in bone in web engine
[FIX] Scale9Sprite GRAY state isn't correct in WebGL
[FIX] touch startPoint can be overwrote in web engine
[FIX] syncStatus transform dirty flag isn't resetting in web engine
cocos2d-x-3.12 Jul 06 2016
[HIGHLIGHT] add VR support
[HIGHLIGHT] add Tizen support
[HIGHLIGHT] fix Android performance issue
[HIGHLIGHT] Web engine performance improved in WebGL mode
[HIGHLIGHT] support obb extension on Android
[NEW] Core: add `utils::findChild()`
[NEW] Core: add CSV format support to tile maps
[NEW] Core: add `FileUtils::getContents()`
[NEW] Core: cocos2d::Value supports unsigned
[NEW] Particle: add feature to pause/resume particle emitter
[NEW] Platform: support Windows 10 UWP x64
[NEW] UI: add clamp and shrunk feature for system fonts, currently only support iOS, Android and Mac
[NEW] UI: make ListView select item programmatically
[NEW] UI: add `EditBox::InputFlag::LOWERCASE_ALL_CHARACTERS` to lowercase characters
[NEW] UI: add `setBounce()` to WebView
[NEW] Web: refactor TMXLayer renderers
[NEW] Web: can force orientation in mobile browser
[NEW] Web: support high resolution TTF Label on retina display
[REFINE] Android: use clang instead of gcc to compile codes
[REFINE] Android: hide virtual button by default
[REFINE] Android: set music volume control as default
[REFINE] Android: usage clang insteand of gcc to compile codes
[REFINE] Audio: catch `IllegalStateException` exception to avoid crash when playing background music with SimpleAudioEngine on Android
[REFINE] Core: fix many warnings
[REFINE] Core: move StringUtils functions from deprecated header file to ccUTF8.h
[REFINE] Core: FontFNT will ignore chars that exceeds 65535 and print a warning information
[REFINE] Core: `Node::ignoreAnchorPointForPosition()` is deprecated and add `Node::setIgnoreAnchorPointForPosition()`
[REFINE] Core: allow inherit from platform FileUitils
[REFINE] Core: add optional alpha parameter to Color4B and Color4F
[REFINE] Core: Follow action can accept horizontal and vertical offset
[REFINE] Core: TMXXMLParse parse `id` element
[REFINE] Lua: rename all member functions named `end()` to `endLua()`
[REFINE] JSB: make selectedSprite opitional in MenuItemSprite
[REFINE] JSB: return null if read failed in `js_cocos2dx_CCFileUtils_getDataFromFile()`
[REFINE] Template: iOS tempalte is refined to make cocos2d-x game scene work better with other UIView
[REFINE] Template: remove `build_native.sh`
[REFINE] Template: ARC support on iOS and Mac OS
[REFINE] UI: TTF and BMFont label wrap mode will automanytically changed to char wrap mode when label's width is less than word's boundary
[REFINE] UI: UIWidget adds missing properties for clone
[REFINE] UI: UIScrollBar caches the texture created with base64 encoded images
[REFINE] UI: EditBox now prints lowercase letters by default
[REFINE] UI: enable WebView's local storage on Android
[REFINE] UI: improve EditBox implementation on WinRT
[REFINE] UI: make PageView indicator more tunable
[REFINE] UI: make PageView page turning event time tweak configurable
[REFINE] UI: RichText is improved: add effect of outline, shadow and glow; catch the event of open url; ability to extend tags; add anchor of image tag
[REFINE] 3D: skeleton animation is more efficient when two animations switch frequently
[REFINE] 3rd party: update webp to 0.5.0
[REFINE] Web: improve basic types to reduce memory usage
[REFINE] Web: Show line number in console statements
[REFINE] Web: Cache base64 image of PageViewIndicator and ScrollViewBar
[REFINE] Web: Pass error in cc.AsyncPool in onEnd callback
[REFINE] Web: Separate ccui.ListView event callback from ccui.ScrollView for its own events
[FIX] Android: fix compiling error if using NDK r11+
[FIX] Android: package name is `libcocos2dx` instead of application name if building with Android Studio
[FIX] Audio: AudioEngine can not work if the file path contains not ascii code on iOS
[FIX] Audio: SimpleAudioEngine::playEffect() doesn't work correctly on Linux
[FIX] AssetsManager: can not work
[FIX] AssetsManagerEx: use manifestUrl from remote version
[FIX] Core: `FileUtils::writeValueMap()` will crash on iOS if it contains `Value::Type::None` type element
[FIX] Core: `ClippgNode::setStencil()` may cause assert error if it is invoked before
[FIX] Core: `TextureCache::addImageAsync()` doesn't set pixel format corretly
[FIX] Core: `GL::SetBlending()` doesn't set dst correctly
[FIX] Core: vertex z can not work correctly if window size changed on desktop platforms
[FIX] Core: use `std::isnan()` instead of `isnan()` to fix compiling errors on some Linux platforms
[FIX] Core: crash on windows when using PolygonInfo
[FIX] UI: Keyboard doesn't hide when click the screen outside of EditBox on iOS platform.
[FIX] UI: Fix a fatal bug in EditBox implement on Windows platform.
[FIX] UI: Fix edit box setPlaceholderFontName and scale font size issue.
[FIX] Core: Fix memory leak when initWithImage() failed.
[FIX] Network: CCDownloader on iOS is broken in v3.9 js-binding.
[FIX] JS: Bindings fixes for Menu, Sprite and Label.
[FIX] Studio: Remove weak reference in ActionNode.
[FIX] UI: shouldStartLoading method should return value to js in js-binding.
[FIX] UI: Fix scrollview render error.
[FIX] JS: Fix win32 js project crash issue.
[FIX] UI: Button touch doesn't work with scale9 enabled.
[FIX] JS: Fix evalString doesn't return result issue.
[FIX] JS: Fix ComponentJS proxy management issue in JSB.
[FIX] Android: Fix include in cocos network module.
[FIX] Network: Fix web socket crash.
[FIX] UI: Fix TextField missing default password style text setting.
[TEST] S9SpriteTest: Scale9Sprite fade actions with cascade opacity.
[TEST] Web: Remove default focus block from UIFocusTestVertical.
[TEST] Lua: Fix pageViewTest Horizontal scroll won't work in Lua-test.
cocos2d-x-3.9 November.09 2015
[NEW] Label: Added line spacing/leading feature to Label.
[NEW] ListView: Added APIs to scroll to specific item in list.
[NEW] ListView: Added APIs to get an item in specific position like center, leftmost, rightmost, topmost and bottommost.
[NEW] ListView: Added a feature for magnetic scrolling.
[NEW] Animate: Added ActionTimeline::setAnimationEndCallBack and ActionTimeline::addFrameEndCallFunc.
[NEW] Animate: Added CSLoader::createNodeWithVisibleSize, CSLoader::createNodeWithVisibleSize and moved "ui::Helper::DoLayout" into them.
[NEW] Studio: Added Light3D support for Cocos Studio.
[NEW] Platform: Added the missing CURL support to the Windows 10 UWP version.
[NEW] Platform: Added UIEditBox support on linux platform.
[REFINE] 3D: Added non-null checks in PUScriptCompiler::visit before dereferencing.
[REFINE] 3D: Refined SkyboxBrush by making the shader parameter take effect at once.
[REFINE] Label: Changed label font size type to float to support high precision when font size is small.
[REFINE] ListView: Fixed an issue that list view's Magnetic::CENTER is not working well when non-bounceable.
[REFINE] ListView: Added feature of jumping to a specific item in list view.
[REFINE] Sprite: Added "a unsupport image format!" log when creating a sprite in CCImage.cpp.
[REFINE] ScrollView: Merge logics of Scroll View for scroll by inertia and auto scroll into one.
[REFINE] Animate: Moved initialization of image to an appropriate location, because it always called twice in SpriteFrameCache::addSpriteFramesWithFile().
[REFINE] Simulator: Changed the size of startFlag to 13.
[REFINE] Simulator: Show Node and Skeleton in the middle of the simulator.
[REFINE] Simulator: Removed screen direction check in simulator to avoid render error.
[REFINE] Pysics: Refined components to improve physics performance.
[REFINE] UI: Refined ComponentContainer to improve performance.
[REFINE] UI: EventListenerMouse will dispatch EventMouse events.
[REFINE] OpenGL: Added check for glfwCreateWindow.
[REFINE] Platform: Fixed a crash on xiaomi2 if Cocos2d-x is built as a dynamic library.
[REFINE] Platform: Updated libcococs2d name to v3.9 on WinRT platforms.
[REFINE] Platform: Added some support for mouse on WinRT. Include: Show/Hide mouse cursor; Mouse event implemented similar Desktop version; Left button send mouse event and touch; Support other mouse button and scroll wheel.
[REFINE] Platform: Correct the convertion between unicode and utf8 on WinRT.
[REFINE] Platform: Improved EditBox implement on Win32 platform.
[REFINE] JS: Add jsb.fileUtils.writeDataToFile().
[REFINE] JS: Set js templates Mac target platform from null to 10.7.
[REFINE] JS: Removed the static define of variable in headfile of ScriptingCore.
[REFINE] Lua: Added AssetsManagerEx constants UPDATE_FAILED and ERROR_DECOMPRESS in Lua.
[REFINE] Lua / JS: Refined lua/js binding tool.
[REFINE] I/O: Refined AssetsManagerEx unzipping by using async.
[REFINE] Web: Improved logic of jsb_boot.js to sync with the web engine behavior.
[REFINE] Web: Sync with CCBoot for web.
[REFINE] Build: Fixed various compiler warnings on Xcode 7.
[REFINE] Build: Fixed Wformat-security warning on Xcode.
[REFINE] Build: Fixed a compile error in __LayerRGBA.
[REFINE] Tool: Added tools for generating documents automatically.
[REFINE] Doc: Clean up the code of setRect() function.
[REFINE] Doc: Fixed a minor typo and renamed INTIAL_CAPS_ALL_CHARACTERS to INITIAL_CAPS_ALL_CHARACTERS in UIEditBox.
[FIX] 3D: Fixed a bug that obb did not rotate with Sprite3d.
[FIX] 3D: Corrected spot light init value.
[FIX] 3D: Added the missing CCMotionStreak3D files.
[FIX] 3D: Fixed a bug in CCPhysics3DComponent.cpp that oldBool is set with a wrong value.
[FIX] 3D: Fixed shader light parameter bug that caused for that all the mesh share light parameter.
[FIX] Sprite: Fixed a bug that CC_SPRITE_DEBUG_DRAW did nothing in Cocos2d-x.
[FIX] Button: Fixed an issue that when image size of variable button status texture are different, Helper::restrictCapInsetRect result may stop the pressed & disabled status picture from loading.
[FIX] Font: Fixed a crash bug in destructor of FontFreeType.
[FIX] Label: Removed scale factor for label shadow.
[FIX] Label: Added missing override keyword.
[FIX] LoadingBar: Fixed a crash bug in LoadingBar.
[FIX] Particle: Fixed a bug of nomalize_point which caused particle rendering error.
[FIX] Tilemap: Fixed a TMXLayer bug: When using float values (for example the actual position of the character) to get the current tile, the wrong tile is sometimes/usually returned.
[FIX] Animate: Fixed a crash bug when csb file is broken.
[FIX] Animate: Fixed a bug that a same frame index is inserted after animation speed is scaled.
[FIX] Animate: Fixed bug in v1.6 that bone animation crashed when performing getBoneAtPoint(0,0).
[FIX] Animate: Fixed crash when recall a cached timeline after scene exited.
[FIX] Animate: Fixed debug-config crash if a FrameBuffer has no RenderTargetDepthStencil.
[FIX] UI: Fixed an image bug caused by the _hasPremultipliedAlpha field.
[FIX] UI: Added missing getChildByTag<>() API.
[FIX] UI: Fixed a bug in Widget::isClippingParentContainsPoint: _hittedByCamera may be null.
[FIX] UI: Fixed a bug that cocos2d::Map may cause Dangling Pointers when inserting Ref Object which already exist in the Map.
[FIX] UI: Fixed a bug in Scheduler which may case Force Close.
[FIX] OpenGL: Fixed a bug of ui::WebView callback operate in OpenGL.
[FIX] Performance: Fixed a bug that NotificationNode was not entered and exited.
[FIX] Renderer: Fixed a bug that Material::clone failed to set the parent correctly.
[FIX] Simulator: Fixed a bug that when scene was set to a very large size(eg. 2048x1536), the simulator window was out of screen.
[FIX] Simulator: Fixed a compilation issue about simulator on Android x86.
[FIX] Skeleton: Removed redundant interface in CCSkeletonNode.
[FIX] Studio: Fixed a bug about Cocos Studio GUItest that MoveBy vertical direction under lua test project cannot scroll back to page 1 from page 2.
[FIX] Studio: Hide menu "cocostudio 2.1" for JSON exported from Cocos Studio 2.x is not supported in CocoStudio 1.6.
[FIX] Studio: Fixed bug that when create project from template, the app name of android-studio project is not changed.
[FIX] Platform: Fixed a bug that Android activity destroyed after reopening the app.
[FIX] Platform: Fixed a crash bug of AudioPlayer in Win32.
[FIX] Platform: Fixed an error about Chinese input in textfield with specific IME on Android.
[FIX] Platform: Fixed missing image asset in Win10 UWP manifest.
[FIX] Platform: Fixed Windows 10 UWP app manifest by correcting image asset paths.
[FIX] Platform: Fixed a bug that FileUtils::GetFileSize can't treat multi-char path.
[FIX] Platform: Fixed a bug of loading pluginx lib when compile Android with --compile-script flag.
[FIX] Platform: Fixed a crash bug caused by integer overflow in Device::getTextureDataForText on iOS.
[FIX] Platform: Fixed the broken v3 Win10 UWP build by removing CCComponentPhysics2d files from the libcocos2d project.
[HIGHLIGHT] UI: Reimplemented and enhanced EditBox on Android: display cursor; support copy, cut, paste and select actions; support multi-line input; pretty adjustment when virtual keyboard shown
[HIGHLIGHT] JS: Bound new AudioEngine in JSB
[HIGHLIGHT] JS: Merged JSB test project into cocos2d test project
[HIGHLIGHT] network: Upgrade SocketIO support to v1.x
[HIGHLIGHT] tools: Optimize Bindings Generator
[HIGHLIGHT] Label: Added HANYI FullType font support
[NEW] 3D: Added light map support in Terrain
[NEW] UI: Added ScrollViewBar for displaying a scroll bar at the side of ScrollView (JSB/Lua ready)
[NEW] UI: Enhanced ScrollView with easing out scrolling
[NEW] UI: Added PageView vertical scroll support
[NEW] UI: Added PageView::JumpToPage API
[NEW] UI: Added a setter for line width in DrawNode
[NEW] Action: Permitted setting bitwise flags to action
[NEW] Animate: Added Animate's getCurrentFrameIndex function
[NEW] FileUtils: Added FileUtils::getFileExtension for getting file's extension name
[NEW] Device: Added vibrate support to enable vibration for a duration
[NEW] WP8: remove WP8 support because Angle don't support WP8 any more
[NEW] WP8.1: added back button support
[FIX] Animate3D: modify `Animate3D::setHighQuality()` Animate3D::setQuality(), add a new animation quality type none which means that will not update animation to the bone, it is useful when the Sprite3D is out of the screen, it can safe a lot of cpu time.
[FIX] AnimationCurve: memory leak
[FIX] Bundle3D: memory leak when failed to load file
[FIX] HttpClient: memory leak on iOS
[FIX] JNI: JNI illegal start byte error which causes crashing error on Android 5.0
[FIX] PUParticleSystem3D: refactoring create function using initWithXXX
[FIX] UI:VideoPlayer: crashed when playing streamed MP4 file on iOS
[FIX] VideoPlayer: can not play videos on Android v2.3.x
cocos2d-x-3.6beta0 Apr.14 2015
[NEW] 3rd: update Spine runtime to v2.1.25
[NEW] MotionStreak: add `MotionStreak::getStroke()` and `MotionStreak::setStroke()`
[NEW] Rect: added `Rect::intersectsCircle()`
[NEW] UI:Text: add `Text::disableEffect(LabelEffect)` to disable a specific effect
[FIX] 3rd: link error on VS2012 caused by libpng
[FIX] Label: position is wrong if it is visited by a new camera
[FIX] Particle3D: crash on clone
[FIX] Particle3D: "make local" now working correctly. "Make local" is a properties that toggles particle coordination between local and global.
[FIX] Particle3D: particle rotation now no longer stacks up on each other
[FIX] Particle3D: Ribbon Trail now positions correctly
[FIX] Physics: rigid body's rotation is wrong if it is attatched to a node which rotation is not 0
[FIX] Label: stroke color of system font is incorrect on iOS
cocos2d-x-3.5rc0 Mar.13 2015
[NEW] CocosStudio: add callback when loading a CSB file
[NEW] Particle3D: more Particle Universe features are supported, add observers and event handlers
[FIX] Billboard: fix bug on transparent Billboard because of transparent queue
[FIX] Bundle: bug that create bundle with empty path
[FIX] Camera: camera is detroyed unexpectedly when call removeAllChildren
[FIX] C++: use console in `build/build_native.sh`
[FIX] Label: position is wrong if it is visited by a new camera
[FIX] MotionStreak: can not work with MoveTo and MoveBy
[FIX] MoveTo: disable reverse() because it is meaningless
[FIX] Particle3D: to make path shorter, rename Particle Universe folder to PU, and files CCPUParticle3DXXX to CCPUXXX to fix compiling error on WP8
[FIX] Particle3D: `loadMaterialsFromSearchPaths` bug on linux platform
[FIX] Sprite3D: fix bug on transparent 3D Sprite because of transparent queue
cocos2d-x-3.5beta0 Feb.27 2015
[NEW] Added Particle3D
[NEW] C++: add Romanian language support
[FIX] Audio: audio can not resume if it is interrupted, and back from background
[FIX] Cocos Studio UI: setCameraMask does not work for the Cocos Studio UI
[FIX] C++: compiling error when using CC_USE_CULLING
[FIX] Label: texture size of string has unexpected padding on iOS 7 and upper version
[FIX] HttpClient: if the request data is started by a null character, it does not fill http body
[FIX] HttpClient: memory leak on iOS
[FIX] Sprite3D: `getAttachNode()` will fail when there is no bone with name
cocos2d-x-3.4 Jan.30 2015
[FIX] Animate3D: `setSpeed` has not effect if `Animate3D` is used in Sequence
[FIX] C++: will crash if built with armeabi-v7a enabled on Android devices that with armeabi-v7a architecture but doesn't support NEON instructions
[FIX] C++: may crash if VAO is not supported
[FIX] EditBox: content is not clipped correctly on windows
[FIX] GLProgram: will cause crash on some devices that don't support more than 8 atrributes
[FIX] HttpClient: not set response code when connecting failed on Android
[FIX] Label: alpha channel of text color of system font has not effect
[FIX] Label: use int for dimensions that will lose the precision
[FIX] Label: labels will become white block after resume from background on some Android devices, such as xiaomi3
[FIX] Label: improved parsing performance of bitmap font
[FIX] Label: can not display `&` if using system font on windows
[FIX] Lua-binding:studio-support: AnimationInfo is not binded
[FIX] New audio: not close file descriptor leads to that may causes game freeze if playing two many times(may be more than 1000) on Android
[FIX] Node: anchor point has not effect to rotation, it always rotate along (0, 0)
[FIX] Physics integration: Scale9Sprite can't run `Move` action and `Scale` action if used physical scene
[FIX] SpriteFrameCache: `addSpriteFramesWithFil`e may crash if plist file doesn't exist
[FIX] Sprite3D: material files (.mtl) are not loaded for any object when creating from an .obj file
[FIX] UI::ImageView: rendered content size is wrong if `ignoreSize` is true and `Scale9` is not enabled
[FIX] UI::Slider: when scale9 is enabled, the progress bar's rendering height is wrong
[FIX] UI:Scale9Sprite: some position information will be lost when toggling `Scale9` state
[FIX] UI::TextField: will get wrong event message if clicking `TextField` twice
[FIX] UI::TextField: result of `getContentSize` is wrong if it is invoked in insert or delete event callback
[FIX] UI::WebView: base URL can not work
cocos2d-x-3.4rc1 Jan.15 2015
[NEW] C++: added CC_USE_CULLING macro to control if enable auto culling or not
[NEW] FileUtils::fullPathForFilename will return empty string when file can not be found
[NEW] VertexBuffer&IndexBuffer: allow setting usage(GL_STATIC_DRAW or GL_DYNAMIC_DRAW) in create method
[NEW] Renderer: 3D rendering support for 2d objects
[FIX] DrawNode: fix random crash because of init opengl buffer wrongly
[FIX] DrawNode: drawPoints() can not set ponit size
[FIX] EventDispatcher: crash if adding/removing event listeners and dispatching event in event callback function
[FIX] GLProgramState: may cause GL_INVALID_VALUE error at start up on Android
[FIX] LUA: 0x80000000 can not be converted by lua_tonumber correctly on some devices
[FIX] PhysicsBody: can't get correct position in the same frame of adding PhysicsBody to PhysicsWorld
[FIX] UI: fix crash when navigation controller is null
cocos2d-x-3.4rc0 Jan.9 2015
[NEW] 3rd: update libcurl to v7.39
[NEW] 3rd: update luajit to v2.0.3
[FIX] C++: crash when run clang static analyzer in Xcode
[FIX] DrawNode: can not set color when DrawPoints, wrong behavior of drawRect
[FIX] FileUtils: getData() can't get data from file when file was using by other application on windows
[FIX] FileUtils: getData() will cause memory leak if file size is 0 on windows
[FIX] GLProgram: when there is a shader compile error in shader, it will crash on windows
[FIX] GLProgramState: Assert error because uniforms and attribute is not refreshed when come to foreground on android
[FIX] HttpClient: http requests will be lost in immediately mode on iOS
[FIX] JumpTo: can not be applied more than once
[FIX] Label: may cause infinite loop if using system font on Android
[FIX] Particle: GL_INVALID_OPERATION error because VAO and VBOs is not reset when come to foreground on android
[FIX] Physics integration: physics body is not still after disabling gravitational force by PhysicsBody::setGravityEnable()
[FIX] Sprite3DTest: Sprite3DUVAnimationTest, Sprite3DFakeShadowTest, Sprite3DLightMapTest, Sprite3DBasicToonShaderTest will crash on android when switch to foreground from background
[FIX] Template: multiple dex files define error on Android if using Eclipse to build new generated application
[FIX] VideoPlayer: can not play video if passing path returned from FileUtils::fullPathForFilename() on Android
[NEW] Application: added Turkish and Ukrainian language support
[NEW] UI:LoadingBar: add TextureResType to LoadingBar's create method
[NEW] Director: add setClearColor() to set clear values for the color buffers
[NEW] Node: rotation representation using quaternion
[NEW] UI: Added new layout functionality for Cocos Studio, keeps widget margins a fixed set and adjusts the widget size according to the margins.
[NEW] UI: Add gray shader to ui::Button, ui::CheckBox and ui::Slider when the disable state resources are not provided
[NEW] UI: Modify the default behavior when ui::Button, ui::CheckBox and ui::Slider's selected state resources are not provided, the new behavior is scale the normal state texture when the selected state texture are missing.
[NEW] 3rd party libraries: Add prebuilt version of libcurl to Mac and upgrade iOS,Android,Mac and Win32 libcurl to 7.39.0.
[NEW] Replace network module implementation from libcurl to system network API on IOS and Android
[FIX] ui::Button: fix setTitleColor calls method setColor instead of setTextColor of title label.
[FIX] AssetsManagerEx: Fix assetManager can't download file on Win32
[FIX] FileUtils: WebP format with alpha channel displayed wrong
[FIX] Label: content size of Label is incorrect if the string is set to empty string
[FIX] GLProgramState: fix assert error caused by outdated uniform and attribute cache
cocos2d-x-3.3 Dec.12 2014
[FIX] Billboard: allow billboard rotate along z axis
[FIX] Bundle3D: create aabb for mesh whose aabb does not exist (user custom mesh)
[FIX] EditBox: text position and move animation error on iPhone6 Plus
[FIX] FileUtils: createDirectory(): doesn't invoke closedir() after opendir on platforms other than WP8/WinRT/Windows
cocos2d-x-3.3-rc2 Dec.5 2014
[FIX] C++: use 100% of one core on Windows
[FIX] Label: when a label is added to a invisible parent node, app will crash if switching from background
[FIX] Label: label will not be shown when using system font on Mac
[FIX] Studio reader: replace protocol buffer with flatbuffer
cocos2d-x-3.3-rc1 Nov.29 2014
[NEW] Vec2: added greater than operator
[NEW] Tools: Updated cocos console to v1.4 (from 1.2)
[NEW] WP8: Win8.1 universal app support
[FIX] Audio: `SimpleAudioEngine::sharedEngine()->playBackgroundMusic()` crashed freezen on Lollipop(Android5.0)
[FIX] Button: when the dimension of button title is larger than the button, button will scale to fit the dimension of the button title
[FIX] Button: when the dimension of button title is larger than the button, button will scale to fit the dimension of the button title
[FIX] Camera: does not work correctly when the up is not (0, 1, 0)
[FIX] Director: Uses a low-pass filter to diplay the FPS
[FIX] DrawNode: drawPoint() may cause crash
[FIX] EventKeyboard: can not check right Shift, right Ctrl and right ALT
[FIX] GLProgramCache: doesn't release old program with the same key before adding a new one
[FIX] GLProgramState: enabled GLProgramState restoring on render recreated on WP8
[FIX] Label: label shifting when outline feature enabled
[FIX] Label: when applying additionalKerning to a Label that displays a string with only 1 character, the character is shifted
[FIX] Label: display incompletely with multiline text with outline feature enabled
[FIX] Label: crash if using BMFont but missing corresponding png file
[FIX] Lua: logical error in luaval_to_quaternion
[FIX] New audio: can not loop on Android 2.3.x
[FIX] Random: CCRANDOM_0_1() and CCRANDOM_MINUS_1_1() can be seeded using std::srand(seed)
[FIX] Scale9Sprite: will be flipped if both flipX and flipY are false
[FIX] Scale9Sprite: if scale and flip property are set at the same time, the result would be wrong
[FIX] Scene: setScale() doesn't work as expected
[FIX] Sprite3D: did not create attached sprite from cache
[FIX] Tests: Sprite Performance Test automation works as expected
[FIX] UI: Text: invoke ignoreContentAdatpSize(false) will cause wrong effect
[FIX] VideoPlayer: showed in wrong place on Android v2.3.x
[FIX] WebView: showed in wrong place on Android v2.3.x
[FIX] WP: back key behaviour and Director::getInstance()->end() works not correctly
[FIX] Lua-binding: XmlHttpRequest would truncate binary data
cocos2d-x-3.3-rc0 Oct.21 2014
[NEW] 3d: added light support: direction light, point light, spot light and ambient light
[NEW] Added ClippingRectangleNode
[NEW] Added AssetsManagerEx, which is more powerful than AssetsManager
[NEW] Added a test case of sprite lamp effect
[NEW] Animate3D: can create with start frame and end frame
[NEW] Audio: new audio supports Mac OS X and Windows
[NEW] Node: visit() and draw() new arguments: Renderer, parentTransform, and whether or not the parentTransform has changed since the last frame
[NEW] Language: Added Dutch support
[NEW] Sprite: Added auto-culling support. Performance increased in about 100% when many sprites are outside the screen
[NEW] Setup.sh: added script to set up environment needed for cocos2d-x
[NEW] Scheduler: Added new API [ schedule(std::function, ...), schedule(member_func, ...) ], deprecated the old API [ scheduleSelector(member_func, ...) ]
[FIX] Action: FadeIn and FadeOut behaviours is incorrect if it doesn't start from an edge value( 0 or 255)
[FIX] Array: crash when invoking initWithObjects()
[FIX] Action: Merge cocostudio/CCActionXxx to CCAction
[FIX] Bindings: Adds a macro to disable inserting script binding relevant codes
[FIX] Bindings: Supports 'setTimeout' and 'setInterval' in JSB
[FIX] Bindngs: Exposes the missing data structures of Spine to JS
[FIX] Bindings: cc.BuilderReader.load( path, null, parentSize ); was not allowed
[FIX] Console: crashes on Windows
[FIX] ControlButton: Crash if it was removed from parent in its callback
[FIX] CocoStudio: Logical error in 'TriggerObj::detect()'
[FIX] Director: Crash if invoking Director::end() on WINDOWS
[FIX] Director: setAnimationInterval has not effect on Mac
[FIX] EditBox: position would not be updated if its parent's position changed
[FIX] EditBox: Voice recognition input would cause crash on ios7
[FIX] EGLView: renamed to GLView, no longer a singleton, easier to customize
[FIX] EventDispatcher: removeAllEventListeners() remove event listeners used internally, make textures not reload on Android when come from background
[FIX] EventDispatcher: dispatchEventToListeners() causes "out of range" exception
[FIX] Image: s3tc compressed textures with no mipmaps fail to be loaded
[FIX] Label: A string which only contains CJK characters can't make a line-break when it's needed
[FIX] Label: Character would not be aligned on the baseline when label using distance field
[FIX] Label: Color and opacity can't take effect
[FIX] Label: Font size passed to new Label didn't consider 'contentScaleFactor'
[FIX] Label: loading custom fonts from ttf file fails on windows
[FIX] Label: LabelAtlas::setColor takes no effect
[FIX] MotionStreak: Added unimplemented position getter/setter
[FIX] Node: setAdditionalTransform receives a pointer and not a const reference
[FIX] Node: setRotation() moves opposite when node has a physics body
[FIX] Node: Can not use Node::setPhysicsBody to reset a physics body
[FIX] Object: Object -> Ref, and remove unneeded functions
[FIX] Other: Removes samples except testcpp|testjavascript|testlua. Moves sample games to `cocos2d/samples` repo
[FIX] Tests: Particle test/AddAndRemove test crashes
[FIX] Tests: RenderTextureTest not drawn when coming from background
[FIX] Tests: LabelTTFMultiline show nothing on mac
[FIX] Timer::cancel always call Director::getInstance()->getScheduler() even in another Scheduler
[FIX] Tests: Potential crash by switching repeatly between HttpClientTest, WebSocketTest, SocketIOTest
[FIX] Tests: State is changed to RESUME when game comes back to foreground if pause button was clicked in Interval Test
[FIX] TMXLayer: Removing child from TMXLayer may cause crash
[FIX] TMXObjectGroup: Object values (x, y, width and height) from TMXObjectGroup are incorrect
[FIX] TMXXMLParser: Refactored the codes of parsing pure xml layer format for tilemap
[FIX] TMXXMLParser: 'y' value is parsed incorrectly
[FIX] UI: Changes namespace from 'cocos2d::gui' to 'cocos2d::ui'.
[FIX] UI: Supports RichText
[FIX] Vector: Object which isn't in Vector would also be released when invoking Vector::eraseObject.
[FIX] Websocket: Potential crash when websocket connection closes.
[FIX] Websocket: No callback is invoked when websocket connection fails
[FIX] Xcode 5.1: Added Xcode 5.1 to build arm64 version, but can not require socket module in lua, will fix it soon
[3RD] Kazmath: Upgraded to latest version of Kazmath
cocos2d-x-3.0beta2 Jan.24 2014
[All]
[NEW] Full screen support for desktop platforms.
[NEW] Adds performance test for EventDispatcher.
[NEW] Adds performance test for Containers(Vector<>, Array, Map<K,V>, Dictionary).
[NEW] DrawNode supports to draw triangle, quad bezier, cubic bezier.
[NEW] Console: added the 'textures', 'fileutils dump' and 'config' commands
[NEW] GLCache: glActiveTexture() is cached with GL::activeTexture(). All code MUST call the cached version in order to work correctly
[NEW] Label: Uses a struct of TTF configuration for Label::createWithTTF to reduce parameters and make this interface more easily to use.
[NEW] Label: Integrates LabelAtlas into new Label.
[NEW] Node: Added `setGlobalZOrder()`. Useful to change the Node's render order. Node::setZOrder() -> Node::setLocalZOrder()
[NEW] Renderer: Added BatchCommand. This command is not "batchable" with other commands, but improves performance in about 10%
[FIX] event->stopPropagation can't work for EventListenerTouchAllAtOnce.
[FIX] Uses unified `desktop/CCEGLView.h/cpp` for desktop platforms (windows, mac, linux).
[FIX] Bindings-generator supports Windows again and remove dependency of LLVM since we only need binary(libclang.so/dll).
[FIX] Removes unused files for MAC platform after using glfw3 to create opengl context.
[FIX] Wrong arithmetic of child's position in ParallaxNode::addChild()
[FIX] CocoStudio: TestColliderDetector in ArmatureTest can't work.
[FIX] CocoStudio: The order of transform calculation in Skin::getNodeToWorldTransform() is incorrect.
[FIX] Crash if file doesn't exist when using FileUtils::getStringFromFile.
[FIX] If setting a shorter string than before while using LabelAtlas, the effect will be wrong.
[FIX] Label: Memory leak in FontFreeType::createFontAtlas().
[FIX] Label: Crash when using unknown characters.
[FIX] Label: Missing line breaks and wrong alignment.
[FIX] Label: Corrupt looking characters and incorrect spacing between characters
[FIX] Label: Label:color and opacity settings are invalid afeter these these properties changed: 1)text content changed 2)align style changed 3)max line width limited
[FIX] Label: Crash when using unknown characters
[FIX] Console: log(format, va_args) is private to prevent possible resolution errors
[FIX] Configuration: dumpInfo() -> getInfo()
[FIX] ControlSlider doesn't support to set selected thumb sprite.
[FIX] ControlButton doesn't support to set scale ratio of touchdown state.
[FIX] Particles: Crash was triggered if there is not `textureFileName`section in particle plist file.
[FIX] Renderer: Uses a float as key with only the depth. Viewport, opaque are not needed now
[FIX] Renderer Performance Fix: QuadCommand::init() does not copy the Quads, it only store a reference making the code faster
[FIX] Renderer Performance Fix: Sprite and SpriteBatchNode (and subclasses) has much better performance
[FIX] Renderer Performance Fix: When note using VAO, call glBufferData() instead of glBufferSubData().
[FIX] Renderer Performance Fix: Doesn't sort z=0 elements. It also uses sort() instead of stable_sort() for z!=0.
[FIX] Sprite: removed _hasChildren optimization. It uses !_children.empty() now which is super fast as well
[FIX] Tests: Sprites Performance Test has 4 new tests
[FIX] TextureCache: getTextureForKey and removeTextureForKey work as expected