CocoStudio Changelog

What's new in CocoStudio Cocos2d-x 3.17

Jun 30, 2018
  • Android: support Android Studio 3.0, NDK 16
  • iOS: support full screen for iPhone X and uses Storyboard for launch screen
  • 3rd: upgrade Spine runtime to v3.6.39
  • 3rd: upgrade GLFW to 3.2.1
  • CMake support all platforms, and support prebuilt engine libs
  • Engine: multisampling support
  • Label: support non-breaking characters
  • Label: support belarusian language
  • UI: add blend function for Text
  • UI: add ScrollView API to stop overall scroll
  • iOS: add auto hide home indicator for iPhone X
  • iOS: provides an interface for getting SafeArea
  • Android: add one more android return button types
  • Engine: support reading object.rotation attribute in TMX
  • Engine: make the sort behavior is same on 32bit and 64bit
  • Engine: static analize fixes
  • Engine: improve comments in ccConfig.h, JniHelper.h
  • Engine: remove plugin submodule
  • Engine: improve StringUtils::format implementation
  • Label: don't count spaces at the end of line as part of the line width
  • UI: partial cursor support with system font in TextField
  • UI: support BMFont in TextField
  • UI: improve EditBox on win32 platform
  • UI: RichText improvements, get the real height by automatically customize ContentSize, refactor split algorithm
  • UI: remove autorelease mark from UIWebViewWrapper and manage memory manually
  • Lua: implementation conversion Lua table to ObjC Dictionary
  • Lua: improve loader, support standerd Lua package require
  • Web: upgrade Spine Javascript runtime to v3.6.39
  • Windows: speed up build by supporting precompiled header
  • Windows: remove Visual Studio 2013 support
  • Windows: Windows 10 update compiler to PlatformToolset v141
  • iOS: uses Images.xcassets instead of several icon png files
  • Android: support Android Studio 3.0.0, switch to libc++, simplify PROP_* values, add default Proguard Config for cocos
  • Android: remove ant project
  • Android: update NDK from r14 to r16
  • Android: improve Android.mk, not have to set NDK_MODULE_PATH in project settings
  • Android: detail comments for cddandroidAndroidJavaEngine.h, Cocos2dxSound.java
  • Linux: provide prebuilt version of GLFW
  • cocos console: remove ant build support
  • cocos console: support building release APK without key information
  • 3rd: remove Visual Studio 2013 libs
  • 3rd: remove Android armeabi libs since it is deprecated and will be removed in r17
  • 3rd: rebuild all Android libs with clang in ndk-r16
  • 3rd: cmake build support for partial libs
  • 3rd: update Box2D to latest commit f655c603ba9d83
  • 3rd: use prebuilt Box2D
  • Engine: capture image loses quality when using RenderTexture
  • Engine: RenderTexture DepthAndStencil issue on Android
  • Engine: race condition resulting in deadlock infrequently in TextureCache
  • Engine: CCConsole.cpp compile error with C++17 and clang
  • Engine: TrianglesCommand hashing technique doesn't take padding into account
  • Engine: default GLView bit depth is too low on desktop
  • Engine: cocos2d::log va_list re-use bug
  • Engine: cocos2d::Image::saveImageToPNG saves image in wrong PNG format
  • Engine: CameraBackgroundColorBrush cannot use alpha
  • Engine: crash in Allocator if there are no allocated pages
  • Engine: crash when the UserDefault.xml file is empty
  • Engine: memory leak in ObjectFactory destroyInstance, UserDefault::deleteValueForKey
  • Engine: replace ptr_fun with lambda, fix compile error with C++17 and clang
  • Engine: fix some warning issues
  • Label: memory leak when using TTF labels
  • Label: memory leak in FontFreeType::create
  • Label: Non-TTF Label Shadow issue, make it follow Label opacity
  • UI: RichText issue caused by Label when its string is very long
  • UI: EditBox right padding error
  • UI: win32 EditBox has wrong scale factor
  • UI: TableView button click event not response when the button is a cell
  • UI: correct bugs with cursor in TextField
  • UI: Android EditBox use 'setSelection' error when the text beyond the border
  • UI: iOS EditBox will penetrate the underlying UI event
  • UI: use setTextColor for EditBox placeholder
  • UI: returning UNKNOWN event for return type key SEARCH/SEND in EditBox
  • UI: crash when call TextFieldTTF::setCursorFromPoint
  • UI: ListView, avoid of type overflow while list size calculation
  • Audio: miss return value of onWavClose function
  • Audio: wrong header include in mp3reader.cpp, apple/AudioEngine-inl.h
  • Audio: wrong status check in apple/AudioDecoder.mm
  • Lua: should set listener to null when unregister spine event handler
  • Lua: event condition bugs on ParticleTest.lua
  • JSB: some memory leaks and crashes
  • JSB: miss GetterSetter define for the placeHolder of TextField
  • Web: out-of-date submodule commmit of cocos2d-html5 repo
  • Web: bugs for Performance Test for Spine on WebGL
  • iOS: fix bug about delayed creation UIWebView on iOS
  • Andorid: infinite loop when counting text lines on Android in some situations
  • Android: crash when network error message is too long
  • Android: JniHelper no longer thread safe
  • Android: proguard-rules.pro error for tests project
  • Andorid: some violations about I/O operation on UI thread, which may lead to ANR
  • Android: AppAcitivity is recreated which causes crash
  • Android: Emulator blank screen 0x501 and 0x502 problems
  • Android: Emulator stencil fix
  • Android: Fix endian detection (node render order)
  • Android: issue with not stable 60 fps
  • Android: issue with accelerometer on Android on reverse landscape/portrait
  • WinRT: fix keyBoard bug when input chinese
  • cocos console: fix archive issue with Xcode 9

New in CocoStudio Cocos2d-x 3.15 (Apr 21, 2017)

  • [NEW] Full support of Android Studio, can use Android Studio to edit, compile and debug C++ codes
  • [NEW] Audio Engine: use `tremolo` to decode audio files to be more adaptable to Android devices and improve performance on Android
  • [NEW] WebSockets and SocketIO supports SSL
  • [NEW] WebSockets: add methods to get url and server selected protocol
  • [NEW] Add `utils::getFileMD5Hash()`
  • [REFINE] EventDispatcher: use `std::stable_sort()` to sort nodes and listeners
  • [REFINE] FileUtils: add async version of common methods
  • [REFINE] Label: full unicode support
  • [REFINE] Renderer: enable VAO by default on Android
  • [REFINE] Renderer: use std::stable_sort() to sort commands
  • [REFINE] Scheduler: `unscheduleAll()` will unschedule selectors that scheduled with `performFunctionInCocosThread()`
  • [REFINE] SpriteFrameCache: avoid load frames if they are already loaded
  • [REFENE] Texfield: not use auto correction on iOS now
  • [REFINE] TextureCache: allow to unbind asynchronous texture loading callback with a custom key
  • [REFINE] WebSockets: each connection will create a virtual host
  • [REFINE] WebView: can clean cached data
  • [REFINE] WebSockets: allow self-assign certification
  • [REFINE] 3rd: update OpenSSL to v1.1.0
  • [REFINE] 3rd: update flatbuffer to v1.5
  • [REFINE] 3rd: Update Spine runtime to v3.5.35
  • [REFINE] Remove support for Windows 8.1 store and phone
  • [REFINE] Remove 32-bit linux support
  • [FIX] Action: spawn action may be invoked more times than specified
  • [FIX] Audio engine: can not play audios in the callback set in `AudioEngine::setFinishedCallback()` on iOS, Mac and win32
  • [FIX] Audio engine: crash if uncache audios in finish callback on Android
  • [FIX] Audio engine: crash if playing very small mp3 audios on Android
  • [FIX] Audio engine: may crash if repeat doing `play -> stop` on iOS and Mac
  • [FIX] Audio engine: play2d may still wait 2 seconds if preload is too fast
  • [FIX] Audio engine: preload many audios may cause crash on devices that use Samsung Exynos CPU
  • [FIX] Application: `openURL()` return wrong valueo on Linux
  • [FIX] Core: out scene's `onEnterTransitionDidFinish` is not triggered if using transition scene with `Director::runWithScene()`
  • [FIX] CheckBox: can receive touch up event that is released far from it
  • [FIX] Downloader: is not thread safe and may cause rondom crash on Android
  • [FIX] DrawNode: can't change opacity
  • [FIX] GLProgram: memory leak
  • [FIX] HttpClient: may crash on Android 4.2
  • [FIX] Label: ttf font line wrap
  • [FIX] Label: wrong effect if ttf font line gap is not 0
  • [FIX] Label: memory leak with ttf font
  • [FIX] Label: call `disableEffect()` many times will compress the label to one character
  • [FIX] Mesh: enable depth write by default
  • [FIX] Node: calling `reorderChild()` does not update touch lister with scene graph priority
  • [FIX] PageView: `getCurrentPageIndex()` returns -1 when created and haven't scrolled
  • [FIX] Physics2d: can not apply velocity to kinematic bodies
  • [FIX] Scheduler: an unscheduled selector may be invoked many times
  • [FIX] Scheduler: selector is not moved in time
  • [FIX] Simple Audio Engine: `unloadEffect()` doesn't work on Android 5.0.1 devices
  • [FIX] Simple Audio Engine: `ConcurrentModificationException`
  • [FIX] SokcetIO: use wrong default port for connection
  • [FIX] Sprite: texture and shader lost after restore from background on Android if using ETC1
  • [FIX] WebSockets: memory leak
  • [FIX] WebSockets: doesn't parse url correctly
  • [FIX] WebSockets: may crash in random
  • [FIX] Vec4: error logic of operator '

New in CocoStudio Cocos2d-x 3.14 (Jan 4, 2017)

  • [NEW] Add Spine binary file format support
  • [NEW] Action: add a method to get the number of actions running in a given node with specific tag
  • [NEW] Action: new actions: ResizeBy and ResizeTo
  • [NEW] Button: can set title label
  • [NEW] Can disable multi touch on Android
  • [NEW] EventDispatcher: Add hasEventListener to check listener existance
  • [NEW] EditBox: add horizontal text alignment
  • [NEW] EventDispatcher: added `hasEvent()` to check if an event is added
  • [NEW] Sprite: support slice9 feature
  • [NEW] Slider: add methods to get _slidBallNormalRenderer
  • [NEW] Desktop: add a method to toggle between fullscreen and windowed
  • [NEW] Desktop: add events for window resize, focus and unfocus
  • [NEW] Mac: supports game controller
  • [NEW] JSB: add cc.sys.now() and perfromance.now(), the last one is more accurate
  • [NEW] Lua: add cc.vec3 functions: add, sub and dot
  • [NEW] Lua: use luajit 2.1.0-beta2
  • [NEW] Web: Add cc.CONCURRENCY_HTTP_REQUEST_COUNT to control max concurrent task count for XMLHttpRequest
  • [REFINE] Add NDEBUG for cpp template Xcode project
  • [REFINE] DrawNode: support float line width
  • [REFINE] EditBoxDelegate: add reason for edit end
  • [REFINE] Improve XML parse performance
  • [REFINE] Make batch capacity resizing more efficiently
  • [REFINE] PageView: support custom scrollToPage time
  • [REFINE] Lua: cc.Ray:intersects addtionally returns the distance
  • [REFINE] Mac: system font enhancement
  • [REFINE] Linux: build shared lib with -fPIC
  • [REFINE] Android: use SharedPreferences.apply() to store data
  • [REFINE] JSB: Increase default JS heap to 32 mb
  • [REFINE] JSB: Support more system languages
  • [REFINE] JSB: Direct log/error for better understantding problems
  • [REFINE] JSB: Separate FinalizeHook for ref objects and non ref objects
  • [REFINE] Web: Improve overall node construction performance
  • [REFINE] Web: Improve overall loading process performance
  • [REFINE] Web: Reduce overall memory usage
  • [REFINE] Web: Made cc.LabelBMFont and cc.LabelAtlas support texture packing and auto batching
  • [REFINE] Web: Reimplement a much faster ccui.Scale9Sprite
  • [REFINE] Web: Reimplement a much faster cc.DrawNode WebGL renderer
  • [REFINE] Web: Use stack to avoid recursive call in transform, onEnter, onExit etc, reduce call stack depth
  • [FIX] AsstsManagerEx: project.manifest may be downloaded twice
  • [FIX] AudioEngine: can not play large ogg file
  • [FIX] AudioEngine: may have noise if playing mp3 files on iOS/Mac OS X
  • [FIX] AudioEngine: can not play effect/music entirely on iOS and Mac
  • [FIX] ClippingNode: effect is wrong if threshold is set to a value not equal to 1 first then set to 1
  • [FIX] Compiling error if `USE_STD_UNORDERED_MAP == 0`
  • [FIX] ControlSwitch::create() may cause crash
  • [FIX] Downloader: may crash if it is released before finishing downloading task
  • [FIX] EditBox: fix single line and multiline text alighment, now single line will be center and multiline will be top align vertically by default
  • [FIX] EditBox: placeholder font not being set corretly for multiline text field on iOS
  • [FIX] EditBox: doesn't show text on Mac OS 10.12
  • [FIX] EditBox: multiline overflow bounds of box
  • [FIX] FastTilemap: wrong effect when content scale factor is not 1
  • [FIX] FontFreeType: crash in destructor
  • [FIX] ImageView: wrong effect of using loadtexture() to load a ETC1 texture with alpha support
  • [FIX] Label: wrong blending effect of outline
  • [FIX] Label: some labels may not been shown
  • [FIX] Label: may crash when label string is empty an the overflow is shrink
  • [FIX] Label: possible memory leak when font size is 0
  • [FIX] MenuItemSprite: MenuItemSprite::unselected() on a disabled item show wrong image
  • [FIX] Node: the effect of setRotation+setSkewX is wrong
  • [FIX] Physics3d: effect of debug draw is wrong
  • [FIX] Renderer: indices count may overflow when drawing batching triangle commands which causes unexpected effect
  • [FIX] RenderTexture: Sprite3D is not shown
  • [FIX] TileMap: hexagonal map fails on TMXTiledMap::getTileAt()
  • [FIX] TMXMapInfo: tileGid may overflow when using horizontal flip
  • [FIX] TriangleCommand: triangle commands can't do batching when the glprogram using custom shader with custom uniforms
  • [FIX] UI: label atlas and BMFont rendering issue with ETC1 texture format
  • [FIX] 3D: small .mtl files are not loaded
  • [FIX] 3D: Sprite3D::getMesh() may cause crash if it doesn't have any mesh
  • [FIX] 3D: wrong Skybox fov
  • [FIX] 3D: Sprite3D can't release its texture
  • [FIX] AssetsManagerEx: Fail to decompress when sub directory is not created
  • [FIX] ScrollView: crash of scroll to top or left
  • [FIX] SoketIO: memory leak
  • [FIX] iOS: Vibrate effect can not work in not silent mode
  • [FIX] iOS: view size got with landscape orientation if run on iOS 7 and ealier
  • [FIX] iOS: iOS 9 OpengGL error
  • [FIX] iOS: if a scene includes 3d model with light and ListView may cause crash
  • [FIX] Android: cause compiling error with android-19 or lower
  • [FIX] Android: RapidJason crashes in release mode
  • [FIX] Android: may not pause background music after game enters background
  • [FIX] Android: adapt to Android pixel
  • [FIX] Android: MessageBox inverted parames
  • [FIX] Android: cause deadlock if preload the same file more than 3 times in preload callback
  • [FIX] Android: WebView: base url can not work
  • [FIX] Android: may crash if `AudioEngineManager.getProperty(PROPERTY_OUTPUT_FRAMES_PER_BUFFER)` returns null
  • [FIX] Mac: Downloader can not access https website
  • [FIX] Win32: fix crash caused by `Helper::getSubStringOfUTF8String()` in debug mode
  • [FIX] Linux: FMOD issue
  • [FIX] Linux: Application::openURL can not work
  • [FIX] Desktop: crash upon exit when NotificationNode exists
  • [FIX] Spine: color bug
  • [FIX] Console: doesn't support `--ap` parameter
  • [FIX] Lua: result of radian2angle is wrong
  • [FIX] Lua: iskindof_ doesn't work correctly
  • [FIX] Lua: new lua project crashes compiling with VS2015 release mode
  • [FIX] Lua: ComponentLua doesn't support binary code
  • [FIX] JSB: `jsb.addRoot is not a function` error caused by cc.GLProgramState.setUniformCallback
  • [FIX] JSB: Fix spine TrackEntry conversion crash issue
  • [FIX] JSB: Fix CallbackWrapper and FunctionWrapper crash during deallocation in new memory model
  • [FIX] JSB: Fix event object memory issue by manually bind EventDispatcher::addCustomEventListener
  • [FIX] JSB: Fix chipmunk crash issues when using setDefaultCollisionHandler
  • [FIX] JSB: Fix compilation issues when COCOS_DEBUG = 2
  • [FIX] JSB: Unify function name of Texture2D::releaseTexture
  • [FIX] Web: Fix spine blend function inconsistency between web and jsb
  • [FIX] Web: Fix particle system load from plist generated by x-studio365
  • [FIX] Web: Fix doEnumerateRecursive(node, name, callback) always return undefined issue
  • [FIX] Web: Change bright style on 'setEnabled' call of ccui.Widget
  • [FIX] Web: Fix Editbox can't input in full screen mode
  • [FIX] Web: Fix texture issue on some Android devices by always set vertexAttribPointer
  • [FIX] Web: Make xhr ontimeout callback work on all browsers
  • [FIX] Web: Fix clear color not normalized issue
  • [FIX] Web: Fix clipping node rendering issue when alphaThreshold = 1
  • [FIX] Web: Fix nested scroll view rendering issue
  • [FIX] Web: Make orderDirty flag properly set for node
  • [FIX] Web: Fix ccui.Slider gray state not available issue

New in CocoStudio Cocos2d-x 3.13 (Aug 29, 2016)

  • [HIGHLIGHT] add VR plugin
  • [HIGHLIGHT] support ETC1 alpha channel
  • [HIGHLIGHT] fix AudioEngine performance for Android 4.2+
  • [HIGHLIGHT] improve canvas renderer performance with dirty region
  • [HIGHLIGHT] add Andorid arm-64 support
  • [HIGHLIGHT] use luajit for Android arm-64
  • [HIGHLIGHT] switch to use gcc 4.9
  • [HIGHLIGHT] upgrade CURL to 7.50.0
  • [HIGHLIGHT] upgrade Spine to 3.4
  • [HIGHLIGHT] upgrade glfw to 3.2
  • [HIGHLIGHT] upgrade luajit to 2.1.0-beta2
  • [NEW] add `Configuration::supportsMapBuffer()`
  • [NEW] support hexagonal tile maps
  • [NEW] add `ListView::setScrollDuration()`
  • [NEW] implement `SimpleAudioEngine::willPlayBackgroundMusic()` on Android
  • [NEW] implement `AudioEngine::preload()` on Android
  • [NEW] add `cc.Node['.classname']` to get class name for tolua C++ class in lua
  • [NEW] support direct load in web engine to show scene without loading all resources, resources will be loaded asynchronously
  • [NEW] add `cc.view.setOrientation` API to force orientation in web browser
  • [REFINE] move back to use gcc 4.9 on Android to fix some crash bugs
  • [REFINE] optimize Node sorting speed for 64-bit
  • [REFINE] using `chrono::steady_clock()` instread of gettimeofday for FPS calculation
  • [REFINE] use `fstat` instead of `fseek` and `ftell` for performance to read file content
  • [REFINE] use std::string reference instead of char* for `utils::findChild()`
  • [REFINE] make `MotionStreak` _maxPoints framerate independent
  • [REFINE] support utf-8 bom lua script
  • [REFINE] can show utf-8 characters in MessageBox and lua log on win32
  • [REFINE] improve stability of new WebGL renderer provided in v3.12
  • [REFINE] update js auto binding settings with new ndk version
  • [REFINE] improve evalString implementation which was rely on deprecated API
  • [REFINE] improve js bindings code quality by merging part of cocos2d-x-lite repo
  • [REFINE] sources path in sourcemap of web engine are now relative
  • [FIX] `GLProgram::link()` only check result in debug mode or WinRT
  • [FIX] PageView::clone() misses cloing some member variables
  • [FIX] potential crash of `AudioEngine::uncache()`
  • [FIX] websocket receives package size > 1023 error
  • [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

New in CocoStudio Cocos2d-x 3.12 (Jul 7, 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] Core: fix `libpng error: CgBI: unhandled critical chunk` error with Xcode 7.3
  • [FIX] Core: EXC_BAD_ACCESS random crash caused by reallocation of shared indices memory
  • [FIX] Core: memory leak of `utils::captureScreen()` on iOS and Mac OS
  • [FIX] Core: assert error if remove an event listener twice at the same time
  • [FIX] Core: FileUtils::getValueMapFromFile() returns wrong value if it is a number with scientific notation on Android
  • [FIX] Core: UIGrayScale shader is not reloaded when reloading shaders
  • [FIX] Core: `SpriteFrame::clone()` doesn't clone polygonInfo
  • [FIX] Core: `FileUtils::createDirectory()` fails on Mac OS with sandbox
  • [FIX] Core: `cocos2d::Value` operator overloading of comparison `==` returns wrong value in case Type::VECTOR
  • [FIX] Core: wrong content size if minisize
  • [FIX] Core: can not have a class named `Game` on Windows
  • [FIX] Core: crash if load bad image on Windows
  • [FIX] Core: custom shader uniforms and attributes do not have effect in DrawNode
  • [FIX] Core: blend mode doesn't work with animated sprite
  • [FIX] Core: `FileUtils::removeDirectory()` can not work correctly when the path is not end of `/` on iOS and Mac
  • [FIX] JSB: fix some bugs related with JSB debegger
  • [FIX] JSB: scheduler callback target lost
  • [FIX] JSB: missing scroll widgets constants
  • [FIX] JSB: if obj is undefined or null then attempt to access obj.__nativeObj leads to incorrect behavior
  • [FIX] JSB: use `require()` to require the same script twice may crash
  • [FIX] Lua: lua function is not invoked when error happens in websocket
  • [FIX] Network: HttpClient Content-type limitation on iOS
  • [FIX] Network: downloader crash when storage path contains spaces
  • [FIX] Network: SocketIO crash on reconnect
  • [FIX] Physics: PhysicsBody damping doesn't wrok
  • [FIX] UI: EditBox may cause `java.lang.IndexOutOfBoundsException` exception on Android
  • [FIX] UI: TextFieldTTF doesn't show password correctly
  • [FIX] UI: RichText crash on Windows
  • [FIX] UI: EditBox can not use custom font on Android
  • [FIX] UI: can not use TTF font on Android
  • [FIX] RenderTexture: `setOpacity()` has not effect
  • [FIX] 3D: `Sprite3D::createNode()` may not work correctly with particular model data
  • [FIX] Web: `getParentToNodeTransform` doesn't return result
  • [FIX] Web: remote image without extension in url can't be loaded as image
  • [FIX] Web: nested clipping nodes rendering issue in WebGL render mode
  • [FIX] Web: IMEDispatcher can't work in mobile Chrome

New in CocoStudio Cocos2d-x 3.11.1 (May 27, 2016)

  • Supports IPv6-only network
  • Fix `cocos gen-libs` compiling issue

New in CocoStudio Cocos2d-x 3.11 (May 12, 2016)

  • Physics: upgrade chipmunk to v7.0.1
  • JS: new memory model, don't have to use retain/release in JS
  • Curl: upgrade to v7.48
  • OpenSSL: upgrade to 1.0.2g
  • JS: can use Firefox 30+ and VSCode to debug cocos2d-x JSB programs
  • New:
  • JS: web console is enabled debugging JSB projects via firefox
  • UI: add a setter for touch total time threshold in ScrollView
  • UI: add ability to get font family
  • UI: add xml support in RichText
  • UI: add ability to stop auto scrolling in ScrollView
  • UI: EditBox supports multiline on Mac
  • UI: Scale9Sprite allows to set custom shaders
  • UI: ImageView allows to set custom shaders
  • UI: TextFiled supports cursor
  • FileUtils: add missing getFileSize() for winrt
  • Network: close websocket connection by dispatching a resetDirector event
  • Tool: cmake supports on Android
  • Refined:
  • Network: upgrated to latest libwebsockets, add more callbacks and bugs fixed
  • Network: replace char* with std::string in HttpRequest
  • Renderer: TriangleCommand and QuadCommand are merged
  • 2D: SpriteFrameCache takes pixelFormat into account if specified
  • UI: let ScrollView swallow touch events by default
  • JSB: make selectedSprite optional
  • Fixed:
  • JS: firefox v30+ can not debug cocos2d-x JSB projects
  • UI: can not get event when PageView was turning
  • UI: bitmap font sizes are not loaded from binary .fnt files
  • UI: some fonts were rendered incorreclty
  • Action: TargetedAction::isDone() always return false
  • Action: Repeat: will run actions more than speicific times, instant action will run one frame later
  • 2D: drawing in incorrect app state on iOS
  • Platform: FileUtils::getValueVectorFromFile() returns wrong value on iOS and Mac
  • Network: downloader crashed when storage path contains spaces on iOS
  • Network: downloader may crash on Android
  • HTTPAsyncConnection: crash when custom SSL certification is set on iOS
  • AssetsManagerEX: will stuck at UPDATING forever if last task fails
  • AssetsManagerEX: may repeatly update some assets and cause file write conflict
  • Lua: fix display.wrapScene()

New in CocoStudio Cocos2d-x 3.10 (Jan 25, 2016)

  • UI: Rewrite Scale9Sprite and improve the scale9sprite performance and reduce memory consumption.
  • UI: Change PageView to derive from ListView.
  • Core: Added Application::getVersion() to get the app version.
  • UI: Add PageView indicator.
  • UI: Label add three Overflow type to new label, see release note for more information.
  • UI: UIText::clone supports clone the text effect.
  • Label: Add methods to query label effect state.
  • UI: UIRichText support the new line element.
  • 3rd party: WebP loading improvements WebP loaded as premultiplied alpha if it has.
  • UI: Slider `setCapInsetProgressBarRebderer` change to `setCapInsetProgressBarRenderer`.
  • UI: RichText support new line element.
  • UI: Set focus to Widget when touched.
  • 3D: Change char* to string in Terrain.
  • Studio: Merge Studio ActionTimeLine change back into engine.
  • Studio: Merge Studio changes for compatible withe 32bit Mac System.
  • Studio: Merge Studio changes for lua-binding, js-binding and simulator.
  • Mac: Make engine compatible for 32bit Mac.
  • 3rd party: WebP loading improvements WebP loaded as premultiplied alpha if it has.
  • Audio: AudioEngine on Linux replace the original SimpleAudioEngine with a new version of FMOD, now AudioEngine support all platforms!
  • IOS: Add virtual keyword for some render related function.
  • UI: Fixes boring deprecated warning in HttpRequest.
  • Network: Fix Downloader bug on iOS & Android platform.
  • Studio: Fix deprecation warning in SkeletonRenderer.
  • JS: Add js test case for fix, improve template.
  • Network: Permit http access to cocos2d-x.org in test projects on iOS.
  • Network: Crash when removing a remotely downloaded image from texture cache in js-binding.
  • Win10: WinRT project update version to v3.10.
  • Console: Add quiet option for Cocos Toolkit.
  • JS: New GC model for js-binding.
  • Doc: Fix typos in documentation and comments.
  • UI: update controlButton size calculate with new Scale9Sprite logic.
  • Win10: Added missing _USRJSSTATIC preprocessor define for ARM builds.
  • JS: Added ccvector_to / ccmap_to converted to new js-binding API.
  • UI: Slider misprint fix.
  • Network: fix possible websocket crash in its destructor.
  • Core: Fix premultiplyAlpha for mipmaps and compressed textures.
  • UI: Fix Scale9sprite rendering error when content size smaller than the sum of leftInset and rightInset.
  • Win32: Fix EditBox crash when removing an EditBox in a scheduler.
  • Android: Fix cannot add view to mFrameLayout when extends Cocos2dxActivity.
  • 2D: Fixed actionNode set at wrong position bug.
  • 3D: Fix the movement of PUParticle lags one frame.
  • UI: Fix the wront argument of setPlaceholderFontName in EditBox.
  • UI: Fix EditBox editBoxEditingDidEnd may use the original text after change the text of EditBox in user script.
  • Audio: Fix `FinishCallback` never be called in Windows.
  • UI: Fix Layout stencil clipping nested with Clipping Node rendering issue.
  • UI: Keyboard doesn't hide when click the screen outside of EditBox on iOS platform.
  • UI: Fix a fatal bug in EditBox implement on Windows platform.
  • UI: Fix edit box setPlaceholderFontName and scale font size issue.
  • Core: Fix memory leak when initWithImage() failed.
  • Network: CCDownloader on iOS is broken in v3.9 js-binding.
  • JS: Bindings fixes for Menu, Sprite and Label.
  • Studio: Remove weak reference in ActionNode.
  • UI: shouldStartLoading method should return value to js in js-binding.
  • UI: Fix scrollview render error.
  • JS: Fix win32 js project crash issue.
  • UI: Button touch doesn't work with scale9 enabled.
  • JS: Fix evalString doesn't return result issue.
  • JS: Fix ComponentJS proxy management issue in JSB.
  • Android: Fix include in cocos network module.
  • Network: Fix web socket crash.
  • UI: Fix TextField missing default password style text setting.
  • S9SpriteTest: Scale9Sprite fade actions with cascade opacity.
  • Web: Remove default focus block from UIFocusTestVertical.
  • Lua: Fix pageViewTest Horizontal scroll won't work in Lua-test.