- Build using C++17 by default.
- Simplified customization of Xcode project via cmake.
- Add documentation to demonstrate how to use the customization.
- NOTE: I believe we could compile with bitcode enabled if the box2d
library was compiled using bitcode.
* sync #20007 to v4
* Fixing a bug in Node::enumerateChildren (#20045)
This patch fixes an issue that if both // (recursive enumeration)
and .. (starting from parent node) are specified,
Node::enumerateChildren does not honor the latter and starts searching
from current node rather than parent node.
* fix triangle batch
since it would be too expensive to check the uniforms, simplify enable batching for built-in program.
* enable user update the materialID
* This is to ensure the RenderTexture internal texture2D PMA flag is set to the correct value.
[CCSprite.cpp] Blending mode needs to be set based on the PMA flag of the texture if using Sprite::initWithTexture().
* [CCSprite.cpp] Removed redundant code related to blending mode and opacityModifyRGB when creating a sprite with a texture.
* C++ forbids conversion from const char* string to char*, so we change
function signature from char* to const char* in lua basic conversion
functions.
* Added RenderTexture::saveToFileAsNonPMA() to save images without PMA.
Set the PMA parameter to true when calling initWithRawData() inside RenderTexture::newImage(), since textures are PMA.
Renamed Image::premultipliedAlpha() to Image::premultiplyAlpha() to better reflect it's action, and made it public.
Added Image::reversePremultipliedAlpha() to allow the reversing of the PMA.
Updated CCImage-ios.mm to set the correct bitmapInfo for PMA and non-PMA images before saving a file.
Updated RenderTextureTest::RenderTextureSave() to cater for non-PMA file saving.
* [CCImage-ios.mm] Fixed indentation.
* [UISlider.cpp] Divide by 0 error if _maxPercent is equal to 0, which is an allowed value.
fastSet makes the Data object managing a new memory area in
[bytes, bytes + size), but it doesn't releasing the old data
it managed. Failure to release the old data causes memory leak.
The default constructed Data manages null memory, so calling
fastSet on it is fine.
Because `Data ret = defaultValue;` malloc new memory, we might
have better performance without it.
* refactor AudioEngine and AudioEngine-linux
* map::erase() can handle case if key doesn't exist.
* use map::iterator when it has already obtained.
* mapChannelInfo[id].channel is nullptr befor resume(). Don't
dereference it.
* FMOD::System::release() calls close, so calling close before release
is not necessary.
* use std::map::insert properly.
* remove unnecessary null check on _audioEngineImpl
* add comment on nullptr dereference
* [BugFix] fix compile error
* [Feature] fix spirte, label test when EGL context lost
* [Feature] map uniform location
* [Feature] remove unneeded codes
* [Feature] add BufferManager
* [Feature] fix compile error
* [Feature] add files
* [Feature] remove unneeded codes
* [Feature] no need to release opengl resource
* [Feature] update BufferManager
* 1. reCreate frame buffer when needed.
2. initial texture when come back to foreground
* [Feature] add Program and Buffer event listener
* [FixTerrain] need check location had used before
* fix compile error
* add updateTextureDescrptor function for TextureMTL, since TextureMTL creation was move to Texture2D constructor.
* [FixDrawNode] record buffer data when needed
* [FixShaderTest] add nullptr judgement
* [FixShaderText] no need to reCreate ProgramState when come back to foreground
* [FixRenderTexture] retain the render texture image
* [Feature] optimize buffer memory
* fix compile error
* fix CI test fail
* Added functionality to clear pending responses and requests in the http client
* Responses and Requests now are processed in similar way
* Fix for clearing the http requests
* Added tests for HttpClient::clearResponseAndRequestQueue
* If path to file is tool long crash is possible.
If path to file is tool long crash is possible, because of chart buffer overflow.
* Incorrect replacement. Using iterator is better.
* Style fix
* Correct naming
* [BugFix] fix crashed test in metal
* [Feature] add comments
* [Feature] modify ways to get max_vertex_attribute
* [Feature] make it crashed in debug mode
* hack to make sprite3d test work
* support cull face
* support setting front face winding
* convert depth compare function type
* clean codes
* remove usage of glprogramstate
* pass needed information to Material::draw()
* add 3d textures
* enable animation
* 3D: compile on windows (#179)
* exclude source files from extensions/
* enable assets and 3D
* run on windows
* update comments
* use std::vector instead of raw pointer void *
* compile on mac
* revert cmake
* fix bufferdata
* add todos
* remove dirty flag from uniform buffer
* argument type const &
* enable more tests
* update shader
* save: failed to compile
* pass compilation
* fix type convert
* save stage
* save stage 2
* remove VertexData & IndexBuffer & VertexBuffer
* comment out _meshCommand
* comment bindPredefinedVertexAttribs()
* fix xcode project file
* simple refactor
* remove unused files
* revert sprite3d testcase position
* revert change
* remove ProgramGL::bindPredefinedVertexAttribs()
* add header <string>
* fix uniform size
* remove deprecated files
* remove some deprecated codes
* remove more deprecated codes
* remove ui deprecated codes
* remove more deprecated codes
* remove deprecated codes in ccmenuitem
* remove more deprecated codes in ui
* remove more deprecated codes in ui
* remove more deprecated codes in ui
* remove more deprecated codes
* remove more deprecated codes
* remove more deprecated codes
* remove vr related codes and ignore some modules
* remove allocator
* remove some config
* 【Feature】add back-end project file
* [Feature] add back-end file
* add pipeline descriptor and shader cache
* [Feature] support sprite for backend
* [Feature] remove unneeded code
* [Feature] according to es2.0 spec, you must use clamp-to-edge as texture wrap mode, and no mipmapping for non-power-of-two texture
* [Feature] set texture wrap mode to clamp-to-edge, and no mipmapping for non-power-of-two texture
* [Feature] remove macro define to .cpp file
* [Feature] add log info
* [Feature] add PipelineDescriptor for TriangleCommand
* [Feature] add PipelineDescriptor object as member of TriangleCommand
* [Feature] add getPipelineDescriptor method
* add renderbackend
* complete pipeline descriptor
* [Feature] add viewport in RenderCommand
* set viewport when rendrering
* [Feature] occur error when using RendererBackend, to be fixed.
* a workaround to fix black screen on macOS 10.14 (#19090)
* add rendererbackend init function
* fix typo
* [Feature] modify testFile
* [BugFix] modify shader path
* [Feature] set default viewport
* fix projection
* [Feature] modify log info
* [BugFix] change viewport data type to int
* [BugFix] add BindGroup to PipelienDescriptor
* [BugFix] change a_position to vec3 in sprite.vert
* [BugFix] set vertexLayout according to V3F_C4B_T2F structure
* [Feature] revert a_position to vec4
* [Feature] renderer should not use gl codes directly
* [Feature] it's better not use default value parameter
* fix depth test setting
* rendererbackend -> renderer
* clear color and depth at begin
* add metal backend
* metal support normalized attribute
* simplify codes
* update external
* add render pass desctriptor in pipeline descriptor
* fix warnings
* fix crash and memeory leak
* refactor Texture2D
* put pipeline descriptor into render command
* simplify codes
* [Feature] update Sprite
* fix crash when closing app
* [Feature] update SpriteBatchNode and TextureAtlas
* support render texture(not finish)
* [Feature] remove unused code
* make tests work on mac
* fix download-deps path error
* make tests work on iOS
* [Feature] support ttf under normal label effect
* refactor triangle command processing
* let renderer handle more common commands
* refactor backend
* make render texture work
* [Feature] refactor backend for GL
* [Feature]Renaming to make it easy to understand
* [Feature] change warp mode to CLAMP_TO_EDGE
* fix ghost
* simplify visit render queue logic
* support progress timer without rial mode
* support partcile system
* Feature/update label (#149)
* [BugFix] fix compile error
* [Feature] support outline effect in ios
* [Feature] add shader file
* [BugFix] fix begin and end RenderPass
* [Feature] update CustomCommand
* [Feature] revert project.pbxproj
* [Feature] simplify codes
* [BugFix] pack AI88 to RGBA8888 only when outline enable
* [Feature] support shadow effect in Label
* [Feature] support BMFont
* [Feature] support glow effect
* [Feature] simplify shader files
* LabelAtlas work
* handle blend function correctly
* support tile map
* don't share buffer in metal
* alloc buffer size as needed
* support more tilemap
* Merge branch 'minggo/metal-support' into feature/updateLabel
* minggo/metal-support:
support tile map
handle blend function correctly
LabelAtlas work
Feature/update label (#149)
support partcile system
# Conflicts:
# cocos/2d/CCLabel.cpp
# cocos/2d/CCSprite.cpp
# cocos/2d/CCSpriteBatchNode.cpp
# cocos/renderer/CCQuadCommand.cpp
# cocos/renderer/CCQuadCommand.h
* render texture work without saving file
* use global viewport
* grid3d works
* remove grabber
* tiled3d works
* [BugFix] fix label bug
* [Feature] add updateSubData for buffer
* [Feature] remove setVertexCount
* support depth test
* add callback command
* [Feature] add UITest
* [Feature] update UITest
* [Feature] remove unneeded codes
* fix custom command issue
* fix layer color blend issue
* [BugFix] fix iOS compile error
* [Feature] remove unneeded codes
* [Feature] fix updateVertexBuffer
* layerradial works
* add draw test back
* fix batch issue
* fix compiling error
* [BugFix] support ETC1
* [BugFix] get the correct pipelineDescriptor
* [BugFix] skip draw when backendTexture nullptr
* clipping node support
* [Feature] add shader files
* fix stencil issue in metal
* [Feature] update UILayoutTest
* [BugFix] skip drawing when vertexCount is zero
* refactor renderer
* add set global z order for stencil manager commands
* fix warnings caused by type
* remove viewport in render command
* [Feature] fix warnings caused by type
* [BugFix] clear vertexCount and indexCount for CustomComand when needed
* [Feature] update clear for CustomCommand
* ios use metal
* fix viewport issue
* fix LayerColorGradient crash
* [cmake] transport to android and windows (#160)
* save point 1
* compile on windows
* run on android
* revert useless change
* android set CC_ENABLE_CACHE_TEXTURE_DATA to 1
* add initGlew
* fix android crash
* add TODO new-renderer
* review update
* revert onGLFWWindowPosCallback
* fix android compiling error
* Impl progress radial (#162)
* progresstimer add radial impl
* default drawType to element
* dec invoke times of createVertexBuffer (#163)
* support depth/stencil format for gl backend
* simplify progress timer codes
* support motionstreak, effect is wrong
* fix motionstreak issue
* [Feature] update Scissor Test (#161)
* [Feature] update Scissor Test
* [Feature] update ScissorTest
* [Feature] rename function
* [Feature] get constant reference if needed
* [Feature] show render status (#164)
* improve performance
* fix depth state
* fill error that triangle vertex/index number bigger than buffer
* fix compiline error in release mode
* fix buffer conflict between CPU and GPU on iOS/macOS
* Renderer refactor (#165)
* use one vertes/index buffer with opengl
* fix error on windows
* custom command support index format config
* CCLayer: compact vertex data structure
* update comment
* fix doc
* support fast tilemap
* pass index format instead
* fix some wrong effect
* fix render texture error
* fix texture per-element size
* fix texture format error
* BlendFunc type refactor, GLenum -> backend::BlendFactor (#167)
* BlendFunc use backend::BlendFactor as inner field
* update comments
* use int to replace GLenum
* update xcode project fiel
* rename to GLBlendConst
* add ccConstants.h
* update xcode project file
* update copyright
* remove primitive command
* remove CCPrimitive.cpp/.h
* remove deprecated files
* remove unneeded files
* remove multiple view support
* remove multiple view support
* remove the usage of frame buffer in camera
* director don't use frame buffer
* remove FrameBuffer
* remove BatchCommand
* add some api reference
* add physics2d back
* fix crash when close app on mac
* improve render texture
* fix rendertexture issue
* fix rendertexture issue
* simplify codes
* CMake support for mac & ios (#169)
* update cmake
* fix compile error
* update 3rd libs version
* remove CCThread.h/.cpp
* remove ccthread
* use audio engine to implement simple audio engine
* remove unneeded codes
* remove deprecated codes
* remove winrt macro
* remove CC_USE_WIC
* set partcile blend function in more elegant way
* remove unneeded codes
* remove unneeded codes
* cmake works on windows
* update project setting
* improve performance
* GLFloat -> float
* sync v3 cmake improvements into metal-support (#172)
* pick: modern cmake, compile definitions improvement (#19139)
* modern cmake, use target_compile_definitions partly
* simplify macro define, remove USE_*
* modern cmake, macro define
* add physics 2d macro define into ccConfig.h
* remove USE_CHIPMUNK macro in build.gradle
* remove CocosSelectModule.cmake
* shrink useless define
* simplify compile options config, re-add if necessary
* update external for tmp CI test
* un-quote target_compile_options value
* add "-g" parameter only when debug mode
* keep single build type when generator Xcode & VS projecy
* update external for tmp CI tes
* add static_cast<char>(-1), fix -Wc++11-narrowing
* simplify win32 compile define
* not modify code, only improve compile options
# Conflicts:
# .gitignore
# cmake/Modules/CocosConfigDepend.cmake
# cocos/CMakeLists.txt
# external/config.json
# tests/cpp-tests/CMakeLists.txt
* modern cmake, improve cmake_compiler_flags (#19145)
* cmake_compiler_flags
* Fix typo
* Fix typo2
* Remove chanages from Android.mk
* correct lua template cmake build (#19149)
* don't add -Wno-deprecated into jsb target
* correct lua template cmake build
* fix win32 lua template compile error
* prevent cmake in-source-build friendly (#19151)
* pick: Copy resources to "Resources/" on win32 like in linux configuration
* add "/Z7" for cpp-tests on windows
* [cmake] fix iOS xcode property setting failed (#19208)
* fix iOS xcode property setting failed
* use search_depend_libs_recursive at dlls collect
* fix typo
* [cmake] add find_host_library into iOS toolchain file (#19230)
* pick: [lua android] use luajit & template cmake update (#19239)
* increase cmake stability , remove tests/CMakeLists.txt (#19261)
* cmake win32 Precompiled header (#19273)
* Precompiled header
* Fix
* Precompiled header for cocos
* Precompiled header jscocos2d
* Fix for COCOS2D_DEBUG is always 1 on Android (#19291)
Related #19289
* little build fix, tests cpp-tests works on mac
* sync v3 build related codes into metal-support (#173)
* strict initialization for std::array
* remove proj.win32 project configs
* modern cmake, cmake_cleanup_remove_unused_variables (#19146)
* Switch travis CI to xenial (#19207)
* Switch travis CI to xenial
* Remove language: android
* Set language: cpp
* Fix java problem
* Update sdkmanager
* Fix sdkmanger
* next sdkmanager fix
* Remove xenial from android
* revert to sdk-tools-{system}-3859397
* Remove linux cmake install
* Update before-install.sh
* Update .travis.yml
* Simplify install-deps-linux.sh, tested on Ubuntu 16.04 (#19212)
* Simplify install-deps-linux.sh
* Cleanup
* pick: install ninja
* update cocos2d-console submodule
* for metal-support alpha release, we only test cpp
* add HelloCpp into project(Cocos2d-x) for tmp test
* update extenal metal-support-4
* update uniform setting
* [Feature] update BindGroup
* [Feature] empty-test
* [Feature] cpp-test
* [Feature] fix GL compiler error
* [Feature] fix GL crash
* [Feature] empty-test
* [Feature] cpp-tests
* [feature] improve frameRate
* [feature] fix opengl compile error
* [feature] fix opengl compile error
* [BugFix] fix compute maxLocation error
* [Feature] update setting unifrom
* [Feature] fix namespace
* [Feature] remove unneeded code
* [Bugfix] fix project file
* [Feature] update review
* [texture2d] impl texture format support (#175)
* texture update
* update
* update texture
* commit
* compile on windows
* ddd
* rename
* rename methods
* no crash
* save gl
* save
* save
* rename
* move out pixel format convert functions
* metal crash
* update
* update android
* support gles compressed texture format
* support more compress format
* add more conversion methods
* ss
* save
* update conversion methods
* add PVRTC format support
* reformat
* add marco linux
* fix GL marcro
* pvrtc supported only by ios 8.0+
* remove unused cmake
* revert change
* refactor Texture2D::initWithData
* fix conversion log
* refactor Texture2D::initWithData
* remove some OpenGL constants for PVRTC
* add todo
* fix typo
* AutoTest works on mac/iOS by disable part cases, sync v3 bug fix (#174)
* review cpp-tests, and fix part issues on start auto test
* sync png format fix: Node:Particle3D abnormal texture effects #19204
* fix cpp-tests SpritePolygon crash, wrong png format (#19170)
* fix wrong png convert format from sRGB to Gray
* erase plist index if all frames was erased
* test_A8.png have I8 format, fix it
* [CCSpriteCache] allow re-add plist & add testcase (#19175)
* allow re-add plist & add testcase
* remove comments/rename method/update testcase
* fix isSpriteFramesWithFileLoaded & add testcase
* remove used variable
* remove unused variable
* fix double free issues when js/lua-tests exit on iOS (#19236)
* disable part cases, AutoTest works without crash on mac
* update cocos2dx files json, to test cocos new next
* fix spritecache plist parsing issue (#19269)
* [linux] Fix FileUtils::getContents with folder (#19157)
* fix FileUtils::getContents on linux/mac
* use stat.st_mode
* simplify
* [CCFileUtils] win32 getFileSize (#19176)
* win32 getFileSize
* fix stat
* [cpp test-Android]20:FileUtils/2 change title (#19197)
* sync #19200
* sync #19231
* [android lua] improve performance of lua loader (#19234)
* [lua] improve performance of lua loader
* remove cache fix
* Revert "fix spritecache plist parsing issue (#19269)"
This reverts commit f3a85ece4307a7b90816c34489d1ed2c8fd11baf.
* remove win32 project files ref in template.json
* add metal framework lnk ref into cpp template
* test on iOS, and disable part cases
* alBufferData instead of alBufferDataStatic for small audio file on Apple (#19227)
* changes AudioCache to use alBufferData instead of alBufferDataStatic
(also makes test 19 faster to trigger openal bugs faster)
The original problem: CrashIfClientProvidedBogusAudioBufferList
https://github.com/cocos2d/cocos2d-x/issues/18948
is not happening anymore, but there's still a not very frequent issue
that makes OpenAL crash with a call stack like this.
AudioCache::readDataTask > alBufferData > CleanUpDeadBufferList
It happes more frequently when the device is "cold", which means after
half an hour of not using the device (locked).
I could not find the actual source code for iOS OpenAL, so I used the
macOS versions:
https://opensource.apple.com/source/OpenAL/OpenAL-48.7/Source/OpenAL/oalImp.cpp.auto.html
They seem to use CAGuard.h to make sure the dead buffer list
has no threading issues. I'm worried because the CAGuard code I found
has macos and win32 define but no iOS, so I'm not sure. I guess the
iOS version is different and has the guard.
I could not find a place in the code that's unprotected by the locks
except the InitializeBufferMap() which should not be called more than
once from cocos, and there's a workaround in AudioEngine-impl for it.
I reduced the occurence of the CleanUpDeadBufferList crash by moving
the guard in ~AudioCache to cover the alDeleteBuffers call.
* remove hack method "setTimeout" on audio
* AutoTest works on iOS
* support set ios deployment target for root project
* enable all texture2d cases, since Jiang have fixed
* add CCTextureUtils to xcode project file (#176)
* add leak cases for SpriteFrameCache (#177)
* re-add SpriteFrameCache cases
* update template file json
* Update SpriteFrameCacheTest.cpp
* fix compiling error
- Update cocos2d_libs Xcode project and turn on recommended warnings
- Fix `int` string formatting using "%zd" instead of "%d"
- Fix loop over reference to avoid object copy
* Fix several bugs with button's title:
(a)when using setTitleLabel() the button didn't resolve the corresponded parameters;
(b)bug with measurement accuracy (ignores the fractional part) of the system font and ttf-fonts sizes;
(c)bug with the size of the button title (by default) did not match the value size of the label's typeface;
(d)removes high coupling the typeface parameters of button because it already contains the used label
* Hotfix to call parent `Widget::init()`
* remove import-add-path
* add module path into gradle
* modify PROP_BUILD_TYPE to ndk-build for tmp test
* import-module uv into ndk-build scripts
* part lib rename in Android.mk
* fix build path error on Lua&JS test project
* shorten all libs name, except external libs related
* "_static" suffix isn't necessary, since all internal build is static
* little catch
* re-change to cmake as default build type
* add both build type into Travis for android
* update external libs name
* fix gradlew cmd error
* update external config
* Android: Adds supporting edge screens
* Update CCGLViewImpl-android.h
* getSafeAreaRect(): Specifying indentation
Specifying indentation if the scale factor is different for grid
If the device is locked or sleeps
Then the application that was running on foreground will be dismissed and trigger a onWindowsFocusChanged(true) event while the game is already on background
* refine EditBox add support for pressed and disabled image
* add test case
* fix compile error
* fix compatibility
* fix compile warning
* fix test cases
* remove CC_DEPRECATED_ATTRIBUTE mark
Out of range occurred in some condition
when using `Label` with its `getLetter()` member function.
`Label::recordPlaceholderInfo()` member function is called for
new line (\n) letter in `Label::multilineTextWrap()`,
but the function doesn't set `_lettersInfo[letterIndex].lineIndex`.
But `lineIndex` is used in `Label::updateLabelLetters()`
even if letter is new line.
This change checks `letterInfo.valid` to avoid
accessing `_linesOffsetX[letterInfo.lineIndex]`
for invalid (i.e. `NewLine`) letter.
This factory method to create a checkbox instance was not working (UICheckBox.cpp:79):
CheckBox* CheckBox::create(const std::string& backGround,
const std::string& cross,
TextureResType texType)
Because the program tries to load missing textures. I just added some exit conditions to avoid it.
* use atomic_bool type for _isRotateThreadExited
* add test case for issues 18597
* fix test case error
* add data race comments, fix lock usage error
* add comments for audioplayer
* fix typo in comments
* revert wrong changes
* update test case, keep reproduce
* add alSourceUnqueueBuffers before stop
* improve UnqueueBuffers
* detail test case to show side effect
* remove unused comments
* add comments for AudioPlayer change
* correct a audio log level
* change log level from W to VV
* update time step, add play state check
* remove record time of UnqueueBuffers
* [UIRichText.cpp] Allow user to select if they want to trim trailing spaces for a RichElementText. Also fixed crash if estimatedIdx is less than 0 in certain conditions.
[UIRichText.h] New flag added for enabling trailing space trimming.
[CCLabelTextFormatter.cpp] Only trim trailing whitespace if lines are being split. This will trim all whitespace up to the next non-whitespace token in a line.
* Fix for oversized sprites that need to be offset by X and Y to be aligned correctly in the UIRichText
* Revert "Fix for oversized sprites that need to be offset by X and Y to be aligned correctly in the UIRichText"
This reverts commit fc5492e878a982ff748488bf1de4ffa88a3d4755.
* [UIRichText] Reverted changes made for trimming since they are no longer required. The changes made to CCLabelTextFormatter.cpp fixed all the current issues.
* Added test cases from #18869
* Removed the forced trailing space clipping since it is not required here, and causing side-effects.
* Removed comment that no longer applies to that section of code
An old hack that changed the default order of included headers in ZipUtils causes issues when compiling cocos2d for Android 64-bit, throwing errors of missing `fgetpos` and `fsetpos` functions.
* Add GLViewImpl::setIcon and GLViewImpl::setDefaultIcon for windows and linux
* Include CCImage.h only if required
* Fix empty icon image
* Fix windows build
* [skip ci] Replace `{ return; }` with `{}`
* Add icon test to cpp-empty-test
* [skip ci] Replace TABs with spaces, add comments
* Chnage requested things, fix formatting
* Fix define
* Fix ios build
* ARCH_DIR only useful for search linux prebuilt libs
* add iOS app target ONLY_ACTIVE_ARCH property
* set Xcode property for application, include all depend target
* fix bugs-editbox-win32 crash
* improve EditBox-align test case
* typo error
* update cocos-console submodule
* VS RelWithDebInfo build use release folder external libs
* update edit box H alignment case
* improve label no-break-space test case
* fix label test cases bug
* add GetterSetter define for the placeHolder of TextField
* fix event condition bugs on ParticleTest.lua
* 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