mirror of https://github.com/axmolengine/axmol.git
Merge branch 'v3' of github.com:cocos2d/cocos2d-x into v3
Conflicts: cocos/network/HttpAsynConnection-apple.m cocos/network/HttpClient-android.cpp cocos/network/HttpClient.cpp cocos/network/HttpCookie.h cocos/network/HttpRequest.h cocos/network/HttpResponse.h cocos/network/SocketIO.cpp cocos/network/WebSocket.h
This commit is contained in:
commit
8692ee176c
|
@ -40,6 +40,7 @@ Generated Files
|
|||
AppPackages
|
||||
BundleArtifacts
|
||||
.vs/
|
||||
*.VC.db
|
||||
|
||||
# Ignore files build by ndk and eclipse
|
||||
libs/
|
||||
|
@ -149,3 +150,7 @@ tests/cpp-tests/Resources/audio
|
|||
/*/*/*/prebuilt-mk/Android.mk
|
||||
/*/*/*/*/prebuilt-mk/Android.mk
|
||||
*.xcscmblueprint
|
||||
tests/cpp-empty-test/proj.tizen/res/
|
||||
tests/cpp-tests/proj.tizen/res/
|
||||
tests/lua-empty-test/project/proj.tizen/res/
|
||||
tests/lua-tests/project/proj.tizen/res/
|
||||
|
|
|
@ -37,4 +37,4 @@ before_install:
|
|||
# whitelist
|
||||
branches:
|
||||
only:
|
||||
- v3
|
||||
- v3.11
|
||||
|
|
23
CHANGELOG
23
CHANGELOG
|
@ -1,11 +1,10 @@
|
|||
cocos2d-x-3.11 ?? 2016
|
||||
|
||||
[REFINE] add optional alpha parameter to Color4B and Color4F constructors
|
||||
|
||||
cocos2d-x-3.11 Apr ? 2016
|
||||
cocos2d-x-3.11 May 11 2016
|
||||
|
||||
[HIGHLIGHT] Physics: upgrade chipmunk to v7.0.1
|
||||
[HIGHLIGHT] JS: new memory model, don't have to use retain/release in JS
|
||||
[HIGHLIGHT] Curl: upgrade to v7.48
|
||||
[HIGHLIGHT] OpenSSL: upgrade to 1.0.2g
|
||||
[HIGHLIGHT] JS: can use Firefox 30+ and VSCode to debug cocos2d-x JSB programs
|
||||
|
||||
[NEW] JS: web console is enabled debugging JSB projects via firefox
|
||||
[NEW] UI: add a setter for touch total time threshold in ScrollView
|
||||
|
@ -26,14 +25,22 @@ cocos2d-x-3.11 Apr ? 2016
|
|||
[REFINE] Renderer: TriangleCommand and QuadCommand are merged
|
||||
[REFINE] 2D: SpriteFrameCache takes pixelFormat into account if specified
|
||||
[REFINE] UI: let ScrollView swallow touch events by default
|
||||
[REFINE] JSB: make selectedSprite optional
|
||||
|
||||
[FIX] JS: firefox v30+ can not debug cocos2d-x JSB projects
|
||||
[FIX] UI: can not get event when PageView was turning
|
||||
[FIX] UI: bitmap font sizes are not loaded from binary .fnt files
|
||||
[FIX] 2D: TargetedAction::isDone() always return false
|
||||
[FIX] 2D: some fonts were rendered incorreclty
|
||||
[FIX] UI: some fonts were rendered incorreclty
|
||||
[FIX] Action: TargetedAction::isDone() always return false
|
||||
[FIX] Action: Repeat: will run actions more than speicific times, instant action will run one frame later
|
||||
[FIX] 2D: drawing in incorrect app state on iOS
|
||||
[FIX] 2D: FileUtils::getValueVectorFromFile() returns wrong value on iOS and Mac
|
||||
[FIX] Platform: FileUtils::getValueVectorFromFile() returns wrong value on iOS and Mac
|
||||
[FIX] Network: downloader crashed when storage path contains spaces on iOS
|
||||
[FIX] Network: downloader may crash on Android
|
||||
[FIX] HTTPAsyncConnection: crash when custom SSL certification is set on iOS
|
||||
[FIX] AssetsManagerEX: will stuck at UPDATING forever if last task fails
|
||||
[FIX] AssetsManagerEX: may repeatly update some assets and cause file write conflict
|
||||
[FIX] Lua: fix display.wrapScene()
|
||||
|
||||
cocos2d-x-3.10 Jan 11 2016
|
||||
|
||||
|
|
312
CMakeLists.txt
312
CMakeLists.txt
|
@ -41,60 +41,19 @@ project (Cocos2d-X)
|
|||
# The version number
|
||||
set(COCOS2D_X_VERSION 3.11)
|
||||
|
||||
# define some variables
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/Modules/")
|
||||
include(CocosBuildHelpers)
|
||||
|
||||
message(${BUILDING_STRING})
|
||||
|
||||
set(USE_WEBP_DEFAULT ON)
|
||||
if(WINRT OR WP8)
|
||||
set(USE_WEBP_DEFAULT OFF)
|
||||
set(COCOS_EXTERNAL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external)
|
||||
# architecture
|
||||
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(ARCH_DIR "64-bit")
|
||||
elseif (CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
set(ARCH_DIR "32-bit")
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported architecture, CMake will exit")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(USE_PREBUILT_LIBS_DEFAULT ON)
|
||||
if(MINGW)
|
||||
set(USE_PREBUILT_LIBS_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
set(BUILD_CPP_EMPTY_TEST_DEFAULT ON)
|
||||
set(BUILD_CPP_TESTS_DEFAULT ON)
|
||||
set(BUILD_LUA_LIBS_DEFAULT ON)
|
||||
set(BUILD_LUA_TESTS_DEFAULT ON)
|
||||
set(BUILD_JS_LIBS_DEFAULT ON)
|
||||
set(BUILD_JS_TESTS_DEFAULT ON)
|
||||
# TODO: fix test samples for MSVC
|
||||
if(MSVC)
|
||||
set(BUILD_CPP_EMPTY_TEST_DEFAULT OFF)
|
||||
set(BUILD_CPP_TESTS_DEFAULT OFF)
|
||||
set(BUILD_LUA_LIBS_DEFAULT OFF)
|
||||
set(BUILD_LUA_TESTS_DEFAULT OFF)
|
||||
set(BUILD_JS_LIBS_DEFAULT OFF)
|
||||
set(BUILD_JS_TESTS_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
option(USE_CHIPMUNK "Use chipmunk for physics library" ON)
|
||||
option(USE_BOX2D "Use box2d for physics library" OFF)
|
||||
option(USE_BULLET "Use bullet for physics3d library" ON)
|
||||
option(USE_RECAST "Use Recast for navigation mesh" ON)
|
||||
option(USE_WEBP "Use WebP codec" ${USE_WEBP_DEFAULT})
|
||||
option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
|
||||
option(DEBUG_MODE "Debug or release?" ON)
|
||||
option(BUILD_EXTENSIONS "Build extension library" ON)
|
||||
option(BUILD_EDITOR_SPINE "Build editor support for spine" ON)
|
||||
option(BUILD_EDITOR_COCOSTUDIO "Build editor support for cocostudio" ON)
|
||||
option(BUILD_EDITOR_COCOSBUILDER "Build editor support for cocosbuilder" ON)
|
||||
option(BUILD_CPP_TESTS "Build TestCpp samples" ${BUILD_CPP_TESTS_DEFAULT})
|
||||
option(BUILD_CPP_EMPTY_TEST "Build TestCpp samples" ${BUILD_CPP_EMPTY_TEST_DEFAULT})
|
||||
option(BUILD_LUA_LIBS "Build lua libraries" ${BUILD_LUA_LIBS_DEFAULT})
|
||||
option(BUILD_LUA_TESTS "Build TestLua samples" ${BUILD_LUA_TESTS_DEFAULT})
|
||||
option(BUILD_JS_LIBS "Build js libraries" ${BUILD_JS_LIBS_DEFAULT})
|
||||
option(BUILD_JS_TESTS "Build TestJS samples" ${BUILD_JS_TESTS_DEFAULT})
|
||||
option(USE_PREBUILT_LIBS "Use prebuilt libraries in external directory" ${USE_PREBUILT_LIBS_DEFAULT})
|
||||
|
||||
if(USE_PREBUILT_LIBS AND MINGW)
|
||||
message(FATAL_ERROR "Prebuilt windows libs can't be used with mingw, please use packages.")
|
||||
endif()
|
||||
|
||||
# CMAKE_BUILD_TYPE has precedence over DEBUG_MODE
|
||||
# Still supporting DEBUG_MODE for backwards compatibility
|
||||
if (NOT CMAKE_BUILD_TYPE)
|
||||
|
@ -105,259 +64,32 @@ if (NOT CMAKE_BUILD_TYPE)
|
|||
endif(DEBUG_MODE)
|
||||
endif(NOT CMAKE_BUILD_TYPE)
|
||||
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCOCOS2D_DEBUG=1")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
|
||||
include(CocosBuildHelpers)
|
||||
|
||||
# Compiler options
|
||||
if(MSVC)
|
||||
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS
|
||||
-wd4251 -wd4244 -wd4334 -wd4005 -wd4820 -wd4710
|
||||
-wd4514 -wd4056 -wd4996 -wd4099)
|
||||
message(${BUILDING_STRING})
|
||||
|
||||
# Use inline debug info (/Z7) format. Or internal error may occur.
|
||||
# Errors looks like: "xmemory0(592): error C3130: Internal Compiler Error: failed to write injected code block to PDB"
|
||||
foreach(lang C CXX)
|
||||
string(REGEX REPLACE "/Z[iI7]" "" CMAKE_${lang}_FLAGS_DEBUG "${CMAKE_${lang}_FLAGS_DEBUG}")
|
||||
set(CMAKE_${lang}_FLAGS_DEBUG "${CMAKE_${lang}_FLAGS_DEBUG} /Z7")
|
||||
endforeach()
|
||||
# SelectModule() is a macro to select building modules
|
||||
include(SelectModule)
|
||||
SelectModule()
|
||||
|
||||
else()
|
||||
set(CMAKE_C_FLAGS_DEBUG "-g -Wall -Wextra -DCOCOS2D_DEBUG=1")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated-declarations -Wno-reorder")
|
||||
if(CLANG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||
endif()
|
||||
endif(MSVC)
|
||||
|
||||
set(COCOS_EXTERNAL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external)
|
||||
|
||||
# Some macro definitions
|
||||
if(WINDOWS)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
ADD_DEFINITIONS (-D_USRDLL -D_EXPORT_DLL_ -D_USEGUIDLL -D_USREXDLL -D_USRSTUDIODLL)
|
||||
else()
|
||||
ADD_DEFINITIONS (-DCC_STATIC)
|
||||
endif()
|
||||
|
||||
ADD_DEFINITIONS (-DCOCOS2DXWIN32_EXPORTS -D_WINDOWS -DWIN32 -D_WIN32)
|
||||
set(PLATFORM_FOLDER win32)
|
||||
elseif(MACOSX OR APPLE)
|
||||
ADD_DEFINITIONS (-DCC_TARGET_OS_MAC)
|
||||
ADD_DEFINITIONS (-DUSE_FILE32API)
|
||||
set(PLATFORM_FOLDER mac)
|
||||
elseif(LINUX)
|
||||
ADD_DEFINITIONS(-DLINUX)
|
||||
set(PLATFORM_FOLDER linux)
|
||||
elseif(ANDROID)
|
||||
ADD_DEFINITIONS (-DUSE_FILE32API)
|
||||
set(PLATFORM_FOLDER android)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexceptions")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -latomic")
|
||||
else()
|
||||
message( FATAL_ERROR "Unsupported platform, CMake will exit" )
|
||||
endif()
|
||||
|
||||
if(MINGW)
|
||||
#add_definitions(-DGLEW_STATIC)
|
||||
add_definitions(-D__SSIZE_T)
|
||||
|
||||
if(CLANG)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# architecture
|
||||
if ( CMAKE_SIZEOF_VOID_P EQUAL 8 )
|
||||
set(ARCH_DIR "64-bit")
|
||||
elseif ( CMAKE_SIZEOF_VOID_P EQUAL 4 )
|
||||
set(ARCH_DIR "32-bit")
|
||||
else()
|
||||
message( FATAL_ERROR "Unsupported architecture, CMake will exit" )
|
||||
endif()
|
||||
# set compiler options
|
||||
include(SetCompilerOptions)
|
||||
SetCompilerOptions()
|
||||
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cocos
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cocos
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/deprecated
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cocos/platform
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/extensions
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/external
|
||||
)
|
||||
|
||||
if(USE_PREBUILT_LIBS)
|
||||
include(CocosUsePrebuiltLibs)
|
||||
endif()
|
||||
|
||||
# desktop platforms
|
||||
if(LINUX OR MACOSX OR WINDOWS)
|
||||
cocos_find_package(OpenGL OPENGL REQUIRED)
|
||||
|
||||
if(LINUX OR WINDOWS)
|
||||
cocos_find_package(GLEW GLEW REQUIRED)
|
||||
#TODO: implement correct schema for pass cocos2d specific requirements to projects
|
||||
include_directories(${GLEW_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
cocos_find_package(GLFW3 GLFW3 REQUIRED)
|
||||
include_directories(${GLFW3_INCLUDE_DIRS})
|
||||
|
||||
if(LINUX)
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
find_package(Threads REQUIRED)
|
||||
set(THREADS_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
|
||||
|
||||
cocos_find_package(FMOD FMOD REQUIRED)
|
||||
cocos_find_package(Fontconfig FONTCONFIG REQUIRED)
|
||||
cocos_find_package(GTK3 GTK3 REQUIRED)
|
||||
endif()
|
||||
|
||||
if(WINDOWS)
|
||||
cocos_find_package(Vorbis VORBIS REQUIRED)
|
||||
cocos_find_package(MPG123 MPG123 REQUIRED)
|
||||
cocos_find_package(OpenAL OPENAL REQUIRED)
|
||||
# because FindOpenAL.cmake set include dir for '#include <al.h>' for portability (not for '#include <AL/al.h>'
|
||||
set(OPENAL_DEFINITIONS "-DOPENAL_PLAIN_INCLUDES")
|
||||
endif()
|
||||
endif(LINUX OR MACOSX OR WINDOWS)
|
||||
|
||||
# Freetype required on all platforms
|
||||
cocos_find_package(Freetype FREETYPE REQUIRED)
|
||||
|
||||
# WebP required if used
|
||||
if(USE_WEBP)
|
||||
cocos_find_package(WebP WEBP REQUIRED)
|
||||
endif(USE_WEBP)
|
||||
|
||||
# Chipmunk
|
||||
if(USE_CHIPMUNK)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
cocos_find_package(Chipmunk CHIPMUNK REQUIRED)
|
||||
endif()
|
||||
add_definitions(-DCC_ENABLE_CHIPMUNK_INTEGRATION=1)
|
||||
if(IOS OR MACOSX)
|
||||
# without this chipmunk will try to use apple defined geometry types, that conflicts with cocos
|
||||
add_definitions(-DCP_USE_CGPOINTS=0)
|
||||
endif()
|
||||
else(USE_CHIPMUNK)
|
||||
add_definitions(-DCC_USE_PHYSICS=0)
|
||||
endif(USE_CHIPMUNK)
|
||||
|
||||
# Box2d (not prebuilded, exists as source)
|
||||
if(USE_BOX2D)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/Box2D)
|
||||
set(Box2D_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/box2d/include)
|
||||
set(Box2D_LIBRARIES box2d)
|
||||
else()
|
||||
find_package(Box2D REQUIRED CONFIG)
|
||||
# actually Box2D in next line is not a library, it is target exported from Box2DConfig.cmake
|
||||
set(Box2D_LIBRARIES Box2D)
|
||||
endif()
|
||||
message(STATUS "Box2D include dirs: ${Box2D_INCLUDE_DIRS}")
|
||||
add_definitions(-DCC_ENABLE_BOX2D_INTEGRATION=1)
|
||||
else()
|
||||
add_definitions(-DCC_ENABLE_BOX2D_INTEGRATION=0)
|
||||
endif(USE_BOX2D)
|
||||
|
||||
# Bullet (not prebuilded, exists as source)
|
||||
if(USE_BULLET)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/bullet)
|
||||
set(BULLET_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/bullet)
|
||||
set(BULLET_LIBRARIES bullet)
|
||||
else()
|
||||
cocos_find_package(bullet BULLET REQUIRED)
|
||||
set(BULLET_LIBRARIES bullet)
|
||||
endif()
|
||||
message(STATUS "Bullet include dirs: ${BULLET_INCLUDE_DIRS}")
|
||||
add_definitions(-DCC_ENABLE_BULLET_INTEGRATION=1)
|
||||
add_definitions(-DCC_USE_PHYSICS=1)
|
||||
else()
|
||||
add_definitions(-DCC_ENABLE_BULLET_INTEGRATION=0)
|
||||
add_definitions(-DCC_USE_3D_PHYSICS=0)
|
||||
endif(USE_BULLET)
|
||||
|
||||
# Recast (not prebuilded, exists as source)
|
||||
if(USE_RECAST)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/recast)
|
||||
set(RECAST_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/recast)
|
||||
set(RECAST_LIBRARIES recast)
|
||||
else()
|
||||
cocos_find_package(recast RECAST REQUIRED)
|
||||
set(RECAST_LIBRARIES recast)
|
||||
endif()
|
||||
message(STATUS "Recast include dirs: ${RECAST_INCLUDE_DIRS}")
|
||||
add_definitions(-DCC_USE_NAVMESH=1)
|
||||
else()
|
||||
add_definitions(-DCC_USE_NAVMESH=0)
|
||||
endif(USE_RECAST)
|
||||
|
||||
# Tinyxml2 (not prebuilded, exists as source)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/tinyxml2)
|
||||
set(TinyXML2_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/tinyxml2)
|
||||
set(TinyXML2_LIBRARIES tinyxml2)
|
||||
else()
|
||||
cocos_find_package(TinyXML2 TinyXML2 REQUIRED)
|
||||
endif()
|
||||
message(STATUS "TinyXML2 include dirs: ${TinyXML2_INCLUDE_DIRS}")
|
||||
|
||||
# libjpeg
|
||||
cocos_find_package(JPEG JPEG REQUIRED)
|
||||
cocos_find_package(ZLIB ZLIB REQUIRED)
|
||||
|
||||
# minizip (we try to migrate to minizip from https://github.com/nmoinvaz/minizip)
|
||||
# only msys2 currently provides package for this variant, all other
|
||||
# dists have packages from zlib, thats very old for us.
|
||||
# moreover our embedded version modified to quick provide
|
||||
# functionality needed by cocos.
|
||||
if(USE_PREBUILT_LIBS OR NOT MINGW)
|
||||
#TODO: hack! should be in external/unzip/CMakeLists.txt
|
||||
include_directories(${ZLIB_INCLUDE_DIRS})
|
||||
add_subdirectory(external/unzip)
|
||||
set(MINIZIP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/unzip ${ZLIB_INCLUDE_DIRS})
|
||||
set(MINIZIP_LIBRARIES unzip ${ZLIB_LIBRARIES})
|
||||
message(STATUS "MINIZIP include dirs: ${MINIZIP_INCLUDE_DIRS}")
|
||||
else()
|
||||
cocos_find_package(MINIZIP MINIZIP REQUIRED)
|
||||
# double check that we have needed functions
|
||||
include(CheckLibraryExists)
|
||||
check_library_exists(${MINIZIP_LIBRARIES} "unzGoToFirstFile2" "" MINIZIP_HAS_GOTOFIRSTFILE2)
|
||||
if(NOT MINIZIP_HAS_GOTOFIRSTFILE2)
|
||||
message(FATAL_ERROR "Minizip library on you system very old. Please use recent version from https://github.com/nmoinvaz/minizip or enable USE_PREBUILT_LIBS")
|
||||
endif()
|
||||
add_definitions(-DMINIZIP_FROM_SYSTEM)
|
||||
endif()
|
||||
|
||||
cocos_find_package(PNG PNG REQUIRED)
|
||||
cocos_find_package(TIFF TIFF REQUIRED)
|
||||
cocos_find_package(WEBSOCKETS WEBSOCKETS REQUIRED)
|
||||
cocos_find_package(CURL CURL REQUIRED)
|
||||
|
||||
# flatbuffers
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/flatbuffers)
|
||||
set(FLATBUFFERS_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external)
|
||||
message(STATUS "Flatbuffers include dirs: ${FLATBUFFERS_INCLUDE_DIRS}")
|
||||
else()
|
||||
cocos_find_package(flatbuffers flatbuffers REQUIRED)
|
||||
endif()
|
||||
|
||||
# xxhash
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/xxhash)
|
||||
set(XXHASH_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/xxhash)
|
||||
set(XXHASH_LIBRARIES xxhash)
|
||||
else()
|
||||
cocos_find_package(xxhash xxhash REQUIRED)
|
||||
endif()
|
||||
# libcocos2d.a
|
||||
add_subdirectory(cocos)
|
||||
include(BuildModules)
|
||||
BuildModules()
|
||||
|
||||
# build cpp-empty-test
|
||||
if(BUILD_CPP_EMPTY_TEST)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,975 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.lib.debug.1482968909">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.lib.debug.1482968909" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="cocos2dx" buildArtefactType="org.tizen.nativecore.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -f" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.lib.debug.1482968909" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.lib.debug">
|
||||
<folderInfo id="org.tizen.nativecore.config.sbi.gcc45.lib.debug.1482968909." name="/" resourcePath="">
|
||||
<toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.lib.debug.1058948864" name="Tizen Core Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.lib.debug">
|
||||
<targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1917154358" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
|
||||
<builder autoBuildTarget="all" buildPath="${workspace_loc:/libcocos2dx}/Debug" enableAutoBuild="false" id="org.tizen.nativecore.target.sbi.gnu.builder.1324275630" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.tizen.nativecore.target.sbi.gnu.builder">
|
||||
<outputEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Release"/>
|
||||
</outputEntries>
|
||||
</builder>
|
||||
<tool command="arm-linux-gnueabi-ar" id="org.tizen.nativecore.tool.sbi.gnu.archiver.111378497" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
|
||||
<tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1192678710" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
|
||||
<option id="gnu.cpp.compiler.option.optimization.level.1795635207" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.cpp.compiler.option.debugging.level.core.755789665" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.cpp.compiler.option.2080204225" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="mobile-2.4-device.core_gcc49.armel.core.staticLib"/>
|
||||
</option>
|
||||
<option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.402804074" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-x-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ewebkit2-0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.78316533" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
|
||||
<listOptionValue builtIn="false" value="-mthumb"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.include.paths.2085102509" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tinyxml2}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/bullet}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/Box2D}""/>
|
||||
<listOptionValue builtIn="false" value="../../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/editor-support}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/platform}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/extensions}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/ConvertUTF}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/chipmunk/include/chipmunk}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/chipmunk/include/}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/edtaa3func}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/jpeg/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/png/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/webp/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tiff/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/json}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tinyxml2}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/xxhash}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/xxtea}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/unzip}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/websockets/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external}""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.cpp.compiler.option.frameworks.core.1072548352" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="Native_API"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.preprocessor.def.1822971437" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TIZEN"/>
|
||||
<listOptionValue builtIn="false" value="CC_ENABLE_BULLET_INTEGRATION"/>
|
||||
<listOptionValue builtIn="false" value="CC_USE_3D_PHYSICS"/>
|
||||
<listOptionValue builtIn="false" value="HAVE_PTHREAD=1"/>
|
||||
<listOptionValue builtIn="false" value="_DEBUG"/>
|
||||
<listOptionValue builtIn="false" value="USE_MINICL"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.dialect.std.1640297893" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.c++11" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.cpp.compiler.option.misc.pic.core.814244042" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" value="true" valueType="boolean"/>
|
||||
<option id="gnu.cpp.compiler.option.warnings.allwarn.2011421402" name="All warnings (-Wall)" superClass="gnu.cpp.compiler.option.warnings.allwarn" value="false" valueType="boolean"/>
|
||||
<inputType id="sbi.gnu.cpp.compiler.tizen.inputType.1379131477"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.912473507" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool command="arm-linux-gnueabi-gcc" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.85030265" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
|
||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.977128313" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.c.compiler.option.debugging.level.core.1582609268" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" value="gnu.c.debugging.level.max" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.c.compiler.option.1240985229" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="mobile-2.4-device.core_gcc49.armel.core.staticLib"/>
|
||||
</option>
|
||||
<option id="sbi.gnu.c.compiler.option.frameworks_inc.core.200190354" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-x-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ewebkit2-0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.2120964296" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
|
||||
<listOptionValue builtIn="false" value="-mthumb"/>
|
||||
</option>
|
||||
<option id="gnu.c.compiler.option.include.paths.223810905" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/chipmunk/include/chipmunk}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/platform}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/edtaa3func}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/unzip}""/>
|
||||
<listOptionValue builtIn="false" value="../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/ConvertUTF}""/>
|
||||
<listOptionValue builtIn="false" value="../../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/webp/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/editor-support}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/xxtea}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tiff/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/json}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tinyxml2}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/libcocos2dx/external/png/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/libcocos2dx/external/jpeg/include/tizen}""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.c.compiler.option.frameworks.core.683593138" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="Native_API"/>
|
||||
</option>
|
||||
<option id="gnu.c.compiler.option.preprocessor.def.symbols.418237079" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TIZEN"/>
|
||||
<listOptionValue builtIn="false" value="HAVE_PTHREAD=1"/>
|
||||
<listOptionValue builtIn="false" value="_DEBUG"/>
|
||||
</option>
|
||||
<option id="gnu.c.compiler.option.dialect.std.1434979666" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" value="gnu.c.compiler.dialect.c99" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.c.compiler.option.misc.pic.core.812466775" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" value="true" valueType="boolean"/>
|
||||
<option id="gnu.c.compiler.option.warnings.allwarn.1076719763" name="All warnings (-Wall)" superClass="gnu.c.compiler.option.warnings.allwarn" value="false" valueType="boolean"/>
|
||||
<inputType id="sbi.gnu.c.compiler.tizen.inputType.176288026"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1402861048" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1220871656" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
|
||||
<tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.721251534" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
|
||||
<option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.915780918" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
|
||||
<listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
|
||||
<listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.link.option.paths.990744263" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
|
||||
</option>
|
||||
</tool>
|
||||
<tool command="arm-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1441046627" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
|
||||
<option id="gnu.both.asm.option.include.paths.2125079002" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1225421527" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="org.tizen.nativecore.tool.sbi.po.compiler.1609364116" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
|
||||
<tool id="org.tizen.nativecore.tool.sbi.edc.compiler.358380890" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
|
||||
<tool id="org.tizen.nativecore.tool.fnmapgen.360068670" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
|
||||
<tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1678244492" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
|
||||
<tool id="org.tizen.nativecore.tool.ast.880964402" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
|
||||
<tool id="org.tizen.nativecore.tool.ast.cpp.1417980081" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
|
||||
<tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1923963860" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="network/CCDownloader-android.cpp|network/HttpClient-android.cpp" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="cocos"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="extensions"/>
|
||||
<entry excluding="bullet/BulletMultiThreaded/GpuSoftBodySolvers" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="external"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.lib.release.1390671773">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.lib.release.1390671773" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="cocos2dx" buildArtefactType="org.tizen.nativecore.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -f" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.lib.release.1390671773" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.lib.release">
|
||||
<folderInfo id="org.tizen.nativecore.config.sbi.gcc45.lib.release.1390671773." name="/" resourcePath="">
|
||||
<toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.lib.release.1153757351" name="Tizen Core Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.lib.release">
|
||||
<targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.241740618" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
|
||||
<builder buildPath="${workspace_loc:/libcocos2dx}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.1315412805" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" parallelBuildOn="true" parallelizationNumber="7" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
|
||||
<tool command="arm-linux-gnueabi-ar" id="org.tizen.nativecore.tool.sbi.gnu.archiver.356704776" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
|
||||
<tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.650668146" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
|
||||
<option id="gnu.cpp.compiler.option.optimization.level.793329258" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.cpp.compiler.option.debugging.level.core.1888794748" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.cpp.compiler.option.2132639541" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="mobile-2.4-device.core_gcc49.armel.core.staticLib"/>
|
||||
</option>
|
||||
<option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1213582958" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-x-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ewebkit2-0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1450970449" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
|
||||
<listOptionValue builtIn="false" value="-mthumb"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.include.paths.693014654" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tinyxml2}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/bullet}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/Box2D}""/>
|
||||
<listOptionValue builtIn="false" value="../../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/editor-support}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/platform}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/extensions}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/ConvertUTF}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/chipmunk/include/chipmunk}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/chipmunk/include/}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/edtaa3func}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/jpeg/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/png/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/webp/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tiff/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/json}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tinyxml2}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/xxhash}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/xxtea}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/unzip}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/websockets/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external}""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.cpp.compiler.option.frameworks.core.666062841" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="Native_API"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.preprocessor.def.2108436448" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CC_ENABLE_BULLET_INTEGRATION"/>
|
||||
<listOptionValue builtIn="false" value="CC_USE_3D_PHYSICS"/>
|
||||
<listOptionValue builtIn="false" value="USE_MINICL"/>
|
||||
<listOptionValue builtIn="false" value="TIZEN"/>
|
||||
<listOptionValue builtIn="false" value="HAVE_PTHREAD=1"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.dialect.std.1527288287" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.c++11" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.cpp.compiler.option.misc.pic.core.749524955" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" value="true" valueType="boolean"/>
|
||||
<option id="gnu.cpp.compiler.option.warnings.allwarn.1092939666" name="All warnings (-Wall)" superClass="gnu.cpp.compiler.option.warnings.allwarn" value="false" valueType="boolean"/>
|
||||
<inputType id="sbi.gnu.cpp.compiler.tizen.inputType.1887959397"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1900511771" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool command="arm-linux-gnueabi-gcc" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1598717447" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
|
||||
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.598078310" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.c.compiler.option.debugging.level.core.138130928" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" value="gnu.c.debugging.level.none" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.c.compiler.option.929146647" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="mobile-2.4-device.core_gcc49.armel.core.staticLib"/>
|
||||
</option>
|
||||
<option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1556056641" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-x-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ewebkit2-0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.1764369277" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
|
||||
<listOptionValue builtIn="false" value="-mthumb"/>
|
||||
</option>
|
||||
<option id="gnu.c.compiler.option.include.paths.2014757294" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/chipmunk/include/chipmunk}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/platform}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/edtaa3func}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/unzip}""/>
|
||||
<listOptionValue builtIn="false" value="../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/ConvertUTF}""/>
|
||||
<listOptionValue builtIn="false" value="../../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/webp/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/editor-support}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/xxtea}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tiff/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/json}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tinyxml2}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/libcocos2dx/external/png/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/libcocos2dx/external/jpeg/include/tizen}""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.c.compiler.option.frameworks.core.1541534724" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="Native_API"/>
|
||||
</option>
|
||||
<option id="gnu.c.compiler.option.dialect.std.45917009" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" value="gnu.c.compiler.dialect.c99" valueType="enumerated"/>
|
||||
<option id="gnu.c.compiler.option.preprocessor.def.symbols.741638519" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TIZEN"/>
|
||||
<listOptionValue builtIn="false" value="HAVE_PTHREAD=1"/>
|
||||
</option>
|
||||
<option id="sbi.gnu.c.compiler.option.misc.pic.core.1893226271" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" value="true" valueType="boolean"/>
|
||||
<option id="gnu.c.compiler.option.warnings.allwarn.2022888530" name="All warnings (-Wall)" superClass="gnu.c.compiler.option.warnings.allwarn" value="false" valueType="boolean"/>
|
||||
<inputType id="sbi.gnu.c.compiler.tizen.inputType.1454335070"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.265441794" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.80630159" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
|
||||
<tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.1921625612" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
|
||||
<option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1811884059" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
|
||||
<listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
|
||||
<listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.link.option.paths.106515496" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
|
||||
</option>
|
||||
</tool>
|
||||
<tool command="arm-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.706009162" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.193938562" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="org.tizen.nativecore.tool.sbi.po.compiler.948785896" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
|
||||
<tool id="org.tizen.nativecore.tool.sbi.edc.compiler.66733304" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
|
||||
<tool id="org.tizen.nativecore.tool.fnmapgen.1269775735" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
|
||||
<tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1974729469" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
|
||||
<tool id="org.tizen.nativecore.tool.ast.1086825526" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
|
||||
<tool id="org.tizen.nativecore.tool.ast.cpp.314379569" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
|
||||
<tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.46749639" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="network/CCDownloader-android.cpp|network/HttpClient-android.cpp" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="cocos"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="extensions"/>
|
||||
<entry excluding="bullet/BulletMultiThreaded/GpuSoftBodySolvers" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="external"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.lib.debug.1482968909.1736948835">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.lib.debug.1482968909.1736948835" moduleId="org.eclipse.cdt.core.settings" name="Emulator">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="a" artifactName="cocos2dx" buildArtefactType="org.tizen.nativecore.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -f" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.lib.debug.1482968909.1736948835" name="Emulator" parent="org.tizen.nativecore.config.sbi.gcc45.lib.debug">
|
||||
<folderInfo id="org.tizen.nativecore.config.sbi.gcc45.lib.debug.1482968909.1736948835." name="/" resourcePath="">
|
||||
<toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.lib.debug.2045202119" name="Tizen Core Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.lib.debug">
|
||||
<targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.708502179" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
|
||||
<builder autoBuildTarget="all" buildPath="${workspace_loc:/libcocos2dx}/Debug" enableAutoBuild="false" id="org.tizen.nativecore.target.sbi.gnu.builder.636675337" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.tizen.nativecore.target.sbi.gnu.builder">
|
||||
<outputEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Release"/>
|
||||
</outputEntries>
|
||||
</builder>
|
||||
<tool command="i386-linux-gnueabi-ar" id="org.tizen.nativecore.tool.sbi.gnu.archiver.549482395" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
|
||||
<tool command="i386-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.267963460" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
|
||||
<option id="gnu.cpp.compiler.option.optimization.level.1973675719" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.cpp.compiler.option.debugging.level.core.1333727763" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.cpp.compiler.option.1988169721" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="mobile-2.4-emulator.core_gcc49.i386.core.staticLib"/>
|
||||
</option>
|
||||
<option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1541588710" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-x-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ewebkit2-0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1899054803" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.include.paths.1494054141" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/bullet}""/>
|
||||
<listOptionValue builtIn="false" value="../../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/editor-support}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/platform}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/extensions}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/ConvertUTF}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/chipmunk/include}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/edtaa3func}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/jpeg/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/png/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/webp/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tiff/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/json}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tinyxml2}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/xxhash}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/xxtea}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/unzip}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/websockets/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external}""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.cpp.compiler.option.frameworks.core.1074731372" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="Native_API"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.preprocessor.def.132413730" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TIZEN"/>
|
||||
<listOptionValue builtIn="false" value="CC_ENABLE_BULLET_INTEGRATION"/>
|
||||
<listOptionValue builtIn="false" value="CC_USE_3D_PHYSICS"/>
|
||||
<listOptionValue builtIn="false" value="USE_MINICL"/>
|
||||
<listOptionValue builtIn="false" value="HAVE_PTHREAD=1"/>
|
||||
<listOptionValue builtIn="false" value="_DEBUG"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.dialect.std.1074859780" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.c++11" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.cpp.compiler.option.misc.pic.core.810251121" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" value="true" valueType="boolean"/>
|
||||
<option id="gnu.cpp.compiler.option.warnings.allwarn.361229427" name="All warnings (-Wall)" superClass="gnu.cpp.compiler.option.warnings.allwarn" value="false" valueType="boolean"/>
|
||||
<inputType id="sbi.gnu.cpp.compiler.tizen.inputType.1379131477.2118627262"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.289990907" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool command="i386-linux-gnueabi-gcc" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.682612154" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
|
||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1415283024" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.c.compiler.option.debugging.level.core.1132396016" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" value="gnu.c.debugging.level.max" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.c.compiler.option.2095729090" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="mobile-2.4-emulator.core_gcc49.i386.core.staticLib"/>
|
||||
</option>
|
||||
<option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1794796378" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/calendar-service2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-x-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ewebkit2-0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/geofence""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minicontrol""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/web""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/wifi-direct""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
|
||||
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.1625481993" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
|
||||
</option>
|
||||
<option id="gnu.c.compiler.option.include.paths.1938147790" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/chipmunk/include/chipmunk}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/platform}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/edtaa3func}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/unzip}""/>
|
||||
<listOptionValue builtIn="false" value="../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/ConvertUTF}""/>
|
||||
<listOptionValue builtIn="false" value="../../../"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/webp/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/cocos/editor-support}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/xxtea}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tiff/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/json}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external/tinyxml2}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/external}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/libcocos2dx/external/png/include/tizen}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/libcocos2dx/external/jpeg/include/tizen}""/>
|
||||
</option>
|
||||
<option id="sbi.gnu.c.compiler.option.frameworks.core.705978973" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
|
||||
<listOptionValue builtIn="false" value="Native_API"/>
|
||||
</option>
|
||||
<option id="gnu.c.compiler.option.preprocessor.def.symbols.440341544" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="TIZEN"/>
|
||||
<listOptionValue builtIn="false" value="HAVE_PTHREAD=1"/>
|
||||
<listOptionValue builtIn="false" value="_DEBUG"/>
|
||||
</option>
|
||||
<option id="gnu.c.compiler.option.dialect.std.1722492206" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" value="gnu.c.compiler.dialect.c99" valueType="enumerated"/>
|
||||
<option id="sbi.gnu.c.compiler.option.misc.pic.core.1497432168" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" value="true" valueType="boolean"/>
|
||||
<option id="gnu.c.compiler.option.warnings.allwarn.1207054760" name="All warnings (-Wall)" superClass="gnu.c.compiler.option.warnings.allwarn" value="false" valueType="boolean"/>
|
||||
<inputType id="sbi.gnu.c.compiler.tizen.inputType.176288026.69723678"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.276153400" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.154958868" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
|
||||
<tool command="i386-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.1796310884" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
|
||||
<option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1181541846" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
|
||||
<listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
|
||||
<listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
|
||||
<listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.link.option.paths.852250486" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
|
||||
</option>
|
||||
</tool>
|
||||
<tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.413311545" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
|
||||
<option id="gnu.both.asm.option.include.paths.2060573887" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.147071465" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="org.tizen.nativecore.tool.sbi.po.compiler.1793815256" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
|
||||
<tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1473084150" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
|
||||
<tool id="org.tizen.nativecore.tool.fnmapgen.1794099272" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
|
||||
<tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1868680475" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
|
||||
<tool id="org.tizen.nativecore.tool.ast.735994311" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
|
||||
<tool id="org.tizen.nativecore.tool.ast.cpp.1593701178" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
|
||||
<tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1810383019" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="network/CCDownloader-android.cpp|network/HttpClient-android.cpp" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="cocos"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="extensions"/>
|
||||
<entry excluding="bullet/BulletMultiThreaded/GpuSoftBodySolvers" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="external"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="libcocos2dx.org.tizen.nativecore.target.sbi.gcc45.lib.2049268012" name="Tizen Core Static Library" projectType="org.tizen.nativecore.target.sbi.gcc45.lib"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.lib.release.1390671773">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.lib.debug.1482968909">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Emulator"/>
|
||||
<configuration configurationName="Debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/libcocos2dx"/>
|
||||
</configuration>
|
||||
<configuration configurationName="Release">
|
||||
<resource resourceType="PROJECT" workspacePath="/libcocos2dx"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="com.samsung.tizen.nativeapp.projectInfo" version="1.0.0"/>
|
||||
</cproject>
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
global: main;
|
||||
local: *;
|
||||
};
|
|
@ -0,0 +1,3 @@
|
|||
/SA_Report
|
||||
/Emulator
|
||||
/res
|
|
@ -0,0 +1,301 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>libcocos2dx</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.tizen.nativecore.apichecker.apicheckerbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.tizen.nativecore.apichecker.core.builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>org.tizen.nativecore.apichecker.core.tizenCppNature</nature>
|
||||
<nature>org.tizen.nativecore.apichecker.apicheckernature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>cocos</name>
|
||||
<type>2</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/cocos</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>extensions</name>
|
||||
<type>2</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/extensions</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>external</name>
|
||||
<type>2</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/external</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>1423558551456</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-projectRelativePath-matches-false-false-*/.tpk</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551461</id>
|
||||
<name></name>
|
||||
<type>22</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-Android.mk</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551465</id>
|
||||
<name></name>
|
||||
<type>22</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-CMakeLists.txt</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551469</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*_props$</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551473</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-libcocos2d_8_1</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551477</id>
|
||||
<name></name>
|
||||
<type>22</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*.props$</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551482</id>
|
||||
<name></name>
|
||||
<type>22</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*vcxproj.*</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551486</id>
|
||||
<name></name>
|
||||
<type>22</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*\.def$</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551490</id>
|
||||
<name></name>
|
||||
<type>22</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*\.mm$</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551494</id>
|
||||
<name></name>
|
||||
<type>22</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*\.m$</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551498</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-proj.win32</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551503</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-proj.wp8</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551508</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-^proj.win.*</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551513</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-android</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551518</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-apple</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551523</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-desktop</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551528</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-ios</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551533</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-linux</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551537</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-mac</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551542</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*win8.1.*</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551559</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*wp8.*</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551564</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*winrt.*</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551578</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-scripting</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551597</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-lua</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551615</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*win32.*</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1423558551627</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-true-.*wp_8.*</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1414416409298</id>
|
||||
<name>cocos/audio</name>
|
||||
<type>10</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-true-false-openal</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
</filteredResources>
|
||||
</projectDescription>
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<tproject xmlns="http://www.tizen.org/tproject">
|
||||
<platforms>
|
||||
<platform>
|
||||
<name>mobile-2.4</name>
|
||||
</platform>
|
||||
</platforms>
|
||||
<package>
|
||||
<blacklist/>
|
||||
<resFallback autoGen="true"/>
|
||||
</package>
|
||||
</tproject>
|
|
@ -0,0 +1,151 @@
|
|||
macro (BuildModules)
|
||||
# desktop platforms
|
||||
if(LINUX OR MACOSX OR WINDOWS)
|
||||
cocos_find_package(OpenGL OPENGL REQUIRED)
|
||||
|
||||
if(LINUX OR WINDOWS)
|
||||
cocos_find_package(GLEW GLEW REQUIRED)
|
||||
#TODO: implement correct schema for pass cocos2d specific requirements to projects
|
||||
include_directories(${GLEW_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
cocos_find_package(GLFW3 GLFW3 REQUIRED)
|
||||
include_directories(${GLFW3_INCLUDE_DIRS})
|
||||
|
||||
if(LINUX)
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
find_package(Threads REQUIRED)
|
||||
set(THREADS_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
|
||||
|
||||
cocos_find_package(FMOD FMOD REQUIRED)
|
||||
cocos_find_package(Fontconfig FONTCONFIG REQUIRED)
|
||||
cocos_find_package(GTK3 GTK3 REQUIRED)
|
||||
endif()
|
||||
|
||||
if(WINDOWS)
|
||||
cocos_find_package(Vorbis VORBIS REQUIRED)
|
||||
cocos_find_package(MPG123 MPG123 REQUIRED)
|
||||
cocos_find_package(OpenAL OPENAL REQUIRED)
|
||||
# because FindOpenAL.cmake set include dir for '#include <al.h>' for portability (not for '#include <AL/al.h>'
|
||||
set(OPENAL_DEFINITIONS "-DOPENAL_PLAIN_INCLUDES")
|
||||
endif()
|
||||
endif(LINUX OR MACOSX OR WINDOWS)
|
||||
|
||||
# Freetype required on all platforms
|
||||
cocos_find_package(Freetype FREETYPE REQUIRED)
|
||||
|
||||
# WebP required if used
|
||||
if(USE_WEBP)
|
||||
cocos_find_package(WebP WEBP REQUIRED)
|
||||
endif(USE_WEBP)
|
||||
|
||||
# Chipmunk
|
||||
if(USE_CHIPMUNK)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
cocos_find_package(Chipmunk CHIPMUNK REQUIRED)
|
||||
endif()
|
||||
endif(USE_CHIPMUNK)
|
||||
|
||||
# Box2d (not prebuilded, exists as source)
|
||||
if(USE_BOX2D)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/Box2D)
|
||||
set(Box2D_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/box2d/include)
|
||||
set(Box2D_LIBRARIES box2d)
|
||||
else()
|
||||
find_package(Box2D REQUIRED CONFIG)
|
||||
# actually Box2D in next line is not a library, it is target exported from Box2DConfig.cmake
|
||||
set(Box2D_LIBRARIES Box2D)
|
||||
endif()
|
||||
message(STATUS "Box2D include dirs: ${Box2D_INCLUDE_DIRS}")
|
||||
endif(USE_BOX2D)
|
||||
|
||||
# Bullet (not prebuilded, exists as source)
|
||||
if(USE_BULLET)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/bullet)
|
||||
set(BULLET_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/bullet)
|
||||
set(BULLET_LIBRARIES bullet)
|
||||
else()
|
||||
cocos_find_package(bullet BULLET REQUIRED)
|
||||
set(BULLET_LIBRARIES bullet)
|
||||
endif()
|
||||
message(STATUS "Bullet include dirs: ${BULLET_INCLUDE_DIRS}")
|
||||
endif(USE_BULLET)
|
||||
|
||||
# Recast (not prebuilded, exists as source)
|
||||
if(USE_RECAST)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/recast)
|
||||
set(RECAST_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/recast)
|
||||
set(RECAST_LIBRARIES recast)
|
||||
else()
|
||||
cocos_find_package(recast RECAST REQUIRED)
|
||||
set(RECAST_LIBRARIES recast)
|
||||
endif()
|
||||
message(STATUS "Recast include dirs: ${RECAST_INCLUDE_DIRS}")
|
||||
endif(USE_RECAST)
|
||||
|
||||
# Tinyxml2 (not prebuilded, exists as source)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/tinyxml2)
|
||||
set(TinyXML2_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/tinyxml2)
|
||||
set(TinyXML2_LIBRARIES tinyxml2)
|
||||
else()
|
||||
cocos_find_package(TinyXML2 TinyXML2 REQUIRED)
|
||||
endif()
|
||||
message(STATUS "TinyXML2 include dirs: ${TinyXML2_INCLUDE_DIRS}")
|
||||
|
||||
# libjpeg
|
||||
cocos_find_package(JPEG JPEG REQUIRED)
|
||||
cocos_find_package(ZLIB ZLIB REQUIRED)
|
||||
|
||||
# minizip (we try to migrate to minizip from https://github.com/nmoinvaz/minizip)
|
||||
# only msys2 currently provides package for this variant, all other
|
||||
# dists have packages from zlib, thats very old for us.
|
||||
# moreover our embedded version modified to quick provide
|
||||
# functionality needed by cocos.
|
||||
if(USE_PREBUILT_LIBS OR NOT MINGW)
|
||||
#TODO: hack! should be in external/unzip/CMakeLists.txt
|
||||
include_directories(${ZLIB_INCLUDE_DIRS})
|
||||
add_subdirectory(external/unzip)
|
||||
set(MINIZIP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/unzip ${ZLIB_INCLUDE_DIRS})
|
||||
set(MINIZIP_LIBRARIES unzip ${ZLIB_LIBRARIES})
|
||||
message(STATUS "MINIZIP include dirs: ${MINIZIP_INCLUDE_DIRS}")
|
||||
else()
|
||||
cocos_find_package(MINIZIP MINIZIP REQUIRED)
|
||||
# double check that we have needed functions
|
||||
include(CheckLibraryExists)
|
||||
check_library_exists(${MINIZIP_LIBRARIES} "unzGoToFirstFile2" "" MINIZIP_HAS_GOTOFIRSTFILE2)
|
||||
if(NOT MINIZIP_HAS_GOTOFIRSTFILE2)
|
||||
message(FATAL_ERROR "Minizip library on you system very old. Please use recent version from https://github.com/nmoinvaz/minizip or enable USE_PREBUILT_LIBS")
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
cocos_find_package(PNG PNG REQUIRED)
|
||||
cocos_find_package(TIFF TIFF REQUIRED)
|
||||
cocos_find_package(WEBSOCKETS WEBSOCKETS REQUIRED)
|
||||
cocos_find_package(CURL CURL REQUIRED)
|
||||
|
||||
# flatbuffers
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/flatbuffers)
|
||||
set(FLATBUFFERS_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external)
|
||||
message(STATUS "Flatbuffers include dirs: ${FLATBUFFERS_INCLUDE_DIRS}")
|
||||
else()
|
||||
cocos_find_package(flatbuffers flatbuffers REQUIRED)
|
||||
endif()
|
||||
|
||||
# xxhash
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/xxhash)
|
||||
set(XXHASH_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/xxhash)
|
||||
set(XXHASH_LIBRARIES xxhash)
|
||||
else()
|
||||
cocos_find_package(xxhash xxhash REQUIRED)
|
||||
endif()
|
||||
|
||||
# libcocos2d.a
|
||||
add_subdirectory(cocos)
|
||||
endmacro(BuildModules)
|
|
@ -0,0 +1,52 @@
|
|||
macro (SelectModule)
|
||||
set(USE_WEBP_DEFAULT ON)
|
||||
if(WINRT OR WP8)
|
||||
set(USE_WEBP_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
set(USE_PREBUILT_LIBS_DEFAULT ON)
|
||||
if(MINGW)
|
||||
set(USE_PREBUILT_LIBS_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
set(BUILD_CPP_EMPTY_TEST_DEFAULT ON)
|
||||
set(BUILD_CPP_TESTS_DEFAULT ON)
|
||||
set(BUILD_LUA_LIBS_DEFAULT ON)
|
||||
set(BUILD_LUA_TESTS_DEFAULT ON)
|
||||
set(BUILD_JS_LIBS_DEFAULT ON)
|
||||
set(BUILD_JS_TESTS_DEFAULT ON)
|
||||
# TODO: fix test samples for MSVC
|
||||
if(MSVC)
|
||||
set(BUILD_CPP_EMPTY_TEST_DEFAULT OFF)
|
||||
set(BUILD_CPP_TESTS_DEFAULT OFF)
|
||||
set(BUILD_LUA_LIBS_DEFAULT OFF)
|
||||
set(BUILD_LUA_TESTS_DEFAULT OFF)
|
||||
set(BUILD_JS_LIBS_DEFAULT OFF)
|
||||
set(BUILD_JS_TESTS_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
option(USE_CHIPMUNK "Use chipmunk for physics library" ON)
|
||||
option(USE_BOX2D "Use box2d for physics library" OFF)
|
||||
option(USE_BULLET "Use bullet for physics3d library" ON)
|
||||
option(USE_RECAST "Use Recast for navigation mesh" ON)
|
||||
option(USE_WEBP "Use WebP codec" ${USE_WEBP_DEFAULT})
|
||||
option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
|
||||
option(DEBUG_MODE "Debug or release?" ON)
|
||||
option(BUILD_EXTENSIONS "Build extension library" ON)
|
||||
option(BUILD_EDITOR_SPINE "Build editor support for spine" ON)
|
||||
option(BUILD_EDITOR_COCOSTUDIO "Build editor support for cocostudio" ON)
|
||||
option(BUILD_EDITOR_COCOSBUILDER "Build editor support for cocosbuilder" ON)
|
||||
option(BUILD_CPP_TESTS "Build TestCpp samples" ${BUILD_CPP_TESTS_DEFAULT})
|
||||
option(BUILD_CPP_EMPTY_TEST "Build TestCpp samples" ${BUILD_CPP_EMPTY_TEST_DEFAULT})
|
||||
option(BUILD_LUA_LIBS "Build lua libraries" ${BUILD_LUA_LIBS_DEFAULT})
|
||||
option(BUILD_LUA_TESTS "Build TestLua samples" ${BUILD_LUA_TESTS_DEFAULT})
|
||||
option(BUILD_JS_LIBS "Build js libraries" ${BUILD_JS_LIBS_DEFAULT})
|
||||
option(BUILD_JS_TESTS "Build TestJS samples" ${BUILD_JS_TESTS_DEFAULT})
|
||||
option(USE_PREBUILT_LIBS "Use prebuilt libraries in external directory" ${USE_PREBUILT_LIBS_DEFAULT})
|
||||
|
||||
if(USE_PREBUILT_LIBS AND MINGW)
|
||||
message(FATAL_ERROR "Prebuilt windows libs can't be used with mingw, please use packages.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
endmacro(SelectModule)
|
|
@ -0,0 +1,104 @@
|
|||
macro (SetCompilerOptions)
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCOCOS2D_DEBUG=1")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
|
||||
|
||||
# definitions for chipmunk
|
||||
if (USE_CHIPMUNK)
|
||||
add_definitions(-DCC_ENABLE_CHIPMUNK_INTEGRATION=1)
|
||||
if (IOS OR MACOSX)
|
||||
# without this chipmunk will try to use apple defined geometry types, that conflicts with cocos
|
||||
add_definitions(-DCP_USE_CGPOINTS=0)
|
||||
endif()
|
||||
else()
|
||||
add_definitions(-DCC_USE_PHYSICS=0)
|
||||
endif()
|
||||
|
||||
# definitions for box2d
|
||||
if (USE_BOX2D)
|
||||
add_definitions(-DCC_ENABLE_BOX2D_INTEGRATION=1)
|
||||
else()
|
||||
add_definitions(-DCC_ENABLE_BOX2D_INTEGRATION=0)
|
||||
endif()
|
||||
|
||||
# definitions for bullet
|
||||
if (USE_BULLET)
|
||||
add_definitions(-DCC_ENABLE_BULLET_INTEGRATION=1)
|
||||
add_definitions(-DCC_USE_PHYSICS=1)
|
||||
else()
|
||||
add_definitions(-DCC_ENABLE_BULLET_INTEGRATION=0)
|
||||
add_definitions(-DCC_USE_3D_PHYSICS=0)
|
||||
endif()
|
||||
|
||||
# definitions for recast
|
||||
if (USE_RECAST)
|
||||
add_definitions(-DCC_USE_NAVMESH=1)
|
||||
else()
|
||||
add_definitions(-DCC_USE_NAVMESH=0)
|
||||
endif()
|
||||
|
||||
# Compiler options
|
||||
if(MSVC)
|
||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS
|
||||
-wd4251 -wd4244 -wd4334 -wd4005 -wd4820 -wd4710
|
||||
-wd4514 -wd4056 -wd4996 -wd4099)
|
||||
|
||||
# Use inline debug info (/Z7) format. Or internal error may occur.
|
||||
# Errors looks like: "xmemory0(592): error C3130: Internal Compiler Error: failed to write injected code block to PDB"
|
||||
foreach(lang C CXX)
|
||||
string(REGEX REPLACE "/Z[iI7]" "" CMAKE_${lang}_FLAGS_DEBUG "${CMAKE_${lang}_FLAGS_DEBUG}")
|
||||
set(CMAKE_${lang}_FLAGS_DEBUG "${CMAKE_${lang}_FLAGS_DEBUG} /Z7")
|
||||
endforeach()
|
||||
|
||||
else()
|
||||
set(CMAKE_C_FLAGS_DEBUG "-g -Wall -Wextra")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated-declarations -Wno-reorder")
|
||||
if(CLANG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||
endif()
|
||||
endif(MSVC)
|
||||
|
||||
# Some macro definitions
|
||||
if(WINDOWS)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
add_definitions(-D_USRDLL -D_EXPORT_DLL_ -D_USEGUIDLL -D_USREXDLL -D_USRSTUDIODLL)
|
||||
else()
|
||||
add_definitions(-DCC_STATIC)
|
||||
endif()
|
||||
|
||||
add_definitions(-DCOCOS2DXWIN32_EXPORTS -D_WINDOWS -DWIN32 -D_WIN32)
|
||||
set(PLATFORM_FOLDER win32)
|
||||
elseif(MACOSX OR APPLE)
|
||||
add_definitions(-DCC_TARGET_OS_MAC)
|
||||
add_definitions(-DUSE_FILE32API)
|
||||
set(PLATFORM_FOLDER mac)
|
||||
elseif(LINUX)
|
||||
add_definitions(-DLINUX)
|
||||
set(PLATFORM_FOLDER linux)
|
||||
elseif(ANDROID)
|
||||
add_definitions(-DUSE_FILE32API)
|
||||
set(PLATFORM_FOLDER android)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexceptions")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -latomic")
|
||||
else()
|
||||
message( FATAL_ERROR "Unsupported platform, CMake will exit" )
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(MINGW)
|
||||
#add_definitions(-DGLEW_STATIC)
|
||||
add_definitions(-D__SSIZE_T)
|
||||
|
||||
if(CLANG)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (MINGW OR NOT USE_PREBUILT_LIBS)
|
||||
add_definitions(-DMINIZIP_FROM_SYSTEM)
|
||||
endif()
|
||||
|
||||
endmacro (SetCompilerOptions)
|
|
@ -192,8 +192,19 @@ Follow::~Follow()
|
|||
|
||||
Follow* Follow::create(Node *followedNode, const Rect& rect/* = Rect::ZERO*/)
|
||||
{
|
||||
return createWithOffset(followedNode, 0.0, 0.0,rect);
|
||||
}
|
||||
|
||||
Follow* Follow::createWithOffset(Node* followedNode,float xOffset,float yOffset,const Rect& rect/*= Rect::ZERO*/){
|
||||
|
||||
|
||||
Follow *follow = new (std::nothrow) Follow();
|
||||
if (follow && follow->initWithTarget(followedNode, rect))
|
||||
|
||||
bool valid;
|
||||
|
||||
valid = follow->initWithTargetAndOffset(followedNode, xOffset, yOffset,rect);
|
||||
|
||||
if (follow && valid)
|
||||
{
|
||||
follow->autorelease();
|
||||
return follow;
|
||||
|
@ -201,12 +212,13 @@ Follow* Follow::create(Node *followedNode, const Rect& rect/* = Rect::ZERO*/)
|
|||
|
||||
delete follow;
|
||||
return nullptr;
|
||||
|
||||
}
|
||||
|
||||
Follow* Follow::clone() const
|
||||
{
|
||||
// no copy constructor
|
||||
return Follow::create(_followedNode, _worldRect);
|
||||
return Follow::createWithOffset(_followedNode, _offsetX,_offsetY,_worldRect);
|
||||
|
||||
}
|
||||
|
||||
Follow* Follow::reverse() const
|
||||
|
@ -214,7 +226,7 @@ Follow* Follow::reverse() const
|
|||
return clone();
|
||||
}
|
||||
|
||||
bool Follow::initWithTarget(Node *followedNode, const Rect& rect/* = Rect::ZERO*/)
|
||||
bool Follow::initWithTargetAndOffset(Node *followedNode, float xOffset,float yOffset,const Rect& rect)
|
||||
{
|
||||
CCASSERT(followedNode != nullptr, "FollowedNode can't be NULL");
|
||||
if(followedNode == nullptr)
|
||||
|
@ -232,7 +244,11 @@ bool Follow::initWithTarget(Node *followedNode, const Rect& rect/* = Rect::ZERO*
|
|||
Size winSize = Director::getInstance()->getWinSize();
|
||||
_fullScreenSize.set(winSize.width, winSize.height);
|
||||
_halfScreenSize = _fullScreenSize * 0.5f;
|
||||
|
||||
_offsetX=xOffset;
|
||||
_offsetY=yOffset;
|
||||
_halfScreenSize.x += _offsetX;
|
||||
_halfScreenSize.y += _offsetY;
|
||||
|
||||
if (_boundarySet)
|
||||
{
|
||||
_leftBoundary = -((rect.origin.x+rect.size.width) - _fullScreenSize.x);
|
||||
|
@ -262,6 +278,11 @@ bool Follow::initWithTarget(Node *followedNode, const Rect& rect/* = Rect::ZERO*
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Follow::initWithTarget(Node *followedNode, const Rect& rect /*= Rect::ZERO*/){
|
||||
|
||||
return initWithTargetAndOffset(followedNode, 0.0, 0.0,rect);
|
||||
|
||||
}
|
||||
void Follow::step(float dt)
|
||||
{
|
||||
CC_UNUSED_PARAM(dt);
|
||||
|
|
|
@ -323,8 +323,27 @@ public:
|
|||
* @param followedNode The node to be followed.
|
||||
* @param rect The boundary. If \p rect is equal to Rect::ZERO, it'll work
|
||||
* with no boundary.
|
||||
*/
|
||||
*/
|
||||
|
||||
static Follow* create(Node *followedNode, const Rect& rect = Rect::ZERO);
|
||||
|
||||
/**
|
||||
* Creates the action with a set boundary or with no boundary with offsets.
|
||||
*
|
||||
* @param followedNode The node to be followed.
|
||||
* @param rect The boundary. If \p rect is equal to Rect::ZERO, it'll work
|
||||
* with no boundary.
|
||||
* @param xOffset The horizontal offset from the center of the screen from which the
|
||||
* node is to be followed.It can be positive,negative or zero.If
|
||||
* set to zero the node will be horizontally centered followed.
|
||||
* @param yOffset The vertical offset from the center of the screen from which the
|
||||
* node is to be followed.It can be positive,negative or zero.
|
||||
* If set to zero the node will be vertically centered followed.
|
||||
* If both xOffset and yOffset are set to zero,then the node will be horizontally and vertically centered followed.
|
||||
*/
|
||||
|
||||
static Follow* createWithOffset(Node* followedNode,float xOffset,float yOffset,const Rect& rect = Rect::ZERO);
|
||||
|
||||
/** Return boundarySet.
|
||||
*
|
||||
* @return Return boundarySet.
|
||||
|
@ -367,6 +386,8 @@ CC_CONSTRUCTOR_ACCESS:
|
|||
, _rightBoundary(0.0)
|
||||
, _topBoundary(0.0)
|
||||
, _bottomBoundary(0.0)
|
||||
, _offsetX(0.0)
|
||||
, _offsetY(0.0)
|
||||
, _worldRect(Rect::ZERO)
|
||||
{}
|
||||
/**
|
||||
|
@ -381,8 +402,26 @@ CC_CONSTRUCTOR_ACCESS:
|
|||
* @param followedNode The node to be followed.
|
||||
* @param rect The boundary. If \p rect is equal to Rect::ZERO, it'll work
|
||||
* with no boundary.
|
||||
*/
|
||||
*/
|
||||
bool initWithTarget(Node *followedNode, const Rect& rect = Rect::ZERO);
|
||||
|
||||
|
||||
/**
|
||||
* Initializes the action with a set boundary or with no boundary with offsets.
|
||||
*
|
||||
* @param followedNode The node to be followed.
|
||||
* @param rect The boundary. If \p rect is equal to Rect::ZERO, it'll work
|
||||
* with no boundary.
|
||||
* @param xOffset The horizontal offset from the center of the screen from which the
|
||||
* node is to be followed.It can be positive,negative or zero.If
|
||||
* set to zero the node will be horizontally centered followed.
|
||||
* @param yOffset The vertical offset from the center of the screen from which the
|
||||
* node is to be followed.It can be positive,negative or zero.
|
||||
* If set to zero the node will be vertically centered followed.
|
||||
* If both xOffset and yOffset are set to zero,then the node will be horizontally and vertically centered followed.
|
||||
|
||||
*/
|
||||
bool initWithTargetAndOffset(Node *followedNode,float xOffset,float yOffset,const Rect& rect = Rect::ZERO);
|
||||
|
||||
protected:
|
||||
/** Node to follow. */
|
||||
|
@ -403,6 +442,11 @@ protected:
|
|||
float _rightBoundary;
|
||||
float _topBoundary;
|
||||
float _bottomBoundary;
|
||||
|
||||
/** Horizontal (x) and vertical (y) offset values. */
|
||||
float _offsetX;
|
||||
float _offsetY;
|
||||
|
||||
Rect _worldRect;
|
||||
|
||||
private:
|
||||
|
|
|
@ -194,11 +194,11 @@ void OrbitCamera::startWithTarget(Node *target)
|
|||
|
||||
float r, zenith, azimuth;
|
||||
this->sphericalRadius(&r, &zenith, &azimuth);
|
||||
if( isnan(_radius) )
|
||||
if( std::isnan(_radius) )
|
||||
_radius = r;
|
||||
if( isnan(_angleZ) )
|
||||
if( std::isnan(_angleZ) )
|
||||
_angleZ = (float)CC_RADIANS_TO_DEGREES(zenith);
|
||||
if( isnan(_angleX) )
|
||||
if( std::isnan(_angleX) )
|
||||
_angleX = (float)CC_RADIANS_TO_DEGREES(azimuth);
|
||||
|
||||
_radZ = (float)CC_DEGREES_TO_RADIANS(_angleZ);
|
||||
|
|
|
@ -112,7 +112,7 @@ void PointArray::setControlPoints(vector<Vec2*> *controlPoints)
|
|||
_controlPoints = controlPoints;
|
||||
}
|
||||
|
||||
void PointArray::addControlPoint(Vec2 controlPoint)
|
||||
void PointArray::addControlPoint(const Vec2& controlPoint)
|
||||
{
|
||||
_controlPoints->push_back(new Vec2(controlPoint.x, controlPoint.y));
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ public:
|
|||
* @js NA
|
||||
* @param controlPoint A control point.
|
||||
*/
|
||||
void addControlPoint(Vec2 controlPoint);
|
||||
void addControlPoint(const Vec2& controlPoint);
|
||||
|
||||
/** Inserts a controlPoint at index.
|
||||
*
|
||||
|
|
|
@ -653,7 +653,7 @@ void Waves::update(float time)
|
|||
|
||||
// implementation of Twirl
|
||||
|
||||
Twirl* Twirl::create(float duration, const Size& gridSize, Vec2 position, unsigned int twirls, float amplitude)
|
||||
Twirl* Twirl::create(float duration, const Size& gridSize, const Vec2& position, unsigned int twirls, float amplitude)
|
||||
{
|
||||
Twirl *action = new (std::nothrow) Twirl();
|
||||
|
||||
|
@ -672,7 +672,7 @@ Twirl* Twirl::create(float duration, const Size& gridSize, Vec2 position, unsign
|
|||
return action;
|
||||
}
|
||||
|
||||
bool Twirl::initWithDuration(float duration, const Size& gridSize, Vec2 position, unsigned int twirls, float amplitude)
|
||||
bool Twirl::initWithDuration(float duration, const Size& gridSize, const Vec2& position, unsigned int twirls, float amplitude)
|
||||
{
|
||||
if (Grid3DAction::initWithDuration(duration, gridSize))
|
||||
{
|
||||
|
|
|
@ -545,7 +545,7 @@ public:
|
|||
@param amplitude Specify the amplitude of the Twirl action.
|
||||
@return If the creation success, return a pointer of Twirl action; otherwise, return nil.
|
||||
*/
|
||||
static Twirl* create(float duration, const Size& gridSize, Vec2 position, unsigned int twirls, float amplitude);
|
||||
static Twirl* create(float duration, const Size& gridSize, const Vec2& position, unsigned int twirls, float amplitude);
|
||||
|
||||
/**
|
||||
@brief Get the center position of twirl action.
|
||||
|
@ -598,7 +598,7 @@ CC_CONSTRUCTOR_ACCESS:
|
|||
@param amplitude Specify the amplitude of the Twirl action.
|
||||
@return If the initialization success, return true; otherwise, return false.
|
||||
*/
|
||||
bool initWithDuration(float duration, const Size& gridSize, Vec2 position, unsigned int twirls, float amplitude);
|
||||
bool initWithDuration(float duration, const Size& gridSize, const Vec2& position, unsigned int twirls, float amplitude);
|
||||
|
||||
protected:
|
||||
/* twirl center */
|
||||
|
|
|
@ -304,6 +304,7 @@ Sequence* Sequence::clone() const
|
|||
}
|
||||
|
||||
Sequence::Sequence()
|
||||
: _split(0)
|
||||
{
|
||||
_actions[0] = nullptr;
|
||||
_actions[1] = nullptr;
|
||||
|
@ -327,11 +328,10 @@ void Sequence::startWithTarget(Node *target)
|
|||
log("Sequence::startWithTarget error: _actions[0] or _actions[1] is nullptr!");
|
||||
return;
|
||||
}
|
||||
if (_duration <= FLT_EPSILON)
|
||||
return;
|
||||
if (_duration > FLT_EPSILON)
|
||||
_split = _actions[0]->getDuration() / _duration;
|
||||
|
||||
ActionInterval::startWithTarget(target);
|
||||
_split = _actions[0]->getDuration() / _duration;
|
||||
_last = -1;
|
||||
}
|
||||
|
||||
|
@ -1958,7 +1958,7 @@ bool Blink::initWithDuration(float duration, int blinks)
|
|||
|
||||
void Blink::stop()
|
||||
{
|
||||
if(NULL != _target)
|
||||
if (nullptr != _target)
|
||||
_target->setVisible(_originalState);
|
||||
ActionInterval::stop();
|
||||
}
|
||||
|
|
|
@ -452,6 +452,11 @@ void ActionManager::update(float dt)
|
|||
{
|
||||
deleteHashElement(_currentTarget);
|
||||
}
|
||||
//if some node reference 'target', it's reference count >= 2 (issues #14050)
|
||||
else if (_currentTarget->target->getReferenceCount() == 1)
|
||||
{
|
||||
deleteHashElement(_currentTarget);
|
||||
}
|
||||
}
|
||||
|
||||
// issue #635
|
||||
|
|
|
@ -70,7 +70,7 @@ bool ShakyTiles3D::initWithDuration(float duration, const Size& gridSize, int ra
|
|||
ShakyTiles3D* ShakyTiles3D::clone() const
|
||||
{
|
||||
// no copy constructor
|
||||
return ShakyTiles3D::create(_duration, _gridSize, _randrange, -_shakeZ);
|
||||
return ShakyTiles3D::create(_duration, _gridSize, _randrange, _shakeZ);
|
||||
}
|
||||
|
||||
void ShakyTiles3D::update(float time)
|
||||
|
|
|
@ -40,8 +40,8 @@ const static float PRECISION = 10.0f;
|
|||
|
||||
PolygonInfo::PolygonInfo(const PolygonInfo& other):
|
||||
triangles(),
|
||||
isVertsOwner(true),
|
||||
rect()
|
||||
rect(),
|
||||
isVertsOwner(true)
|
||||
{
|
||||
filename = other.filename;
|
||||
isVertsOwner = true;
|
||||
|
@ -421,7 +421,7 @@ float AutoPolygon::perpendicularDistance(const cocos2d::Vec2& i, const cocos2d::
|
|||
}
|
||||
return res;
|
||||
}
|
||||
std::vector<cocos2d::Vec2> AutoPolygon::rdp(std::vector<cocos2d::Vec2> v, const float& optimization)
|
||||
std::vector<cocos2d::Vec2> AutoPolygon::rdp(const std::vector<cocos2d::Vec2>& v, float optimization)
|
||||
{
|
||||
if(v.size() < 3)
|
||||
return v;
|
||||
|
@ -435,7 +435,7 @@ std::vector<cocos2d::Vec2> AutoPolygon::rdp(std::vector<cocos2d::Vec2> v, const
|
|||
if(cdist > dist)
|
||||
{
|
||||
dist = cdist;
|
||||
index = i;
|
||||
index = static_cast<int>(i);
|
||||
}
|
||||
}
|
||||
if (dist>optimization)
|
||||
|
|
|
@ -55,9 +55,9 @@ public:
|
|||
* @return PolygonInfo object
|
||||
*/
|
||||
PolygonInfo():
|
||||
isVertsOwner(true),
|
||||
rect(cocos2d::Rect::ZERO),
|
||||
filename("")
|
||||
filename(""),
|
||||
isVertsOwner(true)
|
||||
{
|
||||
triangles.verts = nullptr;
|
||||
triangles.indices = nullptr;
|
||||
|
@ -260,7 +260,7 @@ protected:
|
|||
int getIndexFromPos(const unsigned int& x, const unsigned int& y){return y*_width+x;};
|
||||
cocos2d::Vec2 getPosFromIndex(const unsigned int& i){return cocos2d::Vec2(i%_width, i/_width);};
|
||||
|
||||
std::vector<cocos2d::Vec2> rdp(std::vector<cocos2d::Vec2> v, const float& optimization);
|
||||
std::vector<cocos2d::Vec2> rdp(const std::vector<cocos2d::Vec2>& v, float optimization);
|
||||
float perpendicularDistance(const cocos2d::Vec2& i, const cocos2d::Vec2& start, const cocos2d::Vec2& end);
|
||||
|
||||
//real rect is the size that is in scale with the texture file
|
||||
|
|
|
@ -107,9 +107,7 @@ bool ClippingNode::init()
|
|||
|
||||
bool ClippingNode::init(Node *stencil)
|
||||
{
|
||||
CC_SAFE_RELEASE(_stencil);
|
||||
setStencil(stencil);
|
||||
CC_SAFE_RETAIN(_stencil);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -292,6 +290,9 @@ Node* ClippingNode::getStencil() const
|
|||
|
||||
void ClippingNode::setStencil(Node *stencil)
|
||||
{
|
||||
if (_stencil == stencil)
|
||||
return;
|
||||
|
||||
#if CC_ENABLE_GC_FOR_NATIVE_OBJECTS
|
||||
auto sEngine = ScriptEngineManager::getInstance()->getScriptEngine();
|
||||
if (sEngine)
|
||||
|
|
|
@ -326,9 +326,7 @@ void DrawNode::draw(Renderer *renderer, const Mat4 &transform, uint32_t flags)
|
|||
|
||||
void DrawNode::onDraw(const Mat4 &transform, uint32_t flags)
|
||||
{
|
||||
auto glProgram = getGLProgram();
|
||||
glProgram->use();
|
||||
glProgram->setUniformsForBuiltins(transform);
|
||||
getGLProgramState()->apply(transform);
|
||||
|
||||
GL::blendFunc(_blendFunc.src, _blendFunc.dst);
|
||||
|
||||
|
|
|
@ -196,7 +196,7 @@ namespace DrawPrimitives
|
|||
* @param origin The origin of the bezier path.
|
||||
* @param control The control of the bezier path.
|
||||
* @param destination The destination of the bezier path.
|
||||
* @param segments The The number of segments.
|
||||
* @param segments The number of segments.
|
||||
* @warning This function could be pretty slow. Use it only for debugging purposes.
|
||||
* @since v0.8
|
||||
*/
|
||||
|
@ -208,7 +208,7 @@ namespace DrawPrimitives
|
|||
* @param control1 The first control of the bezier path.
|
||||
* @param control2 The second control of the bezier path.
|
||||
* @param destination The destination of the bezier path.
|
||||
* @param segments The The number of segments.
|
||||
* @param segments The number of segments.
|
||||
* @warning This function could be pretty slow. Use it only for debugging purposes.
|
||||
* @since v0.8
|
||||
*/
|
||||
|
@ -217,7 +217,7 @@ namespace DrawPrimitives
|
|||
/** Draws a Catmull Rom path.
|
||||
*
|
||||
* @param arrayOfControlPoints A point array of control point.
|
||||
* @param segments The The number of segments.
|
||||
* @param segments The number of segments.
|
||||
* @warning This function could be pretty slow. Use it only for debugging purposes.
|
||||
* @since v2.0
|
||||
*/
|
||||
|
@ -227,7 +227,7 @@ namespace DrawPrimitives
|
|||
*
|
||||
* @param config A array point.
|
||||
* @param tension The tension of the spline.
|
||||
* @param segments The The number of segments.
|
||||
* @param segments The number of segments.
|
||||
* @warning This function could be pretty slow. Use it only for debugging purposes.
|
||||
* @since v2.0
|
||||
*/
|
||||
|
|
|
@ -828,7 +828,7 @@ void TMXLayer::setTileGID(int gid, const Vec2& tileCoordinate, TMXTileFlags flag
|
|||
}
|
||||
}
|
||||
|
||||
void TMXLayer::setupTileSprite(Sprite* sprite, Vec2 pos, int gid)
|
||||
void TMXLayer::setupTileSprite(Sprite* sprite, const Vec2& pos, int gid)
|
||||
{
|
||||
sprite->setPosition(getPositionAt(pos));
|
||||
sprite->setPositionZ((float)getVertexZForPos(pos));
|
||||
|
|
|
@ -261,7 +261,7 @@ public:
|
|||
* @param pos The tile coordinate.
|
||||
* @param gid The tile gid.
|
||||
*/
|
||||
void setupTileSprite(Sprite* sprite, Vec2 pos, int gid);
|
||||
void setupTileSprite(Sprite* sprite, const Vec2& pos, int gid);
|
||||
|
||||
//
|
||||
// Override
|
||||
|
|
|
@ -316,8 +316,8 @@ std::set<unsigned int>* BMFontConfiguration::parseConfigFile(const std::string&
|
|||
|
||||
auto next = strchr(contents, '\n');
|
||||
auto base = contents;
|
||||
int lineLength = 0;
|
||||
int parseCount = 0;
|
||||
size_t lineLength = 0;
|
||||
size_t parseCount = 0;
|
||||
while (next)
|
||||
{
|
||||
lineLength = ((int)(next - base));
|
||||
|
@ -809,7 +809,11 @@ FontAtlas * FontFNT::createFontAtlas()
|
|||
tempDefinition.validDefinition = true;
|
||||
tempDefinition.xAdvance = fontDef.xAdvance;
|
||||
// add the new definition
|
||||
tempAtlas->addLetterDefinition(fontDef.charID,tempDefinition);
|
||||
if (65535 < fontDef.charID) {
|
||||
CCLOGWARN("Warning: 65535 < fontDef.charID (%u), ignored", fontDef.charID);
|
||||
} else {
|
||||
tempAtlas->addLetterDefinition(fontDef.charID,tempDefinition);
|
||||
}
|
||||
}
|
||||
|
||||
// add the texture (only one texture for now)
|
||||
|
|
|
@ -46,7 +46,6 @@
|
|||
|
||||
NS_CC_BEGIN
|
||||
|
||||
static const int UNDERLINE_NODE_TAG = 0xaabbccdd;
|
||||
/**
|
||||
* LabelLetter used to update the quad in texture atlas without SpriteBatchNode.
|
||||
*/
|
||||
|
@ -780,9 +779,9 @@ bool Label::alignText()
|
|||
do {
|
||||
_fontAtlas->prepareLetterDefinitions(_utf16Text);
|
||||
auto& textures = _fontAtlas->getTextures();
|
||||
if (textures.size() > _batchNodes.size())
|
||||
if (textures.size() > static_cast<size_t>(_batchNodes.size()))
|
||||
{
|
||||
for (auto index = _batchNodes.size(); index < textures.size(); ++index)
|
||||
for (auto index = static_cast<size_t>(_batchNodes.size()); index < textures.size(); ++index)
|
||||
{
|
||||
auto batchNode = SpriteBatchNode::createWithTexture(textures.at(index));
|
||||
if (batchNode)
|
||||
|
@ -1129,7 +1128,7 @@ void Label::enableBold()
|
|||
if (!_boldEnabled)
|
||||
{
|
||||
// bold is implemented with outline
|
||||
enableShadow(Color4B::WHITE, Size(0.9,0), 0);
|
||||
enableShadow(Color4B::WHITE, Size(0.9f, 0), 0);
|
||||
// add one to kerning
|
||||
setAdditionalKerning(_additionalKerning+1);
|
||||
_boldEnabled = true;
|
||||
|
|
|
@ -137,7 +137,7 @@ bool Menu::initWithArray(const Vector<MenuItem*>& arrayOfItems)
|
|||
// menu in the center of the screen
|
||||
Size s = Director::getInstance()->getWinSize();
|
||||
|
||||
this->ignoreAnchorPointForPosition(true);
|
||||
this->setIgnoreAnchorPointForPosition(true);
|
||||
setAnchorPoint(Vec2(0.5f, 0.5f));
|
||||
this->setContentSize(s);
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ bool MotionStreak::initWithFade(float fade, float minSeg, float stroke, const Co
|
|||
{
|
||||
Node::setPosition(Vec2::ZERO);
|
||||
setAnchorPoint(Vec2::ZERO);
|
||||
ignoreAnchorPointForPosition(true);
|
||||
setIgnoreAnchorPointForPosition(true);
|
||||
_startingPositionInitialized = false;
|
||||
|
||||
_positionR.setZero();
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
/****************************************************************************
|
||||
Copyright (c) 2008-2010 Ricardo Quesada
|
||||
Copyright (c) 2009 Valentin Milea
|
||||
|
@ -653,8 +651,9 @@ bool Node::isIgnoreAnchorPointForPosition() const
|
|||
{
|
||||
return _ignoreAnchorPointForPosition;
|
||||
}
|
||||
|
||||
/// isRelativeAnchorPoint setter
|
||||
void Node::ignoreAnchorPointForPosition(bool newValue)
|
||||
void Node::setIgnoreAnchorPointForPosition(bool newValue)
|
||||
{
|
||||
if (newValue != _ignoreAnchorPointForPosition)
|
||||
{
|
||||
|
|
|
@ -38,6 +38,10 @@
|
|||
#include "2d/CCComponentContainer.h"
|
||||
#include "2d/CCComponent.h"
|
||||
|
||||
#if CC_USE_PHYSICS
|
||||
#include "physics/CCPhysicsBody.h"
|
||||
#endif
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
class GridBase;
|
||||
|
@ -701,13 +705,14 @@ public:
|
|||
* The default value is false, while in Layer and Scene are true.
|
||||
*
|
||||
* @param ignore true if anchor point will be (0,0) when you position this node.
|
||||
* @todo This method should be renamed as setIgnoreAnchorPointForPosition(bool) or something with "set".
|
||||
*/
|
||||
virtual void ignoreAnchorPointForPosition(bool ignore);
|
||||
virtual void setIgnoreAnchorPointForPosition(bool ignore);
|
||||
CC_DEPRECATED_ATTRIBUTE virtual void ignoreAnchorPointForPosition(bool ignore) { setIgnoreAnchorPointForPosition(ignore); }
|
||||
|
||||
/**
|
||||
* Gets whether the anchor point will be (0,0) when you position this node.
|
||||
*
|
||||
* @see `ignoreAnchorPointForPosition(bool)`
|
||||
* @see `setIgnoreAnchorPointForPosition(bool)`
|
||||
*
|
||||
* @return true if the anchor point will be (0,0) when you position this node.
|
||||
*/
|
||||
|
@ -1260,7 +1265,6 @@ public:
|
|||
* Composable actions are counted as 1 action. Example:
|
||||
* If you are running 1 Sequence of 7 actions, it will return 1.
|
||||
* If you are running 7 Sequences of 2 actions, it will return 7.
|
||||
* @todo Rename to getNumberOfRunningActions()
|
||||
*
|
||||
* @return The number of actions that are running plus the ones that are schedule to run.
|
||||
*/
|
||||
|
@ -1940,9 +1944,9 @@ protected:
|
|||
ComponentContainer *_componentContainer; ///< Dictionary of components
|
||||
|
||||
// opacity controls
|
||||
GLubyte _displayedOpacity;
|
||||
GLubyte _displayedOpacity;
|
||||
GLubyte _realOpacity;
|
||||
Color3B _displayedColor;
|
||||
Color3B _displayedColor;
|
||||
Color3B _realColor;
|
||||
bool _cascadeColorEnabled;
|
||||
bool _cascadeOpacityEnabled;
|
||||
|
@ -1961,8 +1965,13 @@ protected:
|
|||
#if CC_USE_PHYSICS
|
||||
PhysicsBody* _physicsBody;
|
||||
public:
|
||||
void setPhysicsBody(Component* physicsBody)
|
||||
{
|
||||
void setPhysicsBody(PhysicsBody* physicsBody)
|
||||
{
|
||||
if (_physicsBody != nullptr)
|
||||
{
|
||||
removeComponent(_physicsBody);
|
||||
}
|
||||
|
||||
addComponent(physicsBody);
|
||||
}
|
||||
PhysicsBody* getPhysicsBody() const { return _physicsBody; }
|
||||
|
|
|
@ -932,6 +932,12 @@ void ParticleSystem::update(float dt)
|
|||
}
|
||||
else
|
||||
{
|
||||
//Why use so many for-loop separately instead of putting them together?
|
||||
//When the processor needs to read from or write to a location in memory,
|
||||
//it first checks whether a copy of that data is in the cache.
|
||||
//And every property's memory of the particle system is continuous,
|
||||
//for the purpose of improving cache hit rate, we should process only one property in one for-loop AFAP.
|
||||
//It was proved to be effective especially for low-end machine.
|
||||
for (int i = 0; i < _particleCount; ++i)
|
||||
{
|
||||
_particleData.modeB.angle[i] += _particleData.modeB.degreesPerSecond[i] * dt;
|
||||
|
|
|
@ -924,10 +924,10 @@ void Sprite::setAnchorPoint(const Vec2& anchor)
|
|||
SET_DIRTY_RECURSIVELY();
|
||||
}
|
||||
|
||||
void Sprite::ignoreAnchorPointForPosition(bool value)
|
||||
void Sprite::setIgnoreAnchorPointForPosition(bool value)
|
||||
{
|
||||
CCASSERT(! _batchNode, "ignoreAnchorPointForPosition is invalid in Sprite");
|
||||
Node::ignoreAnchorPointForPosition(value);
|
||||
CCASSERT(! _batchNode, "setIgnoreAnchorPointForPosition is invalid in Sprite");
|
||||
Node::setIgnoreAnchorPointForPosition(value);
|
||||
}
|
||||
|
||||
void Sprite::setVisible(bool bVisible)
|
||||
|
|
|
@ -467,7 +467,9 @@ public:
|
|||
virtual void setScale(float scale) override;
|
||||
virtual void setPositionZ(float positionZ) override;
|
||||
virtual void setAnchorPoint(const Vec2& anchor) override;
|
||||
virtual void ignoreAnchorPointForPosition(bool value) override;
|
||||
|
||||
virtual void setIgnoreAnchorPointForPosition(bool value) override;
|
||||
|
||||
virtual void setVisible(bool bVisible) override;
|
||||
virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override;
|
||||
virtual void setOpacityModifyRGB(bool modify) override;
|
||||
|
|
|
@ -252,7 +252,7 @@ void SpriteBatchNode::removeAllChildrenWithCleanup(bool doCleanup)
|
|||
Node::removeAllChildrenWithCleanup(doCleanup);
|
||||
|
||||
_descendants.clear();
|
||||
_textureAtlas->removeAllQuads();
|
||||
if (_textureAtlas) {_textureAtlas->removeAllQuads();}
|
||||
}
|
||||
|
||||
//override sortAllChildren
|
||||
|
|
|
@ -137,6 +137,7 @@ SpriteFrame* SpriteFrame::clone() const
|
|||
SpriteFrame *copy = new (std::nothrow) SpriteFrame();
|
||||
copy->initWithTextureFilename(_textureFilename, _rectInPixels, _rotated, _offsetInPixels, _originalSizeInPixels);
|
||||
copy->setTexture(_texture);
|
||||
copy->setPolygonInfo(_polygonInfo);
|
||||
copy->autorelease();
|
||||
return copy;
|
||||
}
|
||||
|
@ -187,7 +188,7 @@ void SpriteFrame::setAnchorPoint(const Vec2& anchorPoint)
|
|||
|
||||
bool SpriteFrame::hasAnchorPoint() const
|
||||
{
|
||||
return !isnan(_anchorPoint.x);
|
||||
return !std::isnan(_anchorPoint.x);
|
||||
}
|
||||
|
||||
void SpriteFrame::setTexture(Texture2D * texture)
|
||||
|
|
|
@ -130,9 +130,9 @@ void SpriteFrameCache::initializePolygonInfo(const Size &textureSize,
|
|||
indexData[i] = static_cast<unsigned short>(triangleIndices[i]);
|
||||
}
|
||||
|
||||
info.triangles.vertCount = vertexCount;
|
||||
info.triangles.vertCount = static_cast<int>(vertexCount);
|
||||
info.triangles.verts = vertexData;
|
||||
info.triangles.indexCount = indexCount;
|
||||
info.triangles.indexCount = static_cast<int>(indexCount);
|
||||
info.triangles.indices = indexData;
|
||||
info.rect = Rect(0, 0, spriteSize.width, spriteSize.height);
|
||||
}
|
||||
|
@ -322,7 +322,7 @@ void SpriteFrameCache::addSpriteFramesWithDictionary(ValueMap& dict, const std::
|
|||
{"I8", Texture2D::PixelFormat::I8},
|
||||
{"AI88", Texture2D::PixelFormat::AI88},
|
||||
{"ALPHA_INTENSITY", Texture2D::PixelFormat::AI88},
|
||||
//{"BGRA8888", Texture2D::PixelFormat::BGRA8888}, no Image convertion RGBA -> BGRA
|
||||
//{"BGRA8888", Texture2D::PixelFormat::BGRA8888}, no Image conversion RGBA -> BGRA
|
||||
{"RGB888", Texture2D::PixelFormat::RGB888}
|
||||
};
|
||||
|
||||
|
|
|
@ -224,7 +224,7 @@ void TMXLayer::parseInternalProperties()
|
|||
}
|
||||
}
|
||||
|
||||
void TMXLayer::setupTileSprite(Sprite* sprite, Vec2 pos, int gid)
|
||||
void TMXLayer::setupTileSprite(Sprite* sprite, const Vec2& pos, int gid)
|
||||
{
|
||||
sprite->setPosition(getPositionAt(pos));
|
||||
sprite->setPositionZ((float)getVertexZForPos(pos));
|
||||
|
@ -281,7 +281,7 @@ void TMXLayer::setupTileSprite(Sprite* sprite, Vec2 pos, int gid)
|
|||
}
|
||||
}
|
||||
|
||||
Sprite* TMXLayer::reusedTileWithRect(Rect rect)
|
||||
Sprite* TMXLayer::reusedTileWithRect(const Rect& rect)
|
||||
{
|
||||
if (! _reusedTile)
|
||||
{
|
||||
|
|
|
@ -307,8 +307,8 @@ protected:
|
|||
|
||||
/* The layer recognizes some special properties, like cc_vertexz */
|
||||
void parseInternalProperties();
|
||||
void setupTileSprite(Sprite* sprite, Vec2 pos, int gid);
|
||||
Sprite* reusedTileWithRect(Rect rect);
|
||||
void setupTileSprite(Sprite* sprite, const Vec2& pos, int gid);
|
||||
Sprite* reusedTileWithRect(const Rect& rect);
|
||||
int getVertexZForPos(const Vec2& pos);
|
||||
|
||||
// index
|
||||
|
|
|
@ -439,7 +439,13 @@ void TMXMapInfo::startElement(void *ctx, const char *name, const char **atts)
|
|||
}
|
||||
CCASSERT( compression == "" || compression == "gzip" || compression == "zlib", "TMX: unsupported compression method" );
|
||||
}
|
||||
}
|
||||
else if (encoding == "csv")
|
||||
{
|
||||
int layerAttribs = tmxMapInfo->getLayerAttribs();
|
||||
tmxMapInfo->setLayerAttribs(layerAttribs | TMXLayerAttribCSV);
|
||||
tmxMapInfo->setStoringCharacters(true);
|
||||
}
|
||||
}
|
||||
else if (elementName == "object")
|
||||
{
|
||||
TMXObjectGroup* objectGroup = tmxMapInfo->getObjectGroups().back();
|
||||
|
@ -448,7 +454,7 @@ void TMXMapInfo::startElement(void *ctx, const char *name, const char **atts)
|
|||
// Create an instance of TMXObjectInfo to store the object and its properties
|
||||
ValueMap dict;
|
||||
// Parse everything automatically
|
||||
const char* keys[] = {"name", "type", "width", "height", "gid"};
|
||||
const char* keys[] = {"name", "type", "width", "height", "gid", "id"};
|
||||
|
||||
for (const auto& key : keys)
|
||||
{
|
||||
|
@ -671,6 +677,45 @@ void TMXMapInfo::endElement(void *ctx, const char *name)
|
|||
|
||||
tmxMapInfo->setCurrentString("");
|
||||
}
|
||||
else if (tmxMapInfo->getLayerAttribs() & TMXLayerAttribCSV)
|
||||
{
|
||||
unsigned char *buffer;
|
||||
|
||||
TMXLayerInfo* layer = tmxMapInfo->getLayers().back();
|
||||
|
||||
tmxMapInfo->setStoringCharacters(false);
|
||||
std::string currentString = tmxMapInfo->getCurrentString();
|
||||
|
||||
vector<string> gidTokens;
|
||||
istringstream filestr(currentString);
|
||||
string sRow;
|
||||
while(getline(filestr, sRow, '\n')) {
|
||||
string sGID;
|
||||
istringstream rowstr(sRow);
|
||||
while (getline(rowstr, sGID, ',')) {
|
||||
gidTokens.push_back(sGID);
|
||||
}
|
||||
}
|
||||
|
||||
// 32-bits per gid
|
||||
buffer = (unsigned char*)malloc(gidTokens.size() * 4);
|
||||
if (!buffer)
|
||||
{
|
||||
CCLOG("cocos2d: TiledMap: CSV buffer not allocated.");
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t* bufferPtr = reinterpret_cast<uint32_t*>(buffer);
|
||||
for(auto gidToken : gidTokens) {
|
||||
auto tileGid = (uint32_t)strtol(gidToken.c_str(), nullptr, 10);
|
||||
*bufferPtr = tileGid;
|
||||
bufferPtr++;
|
||||
}
|
||||
|
||||
layer->_tiles = reinterpret_cast<uint32_t*>(buffer);
|
||||
|
||||
tmxMapInfo->setCurrentString("");
|
||||
}
|
||||
else if (tmxMapInfo->getLayerAttribs() & TMXLayerAttribNone)
|
||||
{
|
||||
_xmlTileIndex = 0;
|
||||
|
|
|
@ -62,6 +62,7 @@ enum {
|
|||
TMXLayerAttribBase64 = 1 << 1,
|
||||
TMXLayerAttribGzip = 1 << 2,
|
||||
TMXLayerAttribZlib = 1 << 3,
|
||||
TMXLayerAttribCSV = 1 << 4,
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
|
@ -34,7 +34,7 @@ NS_CC_BEGIN
|
|||
|
||||
#define CURSOR_TIME_SHOW_HIDE 0.5f
|
||||
#define CURSOR_DEFAULT_CHAR '|'
|
||||
|
||||
#define PASSWORD_STYLE_TEXT_DEFAULT "\xe2\x80\xa2"
|
||||
static int _calcCharCount(const char * text)
|
||||
{
|
||||
int n = 0;
|
||||
|
@ -63,7 +63,7 @@ TextFieldTTF::TextFieldTTF()
|
|||
, _placeHolder("") // prevent Label initWithString assertion
|
||||
, _colorText(Color4B::WHITE)
|
||||
, _secureTextEntry(false)
|
||||
,_passwordStyleText("\u25CF")
|
||||
, _passwordStyleText(PASSWORD_STYLE_TEXT_DEFAULT)
|
||||
, _cursorEnabled(false)
|
||||
, _cursorPosition(0)
|
||||
, _cursorChar(CURSOR_DEFAULT_CHAR)
|
||||
|
@ -134,7 +134,7 @@ bool TextFieldTTF::initWithPlaceHolder(const std::string& placeholder, const std
|
|||
// If fontName is ttf file and it corrected, use TTFConfig
|
||||
if (FileUtils::getInstance()->isFileExist(fontName))
|
||||
{
|
||||
TTFConfig ttfConfig(fontName.c_str(), fontSize, GlyphCollection::DYNAMIC);
|
||||
TTFConfig ttfConfig(fontName, fontSize, GlyphCollection::DYNAMIC);
|
||||
if (setTTFConfig(ttfConfig))
|
||||
{
|
||||
break;
|
||||
|
|
|
@ -1147,6 +1147,7 @@
|
|||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\ui\UIButton.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\ui\UIAbstractCheckButton.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\ui\UICheckBox.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\ui\UIEditBox\UIEditBoxImpl-common.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\ui\UIRadioButton.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\ui\UIDeprecated.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\ui\UIEditBox\UIEditBox.cpp" />
|
||||
|
|
|
@ -3610,6 +3610,7 @@
|
|||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\LocalizationManager.cpp">
|
||||
<Filter>cocostudio\components</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\ui\UIEditBox\UIEditBoxImpl-common.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="2d">
|
||||
|
|
|
@ -642,6 +642,7 @@
|
|||
<ClCompile Include="..\..\ui\UIButton.cpp" />
|
||||
<ClCompile Include="..\..\ui\UIAbstractCheckButton.cpp" />
|
||||
<ClCompile Include="..\..\ui\UICheckBox.cpp" />
|
||||
<ClCompile Include="..\..\ui\UIEditBox\UIEditBoxImpl-common.cpp" />
|
||||
<ClCompile Include="..\..\ui\UIRadioButton.cpp" />
|
||||
<ClCompile Include="..\..\ui\UIDeprecated.cpp" />
|
||||
<ClCompile Include="..\..\ui\UIEditBox\UIEditBox.cpp" />
|
||||
|
@ -1248,6 +1249,7 @@
|
|||
<ClInclude Include="..\..\renderer\CCBatchCommand.h" />
|
||||
<ClInclude Include="..\..\renderer\CCCustomCommand.h" />
|
||||
<ClInclude Include="..\..\renderer\CCTextureCube.h" />
|
||||
<ClInclude Include="..\..\ui\UIEditBox\UIEditBoxImpl-common.h" />
|
||||
<ClInclude Include="..\..\ui\UITabControl.h" />
|
||||
<ClInclude Include="..\CCAutoPolygon.h" />
|
||||
<ClInclude Include="..\CCCameraBackgroundBrush.h" />
|
||||
|
@ -1682,4 +1684,4 @@
|
|||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
|
@ -1990,6 +1990,9 @@
|
|||
<ClCompile Include="..\..\ui\UITabControl.cpp">
|
||||
<Filter>ui\UIWidgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ui\UIEditBox\UIEditBoxImpl-common.cpp">
|
||||
<Filter>ui\UIWidgets\EditBox</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\cocos2d.h" />
|
||||
|
@ -3887,6 +3890,9 @@
|
|||
<ClInclude Include="..\..\ui\UITabControl.h">
|
||||
<Filter>ui\UIWidgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\ui\UIEditBox\UIEditBoxImpl-common.h">
|
||||
<Filter>ui\UIWidgets\EditBox</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\base\CCController-iOS.mm">
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<AdditionalIncludeDirectories>$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\platform\winrt;$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\include;$(EngineRoot)external\freetype2\include\$(COCOS2D_PLATFORM)\freetype2;$(EngineRoot)external\curl\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\websockets\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\chipmunk\include;$(EngineRoot)external\sqlite3\include;$(EngineRoot)cocos;$(EngineRoot)extensions;$(EngineRoot)external;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\unzip;$(EngineRoot)external\tinyxml2;$(EngineRoot);$(EngineRoot)external\ConvertUTF;$(EngineRoot)external\xxhash;$(EngineRoot)external\poly2tri;$(EngineRoot)external\poly2tri\common;$(EngineRoot)external\poly2tri\sweep;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>WINRT;_VARIADIC_MAX=10;NOMINMAX;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_UNICODE;UNICODE;RAPIDJSON_ENDIAN=RAPIDJSON_LITTLEENDIAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WINRT;_VARIADIC_MAX=10;NOMINMAX;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_UNICODE;UNICODE;RAPIDJSON_ENDIAN=RAPIDJSON_LITTLEENDIAN;_USRJSSTATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<CompileAsWinRT>true</CompileAsWinRT>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<AdditionalIncludeDirectories>$(EngineRoot)cocos\editor-support;$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\include;$(EngineRoot)external\freetype2\include\$(COCOS2D_PLATFORM)\freetype2;$(EngineRoot)external\curl\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\websockets\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\chipmunk\include;$(EngineRoot)external\sqlite3\include;$(EngineRoot)cocos;$(EngineRoot)extensions;$(EngineRoot)external;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\unzip;$(EngineRoot)external\tinyxml2;$(EngineRoot);$(EngineRoot)external\ConvertUTF;$(EngineRoot)external\xxhash;$(EngineRoot)external\poly2tri;$(EngineRoot)external\poly2tri\common;$(EngineRoot)external\poly2tri\sweep;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>WINRT;_VARIADIC_MAX=10;NOMINMAX;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_UNICODE;UNICODE;RAPIDJSON_ENDIAN=RAPIDJSON_LITTLEENDIAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WINRT;_VARIADIC_MAX=10;NOMINMAX;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_UNICODE;UNICODE;RAPIDJSON_ENDIAN=RAPIDJSON_LITTLEENDIAN;_USRJSSTATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<CompileAsWinRT>true</CompileAsWinRT>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<PropertyGroup Label="APP_DLLS">
|
||||
<AngleBinPath Condition=" '$(AngleBinPath)' == '' ">$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\prebuilt\$(Platform)\</AngleBinPath>
|
||||
<CurlBinPath Condition=" '$(CurlBinPath)' == '' ">$(EngineRoot)external\curl\prebuilt\$(COCOS2D_PLATFORM)\$(Platform)\</CurlBinPath>
|
||||
<ZLibBinPath Condition=" '$(ZLibBinPath)' == '' ">$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\zlib\prebuilt\$(Platform)\</ZLibBinPath>
|
||||
<WebsocketsBinPath Condition=" '$(WebsocketsBinPath)' == '' ">$(EngineRoot)external\websockets\prebuilt\$(COCOS2D_PLATFORM)\$(Platform)\</WebsocketsBinPath>
|
||||
<SQLiteBinPath Condition=" '$(SQLiteBinPath)' == '' ">$(EngineRoot)external\sqlite3\libraries\$(COCOS2D_PLATFORM)\$(Platform)\</SQLiteBinPath>
|
||||
<OggBinPath Condition=" '$(OggBinPath)' == '' ">$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\OggDecoder\prebuilt\$(Platform)\</OggBinPath>
|
||||
|
@ -14,6 +15,9 @@
|
|||
</None>
|
||||
<None Include="$(AngleBinPath)libGLESv2.dll">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="$(ZLibBinPath)zlib.dll">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
</None>
|
||||
<None Include="$(SQLiteBinPath)sqlite3.dll">
|
||||
<DeploymentContent>true</DeploymentContent>
|
||||
|
|
|
@ -248,7 +248,7 @@ void Animate3D::startWithTarget(Node *target)
|
|||
action->_accTransTime = 0.0f;
|
||||
action->_weight = 1.0f;
|
||||
action->_lastTime = 0.f;
|
||||
|
||||
s_runningAnimates.erase(target);
|
||||
s_fadeInAnimates[target] = this;
|
||||
_accTransTime = 0.0f;
|
||||
_state = Animate3D::Animate3DState::FadeIn;
|
||||
|
|
|
@ -104,7 +104,7 @@ bool MotionStreak3D::initWithFade(float fade, float minSeg, float stroke, const
|
|||
{
|
||||
Node::setPosition(Vec2::ZERO);
|
||||
setAnchorPoint(Vec2::ZERO);
|
||||
ignoreAnchorPointForPosition(true);
|
||||
setIgnoreAnchorPointForPosition(true);
|
||||
_startingPositionInitialized = false;
|
||||
|
||||
_positionR.setZero();
|
||||
|
|
|
@ -464,7 +464,7 @@ void Sprite3D::setMaterial(Material *material, int meshIndex)
|
|||
|
||||
if (meshIndex == -1)
|
||||
{
|
||||
for (size_t i = 0; i < _meshes.size(); i++)
|
||||
for (ssize_t i = 0; i < _meshes.size(); i++)
|
||||
{
|
||||
_meshes.at(i)->setMaterial(i == 0 ? material : material->clone());
|
||||
}
|
||||
|
@ -774,7 +774,7 @@ void Sprite3D::draw(Renderer *renderer, const Mat4 &transform, uint32_t flags)
|
|||
const auto lights = scene->getLights();
|
||||
bool usingLight = false;
|
||||
for (const auto light : lights) {
|
||||
usingLight = (light->isEnabled() && (unsigned int)light->getLightFlag() & _lightMask) > 0;
|
||||
usingLight = light->isEnabled() && ((static_cast<unsigned int>(light->getLightFlag()) & _lightMask) > 0);
|
||||
if (usingLight)
|
||||
break;
|
||||
}
|
||||
|
@ -974,8 +974,8 @@ void Sprite3DCache::removeSprite3DData(const std::string& key)
|
|||
if (it != _spriteDatas.end())
|
||||
{
|
||||
delete it->second;
|
||||
_spriteDatas.erase(it);
|
||||
}
|
||||
_spriteDatas.erase(it);
|
||||
}
|
||||
|
||||
void Sprite3DCache::removeAllSprite3DData()
|
||||
|
|
|
@ -294,7 +294,7 @@ Terrain::Terrain()
|
|||
#endif
|
||||
}
|
||||
|
||||
void Terrain::setChunksLOD(Vec3 cameraPos)
|
||||
void Terrain::setChunksLOD(const Vec3& cameraPos)
|
||||
{
|
||||
int chunk_amount_y = _imageHeight/_chunkSize.height;
|
||||
int chunk_amount_x = _imageWidth/_chunkSize.width;
|
||||
|
@ -369,9 +369,9 @@ float Terrain::getHeight(float x, float z, Vec3 * normal) const
|
|||
}
|
||||
}
|
||||
|
||||
float Terrain::getHeight(Vec2 pos, Vec3*Normal) const
|
||||
float Terrain::getHeight(const Vec2& pos, Vec3* normal) const
|
||||
{
|
||||
return getHeight(pos.x,pos.y,Normal);
|
||||
return getHeight(pos.x, pos.y, normal);
|
||||
}
|
||||
|
||||
float Terrain::getImageHeight(int pixel_x,int pixel_y) const
|
||||
|
@ -606,7 +606,7 @@ void Terrain::setMaxDetailMapAmount(int max_value)
|
|||
_maxDetailMapValue = max_value;
|
||||
}
|
||||
|
||||
cocos2d::Vec2 Terrain::convertToTerrainSpace(Vec2 worldSpaceXZ) const
|
||||
cocos2d::Vec2 Terrain::convertToTerrainSpace(const Vec2& worldSpaceXZ) const
|
||||
{
|
||||
Vec2 pos(worldSpaceXZ.x,worldSpaceXZ.y);
|
||||
|
||||
|
@ -1638,14 +1638,14 @@ Terrain::DetailMap::DetailMap()
|
|||
_detailMapSize = 35;
|
||||
}
|
||||
|
||||
Terrain::Triangle::Triangle(Vec3 p1, Vec3 p2, Vec3 p3)
|
||||
Terrain::Triangle::Triangle(const Vec3& p1, const Vec3& p2, const Vec3& p3)
|
||||
{
|
||||
_p1 = p1;
|
||||
_p2 = p2;
|
||||
_p3 = p3;
|
||||
}
|
||||
|
||||
void Terrain::Triangle::transform(cocos2d::Mat4 matrix)
|
||||
void Terrain::Triangle::transform(const cocos2d::Mat4& matrix)
|
||||
{
|
||||
matrix.transformPoint(&_p1);
|
||||
matrix.transformPoint(&_p2);
|
||||
|
|
|
@ -114,9 +114,9 @@ public:
|
|||
*/
|
||||
struct Triangle
|
||||
{
|
||||
Triangle(Vec3 p1, Vec3 p2, Vec3 p3);
|
||||
Triangle(const Vec3& p1, const Vec3& p2, const Vec3& p3);
|
||||
bool getInsterctPoint(const Ray &ray, Vec3& interScetPoint) const;
|
||||
void transform(Mat4 matrix);
|
||||
void transform(const Mat4& matrix);
|
||||
Vec3 _p1, _p2, _p3;
|
||||
};
|
||||
|
||||
|
@ -181,7 +181,7 @@ private:
|
|||
{
|
||||
/*constructor*/
|
||||
TerrainVertexData(){};
|
||||
TerrainVertexData(Vec3 v1, Tex2F v2)
|
||||
TerrainVertexData(const Vec3& v1, const Tex2F& v2)
|
||||
{
|
||||
_position = v1;
|
||||
_texcoord = v2;
|
||||
|
@ -334,7 +334,7 @@ public:
|
|||
* @param normal the specified position's normal vector in terrain . if this argument is NULL or nullptr,Normal calculation shall be skip.
|
||||
* @return the height value of the specified position of the terrain, if the (X,Z) position is out of the terrain bounds,it shall return 0;
|
||||
**/
|
||||
float getHeight(Vec2 pos, Vec3*Normal = nullptr) const;
|
||||
float getHeight(const Vec2& pos, Vec3* normal = nullptr) const;
|
||||
|
||||
/**get the normal of the specified position in terrain
|
||||
* @return the normal vector of the specified position of the terrain.
|
||||
|
@ -387,7 +387,7 @@ public:
|
|||
/**
|
||||
* Convert a world Space position (X,Z) to terrain space position (X,Z)
|
||||
*/
|
||||
Vec2 convertToTerrainSpace(Vec2 worldSpace) const;
|
||||
Vec2 convertToTerrainSpace(const Vec2& worldSpace) const;
|
||||
|
||||
/**
|
||||
* reset the heightmap data.
|
||||
|
@ -442,7 +442,7 @@ protected:
|
|||
* recursively set each chunk's LOD
|
||||
* @param cameraPos the camera position in world space
|
||||
**/
|
||||
void setChunksLOD(Vec3 cameraPos);
|
||||
void setChunksLOD(const Vec3& cameraPos);
|
||||
|
||||
/**
|
||||
* load Vertices from height filed for the whole terrain.
|
||||
|
|
|
@ -277,9 +277,9 @@ LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dxandroid_static
|
|||
# define the macro to compile through support/zip_support/ioapi.c
|
||||
LOCAL_CFLAGS := -DUSE_FILE32API
|
||||
LOCAL_CFLAGS += -fexceptions
|
||||
LOCAL_CPPFLAGS := -Wno-deprecated-declarations -Wno-extern-c-compat
|
||||
LOCAL_CPPFLAGS := -Wno-deprecated-declarations
|
||||
LOCAL_EXPORT_CFLAGS := -DUSE_FILE32API
|
||||
LOCAL_EXPORT_CPPFLAGS := -Wno-deprecated-declarations -Wno-extern-c-compat
|
||||
LOCAL_EXPORT_CPPFLAGS := -Wno-deprecated-declarations
|
||||
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
|
|
|
@ -40,6 +40,8 @@
|
|||
#include "audio/winrt/AudioEngine-winrt.h"
|
||||
#elif CC_TARGET_PLATFORM == CC_PLATFORM_LINUX
|
||||
#include "audio/linux/AudioEngine-linux.h"
|
||||
#elif CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN
|
||||
#include "audio/tizen/AudioEngine-tizen.h"
|
||||
#endif
|
||||
|
||||
#define TIME_DELAY_PRECISION 0.0001
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include "base/CCDirector.h"
|
||||
#include "base/CCScheduler.h"
|
||||
#include "platform/android/CCFileUtils-android.h"
|
||||
#include "platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h"
|
||||
|
||||
using namespace cocos2d;
|
||||
using namespace cocos2d::experimental;
|
||||
|
@ -104,27 +105,31 @@ bool AudioPlayer::init(SLEngineItf engineEngine, SLObjectItf outputMixObject,con
|
|||
SLDataFormat_MIME format_mime = {SL_DATAFORMAT_MIME, NULL, SL_CONTAINERTYPE_UNSPECIFIED};
|
||||
audioSrc.pFormat = &format_mime;
|
||||
|
||||
if (fileFullPath[0] != '/'){
|
||||
std::string relativePath = "";
|
||||
|
||||
if (fileFullPath[0] != '/') {
|
||||
off_t start, length;
|
||||
std::string relativePath;
|
||||
size_t position = fileFullPath.find("assets/");
|
||||
|
||||
if (0 == position) {
|
||||
// "assets/" is at the beginning of the path and we don't want it
|
||||
relativePath += fileFullPath.substr(strlen("assets/"));
|
||||
relativePath = fileFullPath.substr(strlen("assets/"));
|
||||
} else {
|
||||
relativePath += fileFullPath;
|
||||
relativePath = fileFullPath;
|
||||
}
|
||||
|
||||
auto asset = AAssetManager_open(cocos2d::FileUtilsAndroid::getAssetManager(), relativePath.c_str(), AASSET_MODE_UNKNOWN);
|
||||
|
||||
// open asset as file descriptor
|
||||
off_t start, length;
|
||||
_assetFd = AAsset_openFileDescriptor(asset, &start, &length);
|
||||
if (_assetFd <= 0){
|
||||
if (cocos2d::FileUtilsAndroid::getObbFile() != nullptr) {
|
||||
_assetFd = getObbAssetFileDescriptorJNI(relativePath.c_str(), &start, &length);
|
||||
} else {
|
||||
auto asset = AAssetManager_open(cocos2d::FileUtilsAndroid::getAssetManager(), relativePath.c_str(), AASSET_MODE_UNKNOWN);
|
||||
// open asset as file descriptor
|
||||
_assetFd = AAsset_openFileDescriptor(asset, &start, &length);
|
||||
AAsset_close(asset);
|
||||
}
|
||||
|
||||
if (_assetFd <= 0) {
|
||||
CCLOGERROR("Failed to open file descriptor for '%s'", fileFullPath.c_str());
|
||||
break;
|
||||
}
|
||||
AAsset_close(asset);
|
||||
|
||||
// configure audio source
|
||||
loc_fd = {SL_DATALOCATOR_ANDROIDFD, _assetFd, start, length};
|
||||
|
|
|
@ -75,12 +75,12 @@ AndroidJavaEngine::~AndroidJavaEngine()
|
|||
|
||||
void AndroidJavaEngine::preloadBackgroundMusic(const char* filePath) {
|
||||
std::string fullPath = CocosDenshion::android::getFullPathWithoutAssetsPrefix(filePath);
|
||||
JniHelper::callStaticVoidMethod(helperClassName, "preloadBackgroundMusic", filePath);
|
||||
JniHelper::callStaticVoidMethod(helperClassName, "preloadBackgroundMusic", fullPath);
|
||||
}
|
||||
|
||||
void AndroidJavaEngine::playBackgroundMusic(const char* filePath, bool loop) {
|
||||
std::string fullPath = CocosDenshion::android::getFullPathWithoutAssetsPrefix(filePath);
|
||||
JniHelper::callStaticVoidMethod(helperClassName, "playBackgroundMusic", filePath, loop);
|
||||
JniHelper::callStaticVoidMethod(helperClassName, "playBackgroundMusic", fullPath, loop);
|
||||
}
|
||||
|
||||
void AndroidJavaEngine::stopBackgroundMusic(bool releaseData) {
|
||||
|
|
|
@ -24,7 +24,8 @@ THE SOFTWARE.
|
|||
|
||||
#include "audio/include/SimpleAudioEngine.h"
|
||||
#include "audio/ios/SimpleAudioEngine_objc.h"
|
||||
#include "cocos2d.h"
|
||||
#include "platform/CCFileUtils.h"
|
||||
|
||||
USING_NS_CC;
|
||||
|
||||
static void static_end()
|
||||
|
|
|
@ -1,21 +1,28 @@
|
|||
/**
|
||||
* @author cesarpachon
|
||||
*/
|
||||
*/
|
||||
#include <cstring>
|
||||
#include <cstdint>
|
||||
#include "audio/linux/AudioEngine-linux.h"
|
||||
#include "cocos2d.h"
|
||||
|
||||
#include "base/CCDirector.h"
|
||||
#include "base/CCScheduler.h"
|
||||
#include "platform/CCFileUtils.h"
|
||||
|
||||
using namespace cocos2d;
|
||||
using namespace cocos2d::experimental;
|
||||
|
||||
AudioEngineImpl * g_AudioEngineImpl = nullptr;
|
||||
|
||||
void ERRCHECKWITHEXIT(FMOD_RESULT result) {
|
||||
void ERRCHECKWITHEXIT(FMOD_RESULT result)
|
||||
{
|
||||
if (result != FMOD_OK) {
|
||||
printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result));
|
||||
}
|
||||
}
|
||||
|
||||
bool ERRCHECK(FMOD_RESULT result) {
|
||||
bool ERRCHECK(FMOD_RESULT result)
|
||||
{
|
||||
if (result != FMOD_OK) {
|
||||
printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result));
|
||||
return true;
|
||||
|
@ -23,280 +30,298 @@ bool ERRCHECK(FMOD_RESULT result) {
|
|||
return false;
|
||||
}
|
||||
|
||||
FMOD_RESULT F_CALLBACK channelCallback(FMOD_CHANNELCONTROL *channelcontrol,
|
||||
FMOD_CHANNELCONTROL_TYPE controltype,
|
||||
FMOD_CHANNELCONTROL_CALLBACK_TYPE callbacktype,
|
||||
FMOD_RESULT F_CALLBACK channelCallback(FMOD_CHANNELCONTROL *channelcontrol,
|
||||
FMOD_CHANNELCONTROL_TYPE controltype,
|
||||
FMOD_CHANNELCONTROL_CALLBACK_TYPE callbacktype,
|
||||
void *commandData1, void *commandData2)
|
||||
{
|
||||
|
||||
if(controltype == FMOD_CHANNELCONTROL_CHANNEL && callbacktype == FMOD_CHANNELCONTROL_CALLBACK_END){
|
||||
if (controltype == FMOD_CHANNELCONTROL_CHANNEL && callbacktype == FMOD_CHANNELCONTROL_CALLBACK_END) {
|
||||
g_AudioEngineImpl->onSoundFinished((FMOD::Channel *)channelcontrol);
|
||||
}else{
|
||||
}
|
||||
return FMOD_OK;
|
||||
}
|
||||
|
||||
|
||||
AudioEngineImpl::AudioEngineImpl(){
|
||||
};
|
||||
|
||||
AudioEngineImpl::~AudioEngineImpl(){
|
||||
FMOD_RESULT result;
|
||||
result = pSystem->close();
|
||||
ERRCHECKWITHEXIT(result);
|
||||
result = pSystem->release();
|
||||
ERRCHECKWITHEXIT(result);
|
||||
};
|
||||
|
||||
|
||||
bool AudioEngineImpl::init(){
|
||||
FMOD_RESULT result;
|
||||
/*
|
||||
Create a System object and initialize.
|
||||
*/
|
||||
result = FMOD::System_Create(&pSystem);
|
||||
ERRCHECKWITHEXIT(result);
|
||||
|
||||
result = pSystem->setOutput(FMOD_OUTPUTTYPE_PULSEAUDIO);
|
||||
ERRCHECKWITHEXIT(result);
|
||||
|
||||
result = pSystem->init(32, FMOD_INIT_NORMAL, 0);
|
||||
ERRCHECKWITHEXIT(result);
|
||||
|
||||
mapChannelInfo.clear();
|
||||
mapSound.clear();
|
||||
|
||||
auto scheduler = cocos2d::Director::getInstance()->getScheduler();
|
||||
scheduler->schedule(schedule_selector(AudioEngineImpl::update), this, 0.05f, false);
|
||||
|
||||
g_AudioEngineImpl = this;
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
int AudioEngineImpl::play2d(const std::string &fileFullPath ,bool loop ,float volume){
|
||||
int id = preload(fileFullPath, nullptr);
|
||||
if(id >= 0){
|
||||
mapChannelInfo[id].loop=loop;
|
||||
mapChannelInfo[id].channel->setPaused(true);
|
||||
mapChannelInfo[id].volume = volume;
|
||||
AudioEngine::_audioIDInfoMap[id].state = AudioEngine::AudioState::PAUSED;
|
||||
resume(id);
|
||||
}
|
||||
return id;
|
||||
};
|
||||
|
||||
void AudioEngineImpl::setVolume(int audioID,float volume){
|
||||
try{
|
||||
mapChannelInfo[audioID].channel->setVolume(volume);
|
||||
}catch(const std::out_of_range& oor){
|
||||
printf("AudioEngineImpl::setVolume: invalid audioID: %d\n", audioID);
|
||||
}
|
||||
};
|
||||
|
||||
void AudioEngineImpl::setLoop(int audioID, bool loop){
|
||||
try{
|
||||
mapChannelInfo[audioID].channel->setLoopCount(loop?-1:0);
|
||||
}catch(const std::out_of_range& oor){
|
||||
printf("AudioEngineImpl::setLoop: invalid audioID: %d\n", audioID);
|
||||
}
|
||||
};
|
||||
|
||||
bool AudioEngineImpl::pause(int audioID){
|
||||
try{
|
||||
mapChannelInfo[audioID].channel->setPaused(true);
|
||||
AudioEngine::_audioIDInfoMap[audioID].state = AudioEngine::AudioState::PAUSED;
|
||||
return true;
|
||||
}catch(const std::out_of_range& oor){
|
||||
printf("AudioEngineImpl::pause: invalid audioID: %d\n", audioID);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
bool AudioEngineImpl::resume(int audioID){
|
||||
try{
|
||||
|
||||
if(!mapChannelInfo[audioID].channel){
|
||||
FMOD::Channel *channel = nullptr;
|
||||
FMOD::ChannelGroup *channelgroup = nullptr;
|
||||
//starts the sound in pause mode, use the channel to unpause
|
||||
FMOD_RESULT result = pSystem->playSound(mapChannelInfo[audioID].sound, channelgroup, true, &channel);
|
||||
if(ERRCHECK(result)){
|
||||
return false;
|
||||
}
|
||||
channel->setMode(mapChannelInfo[audioID].loop?FMOD_LOOP_NORMAL:FMOD_LOOP_OFF);
|
||||
channel->setLoopCount(mapChannelInfo[audioID].loop?-1:0);
|
||||
channel->setVolume(mapChannelInfo[audioID].volume);
|
||||
channel->setUserData((void *)mapChannelInfo[audioID].id);
|
||||
mapChannelInfo[audioID].channel = channel;
|
||||
}
|
||||
|
||||
mapChannelInfo[audioID].channel->setPaused(false);
|
||||
AudioEngine::_audioIDInfoMap[audioID].state = AudioEngine::AudioState::PLAYING;
|
||||
|
||||
return true;
|
||||
}catch(const std::out_of_range& oor){
|
||||
printf("AudioEngineImpl::resume: invalid audioID: %d\n", audioID);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
bool AudioEngineImpl::stop(int audioID){
|
||||
try{
|
||||
mapChannelInfo[audioID].channel->stop();
|
||||
mapChannelInfo[audioID].channel = nullptr;
|
||||
return true;
|
||||
}catch(const std::out_of_range& oor){
|
||||
printf("AudioEngineImpl::stop: invalid audioID: %d\n", audioID);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AudioEngineImpl::stopAll(){
|
||||
for (auto it = mapChannelInfo.begin(); it != mapChannelInfo.end(); ++it) {
|
||||
ChannelInfo & audioRef = it->second;
|
||||
audioRef.channel->stop();
|
||||
audioRef.channel = nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
float AudioEngineImpl::getDuration(int audioID){
|
||||
try{
|
||||
FMOD::Sound * sound = mapChannelInfo[audioID].sound;
|
||||
unsigned int length;
|
||||
FMOD_RESULT result = sound->getLength(&length, FMOD_TIMEUNIT_MS);
|
||||
ERRCHECK(result);
|
||||
float duration = (float)length / 1000.0f;
|
||||
return duration;
|
||||
}catch(const std::out_of_range& oor){
|
||||
printf("AudioEngineImpl::getDuration: invalid audioID: %d\n", audioID);
|
||||
return AudioEngine::TIME_UNKNOWN;
|
||||
}
|
||||
};
|
||||
|
||||
float AudioEngineImpl::getCurrentTime(int audioID){
|
||||
try{
|
||||
unsigned int position;
|
||||
FMOD_RESULT result = mapChannelInfo[audioID].channel->getPosition(&position, FMOD_TIMEUNIT_MS);
|
||||
ERRCHECK(result);
|
||||
float currenttime = position /1000.0f;
|
||||
return currenttime;
|
||||
}catch(const std::out_of_range& oor){
|
||||
printf("AudioEngineImpl::getCurrentTime: invalid audioID: %d\n", audioID);
|
||||
return AudioEngine::TIME_UNKNOWN;
|
||||
}
|
||||
};
|
||||
|
||||
bool AudioEngineImpl::setCurrentTime(int audioID, float time){
|
||||
try{
|
||||
unsigned int position = (unsigned int)(time * 1000.0f);
|
||||
FMOD_RESULT result = mapChannelInfo[audioID].channel->setPosition(position, FMOD_TIMEUNIT_MS);
|
||||
ERRCHECK(result);
|
||||
}catch(const std::out_of_range& oor){
|
||||
printf("AudioEngineImpl::setCurrentTime: invalid audioID: %d\n", audioID);
|
||||
}
|
||||
};
|
||||
|
||||
void AudioEngineImpl::setFinishCallback(int audioID, const std::function<void (int, const std::string &)> &callback){
|
||||
try{
|
||||
FMOD::Channel * channel = mapChannelInfo[audioID].channel;
|
||||
mapChannelInfo[audioID].callback = callback;
|
||||
FMOD_RESULT result = channel->setCallback(channelCallback);
|
||||
ERRCHECK(result);
|
||||
}catch(const std::out_of_range& oor){
|
||||
printf("AudioEngineImpl::setFinishCallback: invalid audioID: %d\n", audioID);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
void AudioEngineImpl::onSoundFinished(FMOD::Channel * channel){
|
||||
size_t id;
|
||||
try{
|
||||
void * data;
|
||||
channel->getUserData(&data);
|
||||
id = (size_t) data;
|
||||
if(mapChannelInfo[id].callback){
|
||||
mapChannelInfo[id].callback(id, mapChannelInfo[id].path);
|
||||
}
|
||||
mapChannelInfo[id].channel = nullptr;
|
||||
}catch(const std::out_of_range& oor){
|
||||
printf("AudioEngineImpl::onSoundFinished: invalid audioID: %d\n", id);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
void AudioEngineImpl::uncache(const std::string& path){
|
||||
std::string fullPath = FileUtils::getInstance()->fullPathForFilename(path);
|
||||
std::map<std::string, FMOD::Sound *>::const_iterator it = mapSound.find(fullPath);
|
||||
if(it!=mapSound.end()){
|
||||
FMOD::Sound * sound = it->second;
|
||||
if(sound){
|
||||
sound->release();
|
||||
}
|
||||
mapSound.erase(it);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
void AudioEngineImpl::uncacheAll(){
|
||||
for (auto it = mapSound.cbegin(); it != mapSound.cend(); ++it) {
|
||||
auto sound = it->second;
|
||||
if(sound){
|
||||
sound->release();
|
||||
}
|
||||
}
|
||||
mapSound.clear();
|
||||
};
|
||||
|
||||
|
||||
int AudioEngineImpl::preload(const std::string& filePath, std::function<void(bool isSuccess)> callback){
|
||||
FMOD::Sound * sound = findSound(filePath);
|
||||
if(!sound){
|
||||
std::string fullPath = FileUtils::getInstance()->fullPathForFilename(filePath);
|
||||
FMOD_RESULT result = pSystem->createSound(fullPath.c_str(), FMOD_LOOP_OFF, 0, &sound);
|
||||
if (ERRCHECK(result)){
|
||||
printf("sound effect in %s could not be preload\n", filePath.c_str());
|
||||
if(callback){
|
||||
callback(false);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
mapSound[fullPath] = sound;
|
||||
}
|
||||
|
||||
int id = mapChannelInfo.size() + 1;
|
||||
auto& chanelInfo = mapChannelInfo[id];
|
||||
chanelInfo.sound = sound;
|
||||
chanelInfo.id = (size_t) id;
|
||||
chanelInfo.channel = nullptr;
|
||||
chanelInfo.callback = nullptr;
|
||||
chanelInfo.path = filePath;
|
||||
//we are going to use UserData to store pointer to Channel when playing
|
||||
chanelInfo.sound->setUserData((void *)id);
|
||||
|
||||
if(callback){
|
||||
callback(true);
|
||||
}
|
||||
return id;
|
||||
};
|
||||
|
||||
|
||||
void AudioEngineImpl::update(float dt){
|
||||
pSystem->update();
|
||||
};
|
||||
|
||||
|
||||
FMOD::Sound * AudioEngineImpl::findSound(const std::string &path){
|
||||
std::string fullPath = FileUtils::getInstance()->fullPathForFilename(path);
|
||||
std::map<std::string, FMOD::Sound *>::const_iterator it = mapSound.find(fullPath);
|
||||
return (it!=mapSound.end())?(it->second):nullptr;
|
||||
AudioEngineImpl::AudioEngineImpl()
|
||||
{
|
||||
}
|
||||
|
||||
AudioEngineImpl::~AudioEngineImpl()
|
||||
{
|
||||
FMOD_RESULT result;
|
||||
result = pSystem->close();
|
||||
ERRCHECKWITHEXIT(result);
|
||||
result = pSystem->release();
|
||||
ERRCHECKWITHEXIT(result);
|
||||
}
|
||||
|
||||
FMOD::Channel * AudioEngineImpl::getChannel(FMOD::Sound *sound){
|
||||
size_t id;
|
||||
void * data;
|
||||
sound->getUserData(&data);
|
||||
id = (size_t) data;
|
||||
return mapChannelInfo[id].channel;
|
||||
};
|
||||
bool AudioEngineImpl::init()
|
||||
{
|
||||
FMOD_RESULT result;
|
||||
/*
|
||||
Create a System object and initialize.
|
||||
*/
|
||||
result = FMOD::System_Create(&pSystem);
|
||||
ERRCHECKWITHEXIT(result);
|
||||
|
||||
result = pSystem->setOutput(FMOD_OUTPUTTYPE_PULSEAUDIO);
|
||||
ERRCHECKWITHEXIT(result);
|
||||
|
||||
result = pSystem->init(32, FMOD_INIT_NORMAL, 0);
|
||||
ERRCHECKWITHEXIT(result);
|
||||
|
||||
mapChannelInfo.clear();
|
||||
mapSound.clear();
|
||||
|
||||
auto scheduler = cocos2d::Director::getInstance()->getScheduler();
|
||||
scheduler->schedule(schedule_selector(AudioEngineImpl::update), this, 0.05f, false);
|
||||
|
||||
g_AudioEngineImpl = this;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int AudioEngineImpl::play2d(const std::string &fileFullPath, bool loop, float volume)
|
||||
{
|
||||
int id = preload(fileFullPath, nullptr);
|
||||
if (id >= 0) {
|
||||
mapChannelInfo[id].loop=loop;
|
||||
mapChannelInfo[id].channel->setPaused(true);
|
||||
mapChannelInfo[id].volume = volume;
|
||||
AudioEngine::_audioIDInfoMap[id].state = AudioEngine::AudioState::PAUSED;
|
||||
resume(id);
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
void AudioEngineImpl::setVolume(int audioID, float volume)
|
||||
{
|
||||
try {
|
||||
mapChannelInfo[audioID].channel->setVolume(volume);
|
||||
}
|
||||
catch (const std::out_of_range& oor) {
|
||||
printf("AudioEngineImpl::setVolume: invalid audioID: %d\n", audioID);
|
||||
}
|
||||
}
|
||||
|
||||
void AudioEngineImpl::setLoop(int audioID, bool loop)
|
||||
{
|
||||
try {
|
||||
mapChannelInfo[audioID].channel->setLoopCount(loop ? -1 : 0);
|
||||
}
|
||||
catch (const std::out_of_range& oor) {
|
||||
printf("AudioEngineImpl::setLoop: invalid audioID: %d\n", audioID);
|
||||
}
|
||||
}
|
||||
|
||||
bool AudioEngineImpl::pause(int audioID)
|
||||
{
|
||||
try {
|
||||
mapChannelInfo[audioID].channel->setPaused(true);
|
||||
AudioEngine::_audioIDInfoMap[audioID].state = AudioEngine::AudioState::PAUSED;
|
||||
return true;
|
||||
}
|
||||
catch (const std::out_of_range& oor) {
|
||||
printf("AudioEngineImpl::pause: invalid audioID: %d\n", audioID);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool AudioEngineImpl::resume(int audioID)
|
||||
{
|
||||
try {
|
||||
if (!mapChannelInfo[audioID].channel) {
|
||||
FMOD::Channel *channel = nullptr;
|
||||
FMOD::ChannelGroup *channelgroup = nullptr;
|
||||
//starts the sound in pause mode, use the channel to unpause
|
||||
FMOD_RESULT result = pSystem->playSound(mapChannelInfo[audioID].sound, channelgroup, true, &channel);
|
||||
if (ERRCHECK(result)) {
|
||||
return false;
|
||||
}
|
||||
channel->setMode(mapChannelInfo[audioID].loop ? FMOD_LOOP_NORMAL : FMOD_LOOP_OFF);
|
||||
channel->setLoopCount(mapChannelInfo[audioID].loop ? -1 : 0);
|
||||
channel->setVolume(mapChannelInfo[audioID].volume);
|
||||
channel->setUserData(reinterpret_cast<void *>(static_cast<std::intptr_t>(mapChannelInfo[audioID].id)));
|
||||
mapChannelInfo[audioID].channel = channel;
|
||||
}
|
||||
|
||||
mapChannelInfo[audioID].channel->setPaused(false);
|
||||
AudioEngine::_audioIDInfoMap[audioID].state = AudioEngine::AudioState::PLAYING;
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (const std::out_of_range& oor) {
|
||||
printf("AudioEngineImpl::resume: invalid audioID: %d\n", audioID);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool AudioEngineImpl::stop(int audioID)
|
||||
{
|
||||
try {
|
||||
mapChannelInfo[audioID].channel->stop();
|
||||
mapChannelInfo[audioID].channel = nullptr;
|
||||
return true;
|
||||
}
|
||||
catch (const std::out_of_range& oor) {
|
||||
printf("AudioEngineImpl::stop: invalid audioID: %d\n", audioID);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void AudioEngineImpl::stopAll()
|
||||
{
|
||||
for (auto it = mapChannelInfo.begin(); it != mapChannelInfo.end(); ++it) {
|
||||
ChannelInfo & audioRef = it->second;
|
||||
audioRef.channel->stop();
|
||||
audioRef.channel = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
float AudioEngineImpl::getDuration(int audioID)
|
||||
{
|
||||
try {
|
||||
FMOD::Sound * sound = mapChannelInfo[audioID].sound;
|
||||
unsigned int length;
|
||||
FMOD_RESULT result = sound->getLength(&length, FMOD_TIMEUNIT_MS);
|
||||
ERRCHECK(result);
|
||||
float duration = (float)length / 1000.0f;
|
||||
return duration;
|
||||
}
|
||||
catch (const std::out_of_range& oor) {
|
||||
printf("AudioEngineImpl::getDuration: invalid audioID: %d\n", audioID);
|
||||
return AudioEngine::TIME_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
float AudioEngineImpl::getCurrentTime(int audioID)
|
||||
{
|
||||
try {
|
||||
unsigned int position;
|
||||
FMOD_RESULT result = mapChannelInfo[audioID].channel->getPosition(&position, FMOD_TIMEUNIT_MS);
|
||||
ERRCHECK(result);
|
||||
float currenttime = position /1000.0f;
|
||||
return currenttime;
|
||||
}
|
||||
catch (const std::out_of_range& oor) {
|
||||
printf("AudioEngineImpl::getCurrentTime: invalid audioID: %d\n", audioID);
|
||||
return AudioEngine::TIME_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
bool AudioEngineImpl::setCurrentTime(int audioID, float time)
|
||||
{
|
||||
try {
|
||||
unsigned int position = (unsigned int)(time * 1000.0f);
|
||||
FMOD_RESULT result = mapChannelInfo[audioID].channel->setPosition(position, FMOD_TIMEUNIT_MS);
|
||||
ERRCHECK(result);
|
||||
}
|
||||
catch (const std::out_of_range& oor) {
|
||||
printf("AudioEngineImpl::setCurrentTime: invalid audioID: %d\n", audioID);
|
||||
}
|
||||
}
|
||||
|
||||
void AudioEngineImpl::setFinishCallback(int audioID, const std::function<void (int, const std::string &)> &callback)
|
||||
{
|
||||
try {
|
||||
FMOD::Channel * channel = mapChannelInfo[audioID].channel;
|
||||
mapChannelInfo[audioID].callback = callback;
|
||||
FMOD_RESULT result = channel->setCallback(channelCallback);
|
||||
ERRCHECK(result);
|
||||
}
|
||||
catch (const std::out_of_range& oor) {
|
||||
printf("AudioEngineImpl::setFinishCallback: invalid audioID: %d\n", audioID);
|
||||
}
|
||||
}
|
||||
|
||||
void AudioEngineImpl::onSoundFinished(FMOD::Channel * channel)
|
||||
{
|
||||
int id = 0;
|
||||
try {
|
||||
void * data;
|
||||
channel->getUserData(&data);
|
||||
id = static_cast<int>(reinterpret_cast<std::intptr_t>(data));
|
||||
if (mapChannelInfo[id].callback) {
|
||||
mapChannelInfo[id].callback(id, mapChannelInfo[id].path);
|
||||
}
|
||||
mapChannelInfo[id].channel = nullptr;
|
||||
}
|
||||
catch (const std::out_of_range& oor) {
|
||||
printf("AudioEngineImpl::onSoundFinished: invalid audioID: %d\n", id);
|
||||
}
|
||||
}
|
||||
|
||||
void AudioEngineImpl::uncache(const std::string& path)
|
||||
{
|
||||
std::string fullPath = FileUtils::getInstance()->fullPathForFilename(path);
|
||||
std::map<std::string, FMOD::Sound *>::const_iterator it = mapSound.find(fullPath);
|
||||
if (it!=mapSound.end()) {
|
||||
FMOD::Sound * sound = it->second;
|
||||
if (sound) {
|
||||
sound->release();
|
||||
}
|
||||
mapSound.erase(it);
|
||||
}
|
||||
}
|
||||
|
||||
void AudioEngineImpl::uncacheAll()
|
||||
{
|
||||
for (auto it = mapSound.cbegin(); it != mapSound.cend(); ++it) {
|
||||
auto sound = it->second;
|
||||
if (sound) {
|
||||
sound->release();
|
||||
}
|
||||
}
|
||||
mapSound.clear();
|
||||
}
|
||||
|
||||
int AudioEngineImpl::preload(const std::string& filePath, std::function<void(bool isSuccess)> callback)
|
||||
{
|
||||
FMOD::Sound * sound = findSound(filePath);
|
||||
if (!sound) {
|
||||
std::string fullPath = FileUtils::getInstance()->fullPathForFilename(filePath);
|
||||
FMOD_RESULT result = pSystem->createSound(fullPath.c_str(), FMOD_LOOP_OFF, 0, &sound);
|
||||
if (ERRCHECK(result)) {
|
||||
printf("sound effect in %s could not be preload\n", filePath.c_str());
|
||||
if (callback) {
|
||||
callback(false);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
mapSound[fullPath] = sound;
|
||||
}
|
||||
|
||||
int id = static_cast<int>(mapChannelInfo.size()) + 1;
|
||||
auto& chanelInfo = mapChannelInfo[id];
|
||||
chanelInfo.sound = sound;
|
||||
chanelInfo.id = id;
|
||||
chanelInfo.channel = nullptr;
|
||||
chanelInfo.callback = nullptr;
|
||||
chanelInfo.path = filePath;
|
||||
//we are going to use UserData to store pointer to Channel when playing
|
||||
chanelInfo.sound->setUserData(reinterpret_cast<void *>(static_cast<std::intptr_t>(id)));
|
||||
|
||||
if (callback) {
|
||||
callback(true);
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
void AudioEngineImpl::update(float dt)
|
||||
{
|
||||
pSystem->update();
|
||||
}
|
||||
|
||||
FMOD::Sound * AudioEngineImpl::findSound(const std::string &path)
|
||||
{
|
||||
std::string fullPath = FileUtils::getInstance()->fullPathForFilename(path);
|
||||
std::map<std::string, FMOD::Sound *>::const_iterator it = mapSound.find(fullPath);
|
||||
return (it != mapSound.end()) ? (it->second) : nullptr;
|
||||
}
|
||||
|
||||
FMOD::Channel * AudioEngineImpl::getChannel(FMOD::Sound *sound)
|
||||
{
|
||||
void * data;
|
||||
sound->getUserData(&data);
|
||||
int id = static_cast<int>(reinterpret_cast<std::intptr_t>(data));
|
||||
return mapChannelInfo[id].channel;
|
||||
}
|
||||
|
|
|
@ -83,7 +83,7 @@ private:
|
|||
FMOD::Channel * getChannel(FMOD::Sound *);
|
||||
|
||||
struct ChannelInfo{
|
||||
size_t id;
|
||||
int id;
|
||||
std::string path;
|
||||
FMOD::Sound * sound;
|
||||
FMOD::Channel * channel;
|
||||
|
|
|
@ -7,205 +7,224 @@ using namespace CocosDenshion;
|
|||
using namespace cocos2d;
|
||||
using namespace cocos2d::experimental;
|
||||
|
||||
|
||||
struct SimpleAudioEngineLinux{
|
||||
SimpleAudioEngine * engine = nullptr;
|
||||
int musicid;
|
||||
float effectsvolume;
|
||||
std::string musicpath;
|
||||
struct SimpleAudioEngineLinux {
|
||||
SimpleAudioEngine * engine = nullptr;
|
||||
int musicid;
|
||||
float effectsvolume;
|
||||
std::string musicpath;
|
||||
};
|
||||
|
||||
SimpleAudioEngineLinux * g_SimpleAudioEngineLinux = nullptr;
|
||||
SimpleAudioEngineLinux * g_SimpleAudioEngineLinux = nullptr;
|
||||
|
||||
|
||||
SimpleAudioEngine* SimpleAudioEngine::getInstance(){
|
||||
if(!g_SimpleAudioEngineLinux){
|
||||
g_SimpleAudioEngineLinux = new SimpleAudioEngineLinux();
|
||||
g_SimpleAudioEngineLinux->engine = new SimpleAudioEngine();
|
||||
}
|
||||
return g_SimpleAudioEngineLinux->engine;
|
||||
};
|
||||
|
||||
void SimpleAudioEngine::end(){
|
||||
if(g_SimpleAudioEngineLinux){
|
||||
delete g_SimpleAudioEngineLinux->engine;
|
||||
delete g_SimpleAudioEngineLinux;
|
||||
SimpleAudioEngine* SimpleAudioEngine::getInstance()
|
||||
{
|
||||
if (!g_SimpleAudioEngineLinux) {
|
||||
g_SimpleAudioEngineLinux = new SimpleAudioEngineLinux();
|
||||
g_SimpleAudioEngineLinux->engine = new SimpleAudioEngine();
|
||||
}
|
||||
g_SimpleAudioEngineLinux = nullptr;
|
||||
};
|
||||
|
||||
|
||||
SimpleAudioEngine::SimpleAudioEngine(){
|
||||
g_SimpleAudioEngineLinux->musicid = -1;
|
||||
g_SimpleAudioEngineLinux->effectsvolume = 1.0f;
|
||||
};
|
||||
return g_SimpleAudioEngineLinux->engine;
|
||||
}
|
||||
|
||||
SimpleAudioEngine::~SimpleAudioEngine(){
|
||||
|
||||
};
|
||||
void SimpleAudioEngine::end()
|
||||
{
|
||||
if (g_SimpleAudioEngineLinux) {
|
||||
delete g_SimpleAudioEngineLinux->engine;
|
||||
delete g_SimpleAudioEngineLinux;
|
||||
}
|
||||
g_SimpleAudioEngineLinux = nullptr;
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::preloadBackgroundMusic(const char* filePath){
|
||||
g_SimpleAudioEngineLinux->musicpath = filePath;
|
||||
AudioEngine::preload(filePath);
|
||||
};
|
||||
|
||||
void SimpleAudioEngine::playBackgroundMusic(const char* filePath, bool loop){
|
||||
g_SimpleAudioEngineLinux->musicpath = filePath;
|
||||
g_SimpleAudioEngineLinux->musicid = AudioEngine::play2d(filePath, loop);
|
||||
};
|
||||
SimpleAudioEngine::SimpleAudioEngine()
|
||||
{
|
||||
g_SimpleAudioEngineLinux->musicid = -1;
|
||||
g_SimpleAudioEngineLinux->effectsvolume = 1.0f;
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::stopBackgroundMusic(bool releaseData){
|
||||
AudioEngine::stop(g_SimpleAudioEngineLinux->musicid);
|
||||
if(releaseData){
|
||||
AudioEngine::uncache(g_SimpleAudioEngineLinux->musicpath.c_str());
|
||||
}
|
||||
};
|
||||
SimpleAudioEngine::~SimpleAudioEngine()
|
||||
{
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::pauseBackgroundMusic(){
|
||||
AudioEngine::pause(g_SimpleAudioEngineLinux->musicid);
|
||||
};
|
||||
void SimpleAudioEngine::preloadBackgroundMusic(const char* filePath)
|
||||
{
|
||||
g_SimpleAudioEngineLinux->musicpath = filePath;
|
||||
AudioEngine::preload(filePath);
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::resumeBackgroundMusic(){
|
||||
AudioEngine::resume(g_SimpleAudioEngineLinux->musicid);
|
||||
};
|
||||
void SimpleAudioEngine::playBackgroundMusic(const char* filePath, bool loop)
|
||||
{
|
||||
g_SimpleAudioEngineLinux->musicpath = filePath;
|
||||
g_SimpleAudioEngineLinux->musicid = AudioEngine::play2d(filePath, loop);
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::rewindBackgroundMusic(){
|
||||
AudioEngine::setCurrentTime(g_SimpleAudioEngineLinux->musicid, 0);
|
||||
};
|
||||
void SimpleAudioEngine::stopBackgroundMusic(bool releaseData)
|
||||
{
|
||||
AudioEngine::stop(g_SimpleAudioEngineLinux->musicid);
|
||||
if (releaseData) {
|
||||
AudioEngine::uncache(g_SimpleAudioEngineLinux->musicpath.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
bool SimpleAudioEngine::willPlayBackgroundMusic(){
|
||||
return g_SimpleAudioEngineLinux->musicid != -1;
|
||||
};
|
||||
void SimpleAudioEngine::pauseBackgroundMusic()
|
||||
{
|
||||
AudioEngine::pause(g_SimpleAudioEngineLinux->musicid);
|
||||
}
|
||||
|
||||
bool SimpleAudioEngine::isBackgroundMusicPlaying(){
|
||||
return AudioEngine::getState(g_SimpleAudioEngineLinux->musicid) == AudioEngine::AudioState::PLAYING;
|
||||
};
|
||||
void SimpleAudioEngine::resumeBackgroundMusic()
|
||||
{
|
||||
AudioEngine::resume(g_SimpleAudioEngineLinux->musicid);
|
||||
}
|
||||
|
||||
//
|
||||
// properties
|
||||
//
|
||||
void SimpleAudioEngine::rewindBackgroundMusic()
|
||||
{
|
||||
AudioEngine::setCurrentTime(g_SimpleAudioEngineLinux->musicid, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* The volume of the background music within the range of 0.0 as the minimum and 1.0 as the maximum.
|
||||
* @js getMusicVolume
|
||||
* @lua getMusicVolume
|
||||
*/
|
||||
float SimpleAudioEngine::getBackgroundMusicVolume(){
|
||||
return AudioEngine::getVolume(g_SimpleAudioEngineLinux->musicid);
|
||||
};
|
||||
bool SimpleAudioEngine::willPlayBackgroundMusic()
|
||||
{
|
||||
return g_SimpleAudioEngineLinux->musicid != -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the volume of background music.
|
||||
*
|
||||
* @param volume must be within the range of 0.0 as the minimum and 1.0 as the maximum.
|
||||
* @js setMusicVolume
|
||||
* @lua setMusicVolume
|
||||
*/
|
||||
void SimpleAudioEngine::setBackgroundMusicVolume(float volume){
|
||||
AudioEngine::setVolume(g_SimpleAudioEngineLinux->musicid, volume);
|
||||
};
|
||||
bool SimpleAudioEngine::isBackgroundMusicPlaying()
|
||||
{
|
||||
return AudioEngine::getState(g_SimpleAudioEngineLinux->musicid) == AudioEngine::AudioState::PLAYING;
|
||||
}
|
||||
|
||||
/**
|
||||
* The volume of the effects within the range of 0.0 as the minimum and 1.0 as the maximum.
|
||||
*/
|
||||
float SimpleAudioEngine::getEffectsVolume(){
|
||||
return g_SimpleAudioEngineLinux->effectsvolume;
|
||||
};
|
||||
//
|
||||
// properties
|
||||
//
|
||||
|
||||
/**
|
||||
* Set the volume of sound effects.
|
||||
*
|
||||
* @param volume must be within the range of 0.0 as the minimum and 1.0 as the maximum.
|
||||
*/
|
||||
void SimpleAudioEngine::setEffectsVolume(float volume){
|
||||
g_SimpleAudioEngineLinux->effectsvolume = volume;
|
||||
};
|
||||
/**
|
||||
* The volume of the background music within the range of 0.0 as the minimum and 1.0 as the maximum.
|
||||
* @js getMusicVolume
|
||||
* @lua getMusicVolume
|
||||
*/
|
||||
float SimpleAudioEngine::getBackgroundMusicVolume()
|
||||
{
|
||||
return AudioEngine::getVolume(g_SimpleAudioEngineLinux->musicid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Play sound effect with a file path, pitch, pan and gain.
|
||||
*
|
||||
* @param filePath The path of the effect file.
|
||||
* @param loop Determines whether to loop the effect playing or not. The default value is false.
|
||||
* @param pitch Frequency, normal value is 1.0. Will also change effect play time.
|
||||
* @param pan Stereo effect, in the range of [-1..1] where -1 enables only left channel.
|
||||
* @param gain Volume, in the range of [0..1]. The normal value is 1.
|
||||
* @return The sound id.
|
||||
*
|
||||
* @note Full support is under development, now there are limitations:
|
||||
* - no pitch effect on Samsung Galaxy S2 with OpenSL backend enabled;
|
||||
* - no pitch/pan/gain on win32.
|
||||
*/
|
||||
unsigned int SimpleAudioEngine::playEffect(const char* filePath, bool loop, float pitch, float pan, float gain){
|
||||
return AudioEngine::play2d(filePath, loop, gain);
|
||||
};
|
||||
/**
|
||||
* Set the volume of background music.
|
||||
*
|
||||
* @param volume must be within the range of 0.0 as the minimum and 1.0 as the maximum.
|
||||
* @js setMusicVolume
|
||||
* @lua setMusicVolume
|
||||
*/
|
||||
void SimpleAudioEngine::setBackgroundMusicVolume(float volume)
|
||||
{
|
||||
AudioEngine::setVolume(g_SimpleAudioEngineLinux->musicid, volume);
|
||||
}
|
||||
|
||||
/**
|
||||
* Pause playing sound effect.
|
||||
*
|
||||
* @param soundId The return value of function playEffect.
|
||||
*/
|
||||
void SimpleAudioEngine::pauseEffect(unsigned int soundId){
|
||||
AudioEngine::pause(soundId);
|
||||
};
|
||||
/**
|
||||
* The volume of the effects within the range of 0.0 as the minimum and 1.0 as the maximum.
|
||||
*/
|
||||
float SimpleAudioEngine::getEffectsVolume()
|
||||
{
|
||||
return g_SimpleAudioEngineLinux->effectsvolume;
|
||||
}
|
||||
|
||||
/**
|
||||
* Pause all playing sound effect.
|
||||
*/
|
||||
void SimpleAudioEngine::pauseAllEffects(){
|
||||
AudioEngine::pauseAll();
|
||||
};
|
||||
/**
|
||||
* Set the volume of sound effects.
|
||||
*
|
||||
* @param volume must be within the range of 0.0 as the minimum and 1.0 as the maximum.
|
||||
*/
|
||||
void SimpleAudioEngine::setEffectsVolume(float volume)
|
||||
{
|
||||
g_SimpleAudioEngineLinux->effectsvolume = volume;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resume playing sound effect.
|
||||
*
|
||||
* @param soundId The return value of function playEffect.
|
||||
*/
|
||||
void SimpleAudioEngine::resumeEffect(unsigned int soundId){
|
||||
AudioEngine::resume(soundId);
|
||||
};
|
||||
/**
|
||||
* Play sound effect with a file path, pitch, pan and gain.
|
||||
*
|
||||
* @param filePath The path of the effect file.
|
||||
* @param loop Determines whether to loop the effect playing or not. The default value is false.
|
||||
* @param pitch Frequency, normal value is 1.0. Will also change effect play time.
|
||||
* @param pan Stereo effect, in the range of [-1..1] where -1 enables only left channel.
|
||||
* @param gain Volume, in the range of [0..1]. The normal value is 1.
|
||||
* @return The sound id.
|
||||
*
|
||||
* @note Full support is under development, now there are limitations:
|
||||
* - no pitch effect on Samsung Galaxy S2 with OpenSL backend enabled;
|
||||
* - no pitch/pan/gain on win32.
|
||||
*/
|
||||
unsigned int SimpleAudioEngine::playEffect(const char* filePath, bool loop, float pitch, float pan, float gain)
|
||||
{
|
||||
return AudioEngine::play2d(filePath, loop, gain);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resume all playing sound effect.
|
||||
*/
|
||||
void SimpleAudioEngine::resumeAllEffects(){
|
||||
AudioEngine::resumeAll();
|
||||
};
|
||||
/**
|
||||
* Pause playing sound effect.
|
||||
*
|
||||
* @param soundId The return value of function playEffect.
|
||||
*/
|
||||
void SimpleAudioEngine::pauseEffect(unsigned int soundId)
|
||||
{
|
||||
AudioEngine::pause(soundId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop playing sound effect.
|
||||
*
|
||||
* @param soundId The return value of function playEffect.
|
||||
*/
|
||||
void SimpleAudioEngine::stopEffect(unsigned int soundId){
|
||||
AudioEngine::stop(soundId);
|
||||
};
|
||||
/**
|
||||
* Pause all playing sound effect.
|
||||
*/
|
||||
void SimpleAudioEngine::pauseAllEffects()
|
||||
{
|
||||
AudioEngine::pauseAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop all playing sound effects.
|
||||
*/
|
||||
void SimpleAudioEngine::stopAllEffects(){
|
||||
AudioEngine::stopAll();
|
||||
};
|
||||
/**
|
||||
* Resume playing sound effect.
|
||||
*
|
||||
* @param soundId The return value of function playEffect.
|
||||
*/
|
||||
void SimpleAudioEngine::resumeEffect(unsigned int soundId)
|
||||
{
|
||||
AudioEngine::resume(soundId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Preload a compressed audio file.
|
||||
*
|
||||
* The compressed audio will be decoded to wave, then written into an internal buffer in SimpleAudioEngine.
|
||||
*
|
||||
* @param filePath The path of the effect file.
|
||||
* @js NA
|
||||
*/
|
||||
void SimpleAudioEngine::preloadEffect(const char* filePath){
|
||||
AudioEngine::preload(filePath);
|
||||
};
|
||||
/**
|
||||
* Resume all playing sound effect.
|
||||
*/
|
||||
void SimpleAudioEngine::resumeAllEffects()
|
||||
{
|
||||
AudioEngine::resumeAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Unload the preloaded effect from internal buffer.
|
||||
*
|
||||
* @param filePath The path of the effect file.
|
||||
*/
|
||||
void SimpleAudioEngine::unloadEffect(const char* filePath){
|
||||
AudioEngine::uncache(filePath);
|
||||
};
|
||||
/**
|
||||
* Stop playing sound effect.
|
||||
*
|
||||
* @param soundId The return value of function playEffect.
|
||||
*/
|
||||
void SimpleAudioEngine::stopEffect(unsigned int soundId)
|
||||
{
|
||||
AudioEngine::stop(soundId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Stop all playing sound effects.
|
||||
*/
|
||||
void SimpleAudioEngine::stopAllEffects()
|
||||
{
|
||||
AudioEngine::stopAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Preload a compressed audio file.
|
||||
*
|
||||
* The compressed audio will be decoded to wave, then written into an internal buffer in SimpleAudioEngine.
|
||||
*
|
||||
* @param filePath The path of the effect file.
|
||||
* @js NA
|
||||
*/
|
||||
void SimpleAudioEngine::preloadEffect(const char* filePath)
|
||||
{
|
||||
AudioEngine::preload(filePath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unload the preloaded effect from internal buffer.
|
||||
*
|
||||
* @param filePath The path of the effect file.
|
||||
*/
|
||||
void SimpleAudioEngine::unloadEffect(const char* filePath)
|
||||
{
|
||||
AudioEngine::uncache(filePath);
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#else
|
||||
#include <AL/al.h>
|
||||
#endif
|
||||
#include "cocos2d.h"
|
||||
|
||||
|
||||
#if CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN
|
||||
#define DISABLE_VORBIS
|
||||
|
|
|
@ -0,0 +1,402 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2014 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#include "platform/CCPlatformConfig.h"
|
||||
#if CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN
|
||||
|
||||
#include "audio/tizen/AudioEngine-tizen.h"
|
||||
|
||||
// for native asset manager
|
||||
#include <condition_variable>
|
||||
#include <sys/types.h>
|
||||
#include <sound_manager.h>
|
||||
#include "audio/include/AudioEngine.h"
|
||||
#include "base/CCDirector.h"
|
||||
#include "base/CCScheduler.h"
|
||||
#include "platform/CCFileUtils.h"
|
||||
|
||||
#include <queue>
|
||||
|
||||
class AudioEngineThreadPool
|
||||
{
|
||||
public:
|
||||
AudioEngineThreadPool()
|
||||
: _running(true) {
|
||||
_threads = std::thread(std::bind(&AudioEngineThreadPool::threadFunc, this));
|
||||
}
|
||||
|
||||
~AudioEngineThreadPool()
|
||||
{
|
||||
_running = false;
|
||||
_sleepCondition.notify_one();
|
||||
_threads.join();
|
||||
}
|
||||
|
||||
void addTask(const std::function<void()> &task) {
|
||||
_tasks.push(task);
|
||||
_sleepCondition.notify_one();
|
||||
}
|
||||
private:
|
||||
bool _running;
|
||||
std::thread _threads;
|
||||
std::queue< std::function<void ()> > _tasks;
|
||||
|
||||
void threadFunc(void) {
|
||||
while (true) {
|
||||
std::function<void ()> task = nullptr;
|
||||
|
||||
if (_tasks.empty())
|
||||
{
|
||||
if (!_running)
|
||||
{
|
||||
break;
|
||||
}
|
||||
std::unique_lock<std::mutex> lk(_sleepMutex);
|
||||
_sleepCondition.wait(lk);
|
||||
continue;
|
||||
}
|
||||
|
||||
task = _tasks.front();
|
||||
|
||||
task();
|
||||
|
||||
_tasks.pop();
|
||||
}
|
||||
}
|
||||
|
||||
std::mutex _sleepMutex;
|
||||
std::condition_variable _sleepCondition;
|
||||
};
|
||||
|
||||
static AudioEngineThreadPool* _threadPool = nullptr;
|
||||
|
||||
using namespace cocos2d;
|
||||
using namespace cocos2d::experimental;
|
||||
|
||||
AudioPlayer::AudioPlayer()
|
||||
: _playerHandle(nullptr)
|
||||
, _finishCallback(nullptr)
|
||||
, _initCallback(nullptr)
|
||||
, _duration(0.0f)
|
||||
, _playOver(false)
|
||||
, _initSucceed(false)
|
||||
{
|
||||
}
|
||||
|
||||
static void _stopPlayer(player_h player)
|
||||
{
|
||||
player_state_e state = PLAYER_STATE_NONE;
|
||||
player_get_state(player, &state);
|
||||
if (state == PLAYER_STATE_PLAYING || state == PLAYER_STATE_PAUSED)
|
||||
{
|
||||
player_stop(player);
|
||||
}
|
||||
player_unprepare(player);
|
||||
}
|
||||
|
||||
static void _pausePlayer(player_h player)
|
||||
{
|
||||
player_state_e state;
|
||||
player_get_state(player, &state);
|
||||
|
||||
if(state == PLAYER_STATE_PLAYING)
|
||||
{
|
||||
player_pause(player);
|
||||
}
|
||||
}
|
||||
|
||||
static void _resumePlayer(player_h player)
|
||||
{
|
||||
player_state_e state;
|
||||
player_get_state(player, &state);
|
||||
|
||||
if(state != PLAYER_STATE_PLAYING)
|
||||
{
|
||||
player_start(player);
|
||||
}
|
||||
}
|
||||
|
||||
AudioPlayer::~AudioPlayer()
|
||||
{
|
||||
_taskMutex.lock();
|
||||
_threadPool->addTask(std::bind(_stopPlayer, _playerHandle));
|
||||
_threadPool->addTask(std::bind(player_destroy, _playerHandle));
|
||||
_taskMutex.unlock();
|
||||
}
|
||||
|
||||
void AudioPlayer::stopPlayer()
|
||||
{
|
||||
_playOver = true;
|
||||
}
|
||||
|
||||
static void completed_callback(void* user_data)
|
||||
{
|
||||
AudioPlayer* player = (AudioPlayer*)user_data;
|
||||
player->stopPlayer();
|
||||
}
|
||||
|
||||
void AudioPlayer::init(const std::string& fileFullPath, float volume, bool loop)
|
||||
{
|
||||
do
|
||||
{
|
||||
player_h player;
|
||||
auto playerRet = player_create(&player);
|
||||
if(playerRet != PLAYER_ERROR_NONE)
|
||||
{
|
||||
log("Fail to create player.Error code:%d",playerRet);
|
||||
break;
|
||||
}
|
||||
|
||||
_playerHandle = player;
|
||||
playerRet = player_set_uri(player, fileFullPath.c_str());
|
||||
if(playerRet != PLAYER_ERROR_NONE)
|
||||
{
|
||||
log("Fail to sets the data source for player.Error code:%d",playerRet);
|
||||
break;
|
||||
}
|
||||
|
||||
player_set_volume(player, volume, volume);
|
||||
player_set_completed_cb(player, completed_callback, this);
|
||||
if (loop)
|
||||
{
|
||||
player_set_looping(player, true);
|
||||
}
|
||||
playerRet = player_prepare(player);
|
||||
if(playerRet != PLAYER_ERROR_NONE){
|
||||
log("Fail to prepares the media player for playback.Error code:%d",playerRet);
|
||||
break;
|
||||
}
|
||||
|
||||
playerRet = player_start(player);
|
||||
if(playerRet != PLAYER_ERROR_NONE){
|
||||
log("Fail to starts playback.Error code:%d",playerRet);
|
||||
break;
|
||||
}
|
||||
|
||||
_initSucceed = true;
|
||||
} while (0);
|
||||
|
||||
if (_initCallback)
|
||||
{
|
||||
_initCallback();
|
||||
}
|
||||
_taskMutex.unlock();
|
||||
}
|
||||
|
||||
//====================================================
|
||||
AudioEngineImpl::AudioEngineImpl()
|
||||
: currentAudioID(0)
|
||||
, _lazyInitLoop(true)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
AudioEngineImpl::~AudioEngineImpl()
|
||||
{
|
||||
this->stopAll();
|
||||
|
||||
if (_threadPool)
|
||||
{
|
||||
delete _threadPool;
|
||||
_threadPool = nullptr;
|
||||
}
|
||||
auto scheduler = Director::getInstance()->getScheduler();
|
||||
scheduler->unschedule(schedule_selector(AudioEngineImpl::update), this);
|
||||
}
|
||||
|
||||
bool AudioEngineImpl::init()
|
||||
{
|
||||
sound_manager_set_session_type(SOUND_SESSION_TYPE_MEDIA);
|
||||
sound_manager_set_media_session_option(SOUND_SESSION_OPTION_MIX_WITH_OTHERS_WHEN_START,
|
||||
SOUND_SESSION_OPTION_INTERRUPTIBLE_DURING_PLAY);
|
||||
sound_manager_set_media_session_resumption_option(SOUND_SESSION_OPTION_RESUMPTION_BY_SYSTEM_OR_MEDIA_PAUSED);
|
||||
|
||||
if (!_threadPool)
|
||||
{
|
||||
_threadPool = new (std::nothrow) AudioEngineThreadPool();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int AudioEngineImpl::play2d(const std::string &filePath ,bool loop ,float volume)
|
||||
{
|
||||
auto audioId = AudioEngine::INVALID_AUDIO_ID;
|
||||
|
||||
do
|
||||
{
|
||||
audioId = currentAudioID++;
|
||||
|
||||
auto& player = _audioPlayers[audioId];
|
||||
player._audioID = audioId;
|
||||
player._initCallback = std::bind(&AudioEngineImpl::initPlayerCallback,this,&player,audioId);
|
||||
|
||||
player._taskMutex.lock();
|
||||
_threadPool->addTask(std::bind(&AudioPlayer::init,&player,FileUtils::getInstance()->fullPathForFilename(filePath), volume, loop));
|
||||
|
||||
if (_lazyInitLoop) {
|
||||
_lazyInitLoop = false;
|
||||
|
||||
auto scheduler = Director::getInstance()->getScheduler();
|
||||
scheduler->schedule(schedule_selector(AudioEngineImpl::update), this, 0.03f, false);
|
||||
}
|
||||
} while (0);
|
||||
|
||||
return audioId;
|
||||
}
|
||||
|
||||
void AudioEngineImpl::initPlayerCallback(AudioPlayer *player, int audioID)
|
||||
{
|
||||
if (player->_initSucceed)
|
||||
{
|
||||
AudioEngine::_audioIDInfoMap[audioID].state = AudioEngine::AudioState::PLAYING;
|
||||
}
|
||||
else
|
||||
{
|
||||
_threadMutex.lock();
|
||||
_toRemoveAudioIDs.push_back(audioID);
|
||||
_threadMutex.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
void AudioEngineImpl::update(float dt)
|
||||
{
|
||||
if (_threadMutex.try_lock()) {
|
||||
int audioID;
|
||||
size_t removeAudioCount = _toRemoveAudioIDs.size();
|
||||
for (size_t index = 0; index < removeAudioCount; ++index) {
|
||||
audioID = _toRemoveAudioIDs[index];
|
||||
auto playerIt = _audioPlayers.find(audioID);
|
||||
if (playerIt != _audioPlayers.end()) {
|
||||
if(playerIt->second._finishCallback) {
|
||||
auto& audioInfo = AudioEngine::_audioIDInfoMap[audioID];
|
||||
playerIt->second._finishCallback(audioID, *audioInfo.filePath);
|
||||
}
|
||||
_audioPlayers.erase(audioID);
|
||||
AudioEngine::remove(audioID);
|
||||
}
|
||||
}
|
||||
_threadMutex.unlock();
|
||||
}
|
||||
|
||||
auto itend = _audioPlayers.end();
|
||||
for (auto iter = _audioPlayers.begin(); iter != itend; ++iter)
|
||||
{
|
||||
if(iter->second._playOver)
|
||||
{
|
||||
if (iter->second._finishCallback)
|
||||
iter->second._finishCallback(iter->second._audioID, *AudioEngine::_audioIDInfoMap[iter->second._audioID].filePath);
|
||||
|
||||
AudioEngine::remove(iter->second._audioID);
|
||||
_audioPlayers.erase(iter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(_audioPlayers.empty()){
|
||||
_lazyInitLoop = true;
|
||||
|
||||
auto scheduler = Director::getInstance()->getScheduler();
|
||||
scheduler->unschedule(schedule_selector(AudioEngineImpl::update), this);
|
||||
}
|
||||
}
|
||||
|
||||
void AudioEngineImpl::setVolume(int audioID,float volume)
|
||||
{
|
||||
auto& player = _audioPlayers[audioID];
|
||||
player_set_volume(player._playerHandle, volume, volume);
|
||||
}
|
||||
|
||||
void AudioEngineImpl::setLoop(int audioID, bool loop)
|
||||
{
|
||||
auto& player = _audioPlayers[audioID];
|
||||
player_set_looping(player._playerHandle, loop);
|
||||
}
|
||||
|
||||
void AudioEngineImpl::pause(int audioID)
|
||||
{
|
||||
auto& player = _audioPlayers[audioID];
|
||||
_threadPool->addTask(std::bind(_pausePlayer, player._playerHandle));
|
||||
}
|
||||
|
||||
void AudioEngineImpl::resume(int audioID)
|
||||
{
|
||||
auto& player = _audioPlayers[audioID];
|
||||
_threadPool->addTask(std::bind(_resumePlayer, player._playerHandle));
|
||||
}
|
||||
|
||||
void AudioEngineImpl::stop(int audioID)
|
||||
{
|
||||
_audioPlayers.erase(audioID);
|
||||
}
|
||||
|
||||
void AudioEngineImpl::stopAll()
|
||||
{
|
||||
_audioPlayers.clear();
|
||||
}
|
||||
|
||||
float AudioEngineImpl::getDuration(int audioID)
|
||||
{
|
||||
int duration;
|
||||
auto& player = _audioPlayers[audioID];
|
||||
auto ret = player_get_duration(player._playerHandle, &duration);
|
||||
if(ret != PLAYER_ERROR_NONE)
|
||||
{
|
||||
log("Fail to get duration:%d",ret);
|
||||
}
|
||||
return duration / 1000.0f;
|
||||
}
|
||||
|
||||
float AudioEngineImpl::getCurrentTime(int audioID)
|
||||
{
|
||||
int currPos;
|
||||
auto& player = _audioPlayers[audioID];
|
||||
auto ret = player_get_play_position(player._playerHandle, &currPos);
|
||||
if(ret != PLAYER_ERROR_NONE)
|
||||
{
|
||||
CCLOG("Fail to get position:%d",ret);
|
||||
}
|
||||
return currPos / 1000.0f;
|
||||
}
|
||||
|
||||
bool AudioEngineImpl::setCurrentTime(int audioID, float time)
|
||||
{
|
||||
auto& player = _audioPlayers[audioID];
|
||||
int pos = 1000 * time;
|
||||
player_set_play_position(player._playerHandle, pos, true, NULL, NULL);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void AudioEngineImpl::setFinishCallback(int audioID, const std::function<void (int, const std::string &)> &callback)
|
||||
{
|
||||
_audioPlayers[audioID]._finishCallback = callback;
|
||||
}
|
||||
|
||||
void AudioEngineImpl::preload(const std::string& filePath, std::function<void(bool)> callback)
|
||||
{
|
||||
//TODO: implement preload on Tizen platform.
|
||||
}
|
||||
|
||||
#endif
|
|
@ -0,0 +1,117 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2014 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#include "platform/CCPlatformConfig.h"
|
||||
#if CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN
|
||||
|
||||
#ifndef __AUDIO_ENGINE_TIZEN_H_
|
||||
#define __AUDIO_ENGINE_TIZEN_H_
|
||||
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <mutex>
|
||||
#include <vector>
|
||||
#include <player.h>
|
||||
|
||||
#include "base/CCRef.h"
|
||||
#include "base/ccUtils.h"
|
||||
|
||||
#define MAX_AUDIOINSTANCES 8
|
||||
|
||||
#define ERRORLOG(msg) log("fun:%s,line:%d,msg:%s",__func__,__LINE__,#msg)
|
||||
|
||||
NS_CC_BEGIN
|
||||
namespace experimental{
|
||||
class AudioEngineImpl;
|
||||
|
||||
class AudioPlayer
|
||||
{
|
||||
public:
|
||||
AudioPlayer();
|
||||
~AudioPlayer();
|
||||
|
||||
void init(const std::string& fileFullPath, float volume, bool loop);
|
||||
void stopPlayer();
|
||||
|
||||
player_h _playerHandle;
|
||||
std::function<void()> _initCallback;
|
||||
std::mutex _taskMutex;
|
||||
|
||||
private:
|
||||
bool _playOver;
|
||||
float _duration;
|
||||
int _audioID;
|
||||
bool _initSucceed;
|
||||
|
||||
std::function<void (int, const std::string &)> _finishCallback;
|
||||
|
||||
friend class AudioEngineImpl;
|
||||
};
|
||||
|
||||
class AudioEngineImpl : public cocos2d::Ref
|
||||
{
|
||||
public:
|
||||
AudioEngineImpl();
|
||||
~AudioEngineImpl();
|
||||
|
||||
bool init();
|
||||
int play2d(const std::string &fileFullPath ,bool loop ,float volume);
|
||||
void setVolume(int audioID,float volume);
|
||||
void setLoop(int audioID, bool loop);
|
||||
void pause(int audioID);
|
||||
void resume(int audioID);
|
||||
void stop(int audioID);
|
||||
void stopAll();
|
||||
float getDuration(int audioID);
|
||||
float getCurrentTime(int audioID);
|
||||
bool setCurrentTime(int audioID, float time);
|
||||
void setFinishCallback(int audioID, const std::function<void (int, const std::string &)> &callback);
|
||||
|
||||
void uncache(const std::string& filePath){}
|
||||
void uncacheAll(){}
|
||||
|
||||
void update(float dt);
|
||||
|
||||
void preload(const std::string& filePath, std::function<void(bool)> callback);
|
||||
|
||||
private:
|
||||
void initPlayerCallback(AudioPlayer *player, int audioID);
|
||||
|
||||
//audioID,AudioInfo
|
||||
std::unordered_map<int, AudioPlayer> _audioPlayers;
|
||||
|
||||
std::mutex _threadMutex;
|
||||
std::vector<int> _toRemoveAudioIDs;
|
||||
|
||||
int currentAudioID;
|
||||
|
||||
bool _lazyInitLoop;
|
||||
};
|
||||
|
||||
}
|
||||
NS_CC_END
|
||||
|
||||
#endif // __AUDIO_ENGINE_TIZEN_H_
|
||||
|
||||
#endif
|
|
@ -0,0 +1,217 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2014 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#include "platform/CCPlatformConfig.h"
|
||||
#if CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN
|
||||
|
||||
#include "audio/include/SimpleAudioEngine.h"
|
||||
#include "audio/include/AudioEngine.h"
|
||||
|
||||
USING_NS_CC;
|
||||
using namespace cocos2d::experimental;
|
||||
|
||||
static float s_bgMusicVolume = 1.0f;
|
||||
static float s_effectVolume = 1.0f;
|
||||
|
||||
namespace CocosDenshion {
|
||||
|
||||
SimpleAudioEngine::SimpleAudioEngine() {
|
||||
|
||||
}
|
||||
|
||||
SimpleAudioEngine::~SimpleAudioEngine() {
|
||||
}
|
||||
|
||||
SimpleAudioEngine* SimpleAudioEngine::getInstance() {
|
||||
static SimpleAudioEngine s_SharedEngine;
|
||||
return &s_SharedEngine;
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::end() {
|
||||
AudioEngine::end();
|
||||
}
|
||||
|
||||
static int s_bgAudioID = AudioEngine::INVALID_AUDIO_ID;
|
||||
static std::string bgMusicFilePath;
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// BackgroundMusic
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void SimpleAudioEngine::playBackgroundMusic(const char* pszFilePath,bool bLoop) {
|
||||
if (s_bgAudioID != AudioEngine::INVALID_AUDIO_ID)
|
||||
{
|
||||
AudioEngine::stop(s_bgAudioID);
|
||||
s_bgAudioID = AudioEngine::INVALID_AUDIO_ID;
|
||||
}
|
||||
|
||||
if (pszFilePath)
|
||||
{
|
||||
bgMusicFilePath = pszFilePath;
|
||||
s_bgAudioID = AudioEngine::play2d(pszFilePath,bLoop,s_bgMusicVolume);
|
||||
}
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::stopBackgroundMusic(bool bReleaseData) {
|
||||
AudioEngine::stop(s_bgAudioID);
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::pauseBackgroundMusic() {
|
||||
AudioEngine::pause(s_bgAudioID);
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::resumeBackgroundMusic() {
|
||||
AudioEngine::resume(s_bgAudioID);
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::rewindBackgroundMusic() {
|
||||
AudioEngine::stop(s_bgAudioID);
|
||||
if (!bgMusicFilePath.empty())
|
||||
{
|
||||
s_bgAudioID = AudioEngine::play2d(bgMusicFilePath);
|
||||
}
|
||||
}
|
||||
|
||||
bool SimpleAudioEngine::willPlayBackgroundMusic() {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool SimpleAudioEngine::isBackgroundMusicPlaying() {
|
||||
auto state = AudioEngine::getState(s_bgAudioID);
|
||||
if (state == AudioEngine::AudioState::PLAYING)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::preloadBackgroundMusic(const char* pszFilePath) {
|
||||
bgMusicFilePath = pszFilePath;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// effect function
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
unsigned int SimpleAudioEngine::playEffect(const char* pszFilePath, bool bLoop,
|
||||
float pitch, float pan, float gain) {
|
||||
return AudioEngine::play2d(pszFilePath,bLoop,s_effectVolume);
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::stopEffect(unsigned int nSoundId) {
|
||||
AudioEngine::stop(nSoundId);
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::preloadEffect(const char* pszFilePath) {
|
||||
// FIXME: need implementation
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::unloadEffect(const char* pszFilePath) {
|
||||
AudioEngine::uncache(pszFilePath);
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::pauseEffect(unsigned int uSoundId) {
|
||||
AudioEngine::pause(uSoundId);
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::pauseAllEffects() {
|
||||
bool resumeBGMusic = false;
|
||||
auto state = AudioEngine::getState(s_bgAudioID);
|
||||
if (state == AudioEngine::AudioState::PLAYING)
|
||||
{
|
||||
resumeBGMusic = true;
|
||||
}
|
||||
AudioEngine::pauseAll();
|
||||
if (resumeBGMusic)
|
||||
{
|
||||
AudioEngine::resume(s_bgAudioID);
|
||||
}
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::resumeEffect(unsigned int uSoundId) {
|
||||
AudioEngine::resume(uSoundId);
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::resumeAllEffects() {
|
||||
bool pauseBGMusic = false;
|
||||
auto state = AudioEngine::getState(s_bgAudioID);
|
||||
if (state == AudioEngine::AudioState::PAUSED)
|
||||
{
|
||||
pauseBGMusic = true;
|
||||
}
|
||||
AudioEngine::resumeAll();
|
||||
if (pauseBGMusic)
|
||||
{
|
||||
AudioEngine::pause(s_bgAudioID);
|
||||
}
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::stopAllEffects() {
|
||||
//FIXME
|
||||
AudioEngine::stopAll();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// volume interface
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
float SimpleAudioEngine::getBackgroundMusicVolume() {
|
||||
return s_bgMusicVolume;
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::setBackgroundMusicVolume(float volume) {
|
||||
if (volume > 1.0f)
|
||||
{
|
||||
volume = 1.0f;
|
||||
}
|
||||
else if(volume < 0.0f)
|
||||
{
|
||||
volume = 0.0f;
|
||||
}
|
||||
s_bgMusicVolume = volume;
|
||||
AudioEngine::setVolume(s_bgAudioID, s_bgMusicVolume);
|
||||
}
|
||||
|
||||
float SimpleAudioEngine::getEffectsVolume() {
|
||||
return s_effectVolume;
|
||||
}
|
||||
|
||||
void SimpleAudioEngine::setEffectsVolume(float volume) {
|
||||
if (volume > 1.0f)
|
||||
{
|
||||
volume = 1.0f;
|
||||
}
|
||||
else if(volume < 0.0f)
|
||||
{
|
||||
volume = 0.0f;
|
||||
}
|
||||
s_effectVolume = volume;
|
||||
//FIXME
|
||||
}
|
||||
|
||||
|
||||
} // end of namespace CocosDenshion
|
||||
|
||||
#endif
|
|
@ -28,7 +28,8 @@ THE SOFTWARE.
|
|||
#include <cstdlib>
|
||||
|
||||
#include "audio/win32/MciPlayer.h"
|
||||
#include "cocos2d.h"
|
||||
#include "platform/CCFileUtils.h"
|
||||
|
||||
USING_NS_CC;
|
||||
|
||||
using namespace std;
|
||||
|
|
|
@ -18,10 +18,11 @@
|
|||
|
||||
#include "audio/include/SimpleAudioEngine.h"
|
||||
#include "audio/winrt/Audio.h"
|
||||
#include "cocos2d.h"
|
||||
|
||||
#include <map>
|
||||
//#include "platform/CCCommon.h"
|
||||
#include "platform/CCPlatformMacros.h"
|
||||
#include "platform/CCFileUtils.h"
|
||||
|
||||
using namespace std;
|
||||
USING_NS_CC;
|
||||
|
||||
|
@ -83,7 +84,7 @@ void SimpleAudioEngine::playBackgroundMusic(const char* pszFilePath, bool bLoop)
|
|||
return;
|
||||
}
|
||||
|
||||
string fullPath = CCFileUtils::getInstance()->fullPathForFilename(pszFilePath);
|
||||
string fullPath = FileUtils::getInstance()->fullPathForFilename(pszFilePath);
|
||||
sharedAudioController()->PlayBackgroundMusic(fullPath.c_str(), bLoop);
|
||||
}
|
||||
|
||||
|
@ -124,7 +125,7 @@ bool SimpleAudioEngine::isBackgroundMusicPlaying()
|
|||
unsigned int SimpleAudioEngine::playEffect(const char* pszFilePath, bool bLoop,float pitch, float pan, float gain)
|
||||
{
|
||||
unsigned int sound;
|
||||
string fullPath = CCFileUtils::getInstance()->fullPathForFilename(pszFilePath);
|
||||
string fullPath = FileUtils::getInstance()->fullPathForFilename(pszFilePath);
|
||||
sharedAudioController()->PlaySoundEffect(fullPath.c_str(), bLoop, sound); // TODO: need to support playEffect parameters
|
||||
return sound;
|
||||
}
|
||||
|
@ -136,7 +137,7 @@ void SimpleAudioEngine::stopEffect(unsigned int nSoundId)
|
|||
|
||||
void SimpleAudioEngine::preloadEffect(const char* pszFilePath)
|
||||
{
|
||||
string fullPath = CCFileUtils::getInstance()->fullPathForFilename(pszFilePath);
|
||||
string fullPath = FileUtils::getInstance()->fullPathForFilename(pszFilePath);
|
||||
sharedAudioController()->PreloadSoundEffect(fullPath.c_str());
|
||||
}
|
||||
|
||||
|
@ -172,7 +173,7 @@ void SimpleAudioEngine::preloadBackgroundMusic(const char* pszFilePath)
|
|||
|
||||
void SimpleAudioEngine::unloadEffect(const char* pszFilePath)
|
||||
{
|
||||
string fullPath = CCFileUtils::getInstance()->fullPathForFilename(pszFilePath);
|
||||
string fullPath = FileUtils::getInstance()->fullPathForFilename(pszFilePath);
|
||||
sharedAudioController()->UnloadSoundEffect(fullPath.c_str());
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -75,10 +75,70 @@ class CC_DLL Console
|
|||
: public Ref
|
||||
{
|
||||
public:
|
||||
/** Console Utils */
|
||||
class Utility {
|
||||
public:
|
||||
// Trimming functions
|
||||
static std::string& ltrim(std::string& s);
|
||||
static std::string& rtrim(std::string& s);
|
||||
static std::string& trim(std::string& s);
|
||||
|
||||
// split
|
||||
static std::vector<std::string>& split(const std::string& s, char delim, std::vector<std::string>& elems);
|
||||
static std::vector<std::string> split(const std::string& s, char delim);
|
||||
|
||||
/** Checks myString is a floating-point type. */
|
||||
static bool isFloat(const std::string& myString);
|
||||
|
||||
/** send a message to console */
|
||||
static ssize_t sendToConsole(int fd, const void* buffer, size_t length, int flags = 0);
|
||||
|
||||
/** my dprintf() */
|
||||
static ssize_t mydprintf(int sock, const char *format, ...);
|
||||
|
||||
/** send prompt string to console */
|
||||
static void sendPrompt(int fd);
|
||||
|
||||
/** set a new string for the prompt. */
|
||||
static void setPrompt(const std::string &prompt);
|
||||
|
||||
/** get the prompt string. */
|
||||
static const std::string& getPrompt();
|
||||
|
||||
private:
|
||||
static std::string _prompt; /*!< prompt */
|
||||
};
|
||||
|
||||
/** Command Struct */
|
||||
struct Command {
|
||||
using Callback = std::function<void(int fd, const std::string& args)>;
|
||||
std::string name;
|
||||
std::string help;
|
||||
std::function<void(int, const std::string&)> callback;
|
||||
Callback callback{nullptr};
|
||||
std::map<std::string, Command> subCommands;
|
||||
|
||||
/** Constructor */
|
||||
Command() {}
|
||||
Command(std::string name_, std::string help_) : name(name_), help(help_) {};
|
||||
Command(std::string name_, std::string help_, Callback callback_) : name(name_), help(help_), callback(callback_) {};
|
||||
|
||||
/** add callback */
|
||||
void addCallback(const Callback& callback);
|
||||
|
||||
/** add sub command */
|
||||
void addSubCommand(const Command& subCmd);
|
||||
|
||||
/** get sub command */
|
||||
const Command* getSubCommand(const std::string& subCmdName) const;
|
||||
|
||||
/** delete sub command */
|
||||
void delSubCommand(const std::string& subCmdName);
|
||||
|
||||
/** help command handler */
|
||||
void commandHelp(int fd, const std::string& args);
|
||||
|
||||
/** generic command handler */
|
||||
void commandGeneric(int fd, const std::string& args);
|
||||
};
|
||||
|
||||
/** Constructor */
|
||||
|
@ -98,6 +158,19 @@ public:
|
|||
|
||||
/** add custom command */
|
||||
void addCommand(const Command& cmd);
|
||||
void addSubCommand(const std::string& cmdName, const Command& subCmd);
|
||||
void addSubCommand(Command& cmd, const Command& subCmd);
|
||||
|
||||
/** get custom command */
|
||||
const Command* getCommand(const std::string& cmdName);
|
||||
const Command* getSubCommand(const std::string& cmdName, const std::string& subCmdName);
|
||||
const Command* getSubCommand(const Command& cmd, const std::string& subCmdName);
|
||||
|
||||
/** delete custom command */
|
||||
void delCommand(const std::string& cmdName);
|
||||
void delSubCommand(const std::string& cmdName, const std::string& subCmdName);
|
||||
void delSubCommand(Command& cmd, const std::string& subCmdName);
|
||||
|
||||
/** log something in the console */
|
||||
void log(const char *buf);
|
||||
|
||||
|
@ -107,28 +180,63 @@ public:
|
|||
* @address : 127.0.0.1
|
||||
*/
|
||||
void setBindAddress(const std::string &address);
|
||||
|
||||
|
||||
protected:
|
||||
// Main Loop
|
||||
void loop();
|
||||
|
||||
// Helpers
|
||||
ssize_t readline(int fd, char *buf, size_t maxlen);
|
||||
ssize_t readBytes(int fd, char* buffer, size_t maxlen, bool* more);
|
||||
bool parseCommand(int fd);
|
||||
|
||||
void addClient();
|
||||
|
||||
// create a map of command.
|
||||
void createCommandAllocator();
|
||||
void createCommandConfig();
|
||||
void createCommandDebugMsg();
|
||||
void createCommandDirector();
|
||||
void createCommandExit();
|
||||
void createCommandFileUtils();
|
||||
void createCommandFps();
|
||||
void createCommandHelp();
|
||||
void createCommandProjection();
|
||||
void createCommandResolution();
|
||||
void createCommandSceneGraph();
|
||||
void createCommandTexture();
|
||||
void createCommandTouch();
|
||||
void createCommandUpload();
|
||||
void createCommandVersion();
|
||||
|
||||
// Add commands here
|
||||
void commandHelp(int fd, const std::string &args);
|
||||
void commandExit(int fd, const std::string &args);
|
||||
void commandSceneGraph(int fd, const std::string &args);
|
||||
void commandFileUtils(int fd, const std::string &args);
|
||||
void commandConfig(int fd, const std::string &args);
|
||||
void commandTextures(int fd, const std::string &args);
|
||||
void commandResolution(int fd, const std::string &args);
|
||||
void commandProjection(int fd, const std::string &args);
|
||||
void commandDirector(int fd, const std::string &args);
|
||||
void commandTouch(int fd, const std::string &args);
|
||||
void commandAllocator(int fd, const std::string& args);
|
||||
void commandConfig(int fd, const std::string& args);
|
||||
void commandDebugMsg(int fd, const std::string& args);
|
||||
void commandDebugMsgSubCommandOnOff(int fd, const std::string& args);
|
||||
void commandDirectorSubCommandPause(int fd, const std::string& args);
|
||||
void commandDirectorSubCommandResume(int fd, const std::string& args);
|
||||
void commandDirectorSubCommandStop(int fd, const std::string& args);
|
||||
void commandDirectorSubCommandStart(int fd, const std::string& args);
|
||||
void commandDirectorSubCommandEnd(int fd, const std::string& args);
|
||||
void commandExit(int fd, const std::string& args);
|
||||
void commandFileUtils(int fd, const std::string& args);
|
||||
void commandFileUtilsSubCommandFlush(int fd, const std::string& args);
|
||||
void commandFps(int fd, const std::string& args);
|
||||
void commandFpsSubCommandOnOff(int fd, const std::string& args);
|
||||
void commandHelp(int fd, const std::string& args);
|
||||
void commandProjection(int fd, const std::string& args);
|
||||
void commandProjectionSubCommand2d(int fd, const std::string& args);
|
||||
void commandProjectionSubCommand3d(int fd, const std::string& args);
|
||||
void commandResolution(int fd, const std::string& args);
|
||||
void commandResolutionSubCommandEmpty(int fd, const std::string& args);
|
||||
void commandSceneGraph(int fd, const std::string& args);
|
||||
void commandTextures(int fd, const std::string& args);
|
||||
void commandTexturesSubCommandFlush(int fd, const std::string& args);
|
||||
void commandTouchSubCommandTap(int fd, const std::string& args);
|
||||
void commandTouchSubCommandSwipe(int fd, const std::string& args);
|
||||
void commandUpload(int fd);
|
||||
void commandAllocator(int fd, const std::string &args);
|
||||
void commandVersion(int fd, const std::string& args);
|
||||
// file descriptor: socket, console, etc.
|
||||
int _listenfd;
|
||||
int _maxfd;
|
||||
|
@ -152,6 +260,14 @@ protected:
|
|||
std::string _bindAddress;
|
||||
private:
|
||||
CC_DISALLOW_COPY_AND_ASSIGN(Console);
|
||||
|
||||
// helper functions
|
||||
int printSceneGraph(int fd, Node* node, int level);
|
||||
void printSceneGraphBoot(int fd);
|
||||
void printFileUtils(int fd);
|
||||
|
||||
/** send help message to console */
|
||||
static void sendHelp(int fd, const std::map<std::string, Command>& commands, const char* msg);
|
||||
};
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -81,7 +81,7 @@ static GCControllerConnectionEventHandler* __instance = nil;
|
|||
|
||||
-(void)dealloc {
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
[super dealloc];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
-(void) onControllerConnected :(NSNotification *)connectedNotification {
|
||||
|
@ -116,6 +116,9 @@ public:
|
|||
|
||||
void Controller::startDiscoveryController()
|
||||
{
|
||||
if (NSClassFromString(@"GCController") == nil) {
|
||||
return;
|
||||
}
|
||||
[GCController startWirelessControllerDiscoveryWithCompletionHandler: nil];
|
||||
|
||||
[[GCControllerConnectionEventHandler getInstance] observerConnection: ^(GCController* gcController) {
|
||||
|
@ -148,6 +151,9 @@ void Controller::startDiscoveryController()
|
|||
|
||||
void Controller::stopDiscoveryController()
|
||||
{
|
||||
if (NSClassFromString(@"GCController") == nil) {
|
||||
return;
|
||||
}
|
||||
[GCController stopWirelessControllerDiscovery];
|
||||
}
|
||||
|
||||
|
|
|
@ -56,6 +56,8 @@ public:
|
|||
*/
|
||||
enum Key
|
||||
{
|
||||
KEY_NONE = 0,
|
||||
|
||||
JOYSTICK_LEFT_X = 1000,
|
||||
JOYSTICK_LEFT_Y,
|
||||
JOYSTICK_RIGHT_X,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2010-2012 cocos2d-x.org
|
||||
Copyright (c) 2013-2014 Chukong Technologies Inc.
|
||||
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
@ -77,7 +77,7 @@ void Data::move(Data& other)
|
|||
{
|
||||
_bytes = other._bytes;
|
||||
_size = other._size;
|
||||
|
||||
|
||||
other._bytes = nullptr;
|
||||
other._size = 0;
|
||||
}
|
||||
|
@ -100,7 +100,7 @@ ssize_t Data::getSize() const
|
|||
void Data::copy(const unsigned char* bytes, const ssize_t size)
|
||||
{
|
||||
clear();
|
||||
|
||||
|
||||
if (size > 0)
|
||||
{
|
||||
_size = size;
|
||||
|
@ -122,4 +122,13 @@ void Data::clear()
|
|||
_size = 0;
|
||||
}
|
||||
|
||||
unsigned char* Data::takeBuffer(ssize_t* size)
|
||||
{
|
||||
auto buffer = getBytes();
|
||||
if (size)
|
||||
*size = getSize();
|
||||
fastSet(nullptr, 0);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2010-2012 cocos2d-x.org
|
||||
Copyright (c) 2013-2014 Chukong Technologies Inc.
|
||||
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
@ -41,64 +41,64 @@ NS_CC_BEGIN
|
|||
class CC_DLL Data
|
||||
{
|
||||
friend class Properties;
|
||||
|
||||
|
||||
public:
|
||||
/**
|
||||
* This parameter is defined for convenient reference if a null Data object is needed.
|
||||
*/
|
||||
static const Data Null;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor of Data.
|
||||
*/
|
||||
Data();
|
||||
|
||||
|
||||
/**
|
||||
* Copy constructor of Data.
|
||||
*/
|
||||
Data(const Data& other);
|
||||
|
||||
|
||||
/**
|
||||
* Copy constructor of Data.
|
||||
*/
|
||||
Data(Data&& other);
|
||||
|
||||
|
||||
/**
|
||||
* Destructor of Data.
|
||||
*/
|
||||
~Data();
|
||||
|
||||
|
||||
/**
|
||||
* Overloads of operator=.
|
||||
*/
|
||||
Data& operator= (const Data& other);
|
||||
|
||||
|
||||
/**
|
||||
* Overloads of operator=.
|
||||
*/
|
||||
Data& operator= (Data&& other);
|
||||
|
||||
|
||||
/**
|
||||
* Gets internal bytes of Data. It will return the pointer directly used in Data, so don't delete it.
|
||||
*
|
||||
* @return Pointer of bytes used internal in Data.
|
||||
*/
|
||||
unsigned char* getBytes() const;
|
||||
|
||||
|
||||
/**
|
||||
* Gets the size of the bytes.
|
||||
*
|
||||
* @return The size of bytes of Data.
|
||||
*/
|
||||
ssize_t getSize() const;
|
||||
|
||||
|
||||
/** Copies the buffer pointer and its size.
|
||||
* @note This method will copy the whole buffer.
|
||||
* Developer should free the pointer after invoking this method.
|
||||
* @see Data::fastSet
|
||||
*/
|
||||
void copy(const unsigned char* bytes, const ssize_t size);
|
||||
|
||||
|
||||
/** Fast set the buffer pointer and its size. Please use it carefully.
|
||||
* @param bytes The buffer pointer, note that it have to be allocated by 'malloc' or 'calloc',
|
||||
* since in the destructor of Data, the buffer will be deleted by 'free'.
|
||||
|
@ -107,22 +107,45 @@ public:
|
|||
* @see Data::copy
|
||||
*/
|
||||
void fastSet(unsigned char* bytes, const ssize_t size);
|
||||
|
||||
/**
|
||||
|
||||
/**
|
||||
* Clears data, free buffer and reset data size.
|
||||
*/
|
||||
void clear();
|
||||
|
||||
/**
|
||||
|
||||
/**
|
||||
* Check whether the data is null.
|
||||
*
|
||||
* @return True if the Data is null, false if not.
|
||||
*/
|
||||
bool isNull() const;
|
||||
|
||||
|
||||
/**
|
||||
* Get the internal buffer of data and set data to empty state.
|
||||
*
|
||||
* The ownership of the buffer removed from the data object.
|
||||
* That is the user have to free the returned buffer.
|
||||
* The data object is set to empty state, that is internal buffer is set to nullptr
|
||||
* and size is set to zero.
|
||||
* Usage:
|
||||
* <pre>
|
||||
* {@code
|
||||
* Data d;
|
||||
* // ...
|
||||
* ssize_t size;
|
||||
* unsigned char* buffer = d.takeBuffer(&size);
|
||||
* // use buffer and size
|
||||
* free(buffer);
|
||||
* }
|
||||
* </pre
|
||||
*
|
||||
* @param size Will fill with the data buffer size in bytes, if you do not care buffer size, pass nullptr.
|
||||
* @return the internal data buffer, free it after use.
|
||||
*/
|
||||
unsigned char* takeBuffer(ssize_t* size);
|
||||
private:
|
||||
void move(Data& other);
|
||||
|
||||
|
||||
private:
|
||||
unsigned char* _bytes;
|
||||
ssize_t _size;
|
||||
|
|
|
@ -1088,7 +1088,7 @@ void Director::restartDirector()
|
|||
|
||||
// Real restart in script level
|
||||
#if CC_ENABLE_SCRIPT_BINDING
|
||||
ScriptEvent scriptEvent(kRestartGame, NULL);
|
||||
ScriptEvent scriptEvent(kRestartGame, nullptr);
|
||||
ScriptEngineManager::getInstance()->getScriptEngine()->sendEvent(&scriptEvent);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -604,6 +604,10 @@ void EventDispatcher::removeEventListener(EventListener* listener)
|
|||
{
|
||||
if (listener == nullptr)
|
||||
return;
|
||||
|
||||
// just return if listener is in _toRemovedListeners to avoid remove listeners more than once
|
||||
if (std::find(_toRemovedListeners.begin(), _toRemovedListeners.end(), listener) != _toRemovedListeners.end())
|
||||
return;
|
||||
|
||||
bool isFound = false;
|
||||
|
||||
|
|
|
@ -273,7 +273,7 @@ void IMEDispatcher::dispatchKeyboardWillShow(IMEKeyboardNotificationInfo& info)
|
|||
{
|
||||
if (_impl)
|
||||
{
|
||||
IMEDelegate * delegate = 0;
|
||||
IMEDelegate * delegate = nullptr;
|
||||
DelegateIter last = _impl->_delegateList.end();
|
||||
for (DelegateIter first = _impl->_delegateList.begin(); first != last; ++first)
|
||||
{
|
||||
|
@ -290,7 +290,7 @@ void IMEDispatcher::dispatchKeyboardDidShow(IMEKeyboardNotificationInfo& info)
|
|||
{
|
||||
if (_impl)
|
||||
{
|
||||
IMEDelegate * delegate = 0;
|
||||
IMEDelegate * delegate = nullptr;
|
||||
DelegateIter last = _impl->_delegateList.end();
|
||||
for (DelegateIter first = _impl->_delegateList.begin(); first != last; ++first)
|
||||
{
|
||||
|
@ -307,7 +307,7 @@ void IMEDispatcher::dispatchKeyboardWillHide(IMEKeyboardNotificationInfo& info)
|
|||
{
|
||||
if (_impl)
|
||||
{
|
||||
IMEDelegate * delegate = 0;
|
||||
IMEDelegate * delegate = nullptr;
|
||||
DelegateIter last = _impl->_delegateList.end();
|
||||
for (DelegateIter first = _impl->_delegateList.begin(); first != last; ++first)
|
||||
{
|
||||
|
@ -324,7 +324,7 @@ void IMEDispatcher::dispatchKeyboardDidHide(IMEKeyboardNotificationInfo& info)
|
|||
{
|
||||
if (_impl)
|
||||
{
|
||||
IMEDelegate * delegate = 0;
|
||||
IMEDelegate * delegate = nullptr;
|
||||
DelegateIter last = _impl->_delegateList.end();
|
||||
for (DelegateIter first = _impl->_delegateList.begin(); first != last; ++first)
|
||||
{
|
||||
|
|
|
@ -159,8 +159,6 @@ class Data;
|
|||
*/
|
||||
class CC_DLL Properties
|
||||
{
|
||||
friend class Game;
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
NS_CC_BEGIN
|
||||
|
||||
GLint StencilStateManager::s_layer = -1;
|
||||
static GLint g_sStencilBits = -1;
|
||||
|
||||
StencilStateManager::StencilStateManager()
|
||||
: _alphaThreshold(1.0f)
|
||||
|
@ -57,17 +56,6 @@ StencilStateManager::StencilStateManager()
|
|||
, _currentAlphaTestRef(1)
|
||||
|
||||
{
|
||||
// get (only once) the number of bits of the stencil buffer
|
||||
static bool once = true;
|
||||
if (once)
|
||||
{
|
||||
glGetIntegerv(GL_STENCIL_BITS, &g_sStencilBits);
|
||||
if (g_sStencilBits <= 0)
|
||||
{
|
||||
CCLOG("Stencil buffer is not enabled.");
|
||||
}
|
||||
once = false;
|
||||
}
|
||||
}
|
||||
|
||||
void StencilStateManager::drawFullScreenQuadClearStencil()
|
||||
|
|
|
@ -394,7 +394,7 @@ void UserDefault::setDataForKey(const char* pKey, const Data& value) {
|
|||
return;
|
||||
}
|
||||
|
||||
char *encodedData = 0;
|
||||
char *encodedData = nullptr;
|
||||
|
||||
base64Encode(value.getBytes(), static_cast<unsigned int>(value.getSize()), &encodedData);
|
||||
|
||||
|
|
|
@ -53,6 +53,12 @@ Value::Value(int v)
|
|||
_field.intVal = v;
|
||||
}
|
||||
|
||||
Value::Value(unsigned int v)
|
||||
: _type(Type::UNSIGNED)
|
||||
{
|
||||
_field.unsignedVal = v;
|
||||
}
|
||||
|
||||
Value::Value(float v)
|
||||
: _type(Type::FLOAT)
|
||||
{
|
||||
|
@ -159,6 +165,9 @@ Value& Value::operator= (const Value& other)
|
|||
case Type::INTEGER:
|
||||
_field.intVal = other._field.intVal;
|
||||
break;
|
||||
case Type::UNSIGNED:
|
||||
_field.unsignedVal = other._field.unsignedVal;
|
||||
break;
|
||||
case Type::FLOAT:
|
||||
_field.floatVal = other._field.floatVal;
|
||||
break;
|
||||
|
@ -216,6 +225,9 @@ Value& Value::operator= (Value&& other)
|
|||
case Type::INTEGER:
|
||||
_field.intVal = other._field.intVal;
|
||||
break;
|
||||
case Type::UNSIGNED:
|
||||
_field.unsignedVal = other._field.unsignedVal;
|
||||
break;
|
||||
case Type::FLOAT:
|
||||
_field.floatVal = other._field.floatVal;
|
||||
break;
|
||||
|
@ -263,6 +275,13 @@ Value& Value::operator= (int v)
|
|||
return *this;
|
||||
}
|
||||
|
||||
Value& Value::operator= (unsigned int v)
|
||||
{
|
||||
reset(Type::UNSIGNED);
|
||||
_field.unsignedVal = v;
|
||||
return *this;
|
||||
}
|
||||
|
||||
Value& Value::operator= (float v)
|
||||
{
|
||||
reset(Type::FLOAT);
|
||||
|
@ -361,56 +380,58 @@ bool Value::operator== (const Value& v) const
|
|||
if (this->isNull()) return true;
|
||||
switch (_type)
|
||||
{
|
||||
case Type::BYTE: return v._field.byteVal == this->_field.byteVal;
|
||||
case Type::INTEGER: return v._field.intVal == this->_field.intVal;
|
||||
case Type::BOOLEAN: return v._field.boolVal == this->_field.boolVal;
|
||||
case Type::STRING: return *v._field.strVal == *this->_field.strVal;
|
||||
case Type::FLOAT: return fabs(v._field.floatVal - this->_field.floatVal) <= FLT_EPSILON;
|
||||
case Type::DOUBLE: return fabs(v._field.doubleVal - this->_field.doubleVal) <= FLT_EPSILON;
|
||||
case Type::VECTOR:
|
||||
{
|
||||
const auto &v1 = *(this->_field.vectorVal);
|
||||
const auto &v2 = *(v._field.vectorVal);
|
||||
const auto size = v1.size();
|
||||
if (size == v2.size())
|
||||
case Type::BYTE: return v._field.byteVal == this->_field.byteVal;
|
||||
case Type::INTEGER: return v._field.intVal == this->_field.intVal;
|
||||
case Type::UNSIGNED:return v._field.unsignedVal == this->_field.unsignedVal;
|
||||
case Type::BOOLEAN: return v._field.boolVal == this->_field.boolVal;
|
||||
case Type::STRING: return *v._field.strVal == *this->_field.strVal;
|
||||
case Type::FLOAT: return fabs(v._field.floatVal - this->_field.floatVal) <= FLT_EPSILON;
|
||||
case Type::DOUBLE: return fabs(v._field.doubleVal - this->_field.doubleVal) <= FLT_EPSILON;
|
||||
case Type::VECTOR:
|
||||
{
|
||||
for (size_t i = 0; i < size; i++)
|
||||
const auto &v1 = *(this->_field.vectorVal);
|
||||
const auto &v2 = *(v._field.vectorVal);
|
||||
const auto size = v1.size();
|
||||
if (size == v2.size())
|
||||
{
|
||||
if (v1[i] != v2[i]) return false;
|
||||
for (size_t i = 0; i < size; i++)
|
||||
{
|
||||
if (v1[i] != v2[i]) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
case Type::MAP:
|
||||
{
|
||||
const auto &map1 = *(this->_field.mapVal);
|
||||
const auto &map2 = *(v._field.mapVal);
|
||||
for (const auto &kvp : map1)
|
||||
case Type::MAP:
|
||||
{
|
||||
auto it = map2.find(kvp.first);
|
||||
if (it == map2.end() || it->second != kvp.second)
|
||||
const auto &map1 = *(this->_field.mapVal);
|
||||
const auto &map2 = *(v._field.mapVal);
|
||||
for (const auto &kvp : map1)
|
||||
{
|
||||
return false;
|
||||
auto it = map2.find(kvp.first);
|
||||
if (it == map2.end() || it->second != kvp.second)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
case Type::INT_KEY_MAP:
|
||||
{
|
||||
const auto &map1 = *(this->_field.intKeyMapVal);
|
||||
const auto &map2 = *(v._field.intKeyMapVal);
|
||||
for (const auto &kvp : map1)
|
||||
case Type::INT_KEY_MAP:
|
||||
{
|
||||
auto it = map2.find(kvp.first);
|
||||
if (it == map2.end() || it->second != kvp.second)
|
||||
const auto &map1 = *(this->_field.intKeyMapVal);
|
||||
const auto &map2 = *(v._field.intKeyMapVal);
|
||||
for (const auto &kvp : map1)
|
||||
{
|
||||
return false;
|
||||
auto it = map2.find(kvp.first);
|
||||
if (it == map2.end() || it->second != kvp.second)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
|
||||
return false;
|
||||
|
@ -431,6 +452,11 @@ unsigned char Value::asByte() const
|
|||
return static_cast<unsigned char>(_field.intVal);
|
||||
}
|
||||
|
||||
if (_type == Type::UNSIGNED)
|
||||
{
|
||||
return static_cast<unsigned char>(_field.unsignedVal);
|
||||
}
|
||||
|
||||
if (_type == Type::STRING)
|
||||
{
|
||||
return static_cast<unsigned char>(atoi(_field.strVal->c_str()));
|
||||
|
@ -462,6 +488,12 @@ int Value::asInt() const
|
|||
return _field.intVal;
|
||||
}
|
||||
|
||||
if (_type == Type::UNSIGNED)
|
||||
{
|
||||
CCASSERT(_field.unsignedVal < INT_MAX, "Can only convert values < INT_MAX");
|
||||
return (int)_field.unsignedVal;
|
||||
}
|
||||
|
||||
if (_type == Type::BYTE)
|
||||
{
|
||||
return _field.byteVal;
|
||||
|
@ -490,6 +522,50 @@ int Value::asInt() const
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
unsigned int Value::asUnsignedInt() const
|
||||
{
|
||||
CCASSERT(_type != Type::VECTOR && _type != Type::MAP && _type != Type::INT_KEY_MAP, "Only base type (bool, string, float, double, int) could be converted");
|
||||
if (_type == Type::UNSIGNED)
|
||||
{
|
||||
return _field.unsignedVal;
|
||||
}
|
||||
|
||||
if (_type == Type::INTEGER)
|
||||
{
|
||||
CCASSERT(_field.intVal >= 0, "Only values >= 0 can be converted to unsigned");
|
||||
return static_cast<unsigned int>(_field.intVal);
|
||||
}
|
||||
|
||||
if (_type == Type::BYTE)
|
||||
{
|
||||
return static_cast<unsigned int>(_field.byteVal);
|
||||
}
|
||||
|
||||
if (_type == Type::STRING)
|
||||
{
|
||||
// NOTE: strtoul is required (need to augment on unsupported platforms)
|
||||
return static_cast<unsigned int>(strtoul(_field.strVal->c_str(), nullptr, 10));
|
||||
}
|
||||
|
||||
if (_type == Type::FLOAT)
|
||||
{
|
||||
return static_cast<unsigned int>(_field.floatVal);
|
||||
}
|
||||
|
||||
if (_type == Type::DOUBLE)
|
||||
{
|
||||
return static_cast<unsigned int>(_field.doubleVal);
|
||||
}
|
||||
|
||||
if (_type == Type::BOOLEAN)
|
||||
{
|
||||
return _field.boolVal ? 1u : 0u;
|
||||
}
|
||||
|
||||
return 0u;
|
||||
}
|
||||
|
||||
float Value::asFloat() const
|
||||
{
|
||||
CCASSERT(_type != Type::VECTOR && _type != Type::MAP && _type != Type::INT_KEY_MAP, "Only base type (bool, string, float, double, int) could be converted");
|
||||
|
@ -513,6 +589,11 @@ float Value::asFloat() const
|
|||
return static_cast<float>(_field.intVal);
|
||||
}
|
||||
|
||||
if (_type == Type::UNSIGNED)
|
||||
{
|
||||
return static_cast<float>(_field.unsignedVal);
|
||||
}
|
||||
|
||||
if (_type == Type::DOUBLE)
|
||||
{
|
||||
return static_cast<float>(_field.doubleVal);
|
||||
|
@ -549,6 +630,11 @@ double Value::asDouble() const
|
|||
return static_cast<double>(_field.intVal);
|
||||
}
|
||||
|
||||
if (_type == Type::UNSIGNED)
|
||||
{
|
||||
return static_cast<double>(_field.unsignedVal);
|
||||
}
|
||||
|
||||
if (_type == Type::FLOAT)
|
||||
{
|
||||
return static_cast<double>(_field.floatVal);
|
||||
|
@ -585,6 +671,11 @@ bool Value::asBool() const
|
|||
return _field.intVal == 0 ? false : true;
|
||||
}
|
||||
|
||||
if (_type == Type::UNSIGNED)
|
||||
{
|
||||
return _field.unsignedVal == 0 ? false : true;
|
||||
}
|
||||
|
||||
if (_type == Type::FLOAT)
|
||||
{
|
||||
return _field.floatVal == 0.0f ? false : true;
|
||||
|
@ -617,6 +708,9 @@ std::string Value::asString() const
|
|||
case Type::INTEGER:
|
||||
ret << _field.intVal;
|
||||
break;
|
||||
case Type::UNSIGNED:
|
||||
ret << _field.unsignedVal;
|
||||
break;
|
||||
case Type::FLOAT:
|
||||
ret << std::fixed << std::setprecision( 7 )<< _field.floatVal;
|
||||
break;
|
||||
|
@ -733,6 +827,7 @@ static std::string visit(const Value& v, int depth)
|
|||
case Value::Type::NONE:
|
||||
case Value::Type::BYTE:
|
||||
case Value::Type::INTEGER:
|
||||
case Value::Type::UNSIGNED:
|
||||
case Value::Type::FLOAT:
|
||||
case Value::Type::DOUBLE:
|
||||
case Value::Type::BOOLEAN:
|
||||
|
@ -774,6 +869,9 @@ void Value::clear()
|
|||
case Type::INTEGER:
|
||||
_field.intVal = 0;
|
||||
break;
|
||||
case Type::UNSIGNED:
|
||||
_field.unsignedVal = 0u;
|
||||
break;
|
||||
case Type::FLOAT:
|
||||
_field.floatVal = 0.0f;
|
||||
break;
|
||||
|
@ -798,7 +896,7 @@ void Value::clear()
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
_type = Type::NONE;
|
||||
}
|
||||
|
||||
|
|
|
@ -65,7 +65,10 @@ public:
|
|||
|
||||
/** Create a Value by an integer value. */
|
||||
explicit Value(int v);
|
||||
|
||||
|
||||
/** Create a Value by an unsigned value. */
|
||||
explicit Value(unsigned int v);
|
||||
|
||||
/** Create a Value by a float value. */
|
||||
explicit Value(float v);
|
||||
|
||||
|
@ -113,6 +116,8 @@ public:
|
|||
Value& operator= (unsigned char v);
|
||||
/** Assignment operator, assign from integer to Value. */
|
||||
Value& operator= (int v);
|
||||
/** Assignment operator, assign from integer to Value. */
|
||||
Value& operator= (unsigned int v);
|
||||
/** Assignment operator, assign from float to Value. */
|
||||
Value& operator= (float v);
|
||||
/** Assignment operator, assign from double to Value. */
|
||||
|
@ -152,6 +157,8 @@ public:
|
|||
unsigned char asByte() const;
|
||||
/** Gets as an integer value. Will convert to integer if possible, or will trigger assert error. */
|
||||
int asInt() const;
|
||||
/** Gets as an unsigned value. Will convert to unsigned if possible, or will trigger assert error. */
|
||||
unsigned int asUnsignedInt() const;
|
||||
/** Gets as a float value. Will convert to float if possible, or will trigger assert error. */
|
||||
float asFloat() const;
|
||||
/** Gets as a double value. Will convert to double if possible, or will trigger assert error. */
|
||||
|
@ -191,6 +198,8 @@ public:
|
|||
BYTE,
|
||||
/// wrap integer
|
||||
INTEGER,
|
||||
/// wrap unsigned
|
||||
UNSIGNED,
|
||||
/// wrap float
|
||||
FLOAT,
|
||||
/// wrap double
|
||||
|
@ -221,6 +230,7 @@ private:
|
|||
{
|
||||
unsigned char byteVal;
|
||||
int intVal;
|
||||
unsigned int unsignedVal;
|
||||
float floatVal;
|
||||
double doubleVal;
|
||||
bool boolVal;
|
||||
|
|
|
@ -645,6 +645,35 @@ unsigned char *ZipFile::getFileData(const std::string &fileName, ssize_t *size)
|
|||
return buffer;
|
||||
}
|
||||
|
||||
bool ZipFile::getFileData(const std::string &fileName, ResizableBuffer* buffer)
|
||||
{
|
||||
bool res = false;
|
||||
do
|
||||
{
|
||||
CC_BREAK_IF(!_data->zipFile);
|
||||
CC_BREAK_IF(fileName.empty());
|
||||
|
||||
ZipFilePrivate::FileListContainer::const_iterator it = _data->fileList.find(fileName);
|
||||
CC_BREAK_IF(it == _data->fileList.end());
|
||||
|
||||
ZipEntryInfo fileInfo = it->second;
|
||||
|
||||
int nRet = unzGoToFilePos(_data->zipFile, &fileInfo.pos);
|
||||
CC_BREAK_IF(UNZ_OK != nRet);
|
||||
|
||||
nRet = unzOpenCurrentFile(_data->zipFile);
|
||||
CC_BREAK_IF(UNZ_OK != nRet);
|
||||
|
||||
buffer->resize(fileInfo.uncompressed_size);
|
||||
int CC_UNUSED nSize = unzReadCurrentFile(_data->zipFile, buffer->buffer(), static_cast<unsigned int>(fileInfo.uncompressed_size));
|
||||
CCASSERT(nSize == 0 || nSize == (int)fileInfo.uncompressed_size, "the file size is wrong");
|
||||
unzCloseCurrentFile(_data->zipFile);
|
||||
res = true;
|
||||
} while (0);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
std::string ZipFile::getFirstFilename()
|
||||
{
|
||||
if (unzGoToFirstFile(_data->zipFile) != UNZ_OK) return emptyFilename;
|
||||
|
|
|
@ -31,6 +31,7 @@ THE SOFTWARE.
|
|||
#include "platform/CCPlatformConfig.h"
|
||||
#include "platform/CCPlatformMacros.h"
|
||||
#include "platform/CCPlatformDefine.h"
|
||||
#include "platform/CCFileUtils.h"
|
||||
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
|
||||
#include "platform/android/CCFileUtils-android.h"
|
||||
|
@ -275,6 +276,14 @@ typedef struct unz_file_info_s unz_file_info;
|
|||
* @since v2.0.5
|
||||
*/
|
||||
unsigned char *getFileData(const std::string &fileName, ssize_t *size);
|
||||
|
||||
/**
|
||||
* Get resource file data from a zip file.
|
||||
* @param fileName File name
|
||||
* @param[out] buffer If the file read operation succeeds, if will contain the file data.
|
||||
* @return True if successful.
|
||||
*/
|
||||
bool getFileData(const std::string &fileName, ResizableBuffer* buffer);
|
||||
|
||||
std::string getFirstFilename();
|
||||
std::string getNextFilename();
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
#include "platform/CCPlatformMacros.h"
|
||||
|
||||
#if CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_LINUX
|
||||
#if CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN || CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_LINUX
|
||||
#include "pthread.h"
|
||||
#define MUTEX pthread_mutex_t
|
||||
#define MUTEX_INIT(m) \
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#define CC_ALLOCATOR_STRATEGY_DEFAULT_H
|
||||
/// @cond DO_NOT_SHOW
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "base/allocator/CCAllocatorMacros.h"
|
||||
#include "base/allocator/CCAllocatorBase.h"
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ int base64Decode(const unsigned char *in, unsigned int inLength, unsigned char *
|
|||
unsigned int outLength = 0;
|
||||
|
||||
//should be enough to store 6-bit buffers in 8-bit buffers
|
||||
*out = (unsigned char*)malloc(inLength * 3.0f / 4.0f + 1);
|
||||
*out = (unsigned char*)malloc(inLength / 4 * 3 + 1);
|
||||
if( *out ) {
|
||||
int ret = _base64Decode(in, inLength, *out, &outLength);
|
||||
|
||||
|
@ -160,7 +160,7 @@ int base64Decode(const unsigned char *in, unsigned int inLength, unsigned char *
|
|||
}
|
||||
|
||||
int base64Encode(const unsigned char *in, unsigned int inLength, char **out) {
|
||||
unsigned int outLength = inLength * 4 / 3 + (inLength % 3 > 0 ? 4 : 0);
|
||||
unsigned int outLength = (inLength + 2) / 3 * 4;
|
||||
|
||||
//should be enough to store 8-bit buffers in 6-bit buffers
|
||||
*out = (char*)malloc(outLength+1);
|
||||
|
|
|
@ -338,7 +338,7 @@ THE SOFTWARE.
|
|||
*/
|
||||
#ifdef CC_ENABLE_SCRIPT_BINDING
|
||||
#ifndef CC_ENABLE_GC_FOR_NATIVE_OBJECTS
|
||||
#define CC_ENABLE_GC_FOR_NATIVE_OBJECTS 1
|
||||
#define CC_ENABLE_GC_FOR_NATIVE_OBJECTS 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -393,4 +393,8 @@ THE SOFTWARE.
|
|||
# define CC_ALLOCATOR_GLOBAL_NEW_DELETE cocos2d::allocator::AllocatorStrategyGlobalSmallBlock
|
||||
#endif
|
||||
|
||||
#ifndef CC_FILEUTILS_APPLE_ENABLE_OBJC
|
||||
#define CC_FILEUTILS_APPLE_ENABLE_OBJC 1
|
||||
#endif
|
||||
|
||||
#endif // __CCCONFIG_H__
|
||||
|
|
|
@ -228,7 +228,7 @@ std::string getStringUTFCharsJNI(JNIEnv* env, jstring srcjStr, bool* ret)
|
|||
return utf8Str;
|
||||
}
|
||||
|
||||
jstring newStringUTFJNI(JNIEnv* env, std::string utf8Str, bool* ret)
|
||||
jstring newStringUTFJNI(JNIEnv* env, const std::string& utf8Str, bool* ret)
|
||||
{
|
||||
std::u16string utf16Str;
|
||||
bool flag = cocos2d::StringUtils::UTF8ToUTF16(utf8Str, utf16Str);
|
||||
|
@ -354,14 +354,21 @@ bool StringUTF8::insert(std::size_t pos, const StringUTF8& insertStr)
|
|||
|
||||
} //namespace StringUtils {
|
||||
|
||||
namespace {
|
||||
inline int wcslen_internal(const unsigned short* str)
|
||||
{
|
||||
if (str == nullptr)
|
||||
return -1;
|
||||
int i=0;
|
||||
while(*str++) i++;
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int cc_wcslen(const unsigned short* str)
|
||||
{
|
||||
if (str == nullptr)
|
||||
return -1;
|
||||
int i=0;
|
||||
while(*str++) i++;
|
||||
return i;
|
||||
return wcslen_internal(str);
|
||||
}
|
||||
|
||||
void cc_utf8_trim_ws(std::vector<unsigned short>* str)
|
||||
|
@ -411,7 +418,7 @@ std::vector<unsigned short> cc_utf16_vec_from_utf16_str(const unsigned short* st
|
|||
if (str == nullptr)
|
||||
return str_new;
|
||||
|
||||
int len = cc_wcslen(str);
|
||||
int len = wcslen_internal(str);
|
||||
|
||||
for (int i = 0; i < len; ++i)
|
||||
{
|
||||
|
@ -428,7 +435,8 @@ unsigned short* cc_utf8_to_utf16(const char* str_old, int length/* = -1*/, int*
|
|||
unsigned short* ret = nullptr;
|
||||
|
||||
std::u16string outUtf16;
|
||||
bool succeed = StringUtils::UTF8ToUTF16(str_old, outUtf16);
|
||||
std::string inUtf8 = length == -1 ? std::string(str_old) : std::string(str_old, length);
|
||||
bool succeed = StringUtils::UTF8ToUTF16(inUtf8, outUtf16);
|
||||
|
||||
if (succeed)
|
||||
{
|
||||
|
@ -454,7 +462,7 @@ char * cc_utf16_to_utf8 (const unsigned short *str,
|
|||
|
||||
|
||||
std::u16string utf16;
|
||||
int utf16Len = len < 0 ? cc_wcslen(str) : len;
|
||||
int utf16Len = len < 0 ? wcslen_internal(str) : len;
|
||||
|
||||
for (int i = 0; i < utf16Len; ++i)
|
||||
{
|
||||
|
|
|
@ -118,7 +118,7 @@ CC_DLL std::string getStringUTFCharsJNI(JNIEnv* env, jstring srcjStr, bool* ret
|
|||
* @param ret True if the conversion succeeds and the ret pointer isn't null
|
||||
* @returns the result of jstring,the jstring need to DeleteLocalRef(jstring);
|
||||
*/
|
||||
CC_DLL jstring newStringUTFJNI(JNIEnv* env, std::string utf8Str, bool* ret = nullptr);
|
||||
CC_DLL jstring newStringUTFJNI(JNIEnv* env, const std::string& utf8Str, bool* ret = nullptr);
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -33,9 +33,11 @@ THE SOFTWARE.
|
|||
#include "base/base64.h"
|
||||
#include "renderer/CCCustomCommand.h"
|
||||
#include "renderer/CCRenderer.h"
|
||||
|
||||
#include "platform/CCImage.h"
|
||||
#include "platform/CCFileUtils.h"
|
||||
#include "2d/CCSprite.h"
|
||||
#include "2d/CCRenderTexture.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
|
@ -174,6 +176,49 @@ void captureScreen(const std::function<void(bool, const std::string&)>& afterCap
|
|||
});
|
||||
}
|
||||
|
||||
Image* captureNode(Node* startNode, float scale)
|
||||
{ // The best snapshot API, support Scene and any Node
|
||||
auto& size = startNode->getContentSize();
|
||||
|
||||
Director::getInstance()->setNextDeltaTimeZero(true);
|
||||
|
||||
RenderTexture* finalRtx = nullptr;
|
||||
|
||||
auto rtx = RenderTexture::create(size.width, size.height, Texture2D::PixelFormat::RGBA8888, GL_DEPTH24_STENCIL8);
|
||||
// rtx->setKeepMatrix(true);
|
||||
Point savedPos = startNode->getPosition();
|
||||
Point anchor;
|
||||
if (!startNode->isIgnoreAnchorPointForPosition()) {
|
||||
anchor = startNode->getAnchorPoint();
|
||||
}
|
||||
startNode->setPosition(Point(size.width * anchor.x, size.height * anchor.y));
|
||||
rtx->begin();
|
||||
startNode->visit();
|
||||
rtx->end();
|
||||
startNode->setPosition(savedPos);
|
||||
|
||||
if (std::abs(scale - 1.0f) < 1e-6/* no scale */)
|
||||
finalRtx = rtx;
|
||||
else {
|
||||
/* scale */
|
||||
auto finalRect = Rect(0, 0, size.width, size.height);
|
||||
Sprite *sprite = Sprite::createWithTexture(rtx->getSprite()->getTexture(), finalRect);
|
||||
sprite->setAnchorPoint(Point(0, 0));
|
||||
sprite->setFlippedY(true);
|
||||
|
||||
finalRtx = RenderTexture::create(size.width * scale, size.height * scale, Texture2D::PixelFormat::RGBA8888, GL_DEPTH24_STENCIL8);
|
||||
|
||||
sprite->setScale(scale); // or use finalRtx->setKeepMatrix(true);
|
||||
finalRtx->begin();
|
||||
sprite->visit();
|
||||
finalRtx->end();
|
||||
}
|
||||
|
||||
Director::getInstance()->getRenderer()->render();
|
||||
|
||||
return finalRtx->newImage();
|
||||
}
|
||||
|
||||
std::vector<Node*> findChildren(const Node &node, const std::string &name)
|
||||
{
|
||||
std::vector<Node*> vec;
|
||||
|
@ -287,6 +332,51 @@ Sprite* createSpriteFromBase64(const char* base64String)
|
|||
return sprite;
|
||||
}
|
||||
|
||||
Node* findChild(Node* levelRoot, const char* name)
|
||||
{
|
||||
if (levelRoot == nullptr)
|
||||
return nullptr;
|
||||
|
||||
// Find this node
|
||||
{
|
||||
auto target = levelRoot->getChildByName(name);
|
||||
if (target != nullptr)
|
||||
return target;
|
||||
}
|
||||
|
||||
// Find recursively
|
||||
for (auto& child : levelRoot->getChildren())
|
||||
{
|
||||
auto target = findChild(child, name);
|
||||
if (target != nullptr)
|
||||
return target;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Node* findChild(Node* levelRoot, int tag)
|
||||
{
|
||||
if (levelRoot == nullptr)
|
||||
return nullptr;
|
||||
|
||||
// Find this node
|
||||
{
|
||||
auto target = levelRoot->getChildByTag(tag);
|
||||
if (target != nullptr)
|
||||
return target;
|
||||
}
|
||||
|
||||
// Find recursively
|
||||
for (auto& child : levelRoot->getChildren())
|
||||
{
|
||||
auto target = findChild(child, tag);
|
||||
if (target != nullptr)
|
||||
return target;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -53,6 +53,7 @@ Examples:
|
|||
int ccNextPOT(int value);
|
||||
|
||||
class Sprite;
|
||||
class Image;
|
||||
|
||||
namespace utils
|
||||
{
|
||||
|
@ -64,7 +65,16 @@ namespace utils
|
|||
* base filename ("hello.png" etc.), don't use a relative path containing directory names.("mydir/hello.png" etc.).
|
||||
* @since v3.2
|
||||
*/
|
||||
void CC_DLL captureScreen(const std::function<void(bool, const std::string&)>& afterCaptured, const std::string& filename);
|
||||
CC_DLL void captureScreen(const std::function<void(bool, const std::string&)>& afterCaptured, const std::string& filename);
|
||||
|
||||
/** Capture a specific Node.
|
||||
* @param startNode: specify the snapshot Node. It chould be cocos2d::Scene
|
||||
* @param scale
|
||||
* @returns: return a Image, then can call saveToFile to save the image as "xxx.png or xxx.jpg".
|
||||
* @since v3.11
|
||||
* !!! remark: Caller is responsible for releasing it by calling delete.
|
||||
*/
|
||||
CC_DLL Image* captureNode(Node* startNode, float scale = 1.0f);
|
||||
|
||||
/** Find children by name, it will return all child that has the same name.
|
||||
* It supports c++ 11 regular expression. It is a helper function of `Node::enumerateChildren()`.
|
||||
|
@ -75,7 +85,7 @@ namespace utils
|
|||
* @return Array of Nodes that matches the name
|
||||
* @since v3.2
|
||||
*/
|
||||
std::vector<Node*> CC_DLL findChildren(const Node &node, const std::string &name);
|
||||
CC_DLL std::vector<Node*> findChildren(const Node &node, const std::string &name);
|
||||
|
||||
/** Same to ::atof, but strip the string, remain 7 numbers after '.' before call atof.
|
||||
* Why we need this? Because in android c++_static, atof ( and std::atof ) is unsupported for numbers have long decimal part and contain
|
||||
|
@ -83,33 +93,68 @@ namespace utils
|
|||
* @param str The string be to converted to double.
|
||||
* @return Returns converted value of a string.
|
||||
*/
|
||||
double CC_DLL atof(const char* str);
|
||||
CC_DLL double atof(const char* str);
|
||||
|
||||
/** Get current exact time, accurate to nanoseconds.
|
||||
* @return Returns the time in seconds since the Epoch.
|
||||
*/
|
||||
double CC_DLL gettime();
|
||||
CC_DLL double gettime();
|
||||
|
||||
/**
|
||||
* Get current time in milliseconds, accurate to nanoseconds
|
||||
*
|
||||
* @return Returns the time in milliseconds since the Epoch.
|
||||
*/
|
||||
long long CC_DLL getTimeInMilliseconds();
|
||||
CC_DLL long long getTimeInMilliseconds();
|
||||
|
||||
/**
|
||||
* Calculate unionof bounding box of a node and its children.
|
||||
* @return Returns unionof bounding box of a node and its children.
|
||||
*/
|
||||
Rect CC_DLL getCascadeBoundingBox(Node *node);
|
||||
CC_DLL Rect getCascadeBoundingBox(Node *node);
|
||||
|
||||
/**
|
||||
* Create a sprite instance from base64 encoded image.
|
||||
|
||||
* @return Returns an instance of sprite
|
||||
*/
|
||||
Sprite* createSpriteFromBase64(const char* base64String);
|
||||
CC_DLL Sprite* createSpriteFromBase64(const char* base64String);
|
||||
|
||||
/**
|
||||
* Find a child by name recursively
|
||||
|
||||
* @return Returns found node or nullptr
|
||||
*/
|
||||
CC_DLL Node* findChild(Node* levelRoot, const char* name);
|
||||
|
||||
/**
|
||||
* Find a child by tag recursively
|
||||
|
||||
* @return Returns found node or nullptr
|
||||
*/
|
||||
CC_DLL Node* findChild(Node* levelRoot, int tag);
|
||||
|
||||
/**
|
||||
* Find a child by name recursively
|
||||
|
||||
* @return Returns found node or nullptr with specified type 'T'
|
||||
*/
|
||||
template<typename T> inline
|
||||
T findChild(Node* levelRoot, const char* name)
|
||||
{
|
||||
return dynamic_cast<T>(findChild(levelRoot, name));
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a child by tag recursively
|
||||
|
||||
* @return Returns found node or nullptr with specified type 'T'
|
||||
*/
|
||||
template<typename T> inline
|
||||
T findChild(Node* levelRoot, int tag)
|
||||
{
|
||||
return dynamic_cast<T>(findChild(levelRoot, tag));
|
||||
}
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -249,6 +249,13 @@ THE SOFTWARE.
|
|||
#include "platform/winrt/CCStdC.h"
|
||||
#endif // CC_TARGET_PLATFORM == CC_PLATFORM_WINRT
|
||||
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN)
|
||||
#include "platform/tizen/CCApplication-tizen.h"
|
||||
#include "platform/tizen/CCGLViewImpl-tizen.h"
|
||||
#include "platform/tizen/CCGL-tizen.h"
|
||||
#include "platform/tizen/CCStdC-tizen.h"
|
||||
#endif
|
||||
|
||||
// script_support
|
||||
#include "base/CCScriptSupport.h"
|
||||
|
||||
|
@ -302,17 +309,10 @@ THE SOFTWARE.
|
|||
#include "3d/CCTerrain.h"
|
||||
|
||||
|
||||
// Deprecated include
|
||||
#include "deprecated/CCArray.h"
|
||||
#include "deprecated/CCBool.h"
|
||||
#include "deprecated/CCDictionary.h"
|
||||
#include "deprecated/CCDouble.h"
|
||||
#include "deprecated/CCFloat.h"
|
||||
#include "deprecated/CCInteger.h"
|
||||
#include "deprecated/CCNotificationCenter.h"
|
||||
#include "deprecated/CCSet.h"
|
||||
#include "deprecated/CCString.h"
|
||||
// CCDeprecated.h must be included at the end
|
||||
// Deprecated
|
||||
// All deprecated features are include inside deprecated/CCDeprecated.h.
|
||||
// It is recommanded that you just inlcude what is needed.
|
||||
// eg. #include "deprecated/CCString.h" if you only need cocos2d::__String.
|
||||
#include "deprecated/CCDeprecated.h"
|
||||
|
||||
|
||||
|
|
|
@ -502,7 +502,7 @@ public:
|
|||
* @js NA
|
||||
* @lua NA
|
||||
*/
|
||||
virtual __Array* clone() const;
|
||||
virtual __Array* clone() const override;
|
||||
|
||||
// ------------------------------------------
|
||||
// Iterators
|
||||
|
|
|
@ -57,7 +57,7 @@ public:
|
|||
/* override functions */
|
||||
virtual void acceptVisitor(DataVisitor &visitor) { visitor.visit(this); }
|
||||
|
||||
__Bool* clone() const
|
||||
virtual __Bool* clone() const override
|
||||
{
|
||||
return __Bool::create(_value);
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue