* [game] Uses global compartment.
* fixed cocostudio bug.
* Fixes Memory leak for JSB.
* Memory leak in ActionsTest.js
* js_callfunc binding check whether jsThis is valid.
* Fixes potential crash in DownloadDelegator .
* CCLOG -> CCLOGINFO for garbage collect callback.
* jsb_c_proxy_s is a struct which contains a JS::Heap<> cpp object. Need to use `new`/`delete` to manage its memory.
* The functionality of JS controls C++ object's lifecycle isn't stable enough, please don't enable it now. Make an error if user enables it.
* Compilation error fixes.
* Removes unused JSAutoCompartment since we use JS_EnterCompartment/JS_LeaveCompartment now.
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.