bug happen when:
1.implement keyback in a scene
2.implement webview in that scene and load a default URL
3.click any link and wait for it to load
4.press key back, the implemented keyback will not be called
* Added support for BMFont in TextField
* Added cursor support for BMFont in TextFieldTTF
Made BMFont detection case insensitive and a bit more fool proof
* Added TextField::createWithBMFont, so that the font size is determined internally.
* Revert "Added TextField::createWithBMFont, so that the font size is determined internally."
This reverts commit 46b4e72ba44979b012ffa52bb78ea0a8493f7869.
* fix BMFont Cursor scale
* remove error add subproject
* Partial cursor support for text field with system font
Enables cursor support without cursor blinking an zero with of cursor symbol. In case of system font usage magical "/b" symbol won't be used, also update won't be scheduled.
* Update CCTextFieldTTF.cpp
* ScrollView API to stop overall scroll
* ScrollView API to stop overall scroll
* ScrollView API to stop overall scroll
Cancel current touch handling after stopScroll() is called
* New test for scrolling stop in UIScrollView
* New test for scrolling stop in UIScrollView
If _items container is empty `(length - 1) * _itemsMargin` will be large positive value.
Using `size_t` causes type overflow and large positive sizes.
Using int will cause negative size values.
Direct check looks like the best way.
* [android] Fixes warning in UrlAudioPlayer.cpp and CCUserDefault-android.cpp
* Don't write 'using namespace std;' in header files.
* Uses std::unordered_map instead of std::map for Particle3D module.
* Updates external/config.json to v3-deps-141
* Continue to replace `gnustl_static` to `c++_static` for templates and test projects.
* Updates CCConsole.h/.cpp to resolve the following issue on Android:
jni/../../../../../cocos/base/CCConsole.cpp:321:28: required from here
/Users/james/Software/android/android-sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/include/utility:506:63: error: incomplete type 'std::__ndk1::is_move_assignable<cocos2d::Console::Command>' used in nested name specifier
is_move_assignable<first_type>::value &&
^
make: *** [obj/local/arm64-v8a/objs-debug/cocos2dx_internal_static/base/CCConsole.o] Error 1
* Fixes a memory leak while addCommand and other minor changes.
* Updates tolua/cocos2dx.ini, don't bind Console::Command
* Adds CC_DLL for Console::Command
* Reverts tolua/cocos2dx.ini and ignore Console::[add Command addSubCommand getSubCommand delSubCommand].
* Ignores Console::getCommand.
When compiling for Android, the preprocessor defines for byte order are
are not included in the sys/param.h chain. By including sys/endian.h we
we can ensure that the necessary macros are included.
It is especially important that endian-ness is correctly detected as the
node render order uses this information to sort #16262. Without this
fix, nodes will be rendered in the incorrect order on 64-bit Android
devices (on 32-bit, a different algorithm is used that is not
sensitive to byte order).
* fixed#18474: Provides an interface for getting SafeArea
* Adds getSafeAreaRect test demo in cpp-empty-test.
* @available(iOS 11.0, *) isn't supported in Xcode8. So we use the old way.
* Updated android build process to use c++_static
* Comment out org.gradle.jvmargs
* Updated all project in test directory
* Update C++ Template
* Update js and lua projects
* Update Proguard + Lower minSdkVersion to 14
* Added All PROP_* values + updated build.gradle
* Updated versions
* Bug in mp3reader.cpp
This directive #include <string.h> is used for memset(b, c, l).
Without it the attemt to install .apk (ex. cocos run . -p android --android-studio) is creshed.
Found in the downloaded from http://cocos2d-x.org/download version cocos2d-x-3.16
* #include <string.h> added to avoid crash
The directive #include <string.h> is used for memset(b, c, l).
Without it the attempt to install .apk (ex. cocos run . -p android --android-studio) is crashed.
Found in the downloaded from http://cocos2d-x.org/download version cocos2d-x-3.16:
Here part of log:
In file included from C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/cocos2d-x/cocos/./base/allocator/CCAllocatorGlobalNewDelete.cpp:27:0:
C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/cocos2d-x/cocos/./base/allocator/CCAllocatorStrategyGlobalSmallBlock.h: In constructor 'cocos2d::allocator::AllocatorStrategyGlobalSmallBlock::AllocatorStrategyGlobalSmallBlock()':
C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/cocos2d-x/cocos/./base/allocator/CCAllocatorStrategyGlobalSmallBlock.h:96:75: error: 'memset' was not declared in this scope
memset(_smallBlockAllocators, 0, sizeof(_smallBlockAllocators));
^
make: *** [C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/runtime-src/proj.android-studio/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/cocos2dx_internal_static/base/allocator/CCAllocatorGlobalNewDelete.o] Error 1
make: *** Waiting for unfinished jobs....
:TestAndroidGame2:externalNativeBuildDebug (Thread[Task worker for ':',5,main]) completed. Took 16.425 secs.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':TestAndroidGame2:externalNativeBuildDebug'.
> Build command failed.
Error while executing process F:\android-ndk-r16\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\Vadim\Documents\Cocos2d\TestAndroidGame2\frameworks\runtime-src\proj.android-studio\app\jni\Android.mk NDK_APPLICATION_MK=C:\Users\Vadim\Documents\Cocos2d\TestAndroidGame2\frameworks\runtime-src\proj.android-studio\app\jni\Application.mk APP_ABI=x86 NDK_ALL_ABIS=x86 NDK_DEBUG=1 APP_PLATFORM=android-21 NDK_OUT=C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/runtime-src/proj.android-studio/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=C:\Users\Vadim\Documents\Cocos2d\TestAndroidGame2\frameworks\runtime-src\proj.android-studio\app\build\intermediates\ndkBuild\debug\lib NDK_TOOLCHAIN_VERSION=4.9 APP_PLATFORM=android-26 NDK_MODULE_PATH=C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/cocos2d-x;C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/cocos2d-x/cocos;C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/cocos2d-x/external -j4 NDK_DEBUG=1 C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/runtime-src/proj.android-studio/app/build/intermediates/ndkBuild/debug/obj/local/x86/libcocos2djs.so}
[x86] Compile++ : audioengine_static <= mp3reader.cpp
[x86] Compile++ : cocos2dx_internal_static <= CCAllocatorGlobalNewDelete.cpp
In file included from C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/cocos2d-x/cocos/./base/allocator/CCAllocatorGlobalNewDelete.cpp:27:0:
C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/cocos2d-x/cocos/./base/allocator/CCAllocatorStrategyGlobalSmallBlock.h: In constructor 'cocos2d::allocator::AllocatorStrategyGlobalSmallBlock::AllocatorStrategyGlobalSmallBlock()':
C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/cocos2d-x/cocos/./base/allocator/CCAllocatorStrategyGlobalSmallBlock.h:96:75: error: 'memset' was not declared in this scope
memset(_smallBlockAllocators, 0, sizeof(_smallBlockAllocators));
^
make: *** [C:/Users/Vadim/Documents/Cocos2d/TestAndroidGame2/frameworks/runtime-src/proj.android-studio/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/cocos2dx_internal_static/base/allocator/CCAllocatorGlobalNewDelete.o] Error 1
make: *** Waiting for unfinished jobs....
If the last search path is _defaultResRootPath, addSearchPath(path) should not force that the last path is still default resource root path.
I made this mistake and broke the compatibiliy, since I thought resource root path definitely is low priority while search in most case. However, I should not make this assumption.
Anyway, dear developers, thanks for all of you review cocos2d-x source code. I accept any suggestion, any blame. I think everyone makes mistake more or less.
The key point is that `PLEASE DON'T MAKE THE SAME MISTAKE SECOND TIME, THIRD TIME`.
So please don't blame our developers who makes mistakes. We need to work together with all our developers to make our engine better and better.
And in fact, I never think that I deal with cocos2d-x source code as my 'own branch' although I contributed lots of code to it. I didn't push any code to repo directly since I sent Pull Requests. Every one could review code and comment in pull request. We encourage more communication with our developers in github or the forum. You could say GOOD , BAD or SHIT, but please do your best to respect every developer who made a contribution.
Thanks all of you. Good luck!
PROBLEM
-------
cocos makefile is not self-containing.
From the perspective of a developer that link his target with
`cocos2dx_static` library, it should specify in his `Android.mk` only
a path to a makefile that defines that module, by
a) using `import-add-path` and `import-module`
$(call import-add-path, <path-to-cocos-root>)
$(call import-module, cocos)
or ...
b) using directly an `include` command
include <path-to-cocos-root>/cocos/Android.mk
Unfortunately the current configuration of cocos' Android.mk doesn't
specify (using `import-add-path`) locations of modules that it uses.
In result, every dev that uses cocos to create Android app has to
populate NDK_MODULE_PATH at his Android.mk files by adding two lines:
$(call import-add-path, <path-to-cocos-root>/cocos)
$(call import-add-path, <path-to-cocos-root>/external)
Those lines have to be placed at cocos/Android.mk file.
The current configuration of build script breaks a good practice of
hiding internal details from clients of library or component. In fact
the script exposes internal dependencies and require from a dev to make
them out.
---
SOLUTION
This commit adds corresponding `import-add-path` commands to Android.mk
files.
---
HOW TO TEST
1. Create cocos2d-x app.
2. Import in your Android.mk file a `cocos` module using one of
aforementioned approaches.
3. The app should compile without a error message like the one below:
Android NDK: jni/../../cocos2d/cocos/Android.mk: Cannot find module with tag 'freetype2/prebuilt/android' in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
Issue: https://github.com/cocos2d/cocos2d-x/issues/18392
* No need to update password text in ccui TextFiled, because it's handled in TextFiledTTF
* Do not update visual state of Label if placeholder set when keyboard is attached
* 1. add 'const'
2. add range support for 'getAsCharSequence'
* remove default arguments
* use another variable to make it more clear
* rename isAnsi-> isASCII
* Make the sort behavior is same on 32bit and 64bit
* Update CCNode.h
* Update CCNode.cpp
* Update ccMacros.h
* Use std::int32_t to for zOrder
* Update CCNode.cpp
* *fix android AudioEngine Crash
switch to background when sound effect is about to end, it's maybe crashed when switch to foreground again
* use "emplace" instead of "insert"
* *fix android AudioEngine Crash
switch to background when sound effect is about to end, it's maybe crashed when switch to foreground again
* use "emplace" instead of "insert"
It's caused by `FileUtils::getContents` is invoked in different threads and we use EventDispatcher::dispatchCustomEvent in `FileUtilsAndroid::getContents` to send an event to EngineDataManager.
Since EngineDataManager class is only for internal use and EventDispatcher isn't thread-safe, we make `EngineDataManager::onBeforeReadFile` public and invoke it `FileUtilsAndroid::getContents`.
* allow setting and getting of pageview indicator opacity. fix some documentation comments
* don't draw the indicator the selected indicator is currently overlapping
* add a tweaked opacity to one of the test cases
* remove unused variable
* convert tabs to whitespace
* change constexpr to static const
* fix iterator invalidation when adding or removing pages from the pageview
* allow setting and getting of pageview indicator opacity. fix some documentation comments
* don't draw the indicator the selected indicator is currently overlapping
* add a tweaked opacity to one of the test cases
* remove unused variable
* convert tabs to whitespace
* change constexpr to static const
* horizontal alignment support in RichText
* split lambda into separate function
* tweak shadow test's content size so horizontal aligment doesn't give the illusion of behaving incorrectly
* fix alignment when the last char of a line is whitespace
* fix errors from merge
* fix bug in setting of size of image elements. scaling was applied effectively twice.
* removed debugging code. whoops
* use prebuilt bullet
* prebuilt bullet work ok on linux
* update search path
* update search path
* fix compiling issue for lua/jsb projects
* prebuilt bullet work on windows
* update 3rd party lib version
* add bullet search path
* fix script bindings issue
* fix scripting binding
* fixed#17922: [android] AudioEngine may crash while audio's over and stop state is triggered at the same time.
The Pull Request #17748 didn't resolve the issue since _track->getPrevState will be wrong while in scheduler callback. We need to capture it in lambda.
My Pull Request also merges PR #17716 to make filePath captured by lambda.
* Adds missing log tag in AudioEngine-inl.cpp
* Added three new methods for UiWebView. SetOpacityWebView(float), getOpacityWebView(), setBackgroundTransparent() in IOS
* Implemented methods for UiWebView. SetOpacityWebView(float), getOpacityWebView(). They only work using android sdk +11.
* New methods not implemented for Tizen.
* Added new button for testing the opacity in the cocos2d-x test application.
* Added setBackgroundTransparent to android, and his UI-Test.
* Added setBackgroundTransparent to android, and his UI-Test.
* Added keyword const to the getters.
* Android sdk reflection. +11sdk for chaging the opacity.
* Reflection used for the webview.setLayerType, webview.setAlpha, webview.getAlpha
* Unified exceptions.
* remove APP_SHORT_COMMANDS setting (#17722)
some developers report it will cause error on Windows though i can not reproduce it. It is strange, the setting is used to resolve command length limitation on Windows.
* Particle font size should be a const value (#17676)
* Particle font size should be a const value
* Minor fix: CCStencilStateManager.hpp -> CCStencilStateManager.h in xcode project.
* JSB SocketIO.connect supports to pass a CA cert file (#17736)
* JSB SocketIO.connect supports to pass a CA cert file
* The second parameter of SocketIO.connect function is probably a `option` object. JSB just ignores it.
* The optimization for huawei. (#17832)
* The optimization for huawei.
* setAnimationInterval fix for all platforms.
* disable debug
* include fix.
* Uses better configuration for huawei optimization (#17838)
* Uses better configuration for huawei optimization
* Updates jar file and uncomment fps controlling code
* [ci skip][AUTO]: updating luabinding & jsbinding & cocos_file.json automatically (#17840)
* update release not and version (#17845)
* [android] Removes an unused variable sRegistered in Cocos2dxActvity.java. (#17861)
* Updates jar to resolve warning while packaging APK file. (#17863)
* update release date (#17870)
* fix compiling error
* fix to problem with updating APK in Google Play keeping OBB from previous version
This patch fixes the problem when we are unable to keep OBB from previous version when we are uploading new .apk to Google Play.
It was discussed here:
http://discuss.cocos2d-x.org/t/problem-with-updating-apk-in-google-play-keeping-obb-from-previous-version-because-versioncode-changes/36039
* check for null pointer added
Found an issue which could lead to a crash because of null pointer exception.
If pathToOBB doesn't exist then File.list will return null which will cause fileNames array be null.
Now it is fixed.
* LayerRadialGradient works on mac and iOS
* fix radius
* finish LayerRadialGradient and add test case
* use local coordinate in shader
* adjust function attributes
* implement getCenter()
* add some comments
* Fixing issue where XMLHttpRequests would not have their destructor fire if CC_ENABLE_GC_FOR_NATIVE_OBJECTS was set. This was due to mismanagement of JSHeap object tracing.
* Removing unused variables in js_add_object_root.
* small BillBoard optimizations
-Quick return in visit if it is not visible and has no children.
-Comment out getNodeToWorldTransform because it is death code (doesn't do anything)
* remove unused rotationQuaternion
* Allow visit sprite without camera for render to texture
A fix to allow render to texture like this
'''
Director::getInstance()->setProjection(Director::Projection::_2D);
m_renderTarget->beginWithClear(1, 0, 0, 0.2, m_depthClear, 0);
m_sprite->visit(Director::getInstance()->getRenderer(), Mat4::IDENTITY, 0);
m_renderTarget->end();
Director::getInstance()->setProjection(Director::Projection::_3D);
'''
* NULL -> nullptr
* [Win32,WinRT] Fix listFiles and listFilesRecursively use unicode.
1. Incorrect convertation to unicode
if (length != fullpath.size()) correct only ASCII char.
2. For convert unicode exist api, to avoid errors.
3. Equal first char on '.' - error
Need check full name file on "." and "..", otherwise exclude file and
folder begin '.'
Now not use macro UNICODE, for easy use unicode convert api(Otherwise,
you need to connect different versions WinRT and Win32).
* Fix minggo remark.
* Move to specific platform section.
* Changing CCAsyncTaskPool and CCScheduler to better leverage move semantics, to avoid several lambda copy constructor calls. Chaning call sites in the cocos engine to better leverage move semantics.
* Editing binding generator to not generate bindings for AsyncTaskPool::enqueue. Bindings were not previously generated for this function due to it's type signature involving a template parameter.
* Adding missing std::move call in AsyncTaskPool to skip a copy constructor call.
* fix reschedule issue
* correct code formatting
* Fix isScheduled
* improve a bit performance of executing functions in cocos thread
* added test to verify reschedule issue
* re-init timer in schedule if timer exists and alive
* fix editbox textChanged event called after fragment loaded
* fix editbox duplicatd text when change text in textChanged callback
* revert changes of placeholder modification
* Added function for calculating md5 hash from Data.
getFileMD5Hash now use getDataMD5Hash.
For example, AssetsManagerEx VerifyCallback.
Get Data from file, check equal size, if equal to get md5 hash.
* Data::isNull check size equal 0
* Build on linux and android.
This permits comments to be visible in tooltips for the variable and it's associated accessor functions
e.g.
//The health of the entity, when this reaches zero the entity is dead
CC_SYNTHESIZE(float, m_health, Health)
Previously the above comment would only be displayed in the tooltip for the member variable
Downloading large file to memory could cause stack overflow and crash, because old code created buffer `char buf[buflen];` in stack.
New code creates buffer in heap.
* remove APP_SHORT_COMMANDS setting (#17722)
some developers report it will cause error on Windows though i can not reproduce it. It is strange, the setting is used to resolve command length limitation on Windows.
* Particle font size should be a const value (#17676)
* Particle font size should be a const value
* Minor fix: CCStencilStateManager.hpp -> CCStencilStateManager.h in xcode project.
* JSB SocketIO.connect supports to pass a CA cert file (#17736)
* JSB SocketIO.connect supports to pass a CA cert file
* The second parameter of SocketIO.connect function is probably a `option` object. JSB just ignores it.
setCharMap, setBMFontFilePath and setTTFConfigInternal use getFontAtlas.
getFontAtlas retain font atlas always.
setFontAtlas not release, if atlas equal current.
For example call Label::setTTFConfig for equal ttfConfig.
* Adding async functions for FileUtils::listFiles and FileUtils::listFilesRecursively.
* Updating CCFileUtils::listFiles and CCFileUtils::listFilesRecursively to not expose their async version to
the JS and Lua scripting layers, due to a bug in the binding generator code.
* Updating comments in CCFileUtils.h to prevent improper JS bindings to be generated.
* Editing the cocos2dx.ini files, to prevent bindings for listFilesRecursivelyAsync and listFilesAsync to be generated.
* fixed#17685: [android] Audio in game couldn't be mute while a ring or a call is coming
* Updates comments in AudioEngine-inl.cpp and removes extra empty line in javaactivity-android.cpp
* Puts audio focus relative code to another java file named Cocos2dxAudioFocusManager.java
Renames setAudioFocusLost to setAudioFocus.
* Renames JNI function.
* Register audio focus in onResume and unregister it in onPause.
* fixed#17665: [android] Crash while launching on the devices only support OpenGL ES 2.
Fixes that egl.eglCreateContext may return non-null but EGL10.EGL_NO_CONTEXT value.
It will cause create a EGL env with a EGL_NO_CONTEXT egl context which will cause crash.
* Don’t link with libGLESv1_CM.so
* Adds libmd5-rfc library since the functions in <openssl/md5.h> aren’t exported in win10, plus <openssl/md5.h> seems to be private header.
* Adds libmd5-rfc library for win32 and win10.
* Removes json/msinttypes folder from xcode since it’s only needed for win32 | win10.
* Should not use fread to read file from assets, uses FileUtils::getDataFromFile instead.
* Client socket should not be closed immediatelly after ::send. Otherwise, sever may will receive “Connection reset by peer - Errno 104” error on some platforms. It could be 100% reproduced on Android.
* Moves the implementation of AudioEngine::AudioInfo to cpp file.
* fixed#17591: [ios, mac, win32] Audio could not be played in the callback of AudioEngine::setFinishedCallback
* fixed#17591: Adds test case.
* fixed#17497: Win32 performance is bad.
The 'Sleep(1)' in FPS controlling code isn't precise enough. Windows sets timer precision from 1ms to 15ms, we need to set the precision to the highest one (1ms). Although it's still not enough, we need to make some tricks in the FPS controlling code, that is, don't sleep if the interval is equal or less than 1 millisecond.
* Untabify code.
* [libcocos2d.vcxproj, libcocos2d.vcxproj.filters] Removed entries for non-existent files that were causing "Build is out of date" issues in Visual Studio
[project.pbxproj] Removed entries for non-existent file
* [libcocos2d.vcxproj.filters] Renamed CCStencilStateManager.h extension to .hpp.
* [libcocos2d.vcxproj, libcocos2d.vcxproj.filters] Removed entry for file CCDownloaderImpl.h which does not exist.
* Changed extension of CCStencilStateManager.hpp to .h
* Added support for VS2017 in project files.
* [libcocos2d.vcxproj, libcocos2d.vcxproj.filters] Removed entries for non-existent files that were causing "Build is out of date" issues in Visual Studio
[project.pbxproj] Removed entries for non-existent file
* [libcocos2d.vcxproj.filters] Renamed CCStencilStateManager.h extension to .hpp.
* [libcocos2d.vcxproj, libcocos2d.vcxproj.filters] Removed entry for file CCDownloaderImpl.h which does not exist.
* Changed extension of CCStencilStateManager.hpp to .h
* fixed#17494: Adds setTimeout to wrap NSTimer since ‘timerWithTimeInterval:repeats:block’ is only available from iOS 10, macOS 10.12.
* Sets _timeoutCallback to nullptr if onTimeoutCallback is called.
* Fix custom event being discard during event emission
* Fix tilemap black line issue
* Fix auto bindings config
* Adapt websocket to new memory model
* Improve cocos2d_specifics code stability
* Fix issue with get_or_create_js_object function
* Improve memory usage in function wrapper invocation
* Use JS Function bind to avoid memory tracking issues
* Support size parameter to collect total byte size before update process
* Fix download resuming issue on Android
* Remove temporary assets when temporary manifest is invalid or out of date
* Use version compare handle to compare manifests versions
* Support max concurrent tasks setting & download verify callback
* Add Manifest::Asset conversion
* Avoid crash caused by wrappers
* Sync implementation of tested and published AssetsManagerEx from Cocos Creator
* Fix linux compilation issues
* Improve the AndroidStudio configuration of test projects to fit the new implementation of cocos compile.
* Improve the AndroidStudio configuration of templates to fit the new implementation of cocos compile.
* More powerful Uri class, adds unit test for Uri class. Refactores some code in SocketIO & Websocket.
* Adds missing header file stdint.h
* Exports Uri class
* Uri belongs to network group
* Updates the location of group comment
* Removes an unused include.
* Updates Uri comment.
Supports SSL connection for SocketIO.
Avoid memory corruption while disconnecting SocketIO, _ws->close() has to be at the end of ‘SIOClientImpl::disconnect()’.
* fixed#17427: lws_parse_url have wrong behavior, it parses ’ws://domain.com/abc/d’ to ‘path: abc/d’ rather than ‘path: /adb/d’.
Adds Uri class and parses Url to scheme, host, port, path in engine side.
* Moves Uri implementation to Uri.cpp, adds getter functions.
* Updates win32 project.
* Updates win10 project.
* Adds include header for atoi error on android.
* Updates tizen project configuration.
If the delta time dt passed to cocos2d::Timer::update(float) is longer than the
interval of the timer, then the timer will be triggered several times even if
the selector is unscheduled during the call.
This commit adds a flag in cocos2d::Timer stop the update loop if the selector
has been unscheduled.
* Some fixes for search paths:
1. Adds ‘_originalSearchPaths’ variable, ’getSearchPaths’ returns the original values set by ‘setSearchPaths’ or ‘addSearchPath’.
2. Adds a getter function ‘getDefaultResourceRootPath’.
3. ‘setDefaultResourceRootPath’ should also update search paths and remove file path cache internally.
4. ‘setSearchPaths’ supports to pass self (_originalSearchPath), could be used in ‘setDefaultResourceRootPath’ to update the final ’_searchPathArray’ for searching full path.
5. ‘addSearchPath’ fix, the default resource root path should be the last element in ‘_searchPathArray’.
* Checks whether the parameter ‘searchResolutionOrder’ passed in is the same as ‘_searchResolutionsOrderArray’.
* Don’t break the compatibility, add a new method called ‘FileUtils::getOriginalSearchPaths’.
* 17357: Better encapsulate the definition of mouse buttons
Move definition of buttons from a list of #define's to an enum class and
make appropriate updates for successful compilation.
* 17357: Better encapsulate the definition of mouse buttons
Updates from code review:
* Removed changes to automatically generated files
* Removed std::ostream& convenience operator
* 17357: Fix mouse tests
* [WebSocket] Adds support for getting url and server selected protocol
* Adds const keyword for getter methods, and make LOGE also works in release mode.
* add some getters for EditBox and EditBoxImpl
* remove duplicate member variables from EditBox
* fix todo
* change to pure virtual methods for class EditBoxImpl
* [Android] Software decoding while preloading audio files to avoid some crashes on some specific android devices, and it’s 2x faster than the old implementation.
* Updates external/config.json to 126
* Updates library path, adds ‘android-specific’ prefix.
* Updates config.json to 127
* libwebsockets & curl are dynamic libraries now, modify project configuration for win32.
Updates WebSocketTest.cpp to test wss connection.
* Corrects some logic in WebSocket.cpp. Adds wss test case. WebSocketTest suggests developers to use `WebSocket::closeAsync` method which will not block current thread.
* mutex unlock fix in WebSocket.cpp. Reverts TEST URL.
* Allows self-assign cert.
* Each ws connection will create a virutal host now. Supports self-signed cert and update test case to suggest developer use ‘closeAsync’.
* Updates deps to 123.
* fixed#16871: Material second shader texture will be lost when removeUnusedTextures is invoked.
* issue #16871: Adds test case for issue #16871.
* issue #16871: Checks whether current texture is the same as which is passed in. And more comments for release stuffs.
* Removes unused nullptr check of _value.tex.texture
CC_SAFE_RETAIN will check it.
And some indention fixes.
* Fix various compilation issues.
Mostly errors on field initialization order but also missing files
in CMakeLists and missing include directives.
* Fix compilations issues with GCC 6.2
* Fix gitignore libs/ entry to not ignore the Android external libraries.
* Allow to unbind asynchronous texture loading callback with a custom key.
In order to unbind the callback passed to
`cocos2d::TextureCache::addImageAsync(path, callback)`, one has to
call `cocos2d::TextureCache::unbindImageAsync(path)`. In the cases
where the loading of the same texture is requested from several sources
simultaneously, then none of the source can unbind its own callback
unambiguously.
This commit adds an overload of the `addImageAsync` function taking an extra
argument identifying the callback, thus allowing to unbind it unambiguously
in cases where the loading of path is requested by several sources
simultaneously.
* Add a test case for TextureCache::addImageAsync with a custom key.
* Refactors WebSocket:
1. Supports wss protocol
2. Uses only one libwebsockets context, multiple wsi instances to avoid multi-thread issues
3. Uses lws_create_vhost to create multiple virtual host, different protocols works
* Adds openssl include path to xcode project configuration.
* mac doesn’t depend on curl
* ca file path should be full path.
* More bug fixes like which in https://github.com/cocos2d/cocos2d-x/pull/6986
* Remove curl dependence for mac
* Updates Andorid.mk
* [win32] Adds wss support for win32, and updates openssl, libcurl, libwebsockets libraries.
* Updates external/config.json to 118.
* [win32] Updates cocos/2d/libcocos2d.vcxproj to fix compilation error while building in release mode.
* Linux support websocket ssl connection.
* Updates external/config.json
* Updates install-deps-linux.sh
* Adds dependence of binutils, print ld version
* Updates travis scripts.
* Updates travis scripts.
* Updates travis script, don’t output log while extracting.
* update before-install.sh
* updates before-install.sh
* updates before-install.sh
* don’t output log for installing software.
* Updates config.json to 120.
* fixes issue #17119
and sanitizes the code a little bit
* more fixes
* fixes issue #17116
* restore xcode "none" sign profile
* code is cleaner
add more documentation in CCSprite.h
* missing assets
* anchor point works with batchnodes again
* Fix conversion warning
from unsigned int to float
* Fix type conversion warning
* Fix type conversion warning
* change the return type of getOutlineSize to float
* fix typo
* fixed#16849: Preload many audios may cause crash on devices those use Samsung Exynos CPU.
* Adds comment for __SLPlayerMutex variable.
* Fixes wrong comments in AudioDecoder.cpp
* Add EventDispatcher#hasEventListener (sync from creator)
* Fix function wrapper using js object during its gc
* Support more system languages
* Direct log/error for better understanding problems & add sys.now
* Synchronize Editbox APIs
* Synchronize Scheduler.PRIORITY_NON_SYSTEM const
* Upgrade web engine
* Upgrade test cases
* Manually bind EventDispatcher::addCustomEventListener to avoid memory issue
* Manual bind EventListeners’ create to avoid memory issue
* Fix compilation issue when COCOS_DEBUG = 2
* Unify function name of Texture2D::releaseTexture
* Fix compilation issues and update web & bindings-generator
* Fix lua compilation issue
* Use %ld instead of %zd
* Separate FinalizeHook for ref objects and non ref objects
* Fix spine TrackEntry recursive conversion issue by using getter
* Fix crash during Wrappers deallocation (possible to have leak)
* Increase default JS heap to 32 mb
* Update engine version
* Add change log of web engine
* Improve cc.formatStr
* Fix chipmunk crash issues when using setDefaultCollisionHandler
* Add change log for JSB and update web engine ref
* [mac, ios] Adds AudioDecoder::readFixedFrames. And uses readFixedFrames to simply code.
* [mac, ios] ‘ExtAudioFileRead’ may return 0 frame while it doesn’t reach the end of very short audio file.
* [mac, ios] Adds test case for small file test.
* [mac, ios] Adds small audio file.
* [mac, ios] Macro ‘BREAK_IF’ logic fix.
* [mac, ios] Returns false of AudioDecoder::open if total frames is 0.
* Add EventDispatcher#hasEventListener (sync from creator)
* Fix function wrapper using js object during its gc
* Support more system languages
* Direct log/error for better understanding problems & add sys.now
* Synchronize Editbox APIs
* Synchronize Scheduler.PRIORITY_NON_SYSTEM const
* Upgrade web engine
* Upgrade test cases
* Manually bind EventDispatcher::addCustomEventListener to avoid memory issue
* Manual bind EventListeners’ create to avoid memory issue
* Fix compilation issue when COCOS_DEBUG = 2
* Unify function name of Texture2D::releaseTexture
* Fix compilation issues and update web & bindings-generator
* Fix lua compilation issue
* Use %ld instead of %zd
* [android] Catches ‘NumberFormatException’ while invoking Integer.parseInt.
* [android] Catches ‘NullPointerException’ while converting Integer to int in Cocos2dxActivity.hideVirtualButton.
* Fixing issue where Scheduler::unscheduleAll() would not unschedule functions scheduled with Scheduler::performFunctionInCocosThread.
* Removing clear of _functionsToPerform from unscheduleAll, based on code review feedback. Adding a function removeAllFunctionsToBePerfomedInCocosThread, which will remove all pending functions scheduled with performFunctionOnCocosThread.
* Adding test case for Scheduler::removeAllFunctionsToBePerformedInCocosThread
* Adding proper cleanup code to Scheduler test for SchedulerRemoveAllFunctionsToBePerformedInCocosThread
* fixed#16938: Audio could not be played entirely on iOS/macOS. And refactored some code of decoding.
* Adds license header, removes unused macros.
* issue #16938: Corrects remaining frame count calculation.
* Updates include path.
* Adds comments for AudioDecoder class.
* Adds const for getter functions in AudioDecoder.
* issue #16938: Adds test case.
* Updates license years.
* Deletes trailing white spaces.
* Adds missing Scale9Sprite::initXXX overrided methods after refactoring Scale9 logic. Otherwise, `setupSlice9` will not be invoked.
Test case is: 1. Node: Scene3D -> Description -> Scale9Sprite display is wrong.
* Some fixes:
* Call Sprite::initWithFile(filename) in Scale9Sprite::initWithFile(filename) rather than Scale9Sprite::initWIthFile(filename, Rect::ZERO). Otherwise content size will be zero which is incorrect.
* setCapInsets in updateCapInset only when it’s in slice mode.
* setCapInsets should reset _insetLeft, _insetTop, _insetRight, _insetBottom member variables.
* Remove _previousCenterRectNormalized, just updateCapInset while switching to SLICE mode.
* Fixes JSTest -> ExtensionTest -> EditBoxTest: no background of editbox.
* Avoids an unused `setCapInsets` invocation in setupSlice9.
* fix: Scale9Sprite test case 18
Bug calculating rotated frames.
the width was being used instead of the height and vice-versa
* fixes test cases 8 and 9
* fix: Scale9Sprite test case 18
Bug calculating rotated frames.
the width was being used instead of the height and vice-versa
* fixes test cases 8 and 9
* initialize Director::_invalid on first init
* fix: Setting the GLView should be done after creating the RootViewController
* restore 2016 copyright on templates/cpp-template-default/proj.ios_mac/ios/AppController
* remove old iOS js and lua templates
* copy actual iOS templates from cpp to js and lua
* These variables can be accessed by reference
* Assign values in initialization list
* _range can also be in initialization list
* Prefixed ++ and added 'auto' to loops
Also removed extra whitespace
* Prefixed ++/--, and changed for-loop implementation to use 'auto' on some loops
* Use resolved file name (through dictionary lookup) in font atlas creation, to prevent creating multiple atlases for the same file.
Add font tests with and without font name replacement (through dictionary lookup).
* Fix cpp-tests xcode and cmake project
* Additional fix for cmake project
* Added -Wno-unused-parameter and removed all uses of the CC_UNUSED_PARAM macro
* Commented unused parameter names in .cpp files which previously used CC_UNUSED_PARAM
* Reverted -Wno-unused-param flag.
Moved deprecated touch methods definitions to .cpp file.
Commented more unused parameter names.
* Fixed some errors and warnings caused by the previous commit.
* Commented remaining unused parameter names in .cpp files.
* Fixed unused parameter warnings in headers.
* Fixed some more unused parameter warnings.
* Fixed some more unused parameters warnings.
* Fixed mistake in previous commit, missing ComAudioReader:: in method. Other warnings.
* Fixed build errors.
* Added missing file to CMakeLists
* Added method to switch between single and multitouch on Android.
* Moved variable definitions to the beginning of the class. Handle single touch for ACTION_MOVE and ACTION_CANCEL.
* Cleaner code by using if/else instead of break
* replaced some unordered_map::insert(std::make_pair(foo, bar)) with unordered_map::emplace(foo, bar)
* replaced some vector::push_back(std::make_pair(foo, bar)) with vector::emplace_back(foo, bar)
The old way will construct a std::pair first then call move constructor
when putting it into the container, while using emplace will construct
the pair in-place in the container. Also, the emplace way is shorter &
more concise.
* Add new methods to get the number of actions running in a
given node with a specific tag.
This is useful for cases that we want to know how many
animations with a **specific** tag is running in our target.
For example:
auto tag1Count = this->getNumberOfRunningActionsByTag(kMyTag1);
auto tag2Count = this->getNumberOfRunningActionsByTag(kMyTag2);
While this could be achieved (more or less) with callbacks
to increment the tagCount at start of action and decrement
at the end the proposed API is much more concise and less error
prone.
* Replace the old C casts to static_casts.
As discussed in #16789 issue thread @minggo asked
to change the old style of cast to newer, more safer
static_casts.
* Add the required parenthesis and normalize the spaces.
Normalize all the static_cast<Action *> to static_cast<Action*>
some places we have spaces, other places haven't.
Fix the missing parenthesis.
* SENSITIVE doesn't imply password, fixes crash on static cast in
* onTextChanged
* Fix type fontName instead of pFontName
* Set attributes that affect text content before setting initial text
In the case of a simple MTL file such as
newmtl cube
Ns 10.0000
Ni 1.5000
d 1.0000
Tr 0.0000
Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.0000 0.0000 0.0000
Kd 0.5880 0.5880 0.5880
Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000
map_Ka cube.png
map_Kd cube.png
The entire istringstream would be consumed by LoadMTL and result in a 'not found' error due to the null check being in the wrong place
* Undo pull request #16742 while keeping fixed indentation on ccShader_UI_Gray.frag
* Removed unnecessary whitespace
* Switched implementation to C++11 string literal
Thanks to stevetranby for the suggestion
cc.Ray:intersects now returns two results, an indication of hit or
not, plus the distance along the ray. The function can still be called
expecting a single argument and hence is backward compatible.
Also correct the debug error message
* tileGid may overflow when use horizontal flip
kTMXTileHorizontalFlag = 0x80000000
when use horizontal flip, gid will bigger chan 0x7FFFFFFF
* use unsigned int to convert string to gid
* fixed#16735: [native] The behavior of (setRotation + setSkewX) is wrong.
Since I removed some logic, this patch may also improve a little bit performance.
* Adds test case for issue #16735
* fixed#16754: [android] Background music which is playing could not be paused while game enters background.
* Updates a comment of cocos/audio/android/AudioEngine-inl.h
* Support MultiView matrix array
Support MultiView matrix array and add new interface in GLProgram to
support shader header definitions.
* support getMatrixStackSize
* optimize code
* remove indents
* rename resetMatrixStack(unsigned int stackCount)
* Add document to interfaces
* Supplement document of render interface
* Use range-based for-loops and allocate std::vector size(), end(), cend(), rend(), crend() on the stack where favorable.
Other minor trivial changes were applied.
* Fixed Android compilation error
* Fixed windows-universal compilation error
* Adds slice9 support for Sprite.
how to use it:
// points coords
sprite->setCenterRect(Rect(x,y,w,h));
// normalized coords
sprite->setCenterRectNormalized(Rect(x,y,w,h));
starts scale9sprite in sprite
more slice 9 changes
sprite 9 slice works?
kind of works
correct anchor point
slice 9 works, at least with non-rotated atlases
streched works ok
better Y invert code.
cleaner, compatible with the previous code
yay, scaling workings...
need a better api now
sets scale correctly
yay! works as expected!
more fixes and tests
better test for box
setContentSize() changes size in non-9-slice mode sprites as well
setCenterRect() -> setCenterRectNormalized()
yet another test
adds setPositionNormalized()
adds setCenterRect() tests
remove devel team from xcode
tests: add one more tests
fun test!
improved test
yet another test for slice 9
* fixes anchorPoint issues
* adds documentation
* fix: using top-left coordinate for setRect
* sprite: fixes related to scale9 and tiled
* Sprite: slice 9 fixes
works Ok with rotated frames
uses `setCapInsets` instead of `setCenterRect` to be more familiar
with `UIScale9Sprite`
* fixes js and lua bindings for Autopolygon
* issue #16661: Replace c style uthash with std::unordered_map<K, V> in CCFontFNT.cpp
* issue #16661: Removes unused include "base/uthash.h" in CCGLProgram.cpp.
* Remove undrawn quads from the skybox mesh
CCSkybox had been implemented using a combination of two
inconsistent techniques. The rendering was being achieved via use of
the vertex shader's inherent support for cubemaps. That technique requires
only a single screen-covering quad, but the implemtation defined a cube.
Defining a cube mesh would be appropriate if one were simply mapping the
cubemap's 6 textures to faces, but is unnecessary if using the shader's
cubemap feature.
Not only was the use of a cube mesh unnecessary, but the particular way
the cube was defined and used meant that only one face would ever
contribute to the rendering. One of the other faces would always be culled
and the other four would be viewed edge on, mapping the the infinitesimally
thin lines defining the edges of the screen.
This commit simply removes the never-rendered faces, and adds comments
explaining the technique.
* Within test code, remove setScale calls applied to skyboxes.
A Skybox is defined in such a way that it's position, rotation and
scaling has no effect on it's rendering, so setScale has no effect.
The calls are removed from test code to avoid confusing anyone using
it as a template for their own programs.
* Make the Skybox correctly account for the camera's fov
The Skybox does not use the model/view and projection matricies. Instead
a single quad that maps exactly to the screen is rendered and the camera's
world matrix is passed into a shader that renders using cubemap lookups.
The way that works hardwires the fov to 90deg in both the horizontal and
vertical. That shows up particularly badly when the camera is pointed
directly downwards and rotated: the image deforms as it rotates.
This commit corrects the problem by using scaling factors from the
camera's projection matrix to prescale the matrix passed into the shader.
* Support audio interruption and resume callback when change earphone status.
* Refactor keyevent callback and add makecurrent for compatible with different binary.
* Enable Tizen indicator.
* Remove the unnecessary evasobject in the window and refactor the function for glview mode.
* Fix the compatible issue between Tizen 2.3 and 2.4.
* Fix the wrong directory of script resources for HellLua template project.
* Create performance-test project for Tizen platform.
* Use ++ prefix instead for non-primitive data types in CCAutoPolygon.cpp
* Use ++ prefix instead for non-primitive data types in SimpleAudioEngine.cpp
* Use ++ prefix instead for non-primitive data types in CCNodeLoaderLibrary.cpp
* Use ++ prefix instead for non-primitive data types in CCActionManagerEx.cpp
* Use ++ prefix instead for non-primitive data types in CCDataReaderHelper.cpp
* Use ++ prefix instead for non-primitive data types in HttpClient-android.cpp
* Use ++ prefix instead for non-primitive data types in CCDevice-linux.cpp
* Use ++ prefix instead for non-primitive data types in ScriptingCore.cpp
* Switched implementation to range-based for loops
* Added readability, fixed loop in CCDataReaderHelper.cpp
Thanks to Dimon4eg for the code review.
* Adds Spine binary-file format support
fixes issue #10438
* ignore SkeletonBinary.c from linter
* add another file to the exclude list
* lua manual fixes for spine
* SkeletonBinary.c and not .cpp
* missing files for win8.1
* don't compile it as crt
* new updates from spine
* Lua: remove unused 3rd argument from cc.mat4.transformVector
cc.mat4.transformVector takes a mat4 and a 4vector and returns the result
of applying the mat4 to the vector. Strangely it had been made to also
require a third argument called dst which it doesn't use but did check
was a vec4. This commit allows cc.mat4.transformVector to be called
without the unnecessary argument. We still permit calling with it for
backward compatibility.
Also changed is the wrapper in Cocos2d.lua so that a second form of
cc.mat4.transformVector can be used where the vector is supplied as
4 separate numbers.
Changed the test files to call without the unnecessary argument.
* Lua: remove unused argument from cc.mat4.createTranslation/Rotation
Both these functions have an extra unnecessary argument called dst,
although neither use it either to pass in or out a value. This
commit removes the extra argument and updates the test programs
correspondingly.
Also, within Cocos2d.lua, remove some definitions that are later
overwritten by new ones
* Removes insignificant log: `prevents overloading the autorelease pool`
* Removes unused retain -> autorelease stuff
* Checks the return value of `texture->initWithImage`, if it returns false, texture should be released and set to nullptr.
* More specifc log output in TextureCache::addImage(image, key)
* Checks arguments validation for VolatileTextureMgr::addImage
* fix: staggered hex maps returns correct tile
order was fixed in the array that contains the GIDs.
fixes Github issue #16512
* fix: add fix validation code for issue #16512
If playing a large audio and its loop flag is set to false, after the audio is played over, there will be 4 or 8 bytes memory leak by _rotateBufferThread variable.
Resolution:
The `isDestroy` flag should not be set to true in rotate buffer thread, to exiting the thread, we need another varible for this purpose.
Thanks @nicolechen819 for the feedback.
* getSlidBallRenderer methods to allow more customization of UISlider look and feel.
* Added const to declaration of getSlidBallRenderer methods for UISlider.
* fix: Label updateColor() and underline color work as expected (#16486)
fixes Github issue #15214 correctly. underline uses _displayColor
and not _textColorF. _textColorF is only for the text.
This also emulates the SystemFont underline behavior
fixes Github issue #16471
* fix conflict
* Issue 16471 (#16489)
* fix: Label updateColor() and underline color work as expected
fixes Github issue #15214 correctly. underline uses _displayColor
and not _textColorF. _textColorF is only for the text.
This also emulates the SystemFont underline behavior
fixes Github issue #16471
* docs: added more internal doc for issue_16471
* fixed#16473: OpenSLES error while play background music in writable path or sdcard. (#16475) (#16517)
* [ci skip][AUTO]: updating luabinding & jsbinding & cocos_file.json automatically
* ease action class macros to reduce code duplication
- update bindings for ease actions
- reorder clone method
- add back in create/etc methods to allow for EaseRateAction instances
- fix wrong clone return type
* Add note and minor cleanup
* use create in clone instead of new/init as in latest EaseBezierAction
* fix reverse for EaseIn/Out to match original code
* add assert for null
* refactor to match original code flow
* fix missing CC_DLL for windows builds
* fix win build issues due to abstract methods
* remove unused overrides
* fix: Label updateColor() and underline color work as expected
fixes Github issue #15214 correctly. underline uses _displayColor
and not _textColorF. _textColorF is only for the text.
This also emulates the SystemFont underline behavior
fixes Github issue #16471
* docs: added more internal doc for issue_16471
* Warning fixes in AudioDecoder.cpp
* AudioPauseResumeAfterPlay test case should start in onEnter.
And add a loop to pause & resume many times.
* AudioMixerController::initTrack should not setState for track. Otherwise, it may trigger Track state mess-up.
fixes Github issue #15214 correctly. underline uses _displayColor
and not _textColorF. _textColorF is only for the text.
This also emulates the SystemFont underline behavior
fixes Github issue #16471
* Update CCSAXParser.cpp
* #Improve XML parse performance with rapidxml pure SAX parser without compatible break.
* put rapidxml to external
* Update deps
Camera::_viewProjectionUpdated is not initialised in constructor. Should be initialised to false.
This can lead to redundant visibility checks if _viewProjectionUpdated happens to resolve true.
As Camera::visit() is never called, _viewProjectionUpdated is never actually updated, resulting in no visibility tests when the camera transform changes.
Fixes#16404
* Fix LNK4098 warnings
Fixes these two warnings:
```
warning: LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
warning: LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
```
* Fix LNK2001 error
The `version` library is not linked for MSVC compiler and it produces these errors when compiling with MSVC 19.
```
cocos2dInternal.lib(CCApplication-win32.cpp.obj) : error LNK2001: unresolved external symbol _GetFileVersionInfoSizeW@8
cocos2dInternal.lib(CCApplication-win32.cpp.obj) : error LNK2001: unresolved external symbol _GetFileVersionInfoW@16
cocos2dInternal.lib(CCApplication-win32.cpp.obj) : error LNK2001: unresolved external symbol _VerQueryValueW@16
```
This commit fixes that problem
* Update js auto binding settings with new ndk version
* Remove unnecessary property from Ref
* Merge part of Cocos2d-x-lite :
1. Improve network bindings
2. Use nullptr instead of NULL
3. Remove usage of some deprecated APIs
4. Add some defensive code and cleanup
* Fix spine track entry circle referencing issue
* cocos2d/cocos2d-x#16327: Fix global object leak issue in JSB
* Improve ScriptingCore::evalString, old implementation have been deprecated in Spidermonkey
* Update JS versions
* Add docs for web v3.13
* Improve ScriptingCore
* Manual merge cocos2d/cocos2d-x#16383 by DavidDeSimone
* Fix auto bindings configurations
* Update web ref
Adds Director::isValid()
removes DisplayLinkDirector()
removes virtual functions from Director()
Director is no longer an abstract class
github issue #14276
* new actions ResizeBy and ResizeTo
* FDP-5580-ResizeBy and ResizeTo fix and Test cpp : added a scale exemple in the test cpp to compare with our new resize + fix
* FDP-5580: actions ResizeBy and ResizeTo : changed some functions visibility
Currently, we couldn't find out the exact reason.
libwebsockets official said it's probably an issue of user code since 'libwebsockets' passed AutoBahn stressed Test.
* fix the return value when return null in java
fix the return value when return null in java
* fix getStringUTFCharsJNI
fix getStringUTFCharsJNI when srcjStr is null
* remove a word
remove a word added by mistake
* make a indention
line 233 utf8Str
* fix: TriangleCommands with custom uniforms can be batched
TriangleCommands with custom uniforms can be batched together.
This improves the performance when using custom uniforms without
adding any penalties when not using them
Github issue #16224
* better tests
* #improve node sort performance by std::sort + unsigned long long (_localZOrder)
* Use bit field for make _localZOrder storage more clearly.
* #Comment _localZOrder members for meaningful.
* fix issues
* #use explicit bits integer of localZOrder storage
* #Fix compile error, add include <cstdint> to CCNode.h
* use the optimization for 64bit and no optimization solution for 32bit
* Use the optimization for 64bit and no optimization solution for 32bit
* #Improve node sort performance 64-bit by std::sort + long long (_localZOrder)
* fix issues
* test case
* Revert "test case"
This reverts commit 85471d07a433f2b7f0265c3b7dd483fcc28e3e2f.
* fix issues
* use lambda, and any other sort issues.
* skip sotNodes
* fix compile error
* fix compile issue
* Support audio interruption and resume callback when change earphone status.
* Refactor keyevent callback and add makecurrent for compatible with different binary.
* Enable Tizen indicator.
* Remove the unnecessary evasobject in the window and refactor the function for glview mode.
* Fix the compatible issue between Tizen 2.3 and 2.4.
* Fix the wrong directory of script resources for HellLua template project.
* Create performance-test project for Tizen platform.
* Upgrades to Spine v3.4
Github issue #16115
* compiles and works on windows
tested on:
* win32
* win10
* win8.1
* include-linter: don't test spine files
we need them unmodified
* spine bindings fixes
also, doesn't use goblins-ffd. instead it uses goblins.
goblins-ffd is no longer present in spine v3.4
* fixed#16169: new android project crash in android 5.0.2 device (Nexus 7) when use 3.12
* fixed#16169: Adds comments for why we should not use `assignment operator` of `std::u16string`.
* Win32 move unicode utils global.
It need for easy converting utf-8 string in all code.
And use it api in user code also WinRT version.
* Move to CCUtils-win32
Also in WinRT version.
* Copyright
* #improve node sort performance by std::sort + unsigned long long (_localZOrder)
* Use bit field for make _localZOrder storage more clearly.
* #Comment _localZOrder members for meaningful.
* fix issues
* #use explicit bits integer of localZOrder storage
* #Fix compile error, add include <cstdint> to CCNode.h
* use the optimization for 64bit and no optimization solution for 32bit
translucent part of ETC format textures are rendered too bright due to
the fact that v3.12 sets PremultipliedAlpha to true by default. This
commit sets default value of _hasPremultipliedAlpha = false, deletes
unnecessary `_hasPremultipliedAlpha = false` code in multiple places,
making ETC format's _hasPremultipliedAlpha false while keeping other
formats unchanged.
* Pause instead of stopping music on resign
The [audioSource stop] causes the music to be stopped, and therefore it fails to resume later on a call to [audioSource resume], due to the addition of the if (!stopped) check in resume added in 26a04b38f2
* Don't re-pause music that has already been paused
In this situation:
1. Start game, music plays
2. Switch to Music app, game music paused, start other music
3. Switch to game, game music not resumed due to other music playing
4. Switch to Music app, stop other music
5. Switch back to game, game music should resume due to no other music playing
At step 5 the game music doesn't currently resume. This is because at step 4 when switching to the Music app, the game music gets re-paused (actually isPlaying is false, so systemPaused is set to NO, even though the music *is* still paused). This causes the music to not be resumed at step 5.
This change fixes this, by skipping the pause logic if systemPaused is already true.
Note that this is dependent on https://github.com/cocos2d/cocos2d-x/pull/16178
* Fix typo in previous fix.
* fixed#16170: Random crash in alGenBuffers(AudioCache::readDataTask) at startup.
* Minor fix: should -> may
* Minor fix: updates comments.
* Update comment.
* Comment fix again.
* [audio] Fixes some issues while stop/uncache right after play/preload on OSX/iOS platform.
* Better state control in AudioCache.
* Adds State enum class which contains INITIAL, LOADING, READY, FAILED states.
* AudioPlayer::destroy should check AudioCache::_isAudioLoaded flag, otherwise, app will freeze in cpp-tests/NewAudioEngineTest/6:Test invalid audio file.
* Should check whether state is INITIAL in the destructor of AudioCache.
* Adds test case for switching play state frequently.
* Skips invoking reading data callback if cache's state is INITIAL.
* Variables initialization for AudioCache class and fixes protential missing delete AL buffers.
* Audio latency fix for Android. Support preload effects on Android now.
Squashed commits:
[b6d80fe] log fix
[a0a918e] Fixes assetFd didn't be released while PcmData is returned from cache.
[4b956ba] Potential crash fix for PcmAudioPlayer while pause / resume.
[398ab8c] Updates LOG_TAG position in AudioEngine-inl.cpp
[e3634e7] include stdlib.h for posix_memalign
[9004074] fixes setVolume logical error.
[c96df46] Don't use another thread for mixing, enqueue is in a seperated thread, therefore doing mixing in another thread will waste more time.
[0a4c1a8] Adds setLoop, setVolume, setPostion support for Track
[c35fb20] Fixed include.
[cdd9d32] Do mixing by ourself. (TO BE POLISHED)
[6447025] µ -> u since µ could not be shown on some android devices.
[97be0c6] Don't send a silence clip.
[c1607ed] Make linter.py happy.
[0898b54] Puts enqueue & SetPlayState in PcmAudioPlayer::play to thread pool.
[b79fc01] Adds getDuration, getPosition support for PcmAudioPlayer
[80fa2ab] minor fix of the code position of resetting state to State::INITIALIZED
[d9c62f1] underrun fix for PcmAudioPlayer.
[9c2212a] UrlAudioPlayer, playOverMutex should be static, and should be used in update method.
[1519d2e] static variables
[19da936] _pcmAudioPlayer Null pointer check in AudioPlayerProvider.
[e6b0d14] Updates audio performance test.
[fc01dd4] Registers foreground & background event in AudioEngine-inl.cpp(android), the callback should invoke `provider`'s pause & resume method.
[e00a886] TBD: Pause & resume support for PcmAudioPlayerPool.
Since OpenSLES audio resources are expensive and device shared, we should delete all unused PcmAudioPlayers in pool while pause and re-create them while resume.
But this commit isn't finished yet, I don't find a better way to register pause&resume event in AudioEngine module.
[9e42ea3] Interleave mono audio to stereo audio. PcmAudioPlayerPool only contains PcmAudioPlayers with 2 channels.
[3f18d05] Adds a strategy for checking small size of different file formats.
[753ff49] Adds performance test for AudioEngine.
[09d3045] Releases an extra PcmAudioPlayer for UrlAudioPlayer while allocating PcmAudioPlayer fails.
[9dd4477] Using std::move for PcmData move constructor & move assignment.
[6ca3bcb] some fixes:
1) new -> new (std::nothrow)
2) break if allocate PcmAudioPlayer fails
3) renames 'initForPlayPcmData' to 'init'
4) PcmAudioPlayer destructor deadlock if 'init' failed
[54675b6] include path fix.
[a1903ca] More refactorings.
[19b9498] Makes linter.py happy. :)
[923c530] Fixes:
1) Avoid getFileInfo to be invoked twice
2) A critical bug fix for UrlAudioPlayer and adds detailed comments
3) __clang__ compiler option fix for AudioResamplerSinc.cpp.
[5ec4faf] minor fix.
[faaa0f3] output a log in the destructor of UrlAudioPlayer.
[9c20355] NewAudioEngineTest,TestControll crash fix.
[f114464] fixes an unused import.
[1dc5dab] Better algorithm for allocating PcmAudioPlayer.
[331a213] minor fix.
[e54084a] null -> nullptr
[f9a0389] Support uncache.
[89a364f] Removes unused update, and TODO uncache functionality.
[1732bf9] Supports AudioEngineImpl::setFinishCallback for android.
[43d1596] UrlAudioPlayer::stop fix.
[e2ee941] Test case fix in NewAudioEngineTest/AudioIssue11143Test
[5c5ba01] More fixes for making cpp-tests/New Audio Engine Test happy.
[8b554a3] Adds log while remove player from map.
[ed71322] If original file is larger than 30k bytes, consider it's a large audio file.
[fb1845a] Updates project.properties
[6f3839f] minor log output fix in AudioEngine-inl.cpp
[c68bc6c] Don't resample if the sample rate of the decoded pcm data matchs the device's.
[43ca45f] PcmAudioPlayers also need to be removed while they play over, but should not be deleted since their lifecycle is managed by PcmAudioPlayerPool.
[f5e63c9] Audio latency fix for Android. Support preload effects on Android now.
* Supports to loading audio files asynchronously.
* Crash fix for stop audio right after play2d.
* Minor fix for logic in AudioMixerController.cpp
* Adds missing files (CCThreadPool.h/.cpp).
* Minor fix for including.
* Minor fix for missing include <functional> in Track.h
* update license information in audio.h
* Don't use std::future/std::promise anymore since ndk counldn't support it well in armeabi arch.
* isSmallFile postion updated, fixes large audio file goto the checking logic of cache.
* std::atomic<int> isn't supported by ndk-r10e while compiling with `armeabi` arch, using a int with a mutex instead.
* fixes __isnanf & posix_memalign doesn't exist on low api (<=16) devices.
* namespace updated: cocos2d -> cocos2d::experimental
* Removes commented code in AudioMixerController.h/.cpp
* Removes unused code again, and fixes a memory leak of `Track` instance.
* Oops, namespace changed.
* Only outputs log in debug mode.
* Uses ALOGV for outputing logs in AudioEngine-inl.cpp
* const PcmData& -> PcmData for Track
* Fixes a protential crash in NewAudioEngineTest
* Adds `COCOS` prefix in header #ifndef COCOS_BALABALA #define COCOS_BALABALA
* Uses _ prefix for cocos code style instead of `m` prefix.
* Deletes AudioResamplerSinc related files.
* Bug fix from @minggo's reply on github.
* Don't need to invoke pause after in UrlAudioPlayer::prepare.
* Updates ThreadPool class, uses enum class and adds const keyword.
in lua, I registerScriptKeypadHandler,when debug on Andriod, after clicking back button, I didn't get "backClicked",but a nil
I see that in CHANGELOG:
cocos2d-x-3.1 May.24 2014
[FIX] EventKeyboard::KeyCode: key code for back button changed from KEY_BACKSPACE to KEY_ESCAPE
so,I fix it , and get the right "backClicked"
commit 3a8ccb54b58f01daaa5b17efcd0e1ab4b7ccf914
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Fri Jul 1 11:05:02 2016 -0700
Add support for Hex tiled maps
Based on original patch by https://github.com/JustVic
Original patch:
https://github.com/cocos2d/cocos2d-x/pull/13288
fix: tiled hex maps
Hexagonal TileMaps Support
fix: odd, even works as expected
still problems with rendering order
fix: fixes layer position in Hex
fix render ordering
* fix: collection of vr fixes
* Node::additionalTransform() and Node::setNodeToParentTransform() can be used at the same time
* Node allocs _additionalTransform in runtime taking 60 bytes lees for 99% of the nodes
* Node calculates the transform faster when an additionalTransform is being used
* VR works when the camera is being moved manually with setNodeToParentTransform
* VR has its own tests
* VR can be disabled and works as expected
* doc: documentation for the new fix
* fix: restore submodule web
* fix: compile and link on iOS
* fix conflicts
* fix: collection of vr fixes
Node: additionalTransform() has its own dirty variable
VR: disabling VR works as expected
VR: works with camera3d test
VR: iOS Tracking works even if it doesn't have any input
fix: setNodeToParentTransform() and setAdditionalTransfrom() work...
...at the same time.
Also, this PR makes the size of Node smaller. `_additionalTransform` is
no longer an inline object.
Instead, it is allocated on demand making 99% of the Nodes smaller by 60
bytes.
fix: compile in windows
* doc: documentation for this fix
use reverse Camera iterator when traversing events (of course).
but somehow setAdditionalTransform() breaks
setNodeToParentTransform(). And since setAdditionalTransform is not
needed, we just don't use it.
Github issue #15909
use reverse Camera iterator when traversing events (of course).
but somehow `setAdditionalTransform()` breaks
`setNodeToParentTransform()`. And since `setAdditionalTransform` is not
needed, we just don't use it.
Github issue #15909
1) Reverts changes in #15443, the behavor of LuaEngine::handleCommonEvent should not be changed. empty eventName should be supported, otherwise it will break compatiblity.
2) Null pointer check in CommonScriptData initialization
3) No error callback in lua (fixed#15904)
underline will have the same solor as text in TTF when calling
`setColor`. There is another method called `setTextColor` which is
confusing. What does each function?
github issue #15214
* Fixed ClippingNode not cleaning up _stencil correctly
_stencil may be running due to onEnter() called by ClippingNode. If onExit() is not called then Node::~Node() will assert when _stencil is released.
* Added onEnterXXX to ClippingNode::setStencil()
ClippingNode::_stencil would not be initialised correctly when set after ClippingNode was adding to the active scene.
* Add system font overflow
1. currently only iOS, Mac and Android platform are supported
add mac label overflow shrink
modify system font overflow test
fix warning and possible memory leaks
add ios system label overflow support
add iOS system font overflow support
fix iOS system font overflow
fix Mac System font overflow
add android system font clamp
add Android system font shrink
cleanup iOS shrink related code
fix Android system font clamp
add core text to project template
fix iOS tests project
fix mac and iOS shrink
improve iOS and Mac clamp feature
fix header file include path
* modify the comments, make it more clearer
- Added c++_shared (LLVM) to Android toolchain options. Fixed AndroidNdkGdb.cmake.
- Fixed includes when not using prebuilt libs. Added option to use sources in external when not using prebuilt libs.
- Added option in CMake to be able build Box2D without using it as physics library in cocos2d-x (similar to what is done in the Visual Studio solution).
* Testcase for CCS 1.6 animations with only one frame
* Removed extra comma
* Removed conflict garbage
* Removed old code
* Create new Test section Cocos Studio > Issues
* update ccs-res submodule
* Fixed Back button visibility
* Fixed wrong behavior of "cc.isObject" function for undefined and null values.
* Simplify 'cc.isObject' function
* Remove double return in 'cc.isObject'
* Adding setBounce to webview
This makes the .bounces of the scrollview section of webview publically accessible
When set to true it stops the grey over scroll of webviews
* Adding empty function for setBounces to Android
* Adding empty setBounces function for tizen
* Adding comments for empty Android and Tizen setBounce functions
* Small comment text change
* Refactor CCFileUtils-apple to remove code duplication of conversion from CCValue to NSObject and vise versa
* CCFileUtilsApple: rename helper functions
* Fix password style text in UTF-16
Label used UTF-16 in internal.
Need string in UTF-8.
* Set correct char for Max and iOS
* Add test for TextFiledTTF Secure Text Entry
* Add captureNode for cocos2d::utils
Add captureNode for cocos2d::utils and fix CC_DLL syntax.
* Add test case for utils::captureNode
Add test case for utils::captureNode.
* Store captured image to disk with RGB.
* Trigger jenkins check
* Add searchNode for cocos2d::utils
Add searchNode for cocos2d::utils
* fix compile error on win32_bak
* convert line terminates to unix sytle.
* Rename searchNode to findChild, and etc.
* fix compile error.
* Add OBB support.
OBB must be a zip file with audio and video files stored uncompressed.
* Use introspection to be able to build with Android API level 10.
Using the new audio engine to play sounds from the OBB will only work with API level 12 (Android 3.1) or above.
* Remove unnecessary memory copy in FileUtils::getFileData()
* Add Data::takeBuffer() to simplify FileUtils::getFileData() and CCFreeTypeFont::loadFont().
* Add FileUtils::getContents().
* skip FileUtils::getContents() in binding generator config.
* use FileUtils::getContents in CCDataReaderHelper.
* obey the cocos2d-x coding style.
* Explicit constructor.
* More docs.
* More tests.
* Move FileError to FileUtils::Error.
* Fixes wrong buffer size for reading into string and vector.
* Update tests.
* Add note on padding for output buffers.
* FileUtils: implements old methods by using `getContents()`.
methods are:
* FileUtils::getDataFromFile()
* FileUtils::getStringFromFile()
* FileUtils::getFileData()
and follow Android methods are now just calls FileUtils' ones.
* FileUtilsAndroid::getDataFromFile()
* FileUtilsAndroid::getStringFromFile()
* FileUtilsAndroid::getFileData()
* Fixes build error.
* FileUtils::getFileData: Return the size of data.
* Remove old methods form FileUtilsAndroid they are now done in FileUtils.
* Fixes for win32 code.
* Fixes build error in test and add more test.
* Better error message.
* Make template type name more readable.
* Update comments.
* Move internal functions to anonymous namespace.
* Refactor FileUtils test.
* Fix warning about compare signed and unsigned.
* Win32 and WinRT does not use text mode.
That is we don't need simulate convert CRLF to LF.
* Fixes for Win32 and WinRT.
* Update for Win32 and WinRT.
* Win32: return FileUtils:Error::TooLarge when file is large than 2^32-1.
* Win32: remove checkFileName() which has no effect at all.
* WinRT: add FileUtilsWinRT::getContents() using ::CreateFile2.
* WinRT: add override keyword for FileUtilsWinRT::getFileSize().
* Update for coding styles.
* More error strings.
* check read and malloc return codes.
* rename FileUtils::Error to FileUtils::Status.
* Fixes for WinRT, use GetFileInformationByHandleEx to get file size.
* Fixes build error for winrt and cleanup FileUtils::Status.
* Try to fix the build error on Linux.
Status must defined in some header, so move FileUtils.h up.
* Remove support of text mode on WinRT (it is the last platform support text mode).
Removed a redundant release on certDataRef that caused crash on
NSURLConnectionLoader thread.
Fixed a memory leak of SecCertificateRef
This fixes#15464
All images format implementation but WIC test the value of a CC_USE_<FORMAT>
preprocessor macro to verify if the implementation must be available or not.
WIC support is checked against the definition of the macro only,
independently of its value, thus making the implementation available even
if CC_USE_WIC = 0.
This commit makes the tests of the CC_USE_WIC macro identical to the tests
of the other similar image format macros.