* Added non-breaking character check function
* Check for non-breaking characters in words when formatting label text
* Added nbsp again as space character (removed in previous PR https://github.com/cocos2d/cocos2d-x/pull/18147)
* fix mistake for ios lua template
* auto select headers depend on sources
* change cmake "cocos_build_app" from macro to function
* fix cmake dll repeat copy
* update travis srcipt
* add header list for cocos lib
* add header list in cmake files
* re-add include dir Classes
* improve template cpp var name
* remove func get_headers_by_sources
* cmake add simulator header list
* make source and header collect more clear
* improve macos app pkg
* improve ios pkg, run failed
* revert the ios pak logic, keep older
* expand var APP_BIN_DIR scope
* fix use sqlite3 error on linux
* fix win32 compile error
* remove multi-add mistake
* try to fix python install issue on travis
* fix js-tests build on android
* uninstall old python in travis
* add travis python print info
* fix command ll to ls -l
* remove useless link
* PYTHON_BIN adapt homebrew python
In some situations, breakText() can return 0, which leads to an infinite
loop. In that case we just increase the index so the measuring doesn't
get stuck.
* fix win32 prebuilt error, and set cmake as default android native build
* cpp-template support msvc
* add msvc version check
* add -D_USRLUASTATIC, fix lua lib cmake compile error
* fix cpp-empty-test res copy dir, add function needed
* improve msvc res copy
* refactor cmake copy dll logic
* fix cpp-tests compile error
* refactor copy dll temp
* refactor win32 exe using dlls
* js-project compile support cmake using msvc
* improve res mark for win32
* update the way of lua project res mark
* add D_USRLUASTATIC for lua project
* unify RELEASE Release to Release, add CMAKE_CONFIGURATION_TYPES
* improve VS shows targets, add folder
* improve mac/ios res mark
* reduce useless comments
* unify cpp src include variable
* refactor cpp test project package logic
* improve pkg app logic
* start support prebuilt libs for cpp project using cmake
* improve prebuilt libs generate
* expand js/lua support prebuilt libs on mac
* adapt IDE generate libs path
* start do prebuilt for android
* improve the way of using external libs for prebuilt
* prebuilt libs support cpp-empty-test on android studio
* cpp-tests prebuilt libs, and remove useless
* start to improve libs using, to adapt prebuilt
* improve cpp tests prebuilt on android
* prebuilt support lua & js test on android
* prebuilt support cpp&js template
* rename prebuilt variabl, detail androd config
* finish android support prebuilt using cmake
* fix cmake script run in windows error
* reduce variable name length
* improve the way of win32 use dlls to adapt prebuilt
* loosen pick js/lua engine lib condition
* self review and start check linux build
* unify compile option location
* strict copy dlls condition
* improve libs link order
* start redo the way of copy dlls
* unify dlls copy logic
* fix linux res copy error
* update cmake copy file path in linux
* make prebuilt dir if needed, and divide Debug and Release dir
* cmake win32 divide Debug and Release dir well
* comment Lua Template project, for the unfinished lua simulator support
* add simulator cmake file
* start support simulator
* simulator support cmake build on macOS
* fix simulator compile error on win32
* add simulator prebuilt support
* improve mark cocos app macro
* improve cmake template project format
* improve cmake app files format
* fix format improve mistake
* detail cmake readme
* improve readme, useless comments
* add game.rc to template project
* check travis openssl version
* try update travis openssl
* upgrade travis openssl
* change openssl link
* change to upgrade openssl
* re install python with upgrade openssl
* add comment for macro and func, improve variable name
* Support Belarusian language
* Fixed code duplication - moved language convertion code to ccUtils
* added Belarusian language for all platforms
* Fix ios/mac build errors
* CMake build improvements
* android cmake support
* Enable proguard for cocos2d
* examples & test cmake support
* add android build type param to gradle.properties file
* less warnings
* update all android configs to recomended settings
* fix network cmake error
* fix js-tests cmake error
* android build config, add cmake
* android build config, add cmake
* add lua share lib
* android lua cmake build fix
* fix
* luajit test
* run fail, still
* fix js-warning
* correct lua main include
* lua test project cmake support android
* try to add lua-template cmake support
* lua template fix
* js_tests support cmake on android
* js-tests improve
* cmake support js-template
* test to realise prebuild
* cmake improve, no feature
* improve templates cmake
* refactor cmake struct
* correct cpp-tests cmake
* cpp-templates cmake improve
* typo fix
* cmake struct refator
* change default option
* adapt new project struct
* uniform cmake test style
* add_dependencies to support make -j
* little struct improve
* little fix
* adapt cmake bin dir
* little improve about cmake version
* change build all tests condition
* add source_group for Xcode
* add mark source files
* add more mark source code
* add template project to test
* add macos info.plist template
* add pak macos for all project
* lua test icon fix
* not consider lua project for now
* modify pak method
* add another ios toolchain
* add ios system library
* update ios toolchain, and reduce ios compile errors
* reduce error
* make ios engine lib compile pass
* cpp-empty-test ios bundle
* cpp-tests ios support
* js-tests ios support
* templates project support ios
* fix the way of lua-tests package
* try to fix lua-template on macOS
* comment lua-template sim file
* improve display on xcode
* update cmake readme
* check android compile again
* fix android compile error
* fix linux cmake res error
* update deps version, for cmake
* fix lua_template linux compile error
* close android cmake support for now
* review template android share library name
* change PROP_BUILD_TOOLS_VERSION version to 27.0.1
* change android compile version
* make `PROP_APP_PLATFORM` back, add comments for android native build
* Revert "make `PROP_APP_PLATFORM` back, add comments for android native build"
This reverts commit 272ddc19886891b9502cde070753a870c0fdb588.
* Copyright use python script updated. might be fix by manual later
* Revert "Copyright use python script updated. might be fix by manual later"
This reverts commit 49e99418e4da1fd02afda448ddeb16210f5e8c71.
* re modify copyright, consider utf-8-sig encoding
* another situation, add Copyright before "Permission is hereby granted"
* Revert "another situation, add Copyright before "Permission is hereby granted""
This reverts commit ee82591d32353c7ce2e146fe51ef447433b47571.
* another situation, add Copyright before Permission is hereby granted
* change "Copyright (c) 2016-2016 Chukong Technologies Inc." to " Copyright (c) 2016 Chukong Technologies Inc."
* script modify copyright, consider is cocos copyright or not
* change "Copyright (c) 2017 Chukong Technologies Inc." to "Copyright (c) 2016 Chukong Technologies Inc."
* manual fix, not fix audio related
* change "2016-2016" to "2016"
* Fixing issue where Stencil and Depths buffers would not function for a render texture if you backgrounded an application, and then resumed.
* Fixing typo: bufffer -> buffer
* Fix a crash bug when the UserDefault.xml file is empty.
* Fix a crash bug when play multiple timeline animations.
* Fix a crash bug when loading .plist files.
* Fix code style.
* [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.