Merge branch 'v3' of https://github.com/cocos2d/cocos2d-x into terrain

This commit is contained in:
tangziwen 2015-04-09 09:40:22 +08:00
commit 4ca6b559e6
118 changed files with 5620 additions and 1698 deletions

View File

@ -1,9 +1,29 @@
cocos2d-x-3.6beta0 Apr.14 2015
[NEW] 3D: added texturecub supported
cocos2d-x-3.6alpha0 Apr.8 2015
[NEW] 3D: added texturecub support
[NEW] 3D: added skybox support
[NEW] 3D: added node animation support
[NEW] 3D: added terrian support
[NEW] 3rd: updated libcurl to v7.4 on all supported platforms except WP8/WP8.1 universal
[NEW] 3rd: updated chipmunk to v6.2.2
[NEW] 3rd: updated openssl to v1.0.11
[NEW] 3rd: updated freetype to v2.5.5
[NEW] 3rd: updated png to v1.6.16 on all supported platforms except WP8/WP8.1 universal because it is not needed on these two platforms
[NEW] Animate3D: added `Animate3D::setHighQuality()` to set animation quality
[NEW] Label: added disableEffect()
[NEW] Lua-binding: used luajit arm64 version on iOS 64-bit devices
[NEW] Sprite3D: getAABBRecursively return own aabb combining childeren's
[NEW] Vec3: added `Vec3::add(float, float, float)` and `Vec3::setZero()`
[FIX] Audio: memory leak
[FIX] Audio: crashed on iOS 5.1.1
[FIX] C++: lag issue if `Director::setContentScaleFactor` is called frequently
[FIX] C++: CDT builder is enabled by default in cpp template on Android
[FIX] Label: shadow color is incorrect
[FIX] MenuItem: crash if `MenuItem::onExit` is called multiple times
[FIX] Particle3D: particles' rotation affect particle system's rotation
[FIX] Sprite3D: memory leak
[FIX] Vec3: use inline function to improve performance
[FIX] WebView: loadHTMLString() can not work if it is invoked in the same frame of creating a webview on iOS
cocos2d-x-3.5 Mar.23 2015
[NEW] EditBox: support Color4B

View File

@ -29,16 +29,16 @@ cmake_minimum_required(VERSION 2.8)
# also from cmake's Modules dir, to not clash with per-project files.
cmake_policy(SET CMP0017 NEW)
# Use new behaviour with cmake >= 3.0:
# Use new behaviour with cmake >= 3.1:
# Only interpret if() arguments as variables or keywords when unquoted.
if(CMAKE_VERSION VERSION_GREATER 3)
if(CMAKE_VERSION VERSION_GREATER 3.1)
cmake_policy(SET CMP0054 NEW)
endif()
project (Cocos2d-X)
# The version number
set(COCOS2D_X_VERSION 3.5)
set(COCOS2D_X_VERSION 3.6alpha0)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/Modules/")
include(CocosBuildHelpers)

View File

@ -1154,6 +1154,7 @@
1AC0269D1914068200FA920D /* ConvertUTF.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AC026991914068200FA920D /* ConvertUTF.h */; };
29031E0719BFE8D400EFA1DF /* libchipmunk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 29031E0619BFE8D400EFA1DF /* libchipmunk.a */; };
29031E0919BFE8DE00EFA1DF /* libchipmunk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 29031E0819BFE8DE00EFA1DF /* libchipmunk.a */; };
2905E9CD1ACD3D8C00092DD2 /* libz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2905E9CC1ACD3D8C00092DD2 /* libz.a */; };
292DB13D19B4574100A80320 /* UIEditBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 292DB12F19B4574100A80320 /* UIEditBox.cpp */; };
292DB13E19B4574100A80320 /* UIEditBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 292DB12F19B4574100A80320 /* UIEditBox.cpp */; };
292DB13F19B4574100A80320 /* UIEditBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 292DB13019B4574100A80320 /* UIEditBox.h */; };
@ -1799,7 +1800,6 @@
B21770421977ECF8009EE11B /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B21770411977ECF8009EE11B /* ApplicationServices.framework */; };
B21770451977ED14009EE11B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B21770431977ED07009EE11B /* Cocoa.framework */; };
B21770471977ED34009EE11B /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B21770461977ED34009EE11B /* QuartzCore.framework */; };
B21770491977ED4C009EE11B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = B21770481977ED4C009EE11B /* libz.dylib */; };
B217704E1977ED9F009EE11B /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = B217704C1977ED8B009EE11B /* libsqlite3.dylib */; };
B230ED7119B417AE00364AA8 /* CCTrianglesCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B230ED6F19B417AE00364AA8 /* CCTrianglesCommand.cpp */; };
B230ED7219B417AE00364AA8 /* CCTrianglesCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B230ED6F19B417AE00364AA8 /* CCTrianglesCommand.cpp */; };
@ -2987,6 +2987,7 @@
1AD71EEF180E27CF00808F54 /* CCPhysicsSprite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCPhysicsSprite.h; sourceTree = "<group>"; };
29031E0619BFE8D400EFA1DF /* libchipmunk.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libchipmunk.a; path = prebuilt/mac/libchipmunk.a; sourceTree = "<group>"; };
29031E0819BFE8DE00EFA1DF /* libchipmunk.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libchipmunk.a; path = prebuilt/ios/libchipmunk.a; sourceTree = "<group>"; };
2905E9CC1ACD3D8C00092DD2 /* libz.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libz.a; path = ../external/zlib/prebuilt/mac/libz.a; sourceTree = "<group>"; };
2905F9E918CF08D000240AA3 /* CocosGUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CocosGUI.cpp; sourceTree = "<group>"; };
2905F9EA18CF08D000240AA3 /* CocosGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CocosGUI.h; sourceTree = "<group>"; };
2905F9EB18CF08D000240AA3 /* GUIDefine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GUIDefine.h; sourceTree = "<group>"; };
@ -4028,10 +4029,10 @@
files = (
29031E0719BFE8D400EFA1DF /* libchipmunk.a in Frameworks */,
15AE1C1A19AAE3C800C27E9E /* libwebsockets.a in Frameworks */,
2905E9CD1ACD3D8C00092DD2 /* libz.a in Frameworks */,
292F1A6B1A5250F700E479F8 /* libssl.a in Frameworks */,
292F1A631A52447100E479F8 /* libcrypto.a in Frameworks */,
B217704E1977ED9F009EE11B /* libsqlite3.dylib in Frameworks */,
B21770491977ED4C009EE11B /* libz.dylib in Frameworks */,
B21770471977ED34009EE11B /* QuartzCore.framework in Frameworks */,
B21770451977ED14009EE11B /* Cocoa.framework in Frameworks */,
B21770421977ECF8009EE11B /* ApplicationServices.framework in Frameworks */,
@ -4129,6 +4130,7 @@
1551A341158F2AB200E66CFE /* Frameworks */ = {
isa = PBXGroup;
children = (
2905E9CC1ACD3D8C00092DD2 /* libz.a */,
292F1A661A524F2700E479F8 /* libssl.dylib */,
B217704C1977ED8B009EE11B /* libsqlite3.dylib */,
B217704A1977ED55009EE11B /* libcurl.dylib */,
@ -9353,10 +9355,11 @@
"\"$(SRCROOT)/../external/websockets/prebuilt/mac\"",
"\"$(SRCROOT)/../external/chipmunk/prebuilt/mac\"",
"\"$(SRCROOT)/../external/curl/prebuilt/mac\"",
"\"$(SRCROOT)/../external/zlib/prebuilt/mac\"",
);
MACH_O_TYPE = staticlib;
OTHER_LDFLAGS = "";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/png/include/mac $(SRCROOT)/../external/tiff/include/mac $(SRCROOT)/../external/webp/include/mac $(SRCROOT)/../external/jpeg/include/mac $(SRCROOT)/../external/freetype2/include/mac $(SRCROOT)/../external/glfw3/include/mac $(SRCROOT)/../external/websockets/include/mac $(SRCROOT)/../external/chipmunk/include/chipmunk $(SRCROOT)/../external/curl/include/mac";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/png/include/mac $(SRCROOT)/../external/tiff/include/mac $(SRCROOT)/../external/webp/include/mac $(SRCROOT)/../external/jpeg/include/mac $(SRCROOT)/../external/freetype2/include/mac $(SRCROOT)/../external/glfw3/include/mac $(SRCROOT)/../external/websockets/include/mac $(SRCROOT)/../external/chipmunk/include/chipmunk $(SRCROOT)/../external/curl/include/mac $(SRCROOT)/../external/freetype2/include/mac/freetype2";
};
name = Debug;
};
@ -9389,10 +9392,11 @@
"\"$(SRCROOT)/../external/websockets/prebuilt/mac\"",
"\"$(SRCROOT)/../external/chipmunk/prebuilt/mac\"",
"\"$(SRCROOT)/../external/curl/prebuilt/mac\"",
"\"$(SRCROOT)/../external/zlib/prebuilt/mac\"",
);
MACH_O_TYPE = staticlib;
OTHER_LDFLAGS = "";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/png/include/mac $(SRCROOT)/../external/tiff/include/mac $(SRCROOT)/../external/webp/include/mac $(SRCROOT)/../external/jpeg/include/mac $(SRCROOT)/../external/freetype2/include/mac $(SRCROOT)/../external/glfw3/include/mac $(SRCROOT)/../external/websockets/include/mac $(SRCROOT)/../external/chipmunk/include/chipmunk $(SRCROOT)/../external/curl/include/mac";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/png/include/mac $(SRCROOT)/../external/tiff/include/mac $(SRCROOT)/../external/webp/include/mac $(SRCROOT)/../external/jpeg/include/mac $(SRCROOT)/../external/freetype2/include/mac $(SRCROOT)/../external/glfw3/include/mac $(SRCROOT)/../external/websockets/include/mac $(SRCROOT)/../external/chipmunk/include/chipmunk $(SRCROOT)/../external/curl/include/mac $(SRCROOT)/../external/freetype2/include/mac/freetype2";
};
name = Release;
};
@ -9422,7 +9426,7 @@
);
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/freetype2/include/ios $(SRCROOT)/../external/curl/include/ios $(SRCROOT)/../external/webp/include/ios $(SRCROOT)/../external/tiff/include/ios $(SRCROOT)/../external/jpeg/include/ios $(SRCROOT)/../external/png/include/ios $(SRCROOT)/../external/websockets/include/ios $(SRCROOT)/../external/chipmunk/include/chipmunk";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/freetype2/include/ios $(SRCROOT)/../external/curl/include/ios $(SRCROOT)/../external/webp/include/ios $(SRCROOT)/../external/tiff/include/ios $(SRCROOT)/../external/jpeg/include/ios $(SRCROOT)/../external/png/include/ios $(SRCROOT)/../external/websockets/include/ios $(SRCROOT)/../external/chipmunk/include/chipmunk $(SRCROOT)/../external/freetype2/include/ios/freetype2";
VALID_ARCHS = "arm64 armv7";
};
name = Debug;
@ -9454,7 +9458,7 @@
);
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/freetype2/include/ios $(SRCROOT)/../external/curl/include/ios $(SRCROOT)/../external/webp/include/ios $(SRCROOT)/../external/tiff/include/ios $(SRCROOT)/../external/jpeg/include/ios $(SRCROOT)/../external/png/include/ios $(SRCROOT)/../external/websockets/include/ios $(SRCROOT)/../external/chipmunk/include/chipmunk";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/freetype2/include/ios $(SRCROOT)/../external/curl/include/ios $(SRCROOT)/../external/webp/include/ios $(SRCROOT)/../external/tiff/include/ios $(SRCROOT)/../external/jpeg/include/ios $(SRCROOT)/../external/png/include/ios $(SRCROOT)/../external/websockets/include/ios $(SRCROOT)/../external/chipmunk/include/chipmunk $(SRCROOT)/../external/freetype2/include/ios/freetype2";
VALID_ARCHS = "arm64 armv7";
};
name = Release;

View File

@ -38,6 +38,8 @@
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
1502702D1AD3BDBC0089CD03 /* TerrainTest in Resources */ = {isa = PBXBuildFile; fileRef = B603F1B31AC8FBFB00A9579C /* TerrainTest */; };
1502702E1AD3BDC90089CD03 /* TerrainTest in Resources */ = {isa = PBXBuildFile; fileRef = B603F1B31AC8FBFB00A9579C /* TerrainTest */; };
150F918819DA409E00B89F57 /* lua_test_bindings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 150F918619DA409E00B89F57 /* lua_test_bindings.cpp */; };
150F918919DA409F00B89F57 /* lua_test_bindings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 150F918619DA409E00B89F57 /* lua_test_bindings.cpp */; };
15427B79198B879900DC375D /* libluacocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 15EFA665198B33EE000C57D3 /* libluacocos2d iOS.a */; };
@ -4376,6 +4378,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
1502702E1AD3BDC90089CD03 /* TerrainTest in Resources */,
157B08EC1A90864100B7BEA4 /* Particle3D in Resources */,
15B13E5219F0FD4D008A1ADC /* Manifests in Resources */,
156EAE071977D0BD00F53709 /* ActionTimeline in Resources */,
@ -4421,6 +4424,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
1502702D1AD3BDBC0089CD03 /* TerrainTest in Resources */,
157B08ED1A90865600B7BEA4 /* Particle3D in Resources */,
15B3709A19EE5EED00ABE682 /* Manifests in Resources */,
15AECE0F195C1FDD00907DB0 /* cocosvideo.mp4 in Resources */,
@ -5557,6 +5561,12 @@
"$(inherited)",
"$(SRCROOT)/../external/curl/prebuilt/ios",
);
"OTHER_LDFLAGS[sdk=iphonesimulator*][arch=x86_64]" = (
"-pagezero_size",
10000,
"-image_base",
100000000,
);
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/.. $(SRCROOT)/../cocos/platform/ios $(SRCROOT)/../external $(SRCROOT)/../external/lua/luajit/include $(SRCROOT)/../external/lua/tolua $(SRCROOT)/../cocos/scripting/lua-bindings/manual $(SRCROOT)/../cocos/scripting/lua-bindings/auto";
@ -5578,6 +5588,12 @@
"$(inherited)",
"$(SRCROOT)/../external/curl/prebuilt/ios",
);
"OTHER_LDFLAGS[sdk=iphonesimulator*][arch=x86_64]" = (
"-pagezero_size",
10000,
"-image_base",
100000000,
);
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/.. $(SRCROOT)/../cocos/platform/ios $(SRCROOT)/../external $(SRCROOT)/../external/lua/luajit/include $(SRCROOT)/../external/lua/tolua $(SRCROOT)/../cocos/scripting/lua-bindings/manual $(SRCROOT)/../cocos/scripting/lua-bindings/auto";
@ -5639,6 +5655,12 @@
"$(SRCROOT)/../external/curl/prebuilt/ios",
"/Users/cocos2d/MyWork/cocos2d-x-develop/external/curl/prebuilt/ios",
);
"OTHER_LDFLAGS[sdk=iphonesimulator*][arch=x86_64]" = (
"-pagezero_size",
10000,
"-image_base",
100000000,
);
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/.. $(SRCROOT)/../cocos/platform/ios $(SRCROOT)/../external $(SRCROOT)/../external/lua/luajit/include $(SRCROOT)/../external/lua/tolua $(SRCROOT)/../cocos/scripting/lua-bindings/manual $(SRCROOT)/../cocos/scripting/lua-bindings/auto";
@ -5660,6 +5682,12 @@
"$(SRCROOT)/../external/curl/prebuilt/ios",
"/Users/cocos2d/MyWork/cocos2d-x-develop/external/curl/prebuilt/ios",
);
"OTHER_LDFLAGS[sdk=iphonesimulator*][arch=x86_64]" = (
"-pagezero_size",
10000,
"-image_base",
100000000,
);
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/.. $(SRCROOT)/../cocos/platform/ios $(SRCROOT)/../external $(SRCROOT)/../external/lua/luajit/include $(SRCROOT)/../external/lua/tolua $(SRCROOT)/../cocos/scripting/lua-bindings/manual $(SRCROOT)/../cocos/scripting/lua-bindings/auto";

View File

@ -58,7 +58,7 @@ set(_OpenalSoft_inc_paths AL)
set(_OpenalSoft_libs OpenAL32)
set(_zlib_inc zlib.h)
set(_zlib_libs libzlib)
set(_zlib_libs z libzlib libz)
set(_fmod_prefix FMODEX)
set(_fmod_inc fmod.h)
@ -77,7 +77,7 @@ set(all_prebuilt_libs
if(MACOSX)
list(APPEND all_prebuilt_libs glfw3)
list(APPEND all_prebuilt_libs glfw3 zlib)
endif()
# We use MSVC instead of WINDOWS because it can be mingw that can't use our prebuilt libs

View File

@ -60,9 +60,9 @@ ActionCamera * ActionCamera::reverse() const
void ActionCamera::restore()
{
_center = Vec3(0, 0, 0);
_eye = Vec3(0, 0, FLT_EPSILON);
_up = Vec3(0, 1, 0);
_center.setZero();
_eye.set(0.0f, 0.0f, FLT_EPSILON);
_up.set(0.0f, 1.0f, 0.0f);
}
void ActionCamera::setEye(const Vec3& eye)
@ -73,7 +73,7 @@ void ActionCamera::setEye(const Vec3& eye)
void ActionCamera::setEye(float x, float y, float z)
{
_eye = Vec3(x, y, z);
_eye.set(x, y, z);
updateTransform();
}

View File

@ -83,7 +83,8 @@ static inline Vec2 v2fforangle(float _a_)
static inline Vec2 v2fnormalize(const Vec2 &p)
{
Vec2 r = Vec2(p.x, p.y).getNormalized();
Vec2 r(p.x, p.y);
r.normalize();
return v2f(r.x, r.y);
}

View File

@ -752,28 +752,28 @@ void Label::enableOutline(const Color4B& outlineColor,int outlineSize /* = -1 */
{
CCASSERT(_currentLabelType == LabelType::STRING_TEXTURE || _currentLabelType == LabelType::TTF, "Only supported system font and TTF!");
_effectColor = outlineColor;
_effectColorF.r = _effectColor.r / 255.0f;
_effectColorF.g = _effectColor.g / 255.0f;
_effectColorF.b = _effectColor.b / 255.0f;
_effectColorF.a = _effectColor.a / 255.0f;
if (outlineSize > 0)
if (outlineSize > 0 || _currLabelEffect == LabelEffect::OUTLINE)
{
_outlineSize = outlineSize;
if (_currentLabelType == LabelType::TTF)
{
if (_fontConfig.outlineSize != outlineSize)
{
auto config = _fontConfig;
config.outlineSize = outlineSize;
setTTFConfig(config);
updateShaderProgram();
_effectColorF.r = outlineColor.r / 255.0f;
_effectColorF.g = outlineColor.g / 255.0f;
_effectColorF.b = outlineColor.b / 255.0f;
_effectColorF.a = outlineColor.a / 255.0f;
if (outlineSize > 0 && _fontConfig.outlineSize != outlineSize)
{
_fontConfig.outlineSize = outlineSize;
setTTFConfig(_fontConfig);
}
}
_currLabelEffect = LabelEffect::OUTLINE;
_contentDirty = true;
else if (_effectColor != outlineColor || _outlineSize != outlineSize)
{
_effectColor = outlineColor;
_outlineSize = outlineSize;
_currLabelEffect = LabelEffect::OUTLINE;
_contentDirty = true;
}
}
}
@ -782,11 +782,6 @@ void Label::enableShadow(const Color4B& shadowColor /* = Color4B::BLACK */,const
_shadowEnabled = true;
_shadowDirty = true;
_shadowColor.r = shadowColor.r;
_shadowColor.g = shadowColor.g;
_shadowColor.b = shadowColor.b;
_shadowOpacity = shadowColor.a / 255.0f;
auto contentScaleFactor = CC_CONTENT_SCALE_FACTOR();
_shadowOffset.width = offset.width * contentScaleFactor;
_shadowOffset.height = offset.height * contentScaleFactor;
@ -795,27 +790,75 @@ void Label::enableShadow(const Color4B& shadowColor /* = Color4B::BLACK */,const
if (_textSprite && _shadowNode)
{
_shadowNode->setColor(_shadowColor);
_shadowNode->setOpacity(_shadowOpacity * _displayedOpacity);
_shadowNode->setPosition(_shadowOffset.width, _shadowOffset.height);
if (shadowColor != _shadowColor4F)
{
Node::removeChild(_shadowNode, true);
_shadowNode = nullptr;
createShadowSpriteForSystemFont();
}
else
{
_shadowNode->setPosition(_shadowOffset.width, _shadowOffset.height);
}
}
_shadowColor3B.r = shadowColor.r;
_shadowColor3B.g = shadowColor.g;
_shadowColor3B.b = shadowColor.b;
_shadowOpacity = shadowColor.a;
_shadowColor4F.r = shadowColor.r / 255.0f;
_shadowColor4F.g = shadowColor.g / 255.0f;
_shadowColor4F.b = shadowColor.b / 255.0f;
_shadowColor4F.a = shadowColor.a / 255.0f;
}
void Label::disableEffect()
{
if (_currLabelEffect == LabelEffect::OUTLINE)
disableEffect(LabelEffect::GLOW);
disableEffect(LabelEffect::OUTLINE);
disableEffect(LabelEffect::SHADOW);
}
void Label::disableEffect(LabelEffect effect)
{
switch (effect)
{
_fontConfig.outlineSize = 0;
setTTFConfig(_fontConfig);
}
_currLabelEffect = LabelEffect::NORMAL;
updateShaderProgram();
_contentDirty = true;
_shadowEnabled = false;
if (_shadowNode)
{
Node::removeChild(_shadowNode,true);
_shadowNode = nullptr;
case cocos2d::LabelEffect::NORMAL:
break;
case cocos2d::LabelEffect::OUTLINE:
if (_currLabelEffect == LabelEffect::OUTLINE)
{
if (_currentLabelType == LabelType::TTF)
{
_fontConfig.outlineSize = 0;
setTTFConfig(_fontConfig);
}
_currLabelEffect = LabelEffect::NORMAL;
_contentDirty = true;
}
break;
case cocos2d::LabelEffect::SHADOW:
if (_shadowEnabled)
{
_shadowEnabled = false;
if (_shadowNode)
{
Node::removeChild(_shadowNode, true);
_shadowNode = nullptr;
}
}
break;
case cocos2d::LabelEffect::GLOW:
if (_currLabelEffect == LabelEffect::GLOW)
{
_currLabelEffect = LabelEffect::NORMAL;
updateShaderProgram();
}
break;
default:
break;
}
}
@ -827,8 +870,6 @@ void Label::setFontScale(float fontScale)
void Label::onDraw(const Mat4& transform, bool transformUpdated)
{
CC_PROFILER_START("Label - draw");
// Optimization: Fast Dispatch
if( _batchNodes.size() == 1 && _textureAtlas->getTotalQuads() == 0 )
{
@ -839,21 +880,57 @@ void Label::onDraw(const Mat4& transform, bool transformUpdated)
glprogram->use();
GL::blendFunc( _blendFunc.src, _blendFunc.dst );
if (_shadowEnabled)
{
if (_currentLabelType == LabelType::TTF)
{
glprogram->setUniformLocationWith4f(_uniformTextColor,
_shadowColor4F.r, _shadowColor4F.g, _shadowColor4F.b, _shadowColor4F.a);
glprogram->setUniformLocationWith4f(_uniformEffectColor,
_shadowColor4F.r, _shadowColor4F.g, _shadowColor4F.b, _shadowColor4F.a);
getGLProgram()->setUniformsForBuiltins(_shadowTransform);
for (const auto &child : _children)
{
child->updateTransform();
}
for (const auto& batchNode : _batchNodes)
{
batchNode->getTextureAtlas()->drawQuads();
}
}
else
{
Color3B oldColor = _realColor;
GLubyte oldOPacity = _displayedOpacity;
_displayedOpacity = _shadowOpacity;
setColor(_shadowColor3B);
getGLProgram()->setUniformsForBuiltins(_shadowTransform);
for (const auto &child : _children)
{
child->updateTransform();
}
for (const auto& batchNode : _batchNodes)
{
batchNode->getTextureAtlas()->drawQuads();
}
_displayedOpacity = oldOPacity;
setColor(oldColor);
}
}
if (_currentLabelType == LabelType::TTF)
{
glprogram->setUniformLocationWith4f(_uniformTextColor,
_textColorF.r,_textColorF.g,_textColorF.b,_textColorF.a);
}
if (_currLabelEffect == LabelEffect::OUTLINE || _currLabelEffect == LabelEffect::GLOW)
{
glprogram->setUniformLocationWith4f(_uniformEffectColor,
_effectColorF.r,_effectColorF.g,_effectColorF.b,_effectColorF.a);
}
if(_shadowEnabled && _shadowBlurRadius <= 0)
{
drawShadowWithoutBlur();
if (_currLabelEffect == LabelEffect::OUTLINE || _currLabelEffect == LabelEffect::GLOW)
{
glprogram->setUniformLocationWith4f(_uniformEffectColor,
_effectColorF.r, _effectColorF.g, _effectColorF.b, _effectColorF.a);
}
}
glprogram->setUniformsForBuiltins(transform);
@ -868,29 +945,6 @@ void Label::onDraw(const Mat4& transform, bool transformUpdated)
{
batchNode->getTextureAtlas()->drawQuads();
}
CC_PROFILER_STOP("Label - draw");
}
void Label::drawShadowWithoutBlur()
{
Color3B oldColor = _realColor;
GLubyte oldOPacity = _displayedOpacity;
_displayedOpacity = _shadowOpacity * _displayedOpacity;
setColor(_shadowColor);
getGLProgram()->setUniformsForBuiltins(_shadowTransform);
for(const auto &child: _children)
{
child->updateTransform();
}
for (const auto& batchNode:_batchNodes)
{
batchNode->getTextureAtlas()->drawQuads();
}
_displayedOpacity = oldOPacity;
setColor(oldColor);
}
void Label::draw(Renderer *renderer, const Mat4 &transform, uint32_t flags)
@ -910,26 +964,53 @@ void Label::draw(Renderer *renderer, const Mat4 &transform, uint32_t flags)
}
}
void Label::setCameraMask(unsigned short mask, bool applyChildren)
{
SpriteBatchNode::setCameraMask(mask, applyChildren);
if (_textSprite)
{
_textSprite->setCameraMask(mask, applyChildren);
}
if (_shadowNode)
{
_shadowNode->setCameraMask(mask, applyChildren);
}
}
void Label::createSpriteWithFontDefinition()
void Label::createSpriteForSystemFont()
{
_currentLabelType = LabelType::STRING_TEXTURE;
if (!_compatibleMode)
{
_fontDefinition._fontName = _systemFont;
_fontDefinition._fontSize = _systemFontSize;
_fontDefinition._alignment = _hAlignment;
_fontDefinition._vertAlignment = _vAlignment;
_fontDefinition._dimensions.width = _labelWidth;
_fontDefinition._dimensions.height = _labelHeight;
_fontDefinition._fontFillColor.r = _textColor.r;
_fontDefinition._fontFillColor.g = _textColor.g;
_fontDefinition._fontFillColor.b = _textColor.b;
_fontDefinition._fontAlpha = _textColor.a;
_fontDefinition._shadow._shadowEnabled = false;
if (_currLabelEffect == LabelEffect::OUTLINE && _outlineSize > 0)
{
_fontDefinition._stroke._strokeEnabled = true;
_fontDefinition._stroke._strokeSize = _outlineSize;
_fontDefinition._stroke._strokeColor.r = _effectColor.r;
_fontDefinition._stroke._strokeColor.g = _effectColor.g;
_fontDefinition._stroke._strokeColor.b = _effectColor.b;
_fontDefinition._stroke._strokeAlpha = _effectColor.a;
}
else
{
_fontDefinition._stroke._strokeEnabled = false;
}
#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID) && (CC_TARGET_PLATFORM != CC_PLATFORM_IOS)
if (_fontDefinition._stroke._strokeEnabled)
{
CCLOGERROR("Currently only supported on iOS and Android!");
}
_fontDefinition._stroke._strokeEnabled = false;
#endif
}
auto texture = new (std::nothrow) Texture2D;
texture->initWithString(_originalUTF8String.c_str(),_fontDefinition);
texture->initWithString(_originalUTF8String.c_str(), _fontDefinition);
_textSprite = Sprite::createWithTexture(texture);
//set camera mask using label's camera mask, because _textSprite may be null when setting camera mask to label
@ -942,12 +1023,65 @@ void Label::createSpriteWithFontDefinition()
_textSprite->setBlendFunc(_blendFunc);
}
Node::addChild(_textSprite,0,Node::INVALID_TAG);
Node::addChild(_textSprite, 0, Node::INVALID_TAG);
_textSprite->updateDisplayedColor(_displayedColor);
_textSprite->updateDisplayedOpacity(_displayedOpacity);
}
void Label::createShadowSpriteForSystemFont()
{
if (!_fontDefinition._stroke._strokeEnabled && _fontDefinition._fontFillColor == _shadowColor4F
&& (_fontDefinition._fontAlpha == _shadowColor4F.a * 255))
{
_shadowNode = Sprite::createWithTexture(_textSprite->getTexture());
}
else
{
auto shadowFontDefinition = _fontDefinition;
shadowFontDefinition._fontFillColor.r = _shadowColor4F.r * 255;
shadowFontDefinition._fontFillColor.g = _shadowColor4F.g * 255;
shadowFontDefinition._fontFillColor.b = _shadowColor4F.b * 255;
shadowFontDefinition._fontAlpha = _shadowColor4F.a * 255;
shadowFontDefinition._stroke._strokeColor = shadowFontDefinition._fontFillColor;
shadowFontDefinition._stroke._strokeAlpha = shadowFontDefinition._fontAlpha;
auto texture = new (std::nothrow) Texture2D;
texture->initWithString(_originalUTF8String.c_str(), shadowFontDefinition);
_shadowNode = Sprite::createWithTexture(texture);
texture->release();
}
if (_shadowNode)
{
if (_blendFuncDirty)
{
_shadowNode->setBlendFunc(_blendFunc);
}
_shadowNode->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);
_shadowNode->setPosition(_shadowOffset.width, _shadowOffset.height);
Node::addChild(_shadowNode, 0, Node::INVALID_TAG);
_shadowNode->updateDisplayedColor(_displayedColor);
_shadowNode->updateDisplayedOpacity(_displayedOpacity);
}
}
void Label::setCameraMask(unsigned short mask, bool applyChildren)
{
SpriteBatchNode::setCameraMask(mask, applyChildren);
if (_textSprite)
{
_textSprite->setCameraMask(mask, applyChildren);
}
if (_shadowNode)
{
_shadowNode->setCameraMask(mask, applyChildren);
}
}
void Label::setFontDefinition(const FontDefinition& textDefinition)
{
_fontDefinition = textDefinition;
@ -968,140 +1102,62 @@ void Label::setFontDefinition(const FontDefinition& textDefinition)
void Label::updateContent()
{
std::u16string utf16String;
if (StringUtils::UTF8ToUTF16(_originalUTF8String, utf16String))
if (_systemFontDirty)
{
_currentUTF16String = utf16String;
}
if (_fontAtlas)
{
_batchNodes.clear();
_batchNodes.push_back(this);
computeStringNumLines();
if (_fontAtlas)
{
computeHorizontalKernings(_currentUTF16String);
FontAtlasCache::releaseFontAtlas(_fontAtlas);
_fontAtlas = nullptr;
}
_systemFontDirty = false;
}
if (_textSprite)
{
Node::removeChild(_textSprite,true);
Node::removeChild(_textSprite, true);
_textSprite = nullptr;
if (_shadowNode)
{
Node::removeChild(_shadowNode,true);
Node::removeChild(_shadowNode, true);
_shadowNode = nullptr;
}
}
if (_fontAtlas)
{
std::u16string utf16String;
if (StringUtils::UTF8ToUTF16(_originalUTF8String, utf16String))
{
_currentUTF16String = utf16String;
}
computeStringNumLines();
computeHorizontalKernings(_currentUTF16String);
alignText();
}
else
{
if (!_compatibleMode)
createSpriteForSystemFont();
if (_shadowEnabled)
{
_fontDefinition._fontName = _systemFont;
_fontDefinition._fontSize = _systemFontSize;
_fontDefinition._alignment = _hAlignment;
_fontDefinition._vertAlignment = _vAlignment;
_fontDefinition._dimensions.width = _labelWidth;
_fontDefinition._dimensions.height = _labelHeight;
_fontDefinition._fontFillColor.r = _textColor.r;
_fontDefinition._fontFillColor.g = _textColor.g;
_fontDefinition._fontFillColor.b = _textColor.b;
_fontDefinition._fontAlpha = _textColor.a;
_fontDefinition._shadow._shadowEnabled = false;
if (_currLabelEffect == LabelEffect::OUTLINE && _outlineSize > 0)
{
_fontDefinition._stroke._strokeEnabled = true;
_fontDefinition._stroke._strokeSize = _outlineSize;
_fontDefinition._stroke._strokeColor.r = _effectColor.r;
_fontDefinition._stroke._strokeColor.g = _effectColor.g;
_fontDefinition._stroke._strokeColor.b = _effectColor.b;
_fontDefinition._stroke._strokeAlpha = _effectColor.a;
}
else
{
_fontDefinition._stroke._strokeEnabled = false;
}
#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID) && (CC_TARGET_PLATFORM != CC_PLATFORM_IOS)
if (_fontDefinition._stroke._strokeEnabled)
{
CCLOGERROR("Currently only supported on iOS and Android!");
}
_fontDefinition._stroke._strokeEnabled = false;
#endif
createShadowSpriteForSystemFont();
}
createSpriteWithFontDefinition();
}
_contentDirty = false;
}
void Label::updateFont()
{
if (_fontAtlas)
{
_batchNodes.clear();
_batchNodes.push_back(this);
FontAtlasCache::releaseFontAtlas(_fontAtlas);
_fontAtlas = nullptr;
}
_contentDirty = true;
_systemFontDirty = false;
}
void Label::drawTextSprite(Renderer *renderer, uint32_t parentFlags)
{
if (_fontDefinition._fontFillColor.r != _textColor.r || _fontDefinition._fontFillColor.g != _textColor.g
|| _fontDefinition._fontFillColor.b != _textColor.b)
{
updateContent();
}
if (_shadowEnabled && _shadowNode == nullptr)
{
_shadowNode = Sprite::createWithTexture(_textSprite->getTexture());
if (_shadowNode)
{
if (_blendFuncDirty)
{
_shadowNode->setBlendFunc(_blendFunc);
}
//set camera mask using label's mask. Because _shadowNode may be null when setting the label's camera mask
_shadowNode->setCameraMask(getCameraMask());
_shadowNode->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);
_shadowNode->setColor(_shadowColor);
_shadowNode->setOpacity(_shadowOpacity * _displayedOpacity);
_shadowNode->setPosition(_shadowOffset.width, _shadowOffset.height);
Node::addChild(_shadowNode,0,Node::INVALID_TAG);
}
}
if (_shadowNode)
{
_shadowNode->visit(renderer, _modelViewTransform, parentFlags);
}
_textSprite->visit(renderer, _modelViewTransform, parentFlags);
}
void Label::visit(Renderer *renderer, const Mat4 &parentTransform, uint32_t parentFlags)
{
if (! _visible || _originalUTF8String.empty())
{
return;
}
if (_systemFontDirty)
{
updateFont();
}
if (_contentDirty)
if (_systemFontDirty || _contentDirty)
{
updateContent();
}
@ -1140,7 +1196,11 @@ void Label::visit(Renderer *renderer, const Mat4 &parentTransform, uint32_t pare
if (_textSprite)
{
drawTextSprite(renderer, flags);
if (_shadowNode)
{
_shadowNode->visit(renderer, _modelViewTransform, parentFlags);
}
_textSprite->visit(renderer, _modelViewTransform, parentFlags);
}
else
{
@ -1343,6 +1403,15 @@ void Label::setTextColor(const Color4B &color)
_textColorF.g = _textColor.g / 255.0f;
_textColorF.b = _textColor.b / 255.0f;
_textColorF.a = _textColor.a / 255.0f;
if (_currentLabelType == LabelType::STRING_TEXTURE)
{
if (_fontDefinition._fontFillColor.r != _textColor.r || _fontDefinition._fontFillColor.g != _textColor.g
|| _fontDefinition._fontFillColor.b != _textColor.b || _fontDefinition._fontAlpha != _textColor.a)
{
_contentDirty = true;
}
}
}
void Label::updateColor()
@ -1390,11 +1459,7 @@ std::string Label::getDescription() const
const Size& Label::getContentSize() const
{
if (_systemFontDirty)
{
const_cast<Label*>(this)->updateFont();
}
if (_contentDirty)
if (_systemFontDirty || _contentDirty)
{
const_cast<Label*>(this)->updateContent();
}

View File

@ -335,6 +335,13 @@ public:
*/
virtual void disableEffect();
/**
* Disable effect to Label.
*
* @see `LabelEffect`
*/
virtual void disableEffect(LabelEffect effect);
/** Sets the Label's text horizontal alignment.*/
void setAlignment(TextHAlignment hAlignment) { setAlignment(hAlignment,_vAlignment);}
@ -528,13 +535,10 @@ protected:
virtual void updateShaderProgram();
void drawShadowWithoutBlur();
void createSpriteForSystemFont();
void drawTextSprite(Renderer *renderer, uint32_t parentFlags);
void createShadowSpriteForSystemFont();
void createSpriteWithFontDefinition();
void updateFont();
void reset();
std::string _bmFontPath;
@ -597,8 +601,9 @@ protected:
Size _shadowOffset;
int _shadowBlurRadius;
Mat4 _shadowTransform;
Color3B _shadowColor;
float _shadowOpacity;
Color4F _shadowColor4F;
Color3B _shadowColor3B;
GLubyte _shadowOpacity;
Sprite* _shadowNode;
int _outlineSize;

View File

@ -367,20 +367,21 @@ void Sprite::setTextureRect(const Rect& rect, bool rotated, const Size& untrimme
setVertexRect(rect);
setTextureCoords(rect);
Vec2 relativeOffset = _unflippedOffsetPositionFromCenter;
float relativeOffsetX = _unflippedOffsetPositionFromCenter.x;
float relativeOffsetY = _unflippedOffsetPositionFromCenter.y;
// issue #732
if (_flippedX)
{
relativeOffset.x = -relativeOffset.x;
relativeOffsetX = -relativeOffsetX;
}
if (_flippedY)
{
relativeOffset.y = -relativeOffset.y;
relativeOffsetY = -relativeOffsetY;
}
_offsetPosition.x = relativeOffset.x + (_contentSize.width - _rect.size.width) / 2;
_offsetPosition.y = relativeOffset.y + (_contentSize.height - _rect.size.height) / 2;
_offsetPosition.x = relativeOffsetX + (_contentSize.width - _rect.size.width) / 2;
_offsetPosition.y = relativeOffsetY + (_contentSize.height - _rect.size.height) / 2;
// rendering using batch node
if (_batchNode)
@ -393,16 +394,16 @@ void Sprite::setTextureRect(const Rect& rect, bool rotated, const Size& untrimme
// self rendering
// Atlas: Vertex
float x1 = 0 + _offsetPosition.x;
float y1 = 0 + _offsetPosition.y;
float x1 = 0.0f + _offsetPosition.x;
float y1 = 0.0f + _offsetPosition.y;
float x2 = x1 + _rect.size.width;
float y2 = y1 + _rect.size.height;
// Don't update Z.
_quad.bl.vertices = Vec3(x1, y1, 0);
_quad.br.vertices = Vec3(x2, y1, 0);
_quad.tl.vertices = Vec3(x1, y2, 0);
_quad.tr.vertices = Vec3(x2, y2, 0);
_quad.bl.vertices.set(x1, y1, 0.0f);
_quad.br.vertices.set(x2, y1, 0.0f);
_quad.tl.vertices.set(x1, y2, 0.0f);
_quad.tr.vertices.set(x2, y2, 0.0f);
}
}
@ -507,7 +508,10 @@ void Sprite::updateTransform(void)
// If it is not visible, or one of its ancestors is not visible, then do nothing:
if( !_visible || ( _parent && _parent != _batchNode && static_cast<Sprite*>(_parent)->_shouldBeHidden) )
{
_quad.br.vertices = _quad.tl.vertices = _quad.tr.vertices = _quad.bl.vertices = Vec3(0,0,0);
_quad.br.vertices.setZero();
_quad.tl.vertices.setZero();
_quad.tr.vertices.setZero();
_quad.bl.vertices.setZero();
_shouldBeHidden = true;
}
else
@ -556,10 +560,10 @@ void Sprite::updateTransform(void)
float dx = x1 * cr - y2 * sr2 + x;
float dy = x1 * sr + y2 * cr2 + y;
_quad.bl.vertices = Vec3( RENDER_IN_SUBPIXEL(ax), RENDER_IN_SUBPIXEL(ay), _positionZ );
_quad.br.vertices = Vec3( RENDER_IN_SUBPIXEL(bx), RENDER_IN_SUBPIXEL(by), _positionZ );
_quad.tl.vertices = Vec3( RENDER_IN_SUBPIXEL(dx), RENDER_IN_SUBPIXEL(dy), _positionZ );
_quad.tr.vertices = Vec3( RENDER_IN_SUBPIXEL(cx), RENDER_IN_SUBPIXEL(cy), _positionZ );
_quad.bl.vertices.set(RENDER_IN_SUBPIXEL(ax), RENDER_IN_SUBPIXEL(ay), _positionZ);
_quad.br.vertices.set(RENDER_IN_SUBPIXEL(bx), RENDER_IN_SUBPIXEL(by), _positionZ);
_quad.tl.vertices.set(RENDER_IN_SUBPIXEL(dx), RENDER_IN_SUBPIXEL(dy), _positionZ);
_quad.tr.vertices.set(RENDER_IN_SUBPIXEL(cx), RENDER_IN_SUBPIXEL(cy), _positionZ);
}
// MARMALADE CHANGE: ADDED CHECK FOR nullptr, TO PERMIT SPRITES WITH NO BATCH NODE / TEXTURE ATLAS
@ -1016,10 +1020,10 @@ void Sprite::setBatchNode(SpriteBatchNode *spriteBatchNode)
float y1 = _offsetPosition.y;
float x2 = x1 + _rect.size.width;
float y2 = y1 + _rect.size.height;
_quad.bl.vertices = Vec3( x1, y1, 0 );
_quad.br.vertices = Vec3( x2, y1, 0 );
_quad.tl.vertices = Vec3( x1, y2, 0 );
_quad.tr.vertices = Vec3( x2, y2, 0 );
_quad.bl.vertices.set( x1, y1, 0 );
_quad.br.vertices.set(x2, y1, 0);
_quad.tl.vertices.set(x1, y2, 0);
_quad.tr.vertices.set(x2, y2, 0);
} else {

View File

@ -621,7 +621,7 @@ Vec2 TMXLayer::calculateLayerOffset(const Vec2& pos)
case TMXOrientationStaggered:
{
float diffX = 0;
if ((int)abs(pos.y) % 2 == 1)
if ((int)std::abs(pos.y) % 2 == 1)
{
diffX = _mapTileSize.width/2;
}

View File

@ -7,7 +7,7 @@
<PropertyGroup />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos;$(EngineRoot)cocos\platform;$(EngineRoot)cocos\platform\desktop;$(EngineRoot)external\glfw3\include\win32;$(EngineRoot)external\win32-specific\gles\include\OGLES</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos;$(EngineRoot)cocos\platform;$(EngineRoot)cocos\platform\desktop;$(EngineRoot)external\glfw3\include\win32;$(EngineRoot)external\win32-specific\gles\include\OGLES;$(EngineRoot)external\freetype2\include\win32\freetype2;$(EngineRoot)external\freetype2\include\win32\</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_VARIADIC_MAX=10;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ProjectReference>

View File

@ -480,7 +480,6 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\chipmunk\prebuilt\win32\release-lib\*.*
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCActionTimelineCache.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCActionTimelineNode.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCFrame.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCNodeReader.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCTimeLine.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CSLoader.cpp" />
<ClCompile Include="..\editor-support\cocostudio\CCActionFrame.cpp" />
@ -1036,7 +1035,6 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\chipmunk\prebuilt\win32\release-lib\*.*
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCActionTimelineCache.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCActionTimelineNode.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCFrame.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCNodeReader.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCTimeLine.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCTimelineMacro.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CSLoader.h" />

View File

@ -1240,7 +1240,6 @@
<ClCompile Include="..\audio\win32\AudioPlayer.cpp">
<Filter>audioengine</Filter>
</ClCompile>
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCNodeReader.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CSLoader.cpp">
<Filter>cocostudio\TimelineAction</Filter>
</ClCompile>
@ -2944,7 +2943,6 @@
<ClInclude Include="..\audio\win32\AudioPlayer.h">
<Filter>audioengine</Filter>
</ClInclude>
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCNodeReader.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CSLoader.h">
<Filter>cocostudio\TimelineAction</Filter>
</ClInclude>

View File

@ -341,7 +341,6 @@
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCActionTimelineCache.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCActionTimelineNode.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCFrame.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCNodeReader.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCTimeLine.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCTimelineMacro.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CSLoader.h" />
@ -914,7 +913,6 @@
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCActionTimelineCache.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCActionTimelineNode.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCFrame.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCNodeReader.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCTimeLine.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CSLoader.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\CCActionFrame.cpp" />

View File

@ -703,9 +703,6 @@
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCFrame.h">
<Filter>cocostudio\TimelineAction</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCNodeReader.h">
<Filter>cocostudio\TimelineAction</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCTimeLine.h">
<Filter>cocostudio\TimelineAction</Filter>
</ClInclude>
@ -2344,9 +2341,6 @@
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCFrame.cpp">
<Filter>cocostudio\TimelineAction</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCNodeReader.cpp">
<Filter>cocostudio\TimelineAction</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\ActionTimeline\CCTimeLine.cpp">
<Filter>cocostudio\TimelineAction</Filter>
</ClCompile>

View File

@ -502,7 +502,6 @@
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCActionTimelineCache.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCActionTimelineNode.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCFrame.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCNodeReader.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCTimeLine.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCTimelineMacro.h" />
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CSLoader.h" />
@ -1147,7 +1146,6 @@
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCActionTimelineCache.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCActionTimelineNode.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCFrame.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCNodeReader.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCTimeLine.cpp" />
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CSLoader.cpp" />
<ClCompile Include="..\editor-support\cocostudio\CCActionFrame.cpp" />

View File

@ -962,9 +962,6 @@
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCFrame.cpp">
<Filter>cocostudio\TimelineAction</Filter>
</ClCompile>
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCNodeReader.cpp">
<Filter>cocostudio\TimelineAction</Filter>
</ClCompile>
<ClCompile Include="..\editor-support\cocostudio\ActionTimeline\CCTimeLine.cpp">
<Filter>cocostudio\TimelineAction</Filter>
</ClCompile>
@ -2633,9 +2630,6 @@
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCFrame.h">
<Filter>cocostudio\TimelineAction</Filter>
</ClInclude>
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCNodeReader.h">
<Filter>cocostudio\TimelineAction</Filter>
</ClInclude>
<ClInclude Include="..\editor-support\cocostudio\ActionTimeline\CCTimeLine.h">
<Filter>cocostudio\TimelineAction</Filter>
</ClInclude>

View File

@ -7,7 +7,7 @@
<PropertyGroup />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\include;$(EngineRoot)external\freetype2\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\curl\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\websockets\include\$(COCOS2D_PLATFORM);$(EngineRoot)cocos\platform\winrt;$(EngineRoot)cocos\platform;$(EngineRoot)cocos\editor-support;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\sqlite3\include;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos;$(EngineRoot)extensions;$(EngineRoot)external;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\unzip;$(EngineRoot)external\tinyxml2;$(EngineRoot);$(EngineRoot)external\ConvertUTF;$(EngineRoot)external\xxhash;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\include;$(EngineRoot)external\freetype2\include\$(COCOS2D_PLATFORM)\freetype;$(EngineRoot)external\curl\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\websockets\include\$(COCOS2D_PLATFORM);$(EngineRoot)cocos\platform\winrt;$(EngineRoot)cocos\platform;$(EngineRoot)cocos\editor-support;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\sqlite3\include;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos;$(EngineRoot)extensions;$(EngineRoot)external;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\unzip;$(EngineRoot)external\tinyxml2;$(EngineRoot);$(EngineRoot)external\ConvertUTF;$(EngineRoot)external\xxhash;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<ClCompile>
<PreprocessorDefinitions>WINRT;_VARIADIC_MAX=10;NOMINMAX;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

View File

@ -10,7 +10,7 @@
<PropertyGroup />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\include;$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\zlib\include;$(EngineRoot)external\freetype2\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\curl\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\websockets\include\$(COCOS2D_PLATFORM);$(EngineRoot)cocos\platform\wp8;$(EngineRoot)cocos\platform\winrt;$(EngineRoot)cocos\platform;$(EngineRoot)cocos\editor-support;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\sqlite3\include;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos;$(EngineRoot)extensions;$(EngineRoot)external;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\unzip;$(EngineRoot)external\tinyxml2;$(EngineRoot);$(EngineRoot)external\ConvertUTF;$(EngineRoot)external\xxhash;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\include;$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\zlib\include;$(EngineRoot)external\freetype2\include\$(COCOS2D_PLATFORM)\freetype;$(EngineRoot)external\curl\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\websockets\include\$(COCOS2D_PLATFORM);$(EngineRoot)cocos\platform\wp8;$(EngineRoot)cocos\platform\winrt;$(EngineRoot)cocos\platform;$(EngineRoot)cocos\editor-support;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\sqlite3\include;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos;$(EngineRoot)extensions;$(EngineRoot)external;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\unzip;$(EngineRoot)external\tinyxml2;$(EngineRoot);$(EngineRoot)external\ConvertUTF;$(EngineRoot)external\xxhash;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<ClCompile>
<PreprocessorDefinitions>WP8;_VARIADIC_MAX=10;NOMINMAX;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

View File

@ -33,7 +33,7 @@ void AnimationCurve<componentSize>::evaluate(float time, float* dst, EvaluateTyp
break;
case EvaluateType::INT_NEAR:
{
float* src = t > 0.5f ? toValue : fromValue;
float* src = fabs(t) > 0.5f ? toValue : fromValue;
memcpy(dst, src, _componentSizeByte);
}
break;

View File

@ -173,7 +173,7 @@ bool BillBoard::calculateBillbaordTransform()
switch (_mode)
{
case Mode::VIEW_POINT_ORIENTED:
camDir = Vec3(localToWorld.m[12] - camWorldMat.m[12], localToWorld.m[13] - camWorldMat.m[13], localToWorld.m[14] - camWorldMat.m[14]);
camDir.set(localToWorld.m[12] - camWorldMat.m[12], localToWorld.m[13] - camWorldMat.m[13], localToWorld.m[14] - camWorldMat.m[14]);
break;
case Mode::VIEW_PLANE_ORIENTED:
camWorldMat.transformVector(Vec3(0.0f, 0.0f, -1.0f), &camDir);
@ -196,7 +196,7 @@ bool BillBoard::calculateBillbaordTransform()
Mat4 rotationMatrix;
rotationMatrix.setIdentity();
Vec3 upAxis = Vec3(rotationMatrix.m[4],rotationMatrix.m[5],rotationMatrix.m[6]);
Vec3 upAxis(rotationMatrix.m[4],rotationMatrix.m[5],rotationMatrix.m[6]);
Vec3 x, y;
camWorldMat.transformVector(upAxis, &y);
Vec3::cross(camDir, y, &x);

View File

@ -751,8 +751,8 @@ bool Bundle3D::loadMeshDatasJson(MeshDatas& meshdatas)
const rapidjson::Value& mesh_part_aabb = mesh_part[AABBS];
if (mesh_part.HasMember(AABBS) && mesh_part_aabb.Size() == 6)
{
Vec3 min = Vec3(mesh_part_aabb[(rapidjson::SizeType)0].GetDouble(), mesh_part_aabb[(rapidjson::SizeType)1].GetDouble(), mesh_part_aabb[(rapidjson::SizeType)2].GetDouble());
Vec3 max = Vec3(mesh_part_aabb[(rapidjson::SizeType)3].GetDouble(), mesh_part_aabb[(rapidjson::SizeType)4].GetDouble(), mesh_part_aabb[(rapidjson::SizeType)5].GetDouble());
Vec3 min(mesh_part_aabb[(rapidjson::SizeType)0].GetDouble(), mesh_part_aabb[(rapidjson::SizeType)1].GetDouble(), mesh_part_aabb[(rapidjson::SizeType)2].GetDouble());
Vec3 max(mesh_part_aabb[(rapidjson::SizeType)3].GetDouble(), mesh_part_aabb[(rapidjson::SizeType)4].GetDouble(), mesh_part_aabb[(rapidjson::SizeType)5].GetDouble());
meshData->subMeshAABB.push_back(AABB(min, max));
}
else
@ -1436,7 +1436,7 @@ bool Bundle3D::loadAnimationDataJson(const std::string& id, Animation3DData* ani
{
const rapidjson::Value& bone_keyframe_translation = bone_keyframe[TRANSLATION];
float keytime = bone_keyframe[KEYTIME].GetDouble();
Vec3 val = Vec3(bone_keyframe_translation[(rapidjson::SizeType)0].GetDouble(), bone_keyframe_translation[1].GetDouble(), bone_keyframe_translation[2].GetDouble());
Vec3 val(bone_keyframe_translation[(rapidjson::SizeType)0].GetDouble(), bone_keyframe_translation[1].GetDouble(), bone_keyframe_translation[2].GetDouble());
animationdata->_translationKeys[bone_name].push_back(Animation3DData::Vec3Key(keytime,val));
}
@ -1452,7 +1452,7 @@ bool Bundle3D::loadAnimationDataJson(const std::string& id, Animation3DData* ani
{
const rapidjson::Value& bone_keyframe_scale = bone_keyframe[SCALE];
float keytime = bone_keyframe[KEYTIME].GetDouble();
Vec3 val = Vec3(bone_keyframe_scale[(rapidjson::SizeType)0].GetDouble(), bone_keyframe_scale[1].GetDouble(), bone_keyframe_scale[2].GetDouble());
Vec3 val(bone_keyframe_scale[(rapidjson::SizeType)0].GetDouble(), bone_keyframe_scale[1].GetDouble(), bone_keyframe_scale[2].GetDouble());
animationdata->_scaleKeys[bone_name].push_back(Animation3DData::Vec3Key(keytime,val));
}
}
@ -2102,11 +2102,11 @@ cocos2d::AABB Bundle3D::calculateAABB( const std::vector<float>& vertex, int str
{
AABB aabb;
stride /= 4;
for(const auto& it : index)
{
Vec3 point = Vec3(vertex[it * stride ], vertex[ it * stride + 1], vertex[it * stride + 2 ]);
aabb.updateMinMax(&point, 1);
}
for (const auto& it : index)
{
Vec3 point(vertex[it * stride], vertex[it * stride + 1], vertex[it * stride + 2]);
aabb.updateMinMax(&point, 1);
}
return aabb;
}

View File

@ -209,9 +209,9 @@ OBB::OBB(const AABB& aabb)
_center = (aabb._min + aabb._max);
_center.scale(0.5f);
_xAxis = Vec3(1.0f, 0.0f, 0.0f);
_yAxis = Vec3(0.0f, 1.0f, 0.0f);
_zAxis = Vec3(0.0f, 0.0f, 1.0f);
_xAxis.set(1.0f, 0.0f, 0.0f);
_yAxis.set(0.0f, 1.0f, 0.0f);
_zAxis.set(0.0f, 0.0f, 1.0f);
_extents = aabb._max - aabb._min;
_extents.scale(0.5f);
@ -249,9 +249,9 @@ OBB::OBB(const Vec3* verts, int num)
matTransform.transpose();
_xAxis = Vec3(matTransform.m[0], matTransform.m[1], matTransform.m[2]);
_yAxis = Vec3(matTransform.m[4], matTransform.m[5], matTransform.m[6]);
_zAxis = Vec3(matTransform.m[8], matTransform.m[9], matTransform.m[10]);
_xAxis.set(matTransform.m[0], matTransform.m[1], matTransform.m[2]);
_yAxis.set(matTransform.m[4], matTransform.m[5], matTransform.m[6]);
_zAxis.set(matTransform.m[8], matTransform.m[9], matTransform.m[10]);
_center = 0.5f * (vecMax + vecMin);
_center *= matTransform;

View File

@ -820,6 +820,22 @@ const BlendFunc& Sprite3D::getBlendFunc() const
return _blend;
}
AABB Sprite3D::getAABBRecursively()
{
AABB aabb;
const Vector<Node*>& children = getChildren();
for (const auto& iter : children)
{
Sprite3D* child = dynamic_cast<Sprite3D*>(iter);
if(child)
{
aabb.merge(child->getAABBRecursively());
}
}
aabb.merge(getAABB());
return aabb;
}
const AABB& Sprite3D::getAABB() const
{
Mat4 nodeToWorldTransform(getNodeToWorldTransform());
@ -832,15 +848,18 @@ const AABB& Sprite3D::getAABB() const
else
{
_aabb.reset();
Mat4 transform(nodeToWorldTransform);
for (const auto& it : _meshes) {
if (it->isVisible())
_aabb.merge(it->getAABB());
if (_meshes.size())
{
Mat4 transform(nodeToWorldTransform);
for (const auto& it : _meshes) {
if (it->isVisible())
_aabb.merge(it->getAABB());
}
_aabb.transform(transform);
_nodeToWorldTransform = nodeToWorldTransform;
_aabbDirty = false;
}
_aabb.transform(transform);
_nodeToWorldTransform = nodeToWorldTransform;
_aabbDirty = false;
}
return _aabb;

View File

@ -135,6 +135,14 @@ public:
*/
const AABB& getAABB() const;
/*
* Get AABB Recursively
* Because some times we may have an empty Sprite3D Node as parent, but
* the Sprite3D don't contain any meshes, so getAABB()
* will return a wrong value at that time.
*/
AABB getAABBRecursively();
/**
* Executes an action, and returns the action that is executed. For Sprite3D special logic are needed to take care of Fading.
*

View File

@ -221,7 +221,6 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH) \
LOCAL_EXPORT_LDLIBS := -lGLESv2 \
-llog \
-lz \
-landroid
LOCAL_STATIC_LIBRARIES := cocos_freetype2_static
@ -230,6 +229,7 @@ LOCAL_STATIC_LIBRARIES += cocos_jpeg_static
LOCAL_STATIC_LIBRARIES += cocos_tiff_static
LOCAL_STATIC_LIBRARIES += cocos_webp_static
LOCAL_STATIC_LIBRARIES += cocos_chipmunk_static
LOCAL_STATIC_LIBRARIES += cocos_zlib_static
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dxandroid_static
@ -260,6 +260,7 @@ include $(BUILD_STATIC_LIBRARY)
$(call import-module,freetype2/prebuilt/android)
$(call import-module,platform/android)
$(call import-module,png/prebuilt/android)
$(call import-module,zlib/prebuilt/android)
$(call import-module,jpeg/prebuilt/android)
$(call import-module,tiff/prebuilt/android)
$(call import-module,webp/prebuilt/android)

View File

@ -141,11 +141,31 @@ namespace cocos2d {
@implementation AudioEngineSessionHandler
void AudioEngineInterruptionListenerCallback(void* user_data, UInt32 interruption_state)
{
if (kAudioSessionBeginInterruption == interruption_state)
{
alcMakeContextCurrent(nullptr);
}
else if (kAudioSessionEndInterruption == interruption_state)
{
OSStatus result = AudioSessionSetActive(true);
if (result) NSLog(@"Error setting audio session active! %d\n", result);
alcMakeContextCurrent(s_ALContext);
}
}
-(id) init
{
if (self == [super init])
{
if ([[[UIDevice currentDevice] systemVersion] intValue] > 5) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleInterruption:) name:AVAudioSessionInterruptionNotification object:[AVAudioSession sharedInstance]];
}
else {
AudioSessionInitialize(NULL, NULL, AudioEngineInterruptionListenerCallback, self);
}
}
return self;
}

View File

@ -31,7 +31,7 @@ NS_CC_BEGIN
CC_DLL const char* cocos2dVersion()
{
return "cocos2d-x 3.5";
return "cocos2d-x 3.6alpha0";
}
NS_CC_END

View File

@ -30,7 +30,7 @@ THE SOFTWARE.
// 0x00 HI ME LO
// 00 03 03 00
#define COCOS2D_VERSION 0x00030500
#define COCOS2D_VERSION 0x00030600
//
// all cocos2d include files

View File

@ -578,19 +578,19 @@ Vec4* kmVec4Transform(Vec4* pOut, const Vec4* pV, const Mat4* pM)
return pOut;
}
const Vec3 KM_VEC3_NEG_Z = Vec3(0, 0, -1);
const Vec3 KM_VEC3_POS_Z = Vec3(0, 0, 1);
const Vec3 KM_VEC3_POS_Y = Vec3(0, 1, 0);
const Vec3 KM_VEC3_NEG_Y = Vec3(0, -1, 0);
const Vec3 KM_VEC3_NEG_X = Vec3(-1, 0, 0);
const Vec3 KM_VEC3_POS_X = Vec3(1, 0, 0);
const Vec3 KM_VEC3_ZERO = Vec3(0, 0, 0);
const Vec3 KM_VEC3_NEG_Z(0, 0, -1);
const Vec3 KM_VEC3_POS_Z(0, 0, 1);
const Vec3 KM_VEC3_POS_Y(0, 1, 0);
const Vec3 KM_VEC3_NEG_Y(0, -1, 0);
const Vec3 KM_VEC3_NEG_X(-1, 0, 0);
const Vec3 KM_VEC3_POS_X(1, 0, 0);
const Vec3 KM_VEC3_ZERO(0, 0, 0);
const Vec2 KM_VEC2_POS_Y = Vec2(0, 1);
const Vec2 KM_VEC2_NEG_Y = Vec2(0, -1);
const Vec2 KM_VEC2_NEG_X = Vec2(-1, 0);
const Vec2 KM_VEC2_POS_X = Vec2(1, 0);
const Vec2 KM_VEC2_ZERO = Vec2(0, 0);
const Vec2 KM_VEC2_POS_Y(0, 1);
const Vec2 KM_VEC2_NEG_Y(0, -1);
const Vec2 KM_VEC2_NEG_X(-1, 0);
const Vec2 KM_VEC2_POS_X(1, 0);
const Vec2 KM_VEC2_ZERO(0, 0);
NS_CC_END

View File

@ -1,473 +0,0 @@
/****************************************************************************
Copyright (c) 2013 cocos2d-x.org
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 "CCNodeReader.h"
#include "CCActionTimelineCache.h"
#include "CCActionTimeline.h"
#include "cocostudio/CCSGUIReader.h"
using namespace cocos2d;
using namespace ui;
namespace cocostudio {
namespace timeline{
static const char* ClassName_Node = "Node";
static const char* ClassName_SubGraph = "SubGraph";
static const char* ClassName_Sprite = "Sprite";
static const char* ClassName_Particle = "Particle";
static const char* ClassName_Panel = "Panel";
static const char* ClassName_Button = "Button";
static const char* ClassName_CheckBox = "CheckBox";
static const char* ClassName_ImageView = "ImageView";
static const char* ClassName_TextAtlas = "TextAtlas";
static const char* ClassName_LabelAtlas = "LabelAtlas";
static const char* ClassName_LabelBMFont= "LabelBMFont";
static const char* ClassName_TextBMFont = "TextBMFont";
static const char* ClassName_Text = "Text";
static const char* ClassName_LoadingBar = "LoadingBar";
static const char* ClassName_TextField = "TextField";
static const char* ClassName_Slider = "Slider";
static const char* ClassName_Layout = "Layout";
static const char* ClassName_ScrollView = "ScrollView";
static const char* ClassName_ListView = "ListView";
static const char* ClassName_PageView = "PageView";
static const char* ClassName_Widget = "Widget";
static const char* ClassName_Label = "Label";
static const char* NODE = "nodeTree";
static const char* CHILDREN = "children";
static const char* CLASSNAME = "classname";
static const char* FILE_PATH = "fileName";
static const char* PLIST_FILE = "plistFile";
static const char* TAG = "tag";
static const char* ACTION_TAG = "actionTag";
static const char* OPTIONS = "options";
static const char* WIDTH = "width";
static const char* HEIGHT = "height";
static const char* X = "x";
static const char* Y = "y";
static const char* SCALE_X = "scaleX";
static const char* SCALE_Y = "scaleY";
static const char* SKEW_X = "skewX";
static const char* SKEW_Y = "skewY";
static const char* ROTATION = "rotation";
static const char* ROTATION_SKEW_X = "rotationSkewX";
static const char* ROTATION_SKEW_Y = "rotationSkewY";
static const char* ANCHOR_X = "anchorPointX";
static const char* ANCHOR_Y = "anchorPointY";
static const char* ALPHA = "opacity";
static const char* RED = "colorR";
static const char* GREEN = "colorG";
static const char* BLUE = "colorB";
static const char* ZORDER = "ZOrder";
static const char* PARTICLE_NUM = "particleNum";
static const char* FLIPX = "flipX";
static const char* FLIPY = "flipY";
static const char* VISIBLE = "visible";
static const char* TEXTURES = "textures";
static const char* TEXTURES_PNG = "texturesPng";
// NodeReader
static NodeReader* _sharedNodeReader = nullptr;
NodeReader* NodeReader::getInstance()
{
if (! _sharedNodeReader)
{
_sharedNodeReader = new (std::nothrow) NodeReader();
_sharedNodeReader->init();
}
return _sharedNodeReader;
}
void NodeReader::destroyInstance()
{
CC_SAFE_DELETE(_sharedNodeReader);
}
NodeReader::NodeReader()
: _recordJsonPath(true)
, _jsonPath("")
{
}
void NodeReader::purge()
{
}
void NodeReader::init()
{
using namespace std::placeholders;
_funcs.insert(Pair(ClassName_Node, std::bind(&NodeReader::loadSimpleNode, this, _1)));
_funcs.insert(Pair(ClassName_SubGraph, std::bind(&NodeReader::loadSubGraph, this, _1)));
_funcs.insert(Pair(ClassName_Sprite, std::bind(&NodeReader::loadSprite, this, _1)));
_funcs.insert(Pair(ClassName_Particle, std::bind(&NodeReader::loadParticle, this, _1)));
_funcs.insert(Pair(ClassName_LabelAtlas,std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_LabelBMFont,std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_Panel, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_Button, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_CheckBox, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_ImageView, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_TextAtlas, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_TextBMFont,std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_Text, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_LoadingBar,std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_TextField, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_Slider, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_Layout, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_ScrollView,std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_ListView, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_PageView, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_Widget, std::bind(&NodeReader::loadWidget, this, _1)));
_funcs.insert(Pair(ClassName_Label, std::bind(&NodeReader::loadWidget, this, _1)));
}
Node* NodeReader::createNode(const std::string& filename)
{
if(_recordJsonPath)
{
std::string jsonPath = filename.substr(0, filename.find_last_of('/') + 1);
GUIReader::getInstance()->setFilePath(jsonPath);
_jsonPath = jsonPath;
}
else
{
GUIReader::getInstance()->setFilePath("");
_jsonPath = "";
}
Node* node = loadNodeWithFile(filename);
return node;
}
Node* NodeReader::loadNodeWithFile(const std::string& fileName)
{
// Read content from file
std::string contentStr = FileUtils::getInstance()->getStringFromFile(fileName);
Node* node = loadNodeWithContent(contentStr);
// Load animation data from file
ActionTimelineCache::getInstance()->loadAnimationActionWithContent(fileName, contentStr);
return node;
}
Node* NodeReader::loadNodeWithContent(const std::string& content)
{
rapidjson::Document doc;
doc.Parse<0>(content.c_str());
if (doc.HasParseError())
{
CCLOG("GetParseError %s\n", doc.GetParseError());
}
// decode plist
int length = DICTOOL->getArrayCount_json(doc, TEXTURES);
for(int i=0; i<length; i++)
{
std::string plist = DICTOOL->getStringValueFromArray_json(doc, TEXTURES, i);
std::string png = DICTOOL->getStringValueFromArray_json(doc, TEXTURES_PNG, i);
plist = _jsonPath + plist;
png = _jsonPath + png;
SpriteFrameCache::getInstance()->addSpriteFramesWithFile(plist, png);
}
// decode node tree
const rapidjson::Value& subJson = DICTOOL->getSubDictionary_json(doc, NODE);
Node* root = loadNode(subJson);
root->release();
return root;
}
Node* NodeReader::loadNode(const rapidjson::Value& json)
{
Node* node = nullptr;
std::string nodeType = DICTOOL->getStringValue_json(json, CLASSNAME);
NodeCreateFunc func = _funcs[nodeType];
if (func != nullptr)
{
const rapidjson::Value& options = DICTOOL->getSubDictionary_json(json, OPTIONS);
node = func(options);
}
if(node)
{
int length = DICTOOL->getArrayCount_json(json, CHILDREN, 0);
for (int i = 0; i<length; i++)
{
const rapidjson::Value &dic = DICTOOL->getSubDictionary_json(json, CHILDREN, i);
Node* child = loadNode(dic);
if (child)
{
auto widgetChild = dynamic_cast<Widget*>(child);
if (widgetChild
&& dynamic_cast<Widget*>(node)
&& !dynamic_cast<Layout*>(node))
{
if (widgetChild->getPositionType() == ui::Widget::PositionType::PERCENT)
{
widgetChild->setPositionPercent(Vec2(widgetChild->getPositionPercent().x + node->getAnchorPoint().x, widgetChild->getPositionPercent().y + node->getAnchorPoint().y));
}
widgetChild->setPosition(Vec2(widgetChild->getPositionX() + node->getAnchorPointInPoints().x, widgetChild->getPositionY() + node->getAnchorPointInPoints().y));
}
node->addChild(child);
child->release();
}
}
}
else
{
CCLOG("Not supported NodeType: %s", nodeType.c_str());
}
return node;
}
void NodeReader::initNode(Node* node, const rapidjson::Value& json)
{
float width = DICTOOL->getFloatValue_json(json, WIDTH);
float height = DICTOOL->getFloatValue_json(json, HEIGHT);
float x = DICTOOL->getFloatValue_json(json, X);
float y = DICTOOL->getFloatValue_json(json, Y);
float scalex = DICTOOL->getFloatValue_json(json, SCALE_X, 1);
float scaley = DICTOOL->getFloatValue_json(json, SCALE_Y, 1);
float rotation = DICTOOL->getFloatValue_json(json, ROTATION);
float rotationSkewX = DICTOOL->getFloatValue_json(json, ROTATION_SKEW_X);
float rotationSkewY = DICTOOL->getFloatValue_json(json, ROTATION_SKEW_Y);
float skewx = DICTOOL->getFloatValue_json(json, SKEW_X);
float skewy = DICTOOL->getFloatValue_json(json, SKEW_Y);
float anchorx = DICTOOL->getFloatValue_json(json, ANCHOR_X, 0.5f);
float anchory = DICTOOL->getFloatValue_json(json, ANCHOR_Y, 0.5f);
GLubyte alpha = (GLubyte)DICTOOL->getIntValue_json(json, ALPHA, 255);
GLubyte red = (GLubyte)DICTOOL->getIntValue_json(json, RED, 255);
GLubyte green = (GLubyte)DICTOOL->getIntValue_json(json, GREEN, 255);
GLubyte blue = (GLubyte)DICTOOL->getIntValue_json(json, BLUE, 255);
int zorder = DICTOOL->getIntValue_json(json, ZORDER);
int tag = DICTOOL->getIntValue_json(json, TAG);
int actionTag = DICTOOL->getIntValue_json(json, ACTION_TAG);
bool visible = DICTOOL->getBooleanValue_json(json, VISIBLE);
if(x != 0 || y != 0)
node->setPosition(x, y);
if(scalex != 1)
node->setScaleX(scalex);
if(scaley != 1)
node->setScaleY(scaley);
if (rotation != 0)
node->setRotation(rotation);
if(rotationSkewX != 0)
node->setRotationSkewX(rotationSkewX);
if(rotationSkewY != 0)
node->setRotationSkewY(rotationSkewY);
if(skewx != 0)
node->setSkewX(skewx);
if(skewy != 0)
node->setSkewY(skewy);
if(anchorx != 0.5f || anchory != 0.5f)
node->setAnchorPoint(Point(anchorx, anchory));
if(width != 0 || height != 0)
node->setContentSize(Size(width, height));
if(zorder != 0)
node->setLocalZOrder(zorder);
if(visible != true)
node->setVisible(visible);
if(alpha != 255)
{
node->setOpacity(alpha);
}
if(red != 255 || green != 255 || blue != 255)
{
node->setColor(Color3B(red, green, blue));
}
node->setTag(tag);
node->setUserObject(ActionTimelineData::create(actionTag));
}
Node* NodeReader::loadSimpleNode(const rapidjson::Value& json)
{
Node* node = Node::create();
node->retain();
initNode(node, json);
return node;
}
Node* NodeReader::loadSubGraph(const rapidjson::Value& json)
{
const char* filePath = DICTOOL->getStringValue_json(json, FILE_PATH);
Node* node = nullptr;
if (filePath && strcmp("", filePath) != 0)
{
node = createNode(filePath);
}
else
{
node = Node::create();
}
node->retain();
initNode(node, json);
return node;
}
Node* NodeReader::loadSprite(const rapidjson::Value& json)
{
const char* filePath = DICTOOL->getStringValue_json(json, FILE_PATH);
Sprite *sprite = nullptr;
if(filePath != nullptr)
{
std::string path = filePath;
SpriteFrame* spriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName(path);
if(!spriteFrame)
{
path = _jsonPath + path;
sprite = Sprite::create(path);
}
else
{
sprite = Sprite::createWithSpriteFrame(spriteFrame);
}
if(!sprite)
{
sprite = CCSprite::create();
CCLOG("filePath is empty. Create a sprite with no texture");
}
}
else
{
sprite = Sprite::create();
}
sprite->retain();
initNode(sprite, json);
bool flipX = DICTOOL->getBooleanValue_json(json, FLIPX);
bool flipY = DICTOOL->getBooleanValue_json(json, FLIPY);
if(flipX != false)
sprite->setFlippedX(flipX);
if(flipY != false)
sprite->setFlippedY(flipY);
return sprite;
}
Node* NodeReader::loadParticle(const rapidjson::Value& json)
{
const char* filePath = DICTOOL->getStringValue_json(json, PLIST_FILE);
int num = DICTOOL->getIntValue_json(json, PARTICLE_NUM);
ParticleSystemQuad* particle = ParticleSystemQuad::create(filePath);
particle->setTotalParticles(num);
particle->retain();
initNode(particle, json);
return particle;
}
Node* NodeReader::loadWidget(const rapidjson::Value& json)
{
const char* str = DICTOOL->getStringValue_json(json, CLASSNAME);
if(str == nullptr)
return nullptr;
std::string classname = str;
if (classname == "Panel")
{
classname = "Layout";
}
else if (classname == "TextArea")
{
classname = "Text";
}
else if (classname == "TextButton")
{
classname = "Button";
}
else if (classname == "Label")
{
classname = "Text";
}
else if (classname == "LabelAtlas")
{
classname = "TextAtlas";
}
else if (classname == "LabelBMFont")
{
classname = "TextBMFont";
}
std::string readerName = classname;
readerName.append("Reader");
Widget* widget = dynamic_cast<Widget*>(ObjectFactory::getInstance()->createObject(classname));
widget->retain();
WidgetReaderProtocol* reader = dynamic_cast<WidgetReaderProtocol*>(ObjectFactory::getInstance()->createObject(readerName));
WidgetPropertiesReader0300* guiReader = new (std::nothrow) WidgetPropertiesReader0300();
guiReader->setPropsForAllWidgetFromJsonDictionary(reader, widget, json);
CC_SAFE_DELETE(guiReader);
int actionTag = DICTOOL->getIntValue_json(json, ACTION_TAG);
widget->setUserObject(ActionTimelineData::create(actionTag));
initNode(widget, json);
return widget;
}
}
}

View File

@ -1,91 +0,0 @@
/****************************************************************************
Copyright (c) 2013 cocos2d-x.org
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.
****************************************************************************/
#ifndef __CC_NODE_CACHE_H__
#define __CC_NODE_CACHE_H__
#include <unordered_map>
#include "cocostudio/DictionaryHelper.h"
#include "cocostudio/CocosStudioExport.h"
#include "2d/CCNode.h"
namespace cocostudio {
namespace timeline{
class CC_STUDIO_DLL NodeReader
{
public:
static NodeReader* getInstance();
static void destroyInstance();
NodeReader();
void purge();
void init();
cocos2d::Node* createNode(const std::string& filename);
cocos2d::Node* loadNodeWithFile(const std::string& fileName);
cocos2d::Node* loadNodeWithContent(const std::string& content);
void setRecordJsonPath(bool record) { _recordJsonPath = record; }
bool isRecordJsonPath() const { return _recordJsonPath; }
void setJsonPath(std::string jsonPath) { _jsonPath = jsonPath; }
std::string getJsonPath() const { return _jsonPath; }
protected:
cocos2d::Node* loadNode(const rapidjson::Value& json);
void locateNodeWithMulresPosition(cocos2d::Node* node, const rapidjson::Value& json);
void initNode(cocos2d::Node* node, const rapidjson::Value& json);
// load nodes
cocos2d::Node* loadSimpleNode(const rapidjson::Value& json);
cocos2d::Node* loadSubGraph (const rapidjson::Value& json);
cocos2d::Node* loadSprite (const rapidjson::Value& json);
cocos2d::Node* loadParticle (const rapidjson::Value& json);
// load gui
cocos2d::Node* loadWidget(const rapidjson::Value& json);
typedef std::function<cocos2d::Node*(const rapidjson::Value& json)> NodeCreateFunc;
typedef std::pair<std::string, NodeCreateFunc> Pair;
std::unordered_map<std::string, NodeCreateFunc> _funcs;
bool _recordJsonPath;
std::string _jsonPath;
};
}
}
#endif /*__CC_NODE_CACHE_H__*/

View File

@ -65,7 +65,6 @@ WidgetReader/Node3DReader/Node3DReader.cpp \
WidgetReader/Sprite3DReader/Sprite3DReader.cpp \
WidgetReader/UserCameraReader/UserCameraReader.cpp \
WidgetReader/Particle3DReader/Particle3DReader.cpp \
ActionTimeline/CCNodeReader.cpp \
ActionTimeline/CCActionTimelineCache.cpp \
ActionTimeline/CCFrame.cpp \
ActionTimeline/CCTimeLine.cpp \

View File

@ -42,8 +42,6 @@ namespace cocostudio {
#define RENDER_IN_SUBPIXEL(__ARGS__) (ceil(__ARGS__))
#endif
#define SET_VERTEX3F(_v_, _x_, _y_, _z_) (_v_).x = (_x_); (_v_).y = (_y_); (_v_).z = (_z_);
Skin *Skin::create()
{
Skin *skin = new (std::nothrow) Skin();
@ -152,7 +150,10 @@ void Skin::updateTransform()
// If it is not visible, or one of its ancestors is not visible, then do nothing:
if( !_visible)
{
_quad.br.vertices = _quad.tl.vertices = _quad.tr.vertices = _quad.bl.vertices = Vec3(0, 0, 0);
_quad.br.vertices.setZero();
_quad.tl.vertices.setZero();
_quad.tr.vertices.setZero();
_quad.bl.vertices.setZero();
}
else
{
@ -188,10 +189,10 @@ void Skin::updateTransform()
float dx = x1 * cr - y2 * sr2 + x;
float dy = x1 * sr + y2 * cr2 + y;
SET_VERTEX3F( _quad.bl.vertices, RENDER_IN_SUBPIXEL(ax), RENDER_IN_SUBPIXEL(ay), _positionZ );
SET_VERTEX3F( _quad.br.vertices, RENDER_IN_SUBPIXEL(bx), RENDER_IN_SUBPIXEL(by), _positionZ );
SET_VERTEX3F( _quad.tl.vertices, RENDER_IN_SUBPIXEL(dx), RENDER_IN_SUBPIXEL(dy), _positionZ );
SET_VERTEX3F( _quad.tr.vertices, RENDER_IN_SUBPIXEL(cx), RENDER_IN_SUBPIXEL(cy), _positionZ );
_quad.bl.vertices.set(RENDER_IN_SUBPIXEL(ax), RENDER_IN_SUBPIXEL(ay), _positionZ);
_quad.br.vertices.set(RENDER_IN_SUBPIXEL(bx), RENDER_IN_SUBPIXEL(by), _positionZ);
_quad.tl.vertices.set(RENDER_IN_SUBPIXEL(dx), RENDER_IN_SUBPIXEL(dy), _positionZ);
_quad.tr.vertices.set(RENDER_IN_SUBPIXEL(cx), RENDER_IN_SUBPIXEL(cy), _positionZ);
}
// MARMALADE CHANGE: ADDED CHECK FOR nullptr, TO PERMIT SPRITES WITH NO BATCH NODE / TEXTURE ATLAS

View File

@ -53,6 +53,7 @@ struct Color;
struct ColorVector;
struct FlatSize;
struct CapInsets;
struct BlendFunc;
struct ResourceData;
MANUALLY_ALIGNED_STRUCT(4) RotationSkew {
@ -175,6 +176,20 @@ MANUALLY_ALIGNED_STRUCT(4) CapInsets {
};
STRUCT_END(CapInsets, 16);
MANUALLY_ALIGNED_STRUCT(4) BlendFunc {
private:
int32_t src_;
int32_t dst_;
public:
BlendFunc(int32_t src, int32_t dst)
: src_(flatbuffers::EndianScalar(src)), dst_(flatbuffers::EndianScalar(dst)) { }
int32_t src() const { return flatbuffers::EndianScalar(src_); }
int32_t dst() const { return flatbuffers::EndianScalar(dst_); }
};
STRUCT_END(BlendFunc, 8);
struct CSParseBinary : private flatbuffers::Table {
const flatbuffers::String *version() const { return GetPointer<const flatbuffers::String *>(4); }
const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *textures() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(6); }
@ -585,12 +600,14 @@ inline flatbuffers::Offset<SingleNodeOptions> CreateSingleNodeOptions(flatbuffer
struct SpriteOptions : private flatbuffers::Table {
const WidgetOptions *nodeOptions() const { return GetPointer<const WidgetOptions *>(4); }
const ResourceData *fileNameData() const { return GetPointer<const ResourceData *>(6); }
const BlendFunc *blendFunc() const { return GetStruct<const BlendFunc *>(8); }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* nodeOptions */) &&
verifier.VerifyTable(nodeOptions()) &&
VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* fileNameData */) &&
verifier.VerifyTable(fileNameData()) &&
VerifyField<BlendFunc>(verifier, 8 /* blendFunc */) &&
verifier.EndTable();
}
};
@ -600,18 +617,21 @@ struct SpriteOptionsBuilder {
flatbuffers::uoffset_t start_;
void add_nodeOptions(flatbuffers::Offset<WidgetOptions> nodeOptions) { fbb_.AddOffset(4, nodeOptions); }
void add_fileNameData(flatbuffers::Offset<ResourceData> fileNameData) { fbb_.AddOffset(6, fileNameData); }
void add_blendFunc(const BlendFunc *blendFunc) { fbb_.AddStruct(8, blendFunc); }
SpriteOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
SpriteOptionsBuilder &operator=(const SpriteOptionsBuilder &);
flatbuffers::Offset<SpriteOptions> Finish() {
auto o = flatbuffers::Offset<SpriteOptions>(fbb_.EndTable(start_, 2));
auto o = flatbuffers::Offset<SpriteOptions>(fbb_.EndTable(start_, 3));
return o;
}
};
inline flatbuffers::Offset<SpriteOptions> CreateSpriteOptions(flatbuffers::FlatBufferBuilder &_fbb,
flatbuffers::Offset<WidgetOptions> nodeOptions = 0,
flatbuffers::Offset<ResourceData> fileNameData = 0) {
flatbuffers::Offset<ResourceData> fileNameData = 0,
const BlendFunc *blendFunc = 0) {
SpriteOptionsBuilder builder_(_fbb);
builder_.add_blendFunc(blendFunc);
builder_.add_fileNameData(fileNameData);
builder_.add_nodeOptions(nodeOptions);
return builder_.Finish();
@ -620,12 +640,14 @@ inline flatbuffers::Offset<SpriteOptions> CreateSpriteOptions(flatbuffers::FlatB
struct ParticleSystemOptions : private flatbuffers::Table {
const WidgetOptions *nodeOptions() const { return GetPointer<const WidgetOptions *>(4); }
const ResourceData *fileNameData() const { return GetPointer<const ResourceData *>(6); }
const BlendFunc *blendFunc() const { return GetStruct<const BlendFunc *>(8); }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* nodeOptions */) &&
verifier.VerifyTable(nodeOptions()) &&
VerifyField<flatbuffers::uoffset_t>(verifier, 6 /* fileNameData */) &&
verifier.VerifyTable(fileNameData()) &&
VerifyField<BlendFunc>(verifier, 8 /* blendFunc */) &&
verifier.EndTable();
}
};
@ -635,18 +657,21 @@ struct ParticleSystemOptionsBuilder {
flatbuffers::uoffset_t start_;
void add_nodeOptions(flatbuffers::Offset<WidgetOptions> nodeOptions) { fbb_.AddOffset(4, nodeOptions); }
void add_fileNameData(flatbuffers::Offset<ResourceData> fileNameData) { fbb_.AddOffset(6, fileNameData); }
void add_blendFunc(const BlendFunc *blendFunc) { fbb_.AddStruct(8, blendFunc); }
ParticleSystemOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
ParticleSystemOptionsBuilder &operator=(const ParticleSystemOptionsBuilder &);
flatbuffers::Offset<ParticleSystemOptions> Finish() {
auto o = flatbuffers::Offset<ParticleSystemOptions>(fbb_.EndTable(start_, 2));
auto o = flatbuffers::Offset<ParticleSystemOptions>(fbb_.EndTable(start_, 3));
return o;
}
};
inline flatbuffers::Offset<ParticleSystemOptions> CreateParticleSystemOptions(flatbuffers::FlatBufferBuilder &_fbb,
flatbuffers::Offset<WidgetOptions> nodeOptions = 0,
flatbuffers::Offset<ResourceData> fileNameData = 0) {
flatbuffers::Offset<ResourceData> fileNameData = 0,
const BlendFunc *blendFunc = 0) {
ParticleSystemOptionsBuilder builder_(_fbb);
builder_.add_blendFunc(blendFunc);
builder_.add_fileNameData(fileNameData);
builder_.add_nodeOptions(nodeOptions);
return builder_.Finish();
@ -1011,6 +1036,14 @@ struct TextOptions : private flatbuffers::Table {
int32_t vAlignment() const { return GetField<int32_t>(20, 0); }
uint8_t touchScaleEnable() const { return GetField<uint8_t>(22, 0); }
uint8_t isCustomSize() const { return GetField<uint8_t>(24, 0); }
uint8_t outlineEnabled() const { return GetField<uint8_t>(26, 0); }
const Color *outlineColor() const { return GetStruct<const Color *>(28); }
int32_t outlineSize() const { return GetField<int32_t>(30, 1); }
uint8_t shadowEnabled() const { return GetField<uint8_t>(32, 0); }
const Color *shadowColor() const { return GetStruct<const Color *>(34); }
float shadowOffsetX() const { return GetField<float>(36, 2); }
float shadowOffsetY() const { return GetField<float>(38, -2); }
int32_t shadowBlurRadius() const { return GetField<int32_t>(40, 0); }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* widgetOptions */) &&
@ -1028,6 +1061,14 @@ struct TextOptions : private flatbuffers::Table {
VerifyField<int32_t>(verifier, 20 /* vAlignment */) &&
VerifyField<uint8_t>(verifier, 22 /* touchScaleEnable */) &&
VerifyField<uint8_t>(verifier, 24 /* isCustomSize */) &&
VerifyField<uint8_t>(verifier, 26 /* outlineEnabled */) &&
VerifyField<Color>(verifier, 28 /* outlineColor */) &&
VerifyField<int32_t>(verifier, 30 /* outlineSize */) &&
VerifyField<uint8_t>(verifier, 32 /* shadowEnabled */) &&
VerifyField<Color>(verifier, 34 /* shadowColor */) &&
VerifyField<float>(verifier, 36 /* shadowOffsetX */) &&
VerifyField<float>(verifier, 38 /* shadowOffsetY */) &&
VerifyField<int32_t>(verifier, 40 /* shadowBlurRadius */) &&
verifier.EndTable();
}
};
@ -1046,10 +1087,18 @@ struct TextOptionsBuilder {
void add_vAlignment(int32_t vAlignment) { fbb_.AddElement<int32_t>(20, vAlignment, 0); }
void add_touchScaleEnable(uint8_t touchScaleEnable) { fbb_.AddElement<uint8_t>(22, touchScaleEnable, 0); }
void add_isCustomSize(uint8_t isCustomSize) { fbb_.AddElement<uint8_t>(24, isCustomSize, 0); }
void add_outlineEnabled(uint8_t outlineEnabled) { fbb_.AddElement<uint8_t>(26, outlineEnabled, 0); }
void add_outlineColor(const Color *outlineColor) { fbb_.AddStruct(28, outlineColor); }
void add_outlineSize(int32_t outlineSize) { fbb_.AddElement<int32_t>(30, outlineSize, 1); }
void add_shadowEnabled(uint8_t shadowEnabled) { fbb_.AddElement<uint8_t>(32, shadowEnabled, 0); }
void add_shadowColor(const Color *shadowColor) { fbb_.AddStruct(34, shadowColor); }
void add_shadowOffsetX(float shadowOffsetX) { fbb_.AddElement<float>(36, shadowOffsetX, 2); }
void add_shadowOffsetY(float shadowOffsetY) { fbb_.AddElement<float>(38, shadowOffsetY, -2); }
void add_shadowBlurRadius(int32_t shadowBlurRadius) { fbb_.AddElement<int32_t>(40, shadowBlurRadius, 0); }
TextOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
TextOptionsBuilder &operator=(const TextOptionsBuilder &);
flatbuffers::Offset<TextOptions> Finish() {
auto o = flatbuffers::Offset<TextOptions>(fbb_.EndTable(start_, 11));
auto o = flatbuffers::Offset<TextOptions>(fbb_.EndTable(start_, 19));
return o;
}
};
@ -1065,8 +1114,22 @@ inline flatbuffers::Offset<TextOptions> CreateTextOptions(flatbuffers::FlatBuffe
int32_t hAlignment = 0,
int32_t vAlignment = 0,
uint8_t touchScaleEnable = 0,
uint8_t isCustomSize = 0) {
uint8_t isCustomSize = 0,
uint8_t outlineEnabled = 0,
const Color *outlineColor = 0,
int32_t outlineSize = 1,
uint8_t shadowEnabled = 0,
const Color *shadowColor = 0,
float shadowOffsetX = 2,
float shadowOffsetY = -2,
int32_t shadowBlurRadius = 0) {
TextOptionsBuilder builder_(_fbb);
builder_.add_shadowBlurRadius(shadowBlurRadius);
builder_.add_shadowOffsetY(shadowOffsetY);
builder_.add_shadowOffsetX(shadowOffsetX);
builder_.add_shadowColor(shadowColor);
builder_.add_outlineSize(outlineSize);
builder_.add_outlineColor(outlineColor);
builder_.add_vAlignment(vAlignment);
builder_.add_hAlignment(hAlignment);
builder_.add_areaHeight(areaHeight);
@ -1076,6 +1139,8 @@ inline flatbuffers::Offset<TextOptions> CreateTextOptions(flatbuffers::FlatBuffe
builder_.add_fontName(fontName);
builder_.add_fontResource(fontResource);
builder_.add_widgetOptions(widgetOptions);
builder_.add_shadowEnabled(shadowEnabled);
builder_.add_outlineEnabled(outlineEnabled);
builder_.add_isCustomSize(isCustomSize);
builder_.add_touchScaleEnable(touchScaleEnable);
return builder_.Finish();
@ -1685,7 +1750,7 @@ inline flatbuffers::Offset<ListViewOptions> CreateListViewOptions(flatbuffers::F
struct ProjectNodeOptions : private flatbuffers::Table {
const WidgetOptions *nodeOptions() const { return GetPointer<const WidgetOptions *>(4); }
const flatbuffers::String *fileName() const { return GetPointer<const flatbuffers::String *>(6); }
float innerActionSpeed() const { return GetField<float>(8, 0); }
float innerActionSpeed() const { return GetField<float>(8, 1.0); }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* nodeOptions */) &&
@ -1702,7 +1767,7 @@ struct ProjectNodeOptionsBuilder {
flatbuffers::uoffset_t start_;
void add_nodeOptions(flatbuffers::Offset<WidgetOptions> nodeOptions) { fbb_.AddOffset(4, nodeOptions); }
void add_fileName(flatbuffers::Offset<flatbuffers::String> fileName) { fbb_.AddOffset(6, fileName); }
void add_innerActionSpeed(float innerActionSpeed) { fbb_.AddElement<float>(8, innerActionSpeed, 0); }
void add_innerActionSpeed(float innerActionSpeed) { fbb_.AddElement<float>(8, innerActionSpeed, 1.0); }
ProjectNodeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
ProjectNodeOptionsBuilder &operator=(const ProjectNodeOptionsBuilder &);
flatbuffers::Offset<ProjectNodeOptions> Finish() {
@ -1714,7 +1779,7 @@ struct ProjectNodeOptionsBuilder {
inline flatbuffers::Offset<ProjectNodeOptions> CreateProjectNodeOptions(flatbuffers::FlatBufferBuilder &_fbb,
flatbuffers::Offset<WidgetOptions> nodeOptions = 0,
flatbuffers::Offset<flatbuffers::String> fileName = 0,
float innerActionSpeed = 0) {
float innerActionSpeed = 1.0) {
ProjectNodeOptionsBuilder builder_(_fbb);
builder_.add_innerActionSpeed(innerActionSpeed);
builder_.add_fileName(fileName);

View File

@ -63,5 +63,11 @@ namespace cocostudio
Particle3DReader::destroyInstance();
cocos2d::CSLoader::destroyInstance();
ArmatureDataManager::destroyInstance();
SceneReader::destroyInstance();
ActionManagerEx::destroyInstance();
GUIReader::destroyInstance();
}
}

View File

@ -79,6 +79,8 @@ namespace cocostudio
std::string plistFile = "";
int resourceType = 0;
cocos2d::BlendFunc blendFunc = cocos2d::BlendFunc::ALPHA_PREMULTIPLIED;
// child elements
const tinyxml2::XMLElement* child = objectData->FirstChildElement();
while (child)
@ -110,16 +112,40 @@ namespace cocostudio
attribute = attribute->Next();
}
}
else if (name == "BlendFunc")
{
const tinyxml2::XMLAttribute* attribute = child->FirstAttribute();
while (attribute)
{
name = attribute->Name();
std::string value = attribute->Value();
if (name == "Src")
{
blendFunc.src = atoi(value.c_str());
}
else if (name == "Dst")
{
blendFunc.dst = atoi(value.c_str());
}
attribute = attribute->Next();
}
}
child = child->NextSiblingElement();
}
flatbuffers::BlendFunc f_blendFunc(blendFunc.src, blendFunc.dst);
auto options = CreateParticleSystemOptions(*builder,
nodeOptions,
CreateResourceData(*builder,
builder->CreateString(path),
builder->CreateString(plistFile),
resourceType));
resourceType),
&f_blendFunc);
return *(Offset<Table>*)(&options);
}
@ -127,7 +153,18 @@ namespace cocostudio
void ParticleReader::setPropsWithFlatBuffers(cocos2d::Node *node,
const flatbuffers::Table *particleOptions)
{
auto particle = static_cast<ParticleSystemQuad*>(node);
auto options = (ParticleSystemOptions*)particleOptions;
auto f_blendFunc = options->blendFunc();
if (f_blendFunc)
{
cocos2d::BlendFunc blendFunc = cocos2d::BlendFunc::ALPHA_PREMULTIPLIED;
blendFunc.src = f_blendFunc->src();
blendFunc.dst = f_blendFunc->dst();
particle->setBlendFunc(blendFunc);
}
auto nodeReader = NodeReader::getInstance();
nodeReader->setPropsWithFlatBuffers(node, (Table*)options->nodeOptions());
}

View File

@ -80,6 +80,8 @@ namespace cocostudio
std::string plistFile = "";
int resourceType = 0;
cocos2d::BlendFunc blendFunc = cocos2d::BlendFunc::ALPHA_PREMULTIPLIED;
// FileData
const tinyxml2::XMLElement* child = objectData->FirstChildElement();
while (child)
@ -121,17 +123,40 @@ namespace cocostudio
fbs->_textures.push_back(builder->CreateString(texture));
}
}
else if (name == "BlendFunc")
{
const tinyxml2::XMLAttribute* attribute = child->FirstAttribute();
while (attribute)
{
name = attribute->Name();
std::string value = attribute->Value();
if (name == "Src")
{
blendFunc.src = atoi(value.c_str());
}
else if (name == "Dst")
{
blendFunc.dst = atoi(value.c_str());
}
attribute = attribute->Next();
}
}
child = child->NextSiblingElement();
}
flatbuffers::BlendFunc f_blendFunc(blendFunc.src, blendFunc.dst);
auto options = CreateSpriteOptions(*builder,
nodeOptions,
CreateResourceData(*builder,
builder->CreateString(path),
builder->CreateString(plistFile),
resourceType)
);
resourceType),
&f_blendFunc);
return *(Offset<Table>*)(&options);
}
@ -208,6 +233,15 @@ namespace cocostudio
sprite->addChild(label);
}
auto f_blendFunc = options->blendFunc();
if (f_blendFunc)
{
cocos2d::BlendFunc blendFunc = cocos2d::BlendFunc::ALPHA_PREMULTIPLIED;
blendFunc.src = f_blendFunc->src();
blendFunc.dst = f_blendFunc->dst();
sprite->setBlendFunc(blendFunc);
}
auto nodeReader = NodeReader::getInstance();
nodeReader->setPropsWithFlatBuffers(node, (Table*)(options->nodeOptions()));

View File

@ -164,6 +164,13 @@ namespace cocostudio
int areaHeight = 0;
int h_alignment = 0;
int v_alignment = 0;
bool outlineEnabled = false;
Color4B outlineColor = Color4B::BLACK;
int outlineSize = 1;
bool shadowEnabled = false;
Color4B shadowColor = Color4B::BLACK;
Size shadowOffset = Size(2, -2);
int shadowBlurRadius = 0;
std::string path = "";
std::string plistFile = "";
@ -234,6 +241,30 @@ namespace cocostudio
{
isCustomSize = (value == "True") ? true : false;
}
else if (name == "OutlineEnabled")
{
outlineEnabled = (value == "True") ? true : false;
}
else if (name == "OutlineSize")
{
outlineSize = atoi(value.c_str());
}
else if (name == "ShadowEnabled")
{
shadowEnabled = (value == "True") ? true : false;
}
else if (name == "ShadowOffsetX")
{
shadowOffset.width = atof(value.c_str());
}
else if (name == "ShadowOffsetY")
{
shadowOffset.height = atof(value.c_str());
}
else if (name == "ShadowBlurRadius")
{
shadowBlurRadius = atoi(value.c_str());
}
attribute = attribute->Next();
}
@ -269,10 +300,71 @@ namespace cocostudio
attribute = attribute->Next();
}
}
else if (name == "OutlineColor")
{
attribute = child->FirstAttribute();
while (attribute)
{
name = attribute->Name();
std::string value = attribute->Value();
if (name == "A")
{
outlineColor.a = atoi(value.c_str());
}
else if (name == "R")
{
outlineColor.r = atoi(value.c_str());
}
else if (name == "G")
{
outlineColor.g = atoi(value.c_str());
}
else if (name == "B")
{
outlineColor.b = atoi(value.c_str());
}
attribute = attribute->Next();
}
}
else if (name == "ShadowColor")
{
attribute = child->FirstAttribute();
while (attribute)
{
name = attribute->Name();
std::string value = attribute->Value();
if (name == "A")
{
shadowColor.a = atoi(value.c_str());
}
else if (name == "R")
{
shadowColor.r = atoi(value.c_str());
}
else if (name == "G")
{
shadowColor.g = atoi(value.c_str());
}
else if (name == "B")
{
shadowColor.b = atoi(value.c_str());
}
attribute = attribute->Next();
}
}
child = child->NextSiblingElement();
}
flatbuffers::Color f_outlineColor(outlineColor.a, outlineColor.r, outlineColor.g, outlineColor.b);
flatbuffers::Color f_shadowColor(shadowColor.a, shadowColor.r, shadowColor.g, shadowColor.b);
auto options = CreateTextOptions(*builder,
widgetOptions,
CreateResourceData(*builder,
@ -287,7 +379,15 @@ namespace cocostudio
h_alignment,
v_alignment,
touchScaleEnabled,
isCustomSize);
isCustomSize,
outlineEnabled,
&f_outlineColor,
outlineSize,
shadowEnabled,
&f_shadowColor,
shadowOffset.width,
shadowOffset.height,
shadowBlurRadius);
return *(Offset<Table>*)(&options);
}
@ -348,6 +448,29 @@ namespace cocostudio
}
}
bool outlineEnabled = options->outlineEnabled();
if (outlineEnabled)
{
auto f_outlineColor = options->outlineColor();
if (f_outlineColor)
{
Color4B outlineColor(f_outlineColor->a(), f_outlineColor->r(), f_outlineColor->g(), f_outlineColor->b());
label->enableOutline(outlineColor, options->outlineSize());
}
}
bool shadowEnabled = options->shadowEnabled();
if (shadowEnabled)
{
auto f_shadowColor = options->shadowColor();
if (f_shadowColor)
{
Color4B shadowColor(f_shadowColor->a(), f_shadowColor->r(), f_shadowColor->g(), f_shadowColor->b());
label->enableShadow(shadowColor, Size(options->shadowOffsetX(), options->shadowOffsetY()), options->shadowBlurRadius());
}
}
auto widgetReader = WidgetReader::getInstance();
widgetReader->setPropsWithFlatBuffers(node, (Table*)options->widgetOptions());

View File

@ -68,16 +68,6 @@ Vec3::~Vec3()
{
}
bool Vec3::isZero() const
{
return x == 0.0f && y == 0.0f && z == 0.0f;
}
bool Vec3::isOne() const
{
return x == 1.0f && y == 1.0f && z == 1.0f;
}
float Vec3::angle(const Vec3& v1, const Vec3& v2)
{
float dx = v1.y * v2.z - v1.z * v2.y;
@ -87,13 +77,6 @@ float Vec3::angle(const Vec3& v1, const Vec3& v2)
return atan2f(sqrt(dx * dx + dy * dy + dz * dz) + MATH_FLOAT_SMALL, dot(v1, v2));
}
void Vec3::add(const Vec3& v)
{
x += v.x;
y += v.y;
z += v.z;
}
void Vec3::add(const Vec3& v1, const Vec3& v2, Vec3* dst)
{
GP_ASSERT(dst);
@ -196,23 +179,6 @@ float Vec3::dot(const Vec3& v1, const Vec3& v2)
return (v1.x * v2.x + v1.y * v2.y + v1.z * v2.z);
}
float Vec3::length() const
{
return sqrt(x * x + y * y + z * z);
}
float Vec3::lengthSquared() const
{
return (x * x + y * y + z * z);
}
void Vec3::negate()
{
x = -x;
y = -y;
z = -z;
}
void Vec3::normalize()
{
float n = x * x + y * y + z * z;
@ -238,50 +204,6 @@ Vec3 Vec3::getNormalized() const
return v;
}
void Vec3::scale(float scalar)
{
x *= scalar;
y *= scalar;
z *= scalar;
}
void Vec3::set(float xx, float yy, float zz)
{
this->x = xx;
this->y = yy;
this->z = zz;
}
void Vec3::set(const float* array)
{
GP_ASSERT(array);
x = array[0];
y = array[1];
z = array[2];
}
void Vec3::set(const Vec3& v)
{
this->x = v.x;
this->y = v.y;
this->z = v.z;
}
void Vec3::set(const Vec3& p1, const Vec3& p2)
{
x = p2.x - p1.x;
y = p2.y - p1.y;
z = p2.z - p1.z;
}
void Vec3::subtract(const Vec3& v)
{
x -= v.x;
y -= v.y;
z -= v.z;
}
void Vec3::subtract(const Vec3& v1, const Vec3& v2, Vec3* dst)
{
GP_ASSERT(dst);
@ -299,10 +221,10 @@ void Vec3::smooth(const Vec3& target, float elapsedTime, float responseTime)
}
}
const Vec3 Vec3::ZERO = Vec3(0.0f, 0.0f, 0.0f);
const Vec3 Vec3::ONE = Vec3(1.0f, 1.0f, 1.0f);
const Vec3 Vec3::UNIT_X = Vec3(1.0f, 0.0f, 0.0f);
const Vec3 Vec3::UNIT_Y = Vec3(0.0f, 1.0f, 0.0f);
const Vec3 Vec3::UNIT_Z = Vec3(0.0f, 0.0f, 1.0f);
const Vec3 Vec3::ZERO(0.0f, 0.0f, 0.0f);
const Vec3 Vec3::ONE(1.0f, 1.0f, 1.0f);
const Vec3 Vec3::UNIT_X(1.0f, 0.0f, 0.0f);
const Vec3 Vec3::UNIT_Y(0.0f, 1.0f, 0.0f);
const Vec3 Vec3::UNIT_Z(0.0f, 0.0f, 1.0f);
NS_CC_MATH_END

View File

@ -118,14 +118,14 @@ public:
*
* @return true if this vector contains all zeros, false otherwise.
*/
bool isZero() const;
inline bool isZero() const;
/**
* Indicates whether this vector contains all ones.
*
* @return true if this vector contains all ones, false otherwise.
*/
bool isOne() const;
inline bool isOne() const;
/**
* Returns the angle (in radians) between the specified vectors.
@ -143,7 +143,17 @@ public:
*
* @param v The vector to add.
*/
void add(const Vec3& v);
inline void add(const Vec3& v);
/**
* Adds the elements of this vector to the specified values.
*
* @param xx The add x coordinate.
* @param yy The add y coordinate.
* @param zz The add z coordinate.
*/
inline void add(float xx, float yy, float zz);
/**
* Adds the specified vectors and stores the result in dst.
@ -241,7 +251,7 @@ public:
*
* @see lengthSquared
*/
float length() const;
inline float length() const;
/**
* Returns the squared length of this vector.
@ -255,12 +265,12 @@ public:
*
* @see length
*/
float lengthSquared() const;
inline float lengthSquared() const;
/**
* Negates this vector.
*/
void negate();
inline void negate();
/**
* Normalizes this vector.
@ -285,7 +295,7 @@ public:
*
* @param scalar The scalar value.
*/
void scale(float scalar);
inline void scale(float scalar);
/**
* Sets the elements of this vector to the specified values.
@ -294,26 +304,31 @@ public:
* @param yy The new y coordinate.
* @param zz The new z coordinate.
*/
void set(float xx, float yy, float zz);
inline void set(float xx, float yy, float zz);
/**
* Sets the elements of this vector from the values in the specified array.
*
* @param array An array containing the elements of the vector in the order x, y, z.
*/
void set(const float* array);
inline void set(const float* array);
/**
* Sets the elements of this vector to those in the specified vector.
*
* @param v The vector to copy.
*/
void set(const Vec3& v);
inline void set(const Vec3& v);
/**
* Sets this vector to the directional vector between the specified points.
*/
void set(const Vec3& p1, const Vec3& p2);
inline void set(const Vec3& p1, const Vec3& p2);
/**
* Sets the elements of this vector to zero.
*/
inline void setZero();
/**
* Subtracts this vector and the specified vector as (this - v)
@ -321,7 +336,7 @@ public:
*
* @param v The vector to subtract.
*/
void subtract(const Vec3& v);
inline void subtract(const Vec3& v);
/**
* Subtracts the specified vectors and stores the result in dst.

View File

@ -23,6 +23,97 @@
NS_CC_MATH_BEGIN
inline bool Vec3::isZero() const
{
return x == 0.0f && y == 0.0f && z == 0.0f;
}
inline bool Vec3::isOne() const
{
return x == 1.0f && y == 1.0f && z == 1.0f;
}
inline void Vec3::add(const Vec3& v)
{
x += v.x;
y += v.y;
z += v.z;
}
inline void Vec3::add(float xx, float yy, float zz)
{
x += xx;
y += yy;
z += zz;
}
inline float Vec3::length() const
{
return sqrt(x * x + y * y + z * z);
}
inline float Vec3::lengthSquared() const
{
return (x * x + y * y + z * z);
}
inline void Vec3::negate()
{
x = -x;
y = -y;
z = -z;
}
inline void Vec3::scale(float scalar)
{
x *= scalar;
y *= scalar;
z *= scalar;
}
inline void Vec3::set(float xx, float yy, float zz)
{
this->x = xx;
this->y = yy;
this->z = zz;
}
inline void Vec3::set(const float* array)
{
GP_ASSERT(array);
x = array[0];
y = array[1];
z = array[2];
}
inline void Vec3::set(const Vec3& v)
{
this->x = v.x;
this->y = v.y;
this->z = v.z;
}
inline void Vec3::set(const Vec3& p1, const Vec3& p2)
{
x = p2.x - p1.x;
y = p2.y - p1.y;
z = p2.z - p1.z;
}
inline void Vec3::setZero()
{
x = y = z = 0.0f;
}
inline void Vec3::subtract(const Vec3& v)
{
x -= v.x;
y -= v.y;
z -= v.z;
}
inline const Vec3 Vec3::operator+(const Vec3& v) const
{
Vec3 result(*this);

View File

@ -713,7 +713,7 @@ std::string FileUtils::getNewFilename(const std::string &filename) const
return newFileName;
}
std::string FileUtils::getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath)
std::string FileUtils::getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath) const
{
std::string file = filename;
std::string file_path = "";
@ -735,7 +735,7 @@ std::string FileUtils::getPathForFilename(const std::string& filename, const std
return path;
}
std::string FileUtils::fullPathForFilename(const std::string &filename)
std::string FileUtils::fullPathForFilename(const std::string &filename) const
{
if (filename.empty())
{
@ -926,7 +926,7 @@ void FileUtils::loadFilenameLookupDictionaryFromFile(const std::string &filename
}
}
std::string FileUtils::getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename)
std::string FileUtils::getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename) const
{
// get directory+filename, safely adding '/' as necessary
std::string ret = directory;
@ -948,7 +948,7 @@ std::string FileUtils::searchFullPathForFilename(const std::string& filename) co
{
return filename;
}
std::string path = const_cast<FileUtils*>(this)->fullPathForFilename(filename);
std::string path = fullPathForFilename(filename);
if (0 == path.compare(filename))
{
return "";
@ -1010,7 +1010,7 @@ bool FileUtils::isDirectoryExistInternal(const std::string& dirPath) const
}
bool FileUtils::isDirectoryExist(const std::string& dirPath)
bool FileUtils::isDirectoryExist(const std::string& dirPath) const
{
CCASSERT(!dirPath.empty(), "Invalid path");
@ -1035,7 +1035,7 @@ bool FileUtils::isDirectoryExist(const std::string& dirPath)
fullpath = searchIt + dirPath + resolutionIt;
if (isDirectoryExistInternal(fullpath))
{
const_cast<FileUtils*>(this)->_fullPathCache.insert(std::make_pair(dirPath, fullpath));
_fullPathCache.insert(std::make_pair(dirPath, fullpath));
return true;
}
}
@ -1359,7 +1359,7 @@ void FileUtils::setPopupNotify(bool notify)
s_popupNotify = notify;
}
bool FileUtils::isPopupNotify()
bool FileUtils::isPopupNotify() const
{
return s_popupNotify;
}

View File

@ -166,7 +166,7 @@ public:
@since v2.1
*/
virtual std::string fullPathForFilename(const std::string &filename);
virtual std::string fullPathForFilename(const std::string &filename) const;
/**
* Loads the filenameLookup dictionary from the contents of a filename.
@ -311,7 +311,7 @@ public:
/** Checks whether to pop up a message box when failed to load an image.
* @return True if pop up a message box when failed to load an image, false if not.
*/
virtual bool isPopupNotify();
virtual bool isPopupNotify() const;
/**
* Converts the contents of a file to a ValueMap.
@ -360,7 +360,7 @@ public:
* @param dirPath The path of the directory, it could be a relative or an absolute path.
* @return True if the directory exists, false if not.
*/
virtual bool isDirectoryExist(const std::string& dirPath);
virtual bool isDirectoryExist(const std::string& dirPath) const;
/**
* Creates a directory.
@ -455,7 +455,7 @@ protected:
* @param searchPath The search path.
* @return The full path of the file. It will return an empty string if the full path of the file doesn't exist.
*/
virtual std::string getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath);
virtual std::string getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath) const;
/**
* Gets full path for the directory and the filename.
@ -467,13 +467,12 @@ protected:
* @param filename The name of the file.
* @return The full path of the file, if the file can't be found, it will return an empty string.
*/
virtual std::string getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename);
virtual std::string getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename) const;
/**
* Returns the fullpath for a given filename.
* This is an alternative for fullPathForFilename, there are two main differences:
* First, it returns empty string instead of the original filename when no file found for the given name.
* Secondly, it's a const function.
* This is an alternative for fullPathForFilename
* It returns empty string instead of the original filename when no file found for the given name.
* @param filename The file name to look up for
* @return The full path for the file, if not found, the return value will be an empty string
*/
@ -514,7 +513,7 @@ protected:
* The full path cache. When a file is found, it will be added into this cache.
* This variable is used for improving the performance of file search.
*/
std::unordered_map<std::string, std::string> _fullPathCache;
mutable std::unordered_map<std::string, std::string> _fullPathCache;
/**
* Writable path.

View File

@ -635,7 +635,6 @@ bool Image::isS3TC(const unsigned char * data, ssize_t dataLen)
if (strncmp(header->fileCode, "DDS", 3) != 0)
{
CCLOG("cocos2d: the file is not a dds file!");
return false;
}
return true;
@ -647,7 +646,6 @@ bool Image::isATITC(const unsigned char *data, ssize_t dataLen)
if (strncmp(&header->identifier[1], "KTX", 3) != 0)
{
CCLOG("cocos3d: the file is not a ktx file!");
return false;
}
return true;
@ -742,6 +740,7 @@ Image::Format Image::detectFormat(const unsigned char * data, ssize_t dataLen)
}
else
{
CCLOG("cocos2d: can't detect image format");
return Format::UNKNOWN;
}
}

View File

@ -47,7 +47,7 @@ public:
FileUtilsApple();
/* override funtions */
virtual std::string getWritablePath() const override;
virtual std::string getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename) override;
virtual std::string getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename) const override;
virtual ValueMap getValueMapFromFile(const std::string& filename) override;
virtual ValueMap getValueMapFromData(const char* filedata, int filesize);

View File

@ -392,7 +392,7 @@ bool FileUtilsApple::isFileExistInternal(const std::string& filePath) const
return ret;
}
std::string FileUtilsApple::getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename)
std::string FileUtilsApple::getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename) const
{
if (directory[0] != '/')
{

View File

@ -104,67 +104,27 @@ LanguageType Application::getCurrentLanguage()
NSDictionary* temp = [NSLocale componentsFromLocaleIdentifier:currentLanguage];
NSString * languageCode = [temp objectForKey:NSLocaleLanguageCode];
LanguageType ret = LanguageType::ENGLISH;
if ([languageCode isEqualToString:@"zh"])
{
ret = LanguageType::CHINESE;
}
else if ([languageCode isEqualToString:@"en"])
{
ret = LanguageType::ENGLISH;
}
else if ([languageCode isEqualToString:@"fr"]){
ret = LanguageType::FRENCH;
}
else if ([languageCode isEqualToString:@"it"]){
ret = LanguageType::ITALIAN;
}
else if ([languageCode isEqualToString:@"de"]){
ret = LanguageType::GERMAN;
}
else if ([languageCode isEqualToString:@"es"]){
ret = LanguageType::SPANISH;
}
else if ([languageCode isEqualToString:@"nl"]){
ret = LanguageType::DUTCH;
}
else if ([languageCode isEqualToString:@"ru"]){
ret = LanguageType::RUSSIAN;
}
else if ([languageCode isEqualToString:@"ko"]){
ret = LanguageType::KOREAN;
}
else if ([languageCode isEqualToString:@"ja"]){
ret = LanguageType::JAPANESE;
}
else if ([languageCode isEqualToString:@"hu"]){
ret = LanguageType::HUNGARIAN;
}
else if ([languageCode isEqualToString:@"pt"]){
ret = LanguageType::PORTUGUESE;
}
else if ([languageCode isEqualToString:@"ar"]){
ret = LanguageType::ARABIC;
}
else if ([languageCode isEqualToString:@"nb"]){
ret = LanguageType::NORWEGIAN;
}
else if ([languageCode isEqualToString:@"pl"]){
ret = LanguageType::POLISH;
}
else if ([languageCode isEqualToString:@"tr"]){
ret = LanguageType::TURKISH;
}
else if ([languageCode isEqualToString:@"uk"]){
ret = LanguageType::UKRAINIAN;
}
else if ([languageCode isEqualToString:@"ro"]){
ret = LanguageType::ROMANIAN;
}
else if ([languageCode isEqualToString:@"bg"]){
ret = LanguageType::BULGARIAN;
}
return ret;
if ([languageCode isEqualToString:@"zh"]) return LanguageType::CHINESE;
if ([languageCode isEqualToString:@"en"]) return LanguageType::ENGLISH;
if ([languageCode isEqualToString:@"fr"]) return LanguageType::FRENCH;
if ([languageCode isEqualToString:@"it"]) return LanguageType::ITALIAN;
if ([languageCode isEqualToString:@"de"]) return LanguageType::GERMAN;
if ([languageCode isEqualToString:@"es"]) return LanguageType::SPANISH;
if ([languageCode isEqualToString:@"nl"]) return LanguageType::DUTCH;
if ([languageCode isEqualToString:@"ru"]) return LanguageType::RUSSIAN;
if ([languageCode isEqualToString:@"ko"]) return LanguageType::KOREAN;
if ([languageCode isEqualToString:@"ja"]) return LanguageType::JAPANESE;
if ([languageCode isEqualToString:@"hu"]) return LanguageType::HUNGARIAN;
if ([languageCode isEqualToString:@"pt"]) return LanguageType::PORTUGUESE;
if ([languageCode isEqualToString:@"ar"]) return LanguageType::ARABIC;
if ([languageCode isEqualToString:@"nb"]) return LanguageType::NORWEGIAN;
if ([languageCode isEqualToString:@"pl"]) return LanguageType::POLISH;
if ([languageCode isEqualToString:@"tr"]) return LanguageType::TURKISH;
if ([languageCode isEqualToString:@"uk"]) return LanguageType::UKRAINIAN;
if ([languageCode isEqualToString:@"ro"]) return LanguageType::ROMANIAN;
if ([languageCode isEqualToString:@"bg"]) return LanguageType::BULGARIAN;
return LanguageType::ENGLISH;
}
Application::Platform Application::getTargetPlatform()

View File

@ -160,65 +160,27 @@ LanguageType Application::getCurrentLanguage()
NSDictionary* temp = [NSLocale componentsFromLocaleIdentifier:currentLanguage];
NSString * languageCode = [temp objectForKey:NSLocaleLanguageCode];
LanguageType ret = LanguageType::ENGLISH;
if ([languageCode isEqualToString:@"zh"]){
ret = LanguageType::CHINESE;
}
else if ([languageCode isEqualToString:@"en"]){
ret = LanguageType::ENGLISH;
}
else if ([languageCode isEqualToString:@"fr"]){
ret = LanguageType::FRENCH;
}
else if ([languageCode isEqualToString:@"it"]){
ret = LanguageType::ITALIAN;
}
else if ([languageCode isEqualToString:@"de"]){
ret = LanguageType::GERMAN;
}
else if ([languageCode isEqualToString:@"es"]){
ret = LanguageType::SPANISH;
}
else if ([languageCode isEqualToString:@"nl"]){
ret = LanguageType::DUTCH;
}
else if ([languageCode isEqualToString:@"ru"]){
ret = LanguageType::RUSSIAN;
}
else if ([languageCode isEqualToString:@"ko"]){
ret = LanguageType::KOREAN;
}
else if ([languageCode isEqualToString:@"ja"]){
ret = LanguageType::JAPANESE;
}
else if ([languageCode isEqualToString:@"hu"]){
ret = LanguageType::HUNGARIAN;
}
else if ([languageCode isEqualToString:@"pt"]){
ret = LanguageType::PORTUGUESE;
}
else if ([languageCode isEqualToString:@"ar"]){
ret = LanguageType::ARABIC;
}
else if ([languageCode isEqualToString:@"nb"]){
ret = LanguageType::NORWEGIAN;
}
else if ([languageCode isEqualToString:@"pl"]){
ret = LanguageType::POLISH;
}
else if ([languageCode isEqualToString:@"tr"]){
ret = LanguageType::TURKISH;
}
else if ([languageCode isEqualToString:@"uk"]){
ret = LanguageType::UKRAINIAN;
}
else if ([languageCode isEqualToString:@"ro"]){
ret = LanguageType::ROMANIAN;
}
else if ([languageCode isEqualToString:@"bg"]){
ret = LanguageType::BULGARIAN;
}
return ret;
if ([languageCode isEqualToString:@"zh"]) return LanguageType::CHINESE;
if ([languageCode isEqualToString:@"en"]) return LanguageType::ENGLISH;
if ([languageCode isEqualToString:@"fr"]) return LanguageType::FRENCH;
if ([languageCode isEqualToString:@"it"]) return LanguageType::ITALIAN;
if ([languageCode isEqualToString:@"de"]) return LanguageType::GERMAN;
if ([languageCode isEqualToString:@"es"]) return LanguageType::SPANISH;
if ([languageCode isEqualToString:@"nl"]) return LanguageType::DUTCH;
if ([languageCode isEqualToString:@"ru"]) return LanguageType::RUSSIAN;
if ([languageCode isEqualToString:@"ko"]) return LanguageType::KOREAN;
if ([languageCode isEqualToString:@"ja"]) return LanguageType::JAPANESE;
if ([languageCode isEqualToString:@"hu"]) return LanguageType::HUNGARIAN;
if ([languageCode isEqualToString:@"pt"]) return LanguageType::PORTUGUESE;
if ([languageCode isEqualToString:@"ar"]) return LanguageType::ARABIC;
if ([languageCode isEqualToString:@"nb"]) return LanguageType::NORWEGIAN;
if ([languageCode isEqualToString:@"pl"]) return LanguageType::POLISH;
if ([languageCode isEqualToString:@"tr"]) return LanguageType::TURKISH;
if ([languageCode isEqualToString:@"uk"]) return LanguageType::UKRAINIAN;
if ([languageCode isEqualToString:@"ro"]) return LanguageType::ROMANIAN;
if ([languageCode isEqualToString:@"bg"]) return LanguageType::BULGARIAN;
return LanguageType::ENGLISH;
}
bool Application::openURL(const std::string &url)

View File

@ -264,7 +264,7 @@ unsigned char* FileUtilsWin32::getFileData(const std::string& filename, const ch
return pBuffer;
}
std::string FileUtilsWin32::getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath)
std::string FileUtilsWin32::getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath) const
{
std::string unixFileName = convertPathFormatToUnixStyle(filename);
std::string unixResolutionDirectory = convertPathFormatToUnixStyle(resolutionDirectory);
@ -273,7 +273,7 @@ std::string FileUtilsWin32::getPathForFilename(const std::string& filename, cons
return FileUtils::getPathForFilename(unixFileName, unixResolutionDirectory, unixSearchPath);
}
std::string FileUtilsWin32::getFullPathForDirectoryAndFilename(const std::string& strDirectory, const std::string& strFilename)
std::string FileUtilsWin32::getFullPathForDirectoryAndFilename(const std::string& strDirectory, const std::string& strFilename) const
{
std::string unixDirectory = convertPathFormatToUnixStyle(strDirectory);
std::string unixFilename = convertPathFormatToUnixStyle(strFilename);

View File

@ -85,7 +85,7 @@ protected:
* @param searchPath The search path.
* @return The full path of the file. It will return an empty string if the full path of the file doesn't exist.
*/
virtual std::string getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath) override;
virtual std::string getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath) const override;
/**
* Gets full path for the directory and the filename.
@ -97,7 +97,7 @@ protected:
* @param filename The name of the file.
* @return The full path of the file, if the file can't be found, it will return an empty string.
*/
virtual std::string getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename) override;
virtual std::string getFullPathForDirectoryAndFilename(const std::string& directory, const std::string& filename) const override;
};

View File

@ -84,7 +84,7 @@ bool CCFileUtilsWinRT::init()
return FileUtils::init();
}
std::string CCFileUtilsWinRT::getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath)
std::string CCFileUtilsWinRT::getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath) const
{
std::string unixFileName = convertPathFormatToUnixStyle(filename);
std::string unixResolutionDirectory = convertPathFormatToUnixStyle(resolutionDirectory);
@ -93,7 +93,7 @@ std::string CCFileUtilsWinRT::getPathForFilename(const std::string& filename, co
return FileUtils::getPathForFilename(unixFileName, unixResolutionDirectory, unixSearchPath);
}
std::string CCFileUtilsWinRT::getFullPathForDirectoryAndFilename(const std::string& strDirectory, const std::string& strFilename)
std::string CCFileUtilsWinRT::getFullPathForDirectoryAndFilename(const std::string& strDirectory, const std::string& strFilename) const
{
std::string unixDirectory = convertPathFormatToUnixStyle(strDirectory);
std::string unixFilename = convertPathFormatToUnixStyle(strFilename);

View File

@ -49,8 +49,8 @@ public:
bool init();
virtual std::string getWritablePath() const;
virtual bool isAbsolutePath(const std::string& strPath) const;
virtual std::string getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath) override;
virtual std::string getFullPathForDirectoryAndFilename(const std::string& strDirectory, const std::string& strFilename) override;
virtual std::string getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath) const override;
virtual std::string getFullPathForDirectoryAndFilename(const std::string& strDirectory, const std::string& strFilename) const override;
virtual std::string getStringFromFile(const std::string& filename) override;
static std::string getAppPath();

View File

@ -35,10 +35,10 @@ THE SOFTWARE.
#define generic GenericFromFreeTypeLibrary
#define internal InternalFromFreeTypeLibrary
#include <ft2build.h>
#include <freetype/freetype.h>
#include <freetype/ftglyph.h>
#include <freetype/ftoutln.h>
#include <freetype/fttrigon.h>
#include <freetype.h>
#include <ftglyph.h>
#include <ftoutln.h>
#include <fttrigon.h>
#undef generic
#undef internal

View File

@ -423,7 +423,7 @@ void MeshCommand::setLightUniforms()
Vec3 dir = dirLight->getDirectionInWorld();
dir.normalize();
const Color3B &col = dirLight->getDisplayedColor();
s_dirLightUniformColorValues[enabledDirLightNum] = Vec3(col.r / 255.0f * intensity, col.g / 255.0f * intensity, col.b / 255.0f * intensity);
s_dirLightUniformColorValues[enabledDirLightNum].set(col.r / 255.0f * intensity, col.g / 255.0f * intensity, col.b / 255.0f * intensity);
s_dirLightUniformDirValues[enabledDirLightNum] = dir;
++enabledDirLightNum;
}
@ -437,8 +437,8 @@ void MeshCommand::setLightUniforms()
auto pointLight = static_cast<PointLight *>(light);
Mat4 mat= pointLight->getNodeToWorldTransform();
const Color3B &col = pointLight->getDisplayedColor();
s_pointLightUniformColorValues[enabledPointLightNum] = Vec3(col.r / 255.0f * intensity, col.g / 255.0f * intensity, col.b / 255.0f * intensity);
s_pointLightUniformPositionValues[enabledPointLightNum] = Vec3(mat.m[12], mat.m[13], mat.m[14]);
s_pointLightUniformColorValues[enabledPointLightNum].set(col.r / 255.0f * intensity, col.g / 255.0f * intensity, col.b / 255.0f * intensity);
s_pointLightUniformPositionValues[enabledPointLightNum].set(mat.m[12], mat.m[13], mat.m[14]);
s_pointLightUniformRangeInverseValues[enabledPointLightNum] = 1.0f / pointLight->getRange();
++enabledPointLightNum;
}
@ -453,8 +453,8 @@ void MeshCommand::setLightUniforms()
dir.normalize();
Mat4 mat= light->getNodeToWorldTransform();
const Color3B &col = spotLight->getDisplayedColor();
s_spotLightUniformColorValues[enabledSpotLightNum] = Vec3(col.r / 255.0f * intensity, col.g / 255.0f * intensity, col.b / 255.0f * intensity);
s_spotLightUniformPositionValues[enabledSpotLightNum] = Vec3(mat.m[12], mat.m[13], mat.m[14]);
s_spotLightUniformColorValues[enabledSpotLightNum].set(col.r / 255.0f * intensity, col.g / 255.0f * intensity, col.b / 255.0f * intensity);
s_spotLightUniformPositionValues[enabledSpotLightNum].set(mat.m[12], mat.m[13], mat.m[14]);
s_spotLightUniformDirValues[enabledSpotLightNum] = dir;
s_spotLightUniformInnerAngleCosValues[enabledSpotLightNum] = spotLight->getCosInnerAngle();
s_spotLightUniformOuterAngleCosValues[enabledSpotLightNum] = spotLight->getCosOuterAngle();
@ -467,7 +467,7 @@ void MeshCommand::setLightUniforms()
{
auto ambLight = static_cast<AmbientLight *>(light);
const Color3B &col = ambLight->getDisplayedColor();
ambientColor += Vec3(col.r / 255.0f * intensity, col.g / 255.0f * intensity, col.b / 255.0f * intensity);
ambientColor.add(col.r / 255.0f * intensity, col.g / 255.0f * intensity, col.b / 255.0f * intensity);
}
break;
default:

View File

@ -38,11 +38,13 @@
-- @return float#float ret (return value: float)
--------------------------------
-- Disable all effect to Label.
-- @function [parent=#Label] disableEffect
-- @overload self, int
-- @overload self
-- @function [parent=#Label] disableEffect
-- @param self
-- @param #int effect
-- @return Label#Label self (return value: cc.Label)
--------------------------------
-- Sets a new TTF configuration to Label.<br>
-- see `TTFConfig`

View File

@ -0,0 +1,134 @@
--------------------------------
-- @module Terrain
-- @extend Node
-- @parent_module cc
--------------------------------
-- initialize heightMap data
-- @function [parent=#Terrain] initHeightMap
-- @param self
-- @param #char heightMap
-- @return bool#bool ret (return value: bool)
--------------------------------
-- set the MaxDetailAmount.
-- @function [parent=#Terrain] setMaxDetailMapAmount
-- @param self
-- @param #int maxValue
-- @return Terrain#Terrain self (return value: cc.Terrain)
--------------------------------
-- show the wireline instead of the surface,Debug Use only.<br>
-- Note only support desktop platform
-- @function [parent=#Terrain] setDrawWire
-- @param self
-- @param #bool boolValue
-- @return Terrain#Terrain self (return value: cc.Terrain)
--------------------------------
-- Switch frustum Culling Flag<br>
-- Note frustum culling will remarkable improve your terrain rendering performance.
-- @function [parent=#Terrain] setIsEnableFrustumCull
-- @param self
-- @param #bool boolValue
-- @return Terrain#Terrain self (return value: cc.Terrain)
--------------------------------
-- set the Detail Map
-- @function [parent=#Terrain] setDetailMap
-- @param self
-- @param #unsigned int index
-- @param #cc.Terrain::DetailMap detailMap
-- @return Terrain#Terrain self (return value: cc.Terrain)
--------------------------------
-- reset the heightmap data.
-- @function [parent=#Terrain] resetHeightMap
-- @param self
-- @param #char heightMap
-- @return Terrain#Terrain self (return value: cc.Terrain)
--------------------------------
-- set the alpha map
-- @function [parent=#Terrain] setAlphaMap
-- @param self
-- @param #cc.Texture2D newAlphaMapTexture
-- @return Terrain#Terrain self (return value: cc.Terrain)
--------------------------------
-- set the skirt height ratio
-- @function [parent=#Terrain] setSkirtHeightRatio
-- @param self
-- @param #float ratio
-- @return Terrain#Terrain self (return value: cc.Terrain)
--------------------------------
-- Convert a world Space position (X,Z) to terrain space position (X,Z)
-- @function [parent=#Terrain] convertToTerrainSpace
-- @param self
-- @param #vec2_table worldSpace
-- @return vec2_table#vec2_table ret (return value: vec2_table)
--------------------------------
-- initialize alphaMap ,detailMaps textures
-- @function [parent=#Terrain] initTextures
-- @param self
-- @return bool#bool ret (return value: bool)
--------------------------------
-- initialize all Properties which terrain need
-- @function [parent=#Terrain] initProperties
-- @param self
-- @return bool#bool ret (return value: bool)
--------------------------------
-- Set threshold distance of each LOD level,must equal or gereater than the chunk size<br>
-- Note when invoke initHeightMap, the LOD distance will be automatic calculated.
-- @function [parent=#Terrain] setLODDistance
-- @param self
-- @param #float lod1
-- @param #float lod2
-- @param #float lod3
-- @return Terrain#Terrain self (return value: cc.Terrain)
--------------------------------
-- get the normal of the specified pistion in terrain<br>
-- return the normal vector of the specified position of the terrain.<br>
-- note the fast normal calculation may not get precise normal vector.
-- @function [parent=#Terrain] getNormal
-- @param self
-- @param #int pixelX
-- @param #int pixelY
-- @return vec3_table#vec3_table ret (return value: vec3_table)
--------------------------------
-- get height from the raw height filed
-- @function [parent=#Terrain] getImageHeight
-- @param self
-- @param #int pixelX
-- @param #int pixelY
-- @return float#float ret (return value: float)
--------------------------------
-- get the terrain's maximum height.
-- @function [parent=#Terrain] getMaxHeight
-- @param self
-- @return float#float ret (return value: float)
--------------------------------
-- get the terrain's mininal height.
-- @function [parent=#Terrain] getMinHeight
-- @param self
-- @return float#float ret (return value: float)
--------------------------------
--
-- @function [parent=#Terrain] draw
-- @param self
-- @param #cc.Renderer renderer
-- @param #mat4_table transform
-- @param #unsigned int flags
-- @return Terrain#Terrain self (return value: cc.Terrain)
return nil

View File

@ -4,12 +4,24 @@
-- @extend Scene
-- @parent_module cc
--------------------------------
--
-- @function [parent=#TransitionScene] getInScene
-- @param self
-- @return Scene#Scene ret (return value: cc.Scene)
--------------------------------
-- Called after the transition finishes.
-- @function [parent=#TransitionScene] finish
-- @param self
-- @return TransitionScene#TransitionScene self (return value: cc.TransitionScene)
--------------------------------
--
-- @function [parent=#TransitionScene] getDuration
-- @param self
-- @return float#float ret (return value: float)
--------------------------------
-- Used by some transitions to hide the outer scene.
-- @function [parent=#TransitionScene] hideOutShowIn

View File

@ -51,4 +51,9 @@
-- @field [parent=#cc] Skybox#Skybox Skybox preloaded module
--------------------------------------------------------
-- the cc Terrain
-- @field [parent=#cc] Terrain#Terrain Terrain preloaded module
return nil

View File

@ -3408,6 +3408,845 @@ int lua_register_cocos2dx_3d_Skybox(lua_State* tolua_S)
g_typeCast["Skybox"] = "cc.Skybox";
return 1;
}
int lua_cocos2dx_3d_Terrain_initHeightMap(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_initHeightMap'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 1)
{
const char* arg0;
std::string arg0_tmp; ok &= luaval_to_std_string(tolua_S, 2, &arg0_tmp, "cc.Terrain:initHeightMap"); arg0 = arg0_tmp.c_str();
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_initHeightMap'", nullptr);
return 0;
}
bool ret = cobj->initHeightMap(arg0);
tolua_pushboolean(tolua_S,(bool)ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:initHeightMap",argc, 1);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_initHeightMap'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_setMaxDetailMapAmount(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_setMaxDetailMapAmount'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 1)
{
int arg0;
ok &= luaval_to_int32(tolua_S, 2,(int *)&arg0, "cc.Terrain:setMaxDetailMapAmount");
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_setMaxDetailMapAmount'", nullptr);
return 0;
}
cobj->setMaxDetailMapAmount(arg0);
lua_settop(tolua_S, 1);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:setMaxDetailMapAmount",argc, 1);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_setMaxDetailMapAmount'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_setDrawWire(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_setDrawWire'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 1)
{
bool arg0;
ok &= luaval_to_boolean(tolua_S, 2,&arg0, "cc.Terrain:setDrawWire");
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_setDrawWire'", nullptr);
return 0;
}
cobj->setDrawWire(arg0);
lua_settop(tolua_S, 1);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:setDrawWire",argc, 1);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_setDrawWire'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_setIsEnableFrustumCull(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_setIsEnableFrustumCull'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 1)
{
bool arg0;
ok &= luaval_to_boolean(tolua_S, 2,&arg0, "cc.Terrain:setIsEnableFrustumCull");
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_setIsEnableFrustumCull'", nullptr);
return 0;
}
cobj->setIsEnableFrustumCull(arg0);
lua_settop(tolua_S, 1);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:setIsEnableFrustumCull",argc, 1);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_setIsEnableFrustumCull'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_setDetailMap(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_setDetailMap'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 2)
{
unsigned int arg0;
cocos2d::Terrain::DetailMap arg1;
ok &= luaval_to_uint32(tolua_S, 2,&arg0, "cc.Terrain:setDetailMap");
#pragma warning NO CONVERSION TO NATIVE FOR DetailMap
ok = false;
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_setDetailMap'", nullptr);
return 0;
}
cobj->setDetailMap(arg0, arg1);
lua_settop(tolua_S, 1);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:setDetailMap",argc, 2);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_setDetailMap'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_resetHeightMap(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_resetHeightMap'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 1)
{
const char* arg0;
std::string arg0_tmp; ok &= luaval_to_std_string(tolua_S, 2, &arg0_tmp, "cc.Terrain:resetHeightMap"); arg0 = arg0_tmp.c_str();
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_resetHeightMap'", nullptr);
return 0;
}
cobj->resetHeightMap(arg0);
lua_settop(tolua_S, 1);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:resetHeightMap",argc, 1);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_resetHeightMap'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_setAlphaMap(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_setAlphaMap'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 1)
{
cocos2d::Texture2D* arg0;
ok &= luaval_to_object<cocos2d::Texture2D>(tolua_S, 2, "cc.Texture2D",&arg0);
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_setAlphaMap'", nullptr);
return 0;
}
cobj->setAlphaMap(arg0);
lua_settop(tolua_S, 1);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:setAlphaMap",argc, 1);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_setAlphaMap'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_setSkirtHeightRatio(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_setSkirtHeightRatio'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 1)
{
double arg0;
ok &= luaval_to_number(tolua_S, 2,&arg0, "cc.Terrain:setSkirtHeightRatio");
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_setSkirtHeightRatio'", nullptr);
return 0;
}
cobj->setSkirtHeightRatio(arg0);
lua_settop(tolua_S, 1);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:setSkirtHeightRatio",argc, 1);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_setSkirtHeightRatio'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_convertToTerrainSpace(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_convertToTerrainSpace'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 1)
{
cocos2d::Vec2 arg0;
ok &= luaval_to_vec2(tolua_S, 2, &arg0, "cc.Terrain:convertToTerrainSpace");
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_convertToTerrainSpace'", nullptr);
return 0;
}
cocos2d::Vec2 ret = cobj->convertToTerrainSpace(arg0);
vec2_to_luaval(tolua_S, ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:convertToTerrainSpace",argc, 1);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_convertToTerrainSpace'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_initTextures(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_initTextures'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 0)
{
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_initTextures'", nullptr);
return 0;
}
bool ret = cobj->initTextures();
tolua_pushboolean(tolua_S,(bool)ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:initTextures",argc, 0);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_initTextures'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_initProperties(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_initProperties'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 0)
{
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_initProperties'", nullptr);
return 0;
}
bool ret = cobj->initProperties();
tolua_pushboolean(tolua_S,(bool)ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:initProperties",argc, 0);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_initProperties'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_setLODDistance(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_setLODDistance'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 3)
{
double arg0;
double arg1;
double arg2;
ok &= luaval_to_number(tolua_S, 2,&arg0, "cc.Terrain:setLODDistance");
ok &= luaval_to_number(tolua_S, 3,&arg1, "cc.Terrain:setLODDistance");
ok &= luaval_to_number(tolua_S, 4,&arg2, "cc.Terrain:setLODDistance");
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_setLODDistance'", nullptr);
return 0;
}
cobj->setLODDistance(arg0, arg1, arg2);
lua_settop(tolua_S, 1);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:setLODDistance",argc, 3);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_setLODDistance'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_getNormal(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_getNormal'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 2)
{
int arg0;
int arg1;
ok &= luaval_to_int32(tolua_S, 2,(int *)&arg0, "cc.Terrain:getNormal");
ok &= luaval_to_int32(tolua_S, 3,(int *)&arg1, "cc.Terrain:getNormal");
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_getNormal'", nullptr);
return 0;
}
cocos2d::Vec3 ret = cobj->getNormal(arg0, arg1);
vec3_to_luaval(tolua_S, ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:getNormal",argc, 2);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_getNormal'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_getImageHeight(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_getImageHeight'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 2)
{
int arg0;
int arg1;
ok &= luaval_to_int32(tolua_S, 2,(int *)&arg0, "cc.Terrain:getImageHeight");
ok &= luaval_to_int32(tolua_S, 3,(int *)&arg1, "cc.Terrain:getImageHeight");
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_getImageHeight'", nullptr);
return 0;
}
double ret = cobj->getImageHeight(arg0, arg1);
tolua_pushnumber(tolua_S,(lua_Number)ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:getImageHeight",argc, 2);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_getImageHeight'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_getMaxHeight(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_getMaxHeight'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 0)
{
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_getMaxHeight'", nullptr);
return 0;
}
double ret = cobj->getMaxHeight();
tolua_pushnumber(tolua_S,(lua_Number)ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:getMaxHeight",argc, 0);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_getMaxHeight'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_getMinHeight(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_getMinHeight'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 0)
{
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_getMinHeight'", nullptr);
return 0;
}
double ret = cobj->getMinHeight();
tolua_pushnumber(tolua_S,(lua_Number)ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:getMinHeight",argc, 0);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Terrain_getMinHeight'.",&tolua_err);
#endif
return 0;
}
static int lua_cocos2dx_3d_Terrain_finalize(lua_State* tolua_S)
{
printf("luabindings: finalizing LUA object (Terrain)");
return 0;
}
int lua_register_cocos2dx_3d_Terrain(lua_State* tolua_S)
{
tolua_usertype(tolua_S,"cc.Terrain");
tolua_cclass(tolua_S,"Terrain","cc.Terrain","cc.Node",nullptr);
tolua_beginmodule(tolua_S,"Terrain");
tolua_function(tolua_S,"initHeightMap",lua_cocos2dx_3d_Terrain_initHeightMap);
tolua_function(tolua_S,"setMaxDetailMapAmount",lua_cocos2dx_3d_Terrain_setMaxDetailMapAmount);
tolua_function(tolua_S,"setDrawWire",lua_cocos2dx_3d_Terrain_setDrawWire);
tolua_function(tolua_S,"setIsEnableFrustumCull",lua_cocos2dx_3d_Terrain_setIsEnableFrustumCull);
tolua_function(tolua_S,"setDetailMap",lua_cocos2dx_3d_Terrain_setDetailMap);
tolua_function(tolua_S,"resetHeightMap",lua_cocos2dx_3d_Terrain_resetHeightMap);
tolua_function(tolua_S,"setAlphaMap",lua_cocos2dx_3d_Terrain_setAlphaMap);
tolua_function(tolua_S,"setSkirtHeightRatio",lua_cocos2dx_3d_Terrain_setSkirtHeightRatio);
tolua_function(tolua_S,"convertToTerrainSpace",lua_cocos2dx_3d_Terrain_convertToTerrainSpace);
tolua_function(tolua_S,"initTextures",lua_cocos2dx_3d_Terrain_initTextures);
tolua_function(tolua_S,"initProperties",lua_cocos2dx_3d_Terrain_initProperties);
tolua_function(tolua_S,"setLODDistance",lua_cocos2dx_3d_Terrain_setLODDistance);
tolua_function(tolua_S,"getNormal",lua_cocos2dx_3d_Terrain_getNormal);
tolua_function(tolua_S,"getImageHeight",lua_cocos2dx_3d_Terrain_getImageHeight);
tolua_function(tolua_S,"getMaxHeight",lua_cocos2dx_3d_Terrain_getMaxHeight);
tolua_function(tolua_S,"getMinHeight",lua_cocos2dx_3d_Terrain_getMinHeight);
tolua_endmodule(tolua_S);
std::string typeName = typeid(cocos2d::Terrain).name();
g_luaType[typeName] = "cc.Terrain";
g_typeCast["Terrain"] = "cc.Terrain";
return 1;
}
TOLUA_API int register_all_cocos2dx_3d(lua_State* tolua_S)
{
tolua_open(tolua_S);
@ -3420,6 +4259,7 @@ TOLUA_API int register_all_cocos2dx_3d(lua_State* tolua_S)
lua_register_cocos2dx_3d_AttachNode(tolua_S);
lua_register_cocos2dx_3d_TextureCube(tolua_S);
lua_register_cocos2dx_3d_Sprite3DCache(tolua_S);
lua_register_cocos2dx_3d_Terrain(tolua_S);
lua_register_cocos2dx_3d_Skybox(tolua_S);
lua_register_cocos2dx_3d_BillBoard(tolua_S);
lua_register_cocos2dx_3d_Animation3D(tolua_S);

View File

@ -68,6 +68,23 @@ int register_all_cocos2dx_3d(lua_State* tolua_S);

View File

@ -38637,39 +38637,43 @@ int lua_cocos2dx_Label_disableEffect(lua_State* tolua_S)
int argc = 0;
cocos2d::Label* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Label",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Label*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_Label_disableEffect'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 0)
{
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_Label_disableEffect'", nullptr);
return 0;
do{
if (argc == 1) {
cocos2d::LabelEffect arg0;
ok &= luaval_to_int32(tolua_S, 2,(int *)&arg0, "cc.Label:disableEffect");
if (!ok) { break; }
cobj->disableEffect(arg0);
lua_settop(tolua_S, 1);
return 1;
}
cobj->disableEffect();
lua_settop(tolua_S, 1);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Label:disableEffect",argc, 0);
}while(0);
ok = true;
do{
if (argc == 0) {
cobj->disableEffect();
lua_settop(tolua_S, 1);
return 1;
}
}while(0);
ok = true;
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Label:disableEffect",argc, 0);
return 0;
#if COCOS2D_DEBUG >= 1
@ -42303,6 +42307,53 @@ int lua_register_cocos2dx_TransitionEaseScene(lua_State* tolua_S)
return 1;
}
int lua_cocos2dx_TransitionScene_getInScene(lua_State* tolua_S)
{
int argc = 0;
cocos2d::TransitionScene* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.TransitionScene",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::TransitionScene*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_TransitionScene_getInScene'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 0)
{
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_TransitionScene_getInScene'", nullptr);
return 0;
}
cocos2d::Scene* ret = cobj->getInScene();
object_to_luaval<cocos2d::Scene>(tolua_S, "cc.Scene",(cocos2d::Scene*)ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.TransitionScene:getInScene",argc, 0);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_TransitionScene_getInScene'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_TransitionScene_finish(lua_State* tolua_S)
{
int argc = 0;
@ -42350,6 +42401,53 @@ int lua_cocos2dx_TransitionScene_finish(lua_State* tolua_S)
return 0;
}
int lua_cocos2dx_TransitionScene_getDuration(lua_State* tolua_S)
{
int argc = 0;
cocos2d::TransitionScene* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.TransitionScene",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::TransitionScene*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_TransitionScene_getDuration'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 0)
{
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_TransitionScene_getDuration'", nullptr);
return 0;
}
double ret = cobj->getDuration();
tolua_pushnumber(tolua_S,(lua_Number)ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.TransitionScene:getDuration",argc, 0);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_TransitionScene_getDuration'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_TransitionScene_hideOutShowIn(lua_State* tolua_S)
{
int argc = 0;
@ -42447,7 +42545,9 @@ int lua_register_cocos2dx_TransitionScene(lua_State* tolua_S)
tolua_cclass(tolua_S,"TransitionScene","cc.TransitionScene","cc.Scene",nullptr);
tolua_beginmodule(tolua_S,"TransitionScene");
tolua_function(tolua_S,"getInScene",lua_cocos2dx_TransitionScene_getInScene);
tolua_function(tolua_S,"finish",lua_cocos2dx_TransitionScene_finish);
tolua_function(tolua_S,"getDuration",lua_cocos2dx_TransitionScene_getDuration);
tolua_function(tolua_S,"hideOutShowIn",lua_cocos2dx_TransitionScene_hideOutShowIn);
tolua_function(tolua_S,"create", lua_cocos2dx_TransitionScene_create);
tolua_endmodule(tolua_S);

View File

@ -1632,6 +1632,8 @@ int register_all_cocos2dx(lua_State* tolua_S);

View File

@ -116,7 +116,7 @@ tolua_lerror:
return 0;
}
int lua_cocos2dx_3d_Sprite3D_createAsync(lua_State* tolua_S)
int lua_cocos2dx_3d_Sprite3D_createAsync(lua_State* L)
{
int argc = 0;
bool ok = true;
@ -125,39 +125,39 @@ int lua_cocos2dx_3d_Sprite3D_createAsync(lua_State* tolua_S)
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertable(tolua_S,1,"cc.Sprite3D",0,&tolua_err)) goto tolua_lerror;
if (!tolua_isusertable(L,1,"cc.Sprite3D",0,&tolua_err)) goto tolua_lerror;
#endif
argc = lua_gettop(tolua_S)-1;
argc = lua_gettop(L)-1;
do
{
if (argc == 3)
{
std::string modelPath;
ok &= luaval_to_std_string(tolua_S, 2,&modelPath, "cc.Sprite3D:createAsync");
ok &= luaval_to_std_string(L, 2,&modelPath, "cc.Sprite3D:createAsync");
if (!ok)
break;
std::string texturePath;
ok &= luaval_to_std_string(tolua_S, 3,&texturePath, "cc.Sprite3D:createAsync");
ok &= luaval_to_std_string(L, 3,&texturePath, "cc.Sprite3D:createAsync");
if (!ok)
break;
#if COCOS2D_DEBUG >= 1
if (!toluafix_isfunction(tolua_S,4,"LUA_FUNCTION",0,&tolua_err)) {
if (!toluafix_isfunction(L,4,"LUA_FUNCTION",0,&tolua_err)) {
goto tolua_lerror;
}
#endif
LUA_FUNCTION handler = toluafix_ref_function(tolua_S,4,0);
LUA_FUNCTION handler = toluafix_ref_function(L,4,0);
cocos2d::Sprite3D::createAsync(modelPath, texturePath, [=](cocos2d::Sprite3D* sprite, void* callbackparam){
int id = (sprite) ? (int)sprite->_ID : -1;
int* luaID = (sprite) ? &sprite->_luaID : nullptr;
toluafix_pushusertype_ccobject(tolua_S, id, luaID, (void*)sprite,"cc.Sprite3D");
toluafix_pushusertype_ccobject(L, id, luaID, (void*)sprite,"cc.Sprite3D");
LuaEngine::getInstance()->getLuaStack()->executeFunctionByHandler(handler, 1);
}, nullptr);
lua_settop(tolua_S, 1);
lua_settop(L, 1);
return 1;
}
} while (0);
@ -167,34 +167,34 @@ int lua_cocos2dx_3d_Sprite3D_createAsync(lua_State* tolua_S)
if (argc == 2)
{
std::string modelPath;
ok &= luaval_to_std_string(tolua_S, 2,&modelPath, "cc.Sprite3D:createAsync");
ok &= luaval_to_std_string(L, 2,&modelPath, "cc.Sprite3D:createAsync");
if (!ok)
break;
#if COCOS2D_DEBUG >= 1
if (!toluafix_isfunction(tolua_S, 3, "LUA_FUNCTION", 0, &tolua_err)) {
if (!toluafix_isfunction(L, 3, "LUA_FUNCTION", 0, &tolua_err)) {
goto tolua_lerror;
}
#endif
LUA_FUNCTION handler = toluafix_ref_function(tolua_S, 3, 0);
LUA_FUNCTION handler = toluafix_ref_function(L, 3, 0);
cocos2d::Sprite3D::createAsync(modelPath, [=](cocos2d::Sprite3D* sprite, void* callbackparam){
int id = (sprite) ? (int)sprite->_ID : -1;
int* luaID = (sprite) ? &sprite->_luaID : nullptr;
toluafix_pushusertype_ccobject(tolua_S, id, luaID, (void*)sprite,"cc.Sprite3D");
toluafix_pushusertype_ccobject(L, id, luaID, (void*)sprite,"cc.Sprite3D");
LuaEngine::getInstance()->getLuaStack()->executeFunctionByHandler(handler, 1);
}, nullptr);
lua_settop(tolua_S, 1);
lua_settop(L, 1);
return 1;
}
} while (0);
ok = true;
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d", "cc.Sprite3D:createAsync",argc, 3);
luaL_error(L, "%s has wrong number of arguments: %d, was expecting %d", "cc.Sprite3D:createAsync",argc, 3);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_3d_Sprite3D_createAsync'.",&tolua_err);
tolua_error(L,"#ferror in function 'lua_cocos2dx_3d_Sprite3D_createAsync'.",&tolua_err);
#endif
return 0;
}
@ -212,12 +212,327 @@ static void extendSprite3D(lua_State* L)
lua_pop(L, 1);
}
bool luaval_to_terraindata(lua_State* L, int lo, cocos2d::Terrain::TerrainData* outValue , const char* funcName = "")
{
if (nullptr == L || nullptr == outValue)
return false;
bool ok = true;
tolua_Error tolua_err;
if (!tolua_istable(L, lo, 0, &tolua_err))
{
#if COCOS2D_DEBUG >=1
luaval_to_native_err(L,"#ferror:",&tolua_err,funcName);
ok = false;
#endif
}
if (ok)
{
lua_pushstring(L, "chunkSize");
lua_gettable(L,lo);
if (!lua_isnil(L, -1))
{
luaval_to_size(L, -1, &(outValue->chunkSize));
}
else
{
outValue->chunkSize = cocos2d::Size(32, 32);
}
lua_pop(L, 1);
lua_pushstring(L, "heightMapSrc");
lua_gettable(L,lo);
outValue->heightMapSrc = tolua_tocppstring(L, -1, "");
lua_pop(L,1);
lua_pushstring(L, "alphaMapSrc");
lua_gettable(L,lo);
outValue->alphaMapSrc = const_cast<char*>(tolua_tocppstring(L, -1, ""));
lua_pop(L,1);
lua_pushstring(L, "detailMaps");
lua_gettable(L,lo);
if (lua_istable(L, -1))
{
size_t len = lua_objlen(L, -1);
for (size_t i = 0; i < len; i++)
{
lua_pushnumber(L,i + 1);
lua_gettable(L,-2);
if (lua_istable(L, -1))
{
lua_pushstring(L, "detailMapSrc");
lua_gettable(L,-2);
outValue->detailMaps[i].detailMapSrc = tolua_tocppstring(L, -1, "");
lua_pop(L,1);
lua_pushstring(L, "detailMapSize");
lua_gettable(L,-2);
outValue->detailMaps[i].detailMapSize = lua_isnil(L,-1) ? 0.0f : (float)lua_tonumber(L,-1);
lua_pop(L,1);
}
lua_pop(L, 1);
}
}
lua_pop(L,1);
lua_pushstring(L, "mapHeight");
lua_gettable(L,lo);
outValue->mapHeight = lua_isnil(L,-1) ? 2.0f : (float)lua_tonumber(L,-1);
lua_pop(L,1);
lua_pushstring(L, "mapScale");
lua_gettable(L,lo);
outValue->mapScale = lua_isnil(L,-1) ? 0.1f : (float)lua_tonumber(L,-1);
lua_pop(L,1);
lua_pushstring(L, "_detailMapAmount");
lua_gettable(L,lo);
outValue->_detailMapAmount = lua_isnil(L,-1) ? 0 : (int)lua_tonumber(L,-1);
lua_pop(L,1);
lua_pushstring(L, "skirtHeightRatio");
lua_gettable(L,lo);
outValue->skirtHeightRatio = lua_isnil(L,-1) ? 1.0f : (float)lua_tonumber(L,-1);
lua_pop(L,1);
}
return ok;
}
void terraindata_to_luaval(lua_State* L,const cocos2d::Terrain::TerrainData& inValue)
{
if (nullptr == L)
return;
lua_newtable(L);
lua_pushstring(L, "chunkSize");
size_to_luaval(L, inValue.chunkSize);
lua_rawset(L, -3);
if (inValue.heightMapSrc.length() > 0)
{
lua_pushstring(L, "heightMapSrc");
lua_pushstring(L, inValue.heightMapSrc.c_str());
lua_rawset(L, -3);
}
if (nullptr != inValue.alphaMapSrc)
{
lua_pushstring(L, "alphaMapSrc");
lua_pushstring(L, inValue.alphaMapSrc);
lua_rawset(L, -3);
}
lua_pushstring(L, "detailMaps");
lua_newtable(L);
for (int i = 0; i < 4; i++)
{
lua_pushnumber(L, (lua_Number) i + 1);
lua_newtable(L);
lua_pushstring(L, "detailMapSrc");
lua_pushstring(L, inValue.detailMaps[i].detailMapSrc.c_str());
lua_rawset(L, -3);
lua_pushstring(L, "detailMapSize");
lua_pushnumber(L, (lua_Number)inValue.detailMaps[i].detailMapSize);
lua_rawset(L, -3);
lua_rawset(L, -3);
}
lua_rawset(L, -3);
lua_pushstring(L, "mapHeight");
lua_pushnumber(L, (lua_Number)inValue.mapHeight);
lua_rawset(L, -3);
lua_pushstring(L, "mapScale");
lua_pushnumber(L, (lua_Number)inValue.mapScale);
lua_rawset(L, -3);
lua_pushstring(L, "_detailMapAmount");
lua_pushnumber(L, (lua_Number)inValue._detailMapAmount);
lua_rawset(L, -3);
lua_pushstring(L, "skirtHeightRatio");
lua_pushnumber(L, (lua_Number)inValue.skirtHeightRatio);
lua_rawset(L, -3);
}
int lua_cocos2dx_3d_Terrain_create(lua_State* L)
{
int argc = 0;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertable(L,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
argc = lua_gettop(L) - 1;
if (argc == 1)
{
cocos2d::Terrain::TerrainData arg0;
ok &= luaval_to_terraindata(L, 2, &arg0);
if(!ok)
{
tolua_error(L,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_create'", nullptr);
return 0;
}
cocos2d::Terrain* ret = cocos2d::Terrain::create(arg0);
object_to_luaval<cocos2d::Terrain>(L, "cc.Terrain",(cocos2d::Terrain*)ret);
return 1;
}
if (argc == 2)
{
cocos2d::Terrain::TerrainData arg0;
cocos2d::Terrain::CrackFixedType arg1;
ok &= luaval_to_terraindata(L, 2, &arg0);
ok &= luaval_to_int32(L, 3,(int *)&arg1, "cc.Terrain:create");
if(!ok)
{
tolua_error(L,"invalid arguments in function 'lua_cocos2dx_3d_Terrain_create'", nullptr);
return 0;
}
cocos2d::Terrain* ret = cocos2d::Terrain::create(arg0, arg1);
object_to_luaval<cocos2d::Terrain>(L, "cc.Terrain",(cocos2d::Terrain*)ret);
return 1;
}
luaL_error(L, "%s has wrong number of arguments: %d, was expecting %d\n ", "cc.Terrain:create",argc, 1);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(L,"#ferror in function 'lua_cocos2dx_3d_Terrain_create'.",&tolua_err);
#endif
return 0;
}
int lua_cocos2dx_3d_Terrain_getHeight(lua_State* L)
{
int argc = 0;
cocos2d::Terrain* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(L,1,"cc.Terrain",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Terrain*)tolua_tousertype(L,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(L,"invalid 'cobj' in function 'lua_cocos2dx_3d_Terrain_getHeight'", nullptr);
return 0;
}
#endif
argc = lua_gettop(L)-1;
do{
if (argc == 1) {
cocos2d::Vec2 arg0;
ok &= luaval_to_vec2(L, 2, &arg0, "cc.Terrain:getHeight");
if (!ok) { break; }
double ret = cobj->getHeight(arg0);
tolua_pushnumber(L,(lua_Number)ret);
return 1;
}
}while(0);
ok = true;
do{
if (argc == 2) {
cocos2d::Vec2 arg0;
ok &= luaval_to_vec2(L, 2, &arg0, "cc.Terrain:getHeight");
if (!ok) { break; }
cocos2d::Vec3* arg1;
ok &= luaval_to_object<cocos2d::Vec3>(L, 3, "cc.Vec3",&arg1);
if (!ok) { break; }
double ret = cobj->getHeight(arg0, arg1);
tolua_pushnumber(L,(lua_Number)ret);
vec3_to_luaval(L, *arg1);
return 2;
}
}while(0);
ok = true;
do{
if (argc == 2) {
double arg0;
ok &= luaval_to_number(L, 2,&arg0, "cc.Terrain:getHeight");
if (!ok) { break; }
double arg1;
ok &= luaval_to_number(L, 3,&arg1, "cc.Terrain:getHeight");
if (!ok) { break; }
double ret = cobj->getHeight(arg0, arg1);
tolua_pushnumber(L,(lua_Number)ret);
return 1;
}
}while(0);
ok = true;
do{
if (argc == 3) {
double arg0;
ok &= luaval_to_number(L, 2,&arg0, "cc.Terrain:getHeight");
if (!ok) { break; }
double arg1;
ok &= luaval_to_number(L, 3,&arg1, "cc.Terrain:getHeight");
if (!ok) { break; }
cocos2d::Vec3 arg2;
ok &= luaval_to_vec3(L, 4, &arg2);
if (!ok) { break; }
double ret = cobj->getHeight(arg0, arg1, &arg2);
tolua_pushnumber(L,(lua_Number)ret);
vec3_to_luaval(L, arg2);
return 2;
}
}while(0);
ok = true;
luaL_error(L, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Terrain:getHeight",argc, 2);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(L,"#ferror in function 'lua_cocos2dx_3d_Terrain_getHeight'.",&tolua_err);
#endif
return 0;
}
static void extendTerrain(lua_State* L)
{
lua_pushstring(L, "cc.Terrain");
lua_rawget(L, LUA_REGISTRYINDEX);
if (lua_istable(L,-1))
{
tolua_function(L, "create", lua_cocos2dx_3d_Terrain_create);
tolua_function(L, "getHeight", lua_cocos2dx_3d_Terrain_getHeight);
}
lua_pop(L, 1);
}
static int register_all_cocos2dx_3d_manual(lua_State* L)
{
if (nullptr == L)
return 0;
extendSprite3D(L);
extendTerrain(L);
return 0;
}

View File

@ -7088,6 +7088,56 @@ tolua_lerror:
return 0;
}
int lua_cocos2dx_Application_is64BitIOSDevice(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Application* cobj = nullptr;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S,1,"cc.Application",0,&tolua_err)) goto tolua_lerror;
#endif
cobj = (cocos2d::Application*)tolua_tousertype(tolua_S,1,0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_Application_is64BitIOSDevice'", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S)-1;
if (argc == 0)
{
bool is64BitIOSDevice = false;
Application::Platform platform = cocos2d::Application::getInstance()->getTargetPlatform();
if (Application::Platform::OS_IPHONE == platform || Application::Platform::OS_IPAD == platform)
{
#if defined(__arm64__)
is64BitIOSDevice = true;
#endif
}
tolua_pushboolean(tolua_S, is64BitIOSDevice);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Application:is64BitIOSDevice",argc, 0);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_Application_is64BitIOSDevice'.",&tolua_err);
#endif
return 0;
}
static void extendApplication(lua_State* tolua_S)
{
lua_pushstring(tolua_S, "cc.Application");
@ -7095,6 +7145,7 @@ static void extendApplication(lua_State* tolua_S)
if (lua_istable(tolua_S,-1))
{
tolua_function(tolua_S, "isIOS64bit", lua_cocos2dx_Application_isIOS64bit);
tolua_function(tolua_S, "is64BitIOSDevice", lua_cocos2dx_Application_is64BitIOSDevice);
}
lua_pop(tolua_S, 1);
}

View File

@ -203,7 +203,6 @@
15C1C2EE19874CBE00A46ACC /* tolua_fix.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AACE7B418BC45C200215002 /* tolua_fix.h */; };
15EFA1F61989E528000C57D3 /* lua_cocos2dx_experimental_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15622967197780DE009C9067 /* lua_cocos2dx_experimental_auto.cpp */; };
15EFA1F71989E582000C57D3 /* lua_cocos2dx_experimental_auto.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 15622968197780DE009C9067 /* lua_cocos2dx_experimental_auto.hpp */; };
15EFA5D8198B2DAA000C57D3 /* liblua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C0D9BAFA1974D30000EC35BB /* liblua.a */; };
15EFA5D9198B2DAA000C57D3 /* libluajit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1ABCA1F318CD8F540087CE3A /* libluajit.a */; };
15EFA617198B2E2B000C57D3 /* lua_cocos2dx_experimental_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15622967197780DE009C9067 /* lua_cocos2dx_experimental_auto.cpp */; };
15EFA618198B2E2B000C57D3 /* lua_cocos2dx_auto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AACE74918BC45C200215002 /* lua_cocos2dx_auto.cpp */; };
@ -452,7 +451,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
15EFA5D8198B2DAA000C57D3 /* liblua.a in Frameworks */,
15EFA5D9198B2DAA000C57D3 /* libluajit.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -1310,12 +1308,7 @@
);
HEADER_SEARCH_PATHS = "";
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
LIBRARY_SEARCH_PATHS = (
"$(SRCROOT)/../../../../external/lua/luajit/prebuilt/ios",
"$(SRCROOT)/../../../../external/lua/lua/prebuilt/ios",
);
"OTHER_LDFLAGS[sdk=iphonesimulator7.1]" = "-llua";
"OTHER_LDFLAGS[sdk=iphonesimulator8.0]" = "-llua";
LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../../../external/lua/luajit/prebuilt/ios";
PRODUCT_NAME = "libluacocos2d iOS";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@ -1337,12 +1330,7 @@
);
HEADER_SEARCH_PATHS = "";
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
LIBRARY_SEARCH_PATHS = (
"$(SRCROOT)/../../../../external/lua/luajit/prebuilt/ios",
"$(SRCROOT)/../../../../external/lua/lua/prebuilt/ios",
);
"OTHER_LDFLAGS[sdk=iphonesimulator7.1]" = "-llua";
"OTHER_LDFLAGS[sdk=iphonesimulator8.0]" = "-llua";
LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../../../external/lua/luajit/prebuilt/ios";
PRODUCT_NAME = "libluacocos2d iOS";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";

View File

@ -0,0 +1,9 @@
if nil == cc.Terrain then
return
end
cc.Terrain.CrackFixedType =
{
SKIRT = 0,
INCREASE_LOWER = 1,
}

View File

@ -441,6 +441,22 @@ function cc.quaternion(_x, _y ,_z,_w)
return { x = _x, y = _y, z = _z, w = _w }
end
function cc.quaternion_createFromAxisAngle(axis, angle)
local halfAngle = angle * 0.5
local sinHalfAngle = math.sin(halfAngle)
local normal = cc.vec3(axis.x, axis.y, axis.z)
normal = cc.vec3normalize(normal)
local dst = cc.vec3(0.0, 0.0, 0.0)
dst.x = normal.x * sinHalfAngle
dst.y = normal.y * sinHalfAngle
dst.z = normal.z * sinHalfAngle
dst.w = math.cos(halfAngle)
return dst
end
function cc.blendFunc(_src, _dst)
return {src = _src, dst = _dst}
end

View File

@ -164,6 +164,7 @@ static std::string getFixedBaseUrl(const std::string& baseUrl)
}
- (void)loadHTMLString:(const std::string &)string baseURL:(const std::string &)baseURL {
if (!self.uiWebView) {[self setupWebView];}
[self.uiWebView loadHTMLString:@(string.c_str()) baseURL:[NSURL URLWithString:@(getFixedBaseUrl(baseURL).c_str())]];
}
@ -211,6 +212,7 @@ static std::string getFixedBaseUrl(const std::string& baseUrl)
}
- (void)setScalesPageToFit:(const bool)scalesPageToFit {
if (!self.uiWebView) {[self setupWebView];}
self.uiWebView.scalesPageToFit = scalesPageToFit;
}

View File

@ -1,4 +1,4 @@
# cocos2d-x v3.5 Release Notes #
# cocos2d-x v3.6 Release Notes #
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
@ -13,7 +13,7 @@
- [Windows](#windows)
- [Linux](#linux)
- [How to start a new game](#how-to-start-a-new-game)
- [v3.6beta0](#v36beta0)
- [v3.6alpha0](#v36alpha0)
- [Highlights of v3.6beta0](#highlights-of-v36beta0)
- [Features in detail](#features-in-detail-1)
- [3D TextureCube](#3d-texturecube)
@ -110,9 +110,15 @@ Run
Please refer to this document: [ReadMe](../README.md)
# v3.6beta0
# v3.6alpha0
## Highlights of v3.6alpha0
* 3D: added skybox support
* 3D: added terrian support
* uses luajit v2.1-20150331 on 64-bit iOS devices
* added test automation support for cpp-tests
## Highlights of v3.6beta0
## Features in detail
### 3D TextureCube
@ -191,3 +197,13 @@ if (animation)
```
The animation quality is also configurable in config.plist, the key is cocos2d.x.3d.animate_high_quality. All the created `Animate3D` base on this key if exist. You can modify it using the above method.
### luajit arm64
The version of the luajit is [v2.1-20150331](https://github.com/openresty/luajit2/releases). We have consulted the author of luajit, he said it was stability enough to be used. We will update to v2.1 when it is released.
Using luajit arm64 version is that because it can improve the performance. In previous versions of cocos2d-x, it uses lua on iOS 64-bit devices.
Bytecode of luajit and luajit arm64 are not compatible, which means you can not use one version of bytecode on iOS 32-bit devices and iOS 64-bit devices.
As there is not mandatory requirement of having arm64 bit bin on Android, so we don't use luajit arm64 on Android as its bytecode is not compatible with luajit arm32.

View File

@ -269,8 +269,7 @@ void Particle3DModelRender::render(Renderer* renderer, const Mat4 &transform, Pa
for (auto iter : activeParticleList)
{
auto particle = iter;
q *= particle->orientation;
Mat4::createRotation(q, &rotMat);
Mat4::createRotation(q * particle->orientation, &rotMat);
sclMat.m[0] = particle->width / _spriteSize.x;
sclMat.m[5] = particle->height / _spriteSize.y;
sclMat.m[10] = particle->depth / _spriteSize.z;

View File

@ -272,8 +272,8 @@ void PUBeamRender::prepare()
for (size_t numDev = 0; numDev < _numberOfSegments; ++numDev)
{
// Initialise the positions
visualData->half[numDev] = Vec3::ZERO;
visualData->destinationHalf[numDev] = Vec3::ZERO;
visualData->half[numDev].setZero();
visualData->destinationHalf[numDev].setZero();
}
_allVisualData.push_back(visualData); // Managed by this renderer
_visualData.push_back(visualData); // Used to assign to a particle

View File

@ -418,7 +418,7 @@ void PUBillboardChain::updateVertexBuffer(const Mat4 &camMat)
//Vector3 eyePos = mParentNode->_getDerivedOrientation().Inverse() *
// (camPos - mParentNode->_getDerivedPosition()) / mParentNode->_getDerivedScale();
Vec3 eyePos = Vec3(camMat.m[12], camMat.m[13], camMat.m[14]);
Vec3 eyePos(camMat.m[12], camMat.m[13], camMat.m[14]);
Vec3 chainTangent;
for (ChainSegmentList::iterator segi = _chainSegmentList.begin();

View File

@ -173,7 +173,6 @@ void PUCircleEmitter::initParticleDirection(PUParticle3D* particle)
{
Mat4 rotMat;
Mat4::createRotation(_orientation, &rotMat);
particle->direction = Vec3(_x, 0, _z);
particle->direction = rotMat * Vec3(_x, 0, _z);
}
}

View File

@ -423,7 +423,7 @@ float PUDynamicAttributeOscillate::getValue (float x)
case OSCT_SQUARE:
{
float val = sin(_phase + _frequency * x * M_PI * 2.0f);
if (abs(val) < 0.00001f)
if (std::abs(val) < 0.00001f)
val = val >0? 1: -1;
return _base + _amplitude * val;
}

View File

@ -62,7 +62,7 @@ void PUFlockCenteringAffector::preUpdateAffector( float deltaTime )
{
_average = getDerivedPosition(); // Set to position of the affector
}
_sum = Vec3::ZERO;
_sum.setZero();
_count = 0;
}

View File

@ -27,7 +27,7 @@
NS_CC_BEGIN
const Vec3 PUForceFieldCalculationFactory::DEFAULT_WORLDSIZE = Vec3(500.0f, 500.0f, 500.0f);
const Vec3 PUForceFieldCalculationFactory::DEFAULT_WORLDSIZE(500.0f, 500.0f, 500.0f);
//-----------------------------------------------------------------------
unsigned short PUForceFieldCalculationFactory::getOctaves(void) const

View File

@ -37,8 +37,8 @@ const double PUForceFieldAffector::DEFAULT_FREQUENCY = 1.0f;
const double PUForceFieldAffector::DEFAULT_AMPLITUDE = 1.0f;
const double PUForceFieldAffector::DEFAULT_PERSISTENCE = 3.0f;
const unsigned int PUForceFieldAffector::DEFAULT_FORCEFIELDSIZE = 64;
const Vec3 PUForceFieldAffector::DEFAULT_WORLDSIZE = Vec3(500.0f, 500.0f, 500.0f);
const Vec3 PUForceFieldAffector::DEFAULT_MOVEMENT = Vec3(500.0f, 0.0f, 0.0f);
const Vec3 PUForceFieldAffector::DEFAULT_WORLDSIZE(500.0f, 500.0f, 500.0f);
const Vec3 PUForceFieldAffector::DEFAULT_MOVEMENT(500.0f, 0.0f, 0.0f);
const float PUForceFieldAffector::DEFAULT_MOVEMENT_FREQUENCY = 5.0f;
//-----------------------------------------------------------------------

View File

@ -108,8 +108,8 @@ bool PUParticle3DInterParticleCollider::validateAndExecuteSphereCollision (PUPar
// The new velocity is based on the angle between original direction and new direction.
// Note, that this usually means that the velocity decreases.
float velocity1 = Vec3(abs(vp1->direction.x), abs(vp1->direction.y), abs(vp1->direction.z)).dot(n);
float velocity2 = Vec3(abs(vp2->direction.x), abs(vp2->direction.y), abs(vp2->direction.z)).dot(n);
float velocity1 = Vec3(std::abs(vp1->direction.x), std::abs(vp1->direction.y), std::abs(vp1->direction.z)).dot(n);
float velocity2 = Vec3(std::abs(vp2->direction.x), std::abs(vp2->direction.y), std::abs(vp2->direction.z)).dot(n);
vp1->direction = velocity1 * vp2->mass * n;
vp2->direction = velocity2 * vp1->mass * -n;
}

View File

@ -68,7 +68,7 @@ void PULineEmitter::notifyRescaled(const Vec3& scale)
// Scale the internal attributes and use them, otherwise this results in too many calculations per particle
PUEmitter::notifyRescaled(scale);
float scaleLength = scale.length();
_scaledEnd = Vec3(_end.x * scale.x, _end.y * scale.y, _end.z * scale.z);
_scaledEnd.set(_end.x * scale.x, _end.y * scale.y, _end.z * scale.z);
_scaledMaxDeviation = _maxDeviation * scaleLength;
_scaledMinIncrement = _minIncrement * scaleLength;
_scaledMaxIncrement = (_maxIncrement - _minIncrement) * scaleLength;
@ -108,7 +108,7 @@ const Vec3& PULineEmitter::getEnd(void) const
void PULineEmitter::setEnd(const Vec3& end)
{
_end = end;
_scaledEnd = Vec3(_end.x * _emitterScale.x, _end.y * _emitterScale.y, _end.z * _emitterScale.z);
_scaledEnd.set(_end.x * _emitterScale.x, _end.y * _emitterScale.y, _end.z * _emitterScale.z);
_length = _end.length();
}
//-----------------------------------------------------------------------

View File

@ -111,30 +111,24 @@ const PUTriangle::PositionAndNormal PUTriangle::getRandomEdgePositionAndNormal (
float mult = CCRANDOM_0_1();
float randomVal = CCRANDOM_0_1() * 3.0f;
PositionAndNormal pAndN;
pAndN.position = Vec3::ZERO;
pAndN.normal = Vec3::ZERO;
pAndN.position.setZero();
pAndN.normal.setZero();
if (randomVal < 1)
{
pAndN.position = Vec3( v2.x + mult*(v1.x - v2.x),
v2.y + mult*(v1.y - v2.y),
v2.z + mult*(v1.z - v2.z));
pAndN.position.set(v2.x + mult*(v1.x - v2.x), v2.y + mult*(v1.y - v2.y), v2.z + mult*(v1.z - v2.z));
pAndN.normal = en1;
}
else
{
if (randomVal < 2)
{
pAndN.position = Vec3( v3.x + mult*(v2.x - v3.x),
v3.y + mult*(v2.y - v3.y),
v3.z + mult*(v2.z - v3.z));
pAndN.position.set(v3.x + mult*(v2.x - v3.x), v3.y + mult*(v2.y - v3.y), v3.z + mult*(v2.z - v3.z));
pAndN.normal = en2;
}
else
{
pAndN.position = Vec3( v1.x + mult*(v3.x - v1.x),
v1.y + mult*(v3.y - v1.y),
v1.z + mult*(v3.z - v1.z));
pAndN.position.set(v1.x + mult*(v3.x - v1.x), v1.y + mult*(v3.y - v1.y), v1.z + mult*(v3.z - v1.z));
pAndN.normal = en3;
}
}
@ -146,8 +140,8 @@ const PUTriangle::PositionAndNormal PUTriangle::getRandomVertexAndNormal (void)
{
float randomVal = CCRANDOM_0_1() * 3.0f;
PositionAndNormal pAndN;
pAndN.position = Vec3::ZERO;
pAndN.normal = Vec3::ZERO;
pAndN.position.setZero();
pAndN.normal.setZero();
if (randomVal < 1)
{
@ -209,7 +203,7 @@ inline float MeshInfo::getGaussianRandom (float high, float cutoff)
} while (w >= 1.0f);
w = sqrt((-2.0f * ::log(w)) / w);
y1 = abs(x1 * w);
y1 = std::abs(x1 * w);
y1 = y1 > cutoff ? cutoff : y1;
y1 *= high / cutoff;
return y1;
@ -240,8 +234,8 @@ const PUTriangle::PositionAndNormal MeshInfo::getRandomPositionAndNormal (const
{
PUTriangle triangle = getTriangle(triangleIndex);
PUTriangle::PositionAndNormal pAndN;
pAndN.position = Vec3::ZERO;
pAndN.normal = Vec3::ZERO;
pAndN.position.setZero();
pAndN.normal.setZero();
if (mDistribution == MSD_HOMOGENEOUS || mDistribution == MSD_HETEROGENEOUS_1 || mDistribution == MSD_HETEROGENEOUS_2)
{
pAndN.position = triangle.getRandomTrianglePosition();
@ -448,8 +442,8 @@ void PUMeshSurfaceEmitter::unPrepare()
void PUMeshSurfaceEmitter::initParticlePosition(PUParticle3D* particle)
{
PUTriangle::PositionAndNormal pAndN;
pAndN.position = Vec3::ZERO;
pAndN.normal = Vec3::ZERO;
pAndN.position.setZero();
pAndN.normal.setZero();
_directionSet = false;
if (_meshInfo && _meshInfo->getTriangleCount())

View File

@ -896,7 +896,7 @@ void PUParticleSystem3D::emitParticles( ParticlePool &pool, PUEmitter* emitter,
initParticleForEmission(particle);
particle->position += Vec3(particle->direction.x * scale.x * _particleSystemScaleVelocity * timePoint
particle->position.add(particle->direction.x * scale.x * _particleSystemScaleVelocity * timePoint
, particle->direction.y * scale.y * _particleSystemScaleVelocity * timePoint
, particle->direction.z * scale.z * _particleSystemScaleVelocity * timePoint);
// Increment time fragment
@ -1313,7 +1313,7 @@ void PUParticleSystem3D::processMotion( PUParticle3D* particle, float timeElapse
Vec3 scale = getDerivedScale();
// Update the position with the direction.
particle->position += Vec3(particle->direction.x * scale.x * _particleSystemScaleVelocity * timeElapsed
particle->position.add(particle->direction.x * scale.x * _particleSystemScaleVelocity * timeElapsed
, particle->direction.y * scale.y * _particleSystemScaleVelocity * timeElapsed
, particle->direction.z * scale.z * _particleSystemScaleVelocity * timeElapsed);
}

View File

@ -63,7 +63,7 @@ void PUPathFollower::updatePUAffector( PUParticle3D *particle, float deltaTime )
float timeFractionPlusDelta = (timeLeft + deltaTime ) / particle->totalTimeToLive;
timeFractionPlusDelta = timeFractionPlusDelta < 1.0f ? timeFractionPlusDelta : 1.0f;
Vec3 inter = _spline.interpolate(timeFractionPlusDelta) - _spline.interpolate(timeFraction);
particle->position += Vec3(_affectorScale.x * inter.x, _affectorScale.y * inter.y, _affectorScale.z * inter.z);
particle->position.add(_affectorScale.x * inter.x, _affectorScale.y * inter.y, _affectorScale.z * inter.z);
}
}
}

View File

@ -29,7 +29,8 @@ NS_CC_BEGIN
//-----------------------------------------------------------------------
PUPlane::PUPlane ()
{
normal = Vec3::ZERO;
// Vec3 default constructor zero
//normal = Vec3::ZERO;
d = 0.0;
}
//-----------------------------------------------------------------------

View File

@ -124,7 +124,7 @@ void PURandomiser::updatePUAffector( PUParticle3D *particle, float deltaTime )
if (_randomDirection)
{
// Random direction: Change the direction after each update
particle->direction += Vec3(CCRANDOM_MINUS1_1() * _maxDeviationX,
particle->direction.add(CCRANDOM_MINUS1_1() * _maxDeviationX,
CCRANDOM_MINUS1_1() * _maxDeviationY,
CCRANDOM_MINUS1_1() * _maxDeviationZ);
}
@ -135,7 +135,7 @@ void PURandomiser::updatePUAffector( PUParticle3D *particle, float deltaTime )
return;
// Random position: Add the position deviation after each update
particle->position += Vec3(CCRANDOM_MINUS1_1() * _maxDeviationX * _affectorScale.x,
particle->position.add(CCRANDOM_MINUS1_1() * _maxDeviationX * _affectorScale.x,
CCRANDOM_MINUS1_1() * _maxDeviationY * _affectorScale.y,
CCRANDOM_MINUS1_1() * _maxDeviationZ * _affectorScale.z);
}

View File

@ -159,7 +159,7 @@ void PUParticle3DQuadRender::render(Renderer* renderer, const Mat4 &transform, P
up.normalize();
backward = direction;
}else if (_type == ORIENTED_SHAPE){
up = Vec3(particle->orientation.x, particle->orientation.y, particle->orientation.z);
up.set(particle->orientation.x, particle->orientation.y, particle->orientation.z);
up.normalize();
Vec3::cross(up, backward, &right);
right.normalize();
@ -470,8 +470,7 @@ void PUParticle3DModelRender::render( Renderer* renderer, const Mat4 &transform,
for (auto iter : activeParticleList)
{
auto particle = static_cast<PUParticle3D *>(iter);
q *= particle->orientation;
Mat4::createRotation(q, &rotMat);
Mat4::createRotation(q * particle->orientation, &rotMat);
sclMat.m[0] = particle->width / _spriteSize.x;
sclMat.m[5] = particle->height / _spriteSize.y;
sclMat.m[10] = particle->depth / _spriteSize.z;
@ -867,7 +866,7 @@ void PUSphereRender::buildBuffers( unsigned short count )
float z0 = r0 * cosf(segment * stepSegmentAngle);
// Vertex
vi.position = Vec3(x0, y0, z0);
vi.position.set(x0, y0, z0);
// Colour
vi.color = Vec4::ONE;

View File

@ -285,7 +285,7 @@ void PURibbonTrail::updateTrail(size_t index, const Node* node)
// Vary the head elem, but bake new version if that exceeds element len
Mat4 toWMat = node->getNodeToWorldTransform();
Vec3 newPos = Vec3(toWMat.m[12], toWMat.m[13], toWMat.m[14]);
Vec3 newPos(toWMat.m[12], toWMat.m[13], toWMat.m[14]);
if (_parentNode)
{
Mat4 toLMat = _parentNode->getWorldToNodeTransform() * toWMat;
@ -394,7 +394,7 @@ void PURibbonTrail::resetTrail(size_t index, const Node* node)
// Create new element, v coord is always 0.0f
// need to convert to take parent node's position into account
Mat4 toWMat = node->getNodeToWorldTransform();
Vec3 position = Vec3(toWMat.m[12], toWMat.m[13], toWMat.m[14]);
Vec3 position(toWMat.m[12], toWMat.m[13], toWMat.m[14]);
if (_parentNode)
{
Mat4 toLMat = _parentNode->getWorldToNodeTransform() * toWMat;

View File

@ -53,9 +53,7 @@ void PUSphereSurfaceEmitter::initParticlePosition(PUParticle3D* particle)
{
// Generate a random unit vector to calculate a point on the sphere. This unit vector is
// also used as direction vector if mAutoDirection has been set.
_randomVector = Vec3(CCRANDOM_MINUS1_1(),
CCRANDOM_MINUS1_1(),
CCRANDOM_MINUS1_1());
_randomVector.set(CCRANDOM_MINUS1_1(), CCRANDOM_MINUS1_1(), CCRANDOM_MINUS1_1());
_randomVector.normalize();
//ParticleSystem* sys = mParentTechnique->getParentSystem();
//if (sys)

View File

@ -80,8 +80,8 @@ void PUVelocityMatchingAffector::updatePUAffector( PUParticle3D *particle, float
// return;
// unsigned int size = static_cast<unsigned int>(cell.size());
// Vec3 sumDirection = Vec3::ZERO;
// Vec3 diff = Vec3::ZERO;
// Vec3 sumDirection;
// Vec3 diff;
// unsigned int count = 0;
// for (unsigned int i = 0; i < size; ++i)
// {

View File

@ -1,5 +1,5 @@
{
"version":"v3-deps-35",
"version":"v3-deps-38",
"zip_file_size":"87419231",
"repo_name":"cocos2d-x-3rd-party-libs-bin",
"repo_parent":"https://github.com/cocos2d/",

511
external/zlib/include/zconf.h vendored Executable file
View File

@ -0,0 +1,511 @@
/* zconf.h -- configuration of the zlib compression library
* Copyright (C) 1995-2013 Jean-loup Gailly.
* For conditions of distribution and use, see copyright notice in zlib.h
*/
/* @(#) $Id$ */
#ifndef ZCONF_H
#define ZCONF_H
/*
* If you *really* need a unique prefix for all types and library functions,
* compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
* Even better than compiling with -DZ_PREFIX would be to use configure to set
* this permanently in zconf.h using "./configure --zprefix".
*/
#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
# define Z_PREFIX_SET
/* all linked symbols */
# define _dist_code z__dist_code
# define _length_code z__length_code
# define _tr_align z__tr_align
# define _tr_flush_bits z__tr_flush_bits
# define _tr_flush_block z__tr_flush_block
# define _tr_init z__tr_init
# define _tr_stored_block z__tr_stored_block
# define _tr_tally z__tr_tally
# define adler32 z_adler32
# define adler32_combine z_adler32_combine
# define adler32_combine64 z_adler32_combine64
# ifndef Z_SOLO
# define compress z_compress
# define compress2 z_compress2
# define compressBound z_compressBound
# endif
# define crc32 z_crc32
# define crc32_combine z_crc32_combine
# define crc32_combine64 z_crc32_combine64
# define deflate z_deflate
# define deflateBound z_deflateBound
# define deflateCopy z_deflateCopy
# define deflateEnd z_deflateEnd
# define deflateInit2_ z_deflateInit2_
# define deflateInit_ z_deflateInit_
# define deflateParams z_deflateParams
# define deflatePending z_deflatePending
# define deflatePrime z_deflatePrime
# define deflateReset z_deflateReset
# define deflateResetKeep z_deflateResetKeep
# define deflateSetDictionary z_deflateSetDictionary
# define deflateSetHeader z_deflateSetHeader
# define deflateTune z_deflateTune
# define deflate_copyright z_deflate_copyright
# define get_crc_table z_get_crc_table
# ifndef Z_SOLO
# define gz_error z_gz_error
# define gz_intmax z_gz_intmax
# define gz_strwinerror z_gz_strwinerror
# define gzbuffer z_gzbuffer
# define gzclearerr z_gzclearerr
# define gzclose z_gzclose
# define gzclose_r z_gzclose_r
# define gzclose_w z_gzclose_w
# define gzdirect z_gzdirect
# define gzdopen z_gzdopen
# define gzeof z_gzeof
# define gzerror z_gzerror
# define gzflush z_gzflush
# define gzgetc z_gzgetc
# define gzgetc_ z_gzgetc_
# define gzgets z_gzgets
# define gzoffset z_gzoffset
# define gzoffset64 z_gzoffset64
# define gzopen z_gzopen
# define gzopen64 z_gzopen64
# ifdef _WIN32
# define gzopen_w z_gzopen_w
# endif
# define gzprintf z_gzprintf
# define gzvprintf z_gzvprintf
# define gzputc z_gzputc
# define gzputs z_gzputs
# define gzread z_gzread
# define gzrewind z_gzrewind
# define gzseek z_gzseek
# define gzseek64 z_gzseek64
# define gzsetparams z_gzsetparams
# define gztell z_gztell
# define gztell64 z_gztell64
# define gzungetc z_gzungetc
# define gzwrite z_gzwrite
# endif
# define inflate z_inflate
# define inflateBack z_inflateBack
# define inflateBackEnd z_inflateBackEnd
# define inflateBackInit_ z_inflateBackInit_
# define inflateCopy z_inflateCopy
# define inflateEnd z_inflateEnd
# define inflateGetHeader z_inflateGetHeader
# define inflateInit2_ z_inflateInit2_
# define inflateInit_ z_inflateInit_
# define inflateMark z_inflateMark
# define inflatePrime z_inflatePrime
# define inflateReset z_inflateReset
# define inflateReset2 z_inflateReset2
# define inflateSetDictionary z_inflateSetDictionary
# define inflateGetDictionary z_inflateGetDictionary
# define inflateSync z_inflateSync
# define inflateSyncPoint z_inflateSyncPoint
# define inflateUndermine z_inflateUndermine
# define inflateResetKeep z_inflateResetKeep
# define inflate_copyright z_inflate_copyright
# define inflate_fast z_inflate_fast
# define inflate_table z_inflate_table
# ifndef Z_SOLO
# define uncompress z_uncompress
# endif
# define zError z_zError
# ifndef Z_SOLO
# define zcalloc z_zcalloc
# define zcfree z_zcfree
# endif
# define zlibCompileFlags z_zlibCompileFlags
# define zlibVersion z_zlibVersion
/* all zlib typedefs in zlib.h and zconf.h */
# define Byte z_Byte
# define Bytef z_Bytef
# define alloc_func z_alloc_func
# define charf z_charf
# define free_func z_free_func
# ifndef Z_SOLO
# define gzFile z_gzFile
# endif
# define gz_header z_gz_header
# define gz_headerp z_gz_headerp
# define in_func z_in_func
# define intf z_intf
# define out_func z_out_func
# define uInt z_uInt
# define uIntf z_uIntf
# define uLong z_uLong
# define uLongf z_uLongf
# define voidp z_voidp
# define voidpc z_voidpc
# define voidpf z_voidpf
/* all zlib structs in zlib.h and zconf.h */
# define gz_header_s z_gz_header_s
# define internal_state z_internal_state
#endif
#if defined(__MSDOS__) && !defined(MSDOS)
# define MSDOS
#endif
#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
# define OS2
#endif
#if defined(_WINDOWS) && !defined(WINDOWS)
# define WINDOWS
#endif
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
# ifndef WIN32
# define WIN32
# endif
#endif
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
# ifndef SYS16BIT
# define SYS16BIT
# endif
# endif
#endif
/*
* Compile with -DMAXSEG_64K if the alloc function cannot allocate more
* than 64k bytes at a time (needed on systems with 16-bit int).
*/
#ifdef SYS16BIT
# define MAXSEG_64K
#endif
#ifdef MSDOS
# define UNALIGNED_OK
#endif
#ifdef __STDC_VERSION__
# ifndef STDC
# define STDC
# endif
# if __STDC_VERSION__ >= 199901L
# ifndef STDC99
# define STDC99
# endif
# endif
#endif
#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
# define STDC
#endif
#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
# define STDC
#endif
#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
# define STDC
#endif
#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
# define STDC
#endif
#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
# define STDC
#endif
#ifndef STDC
# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
# define const /* note: need a more gentle solution here */
# endif
#endif
#if defined(ZLIB_CONST) && !defined(z_const)
# define z_const const
#else
# define z_const
#endif
/* Some Mac compilers merge all .h files incorrectly: */
#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
# define NO_DUMMY_DECL
#endif
/* Maximum value for memLevel in deflateInit2 */
#ifndef MAX_MEM_LEVEL
# ifdef MAXSEG_64K
# define MAX_MEM_LEVEL 8
# else
# define MAX_MEM_LEVEL 9
# endif
#endif
/* Maximum value for windowBits in deflateInit2 and inflateInit2.
* WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
* created by gzip. (Files created by minigzip can still be extracted by
* gzip.)
*/
#ifndef MAX_WBITS
# define MAX_WBITS 15 /* 32K LZ77 window */
#endif
/* The memory requirements for deflate are (in bytes):
(1 << (windowBits+2)) + (1 << (memLevel+9))
that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
plus a few kilobytes for small objects. For example, if you want to reduce
the default memory requirements from 256K to 128K, compile with
make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
Of course this will generally degrade compression (there's no free lunch).
The memory requirements for inflate are (in bytes) 1 << windowBits
that is, 32K for windowBits=15 (default value) plus a few kilobytes
for small objects.
*/
/* Type declarations */
#ifndef OF /* function prototypes */
# ifdef STDC
# define OF(args) args
# else
# define OF(args) ()
# endif
#endif
#ifndef Z_ARG /* function prototypes for stdarg */
# if defined(STDC) || defined(Z_HAVE_STDARG_H)
# define Z_ARG(args) args
# else
# define Z_ARG(args) ()
# endif
#endif
/* The following definitions for FAR are needed only for MSDOS mixed
* model programming (small or medium model with some far allocations).
* This was tested only with MSC; for other MSDOS compilers you may have
* to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
* just define FAR to be empty.
*/
#ifdef SYS16BIT
# if defined(M_I86SM) || defined(M_I86MM)
/* MSC small or medium model */
# define SMALL_MEDIUM
# ifdef _MSC_VER
# define FAR _far
# else
# define FAR far
# endif
# endif
# if (defined(__SMALL__) || defined(__MEDIUM__))
/* Turbo C small or medium model */
# define SMALL_MEDIUM
# ifdef __BORLANDC__
# define FAR _far
# else
# define FAR far
# endif
# endif
#endif
#if defined(WINDOWS) || defined(WIN32)
/* If building or using zlib as a DLL, define ZLIB_DLL.
* This is not mandatory, but it offers a little performance increase.
*/
# ifdef ZLIB_DLL
# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
# ifdef ZLIB_INTERNAL
# define ZEXTERN extern __declspec(dllexport)
# else
# define ZEXTERN extern __declspec(dllimport)
# endif
# endif
# endif /* ZLIB_DLL */
/* If building or using zlib with the WINAPI/WINAPIV calling convention,
* define ZLIB_WINAPI.
* Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
*/
# ifdef ZLIB_WINAPI
# ifdef FAR
# undef FAR
# endif
# include <windows.h>
/* No need for _export, use ZLIB.DEF instead. */
/* For complete Windows compatibility, use WINAPI, not __stdcall. */
# define ZEXPORT WINAPI
# ifdef WIN32
# define ZEXPORTVA WINAPIV
# else
# define ZEXPORTVA FAR CDECL
# endif
# endif
#endif
#if defined (__BEOS__)
# ifdef ZLIB_DLL
# ifdef ZLIB_INTERNAL
# define ZEXPORT __declspec(dllexport)
# define ZEXPORTVA __declspec(dllexport)
# else
# define ZEXPORT __declspec(dllimport)
# define ZEXPORTVA __declspec(dllimport)
# endif
# endif
#endif
#ifndef ZEXTERN
# define ZEXTERN extern
#endif
#ifndef ZEXPORT
# define ZEXPORT
#endif
#ifndef ZEXPORTVA
# define ZEXPORTVA
#endif
#ifndef FAR
# define FAR
#endif
#if !defined(__MACTYPES__)
typedef unsigned char Byte; /* 8 bits */
#endif
typedef unsigned int uInt; /* 16 bits or more */
typedef unsigned long uLong; /* 32 bits or more */
#ifdef SMALL_MEDIUM
/* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
# define Bytef Byte FAR
#else
typedef Byte FAR Bytef;
#endif
typedef char FAR charf;
typedef int FAR intf;
typedef uInt FAR uIntf;
typedef uLong FAR uLongf;
#ifdef STDC
typedef void const *voidpc;
typedef void FAR *voidpf;
typedef void *voidp;
#else
typedef Byte const *voidpc;
typedef Byte FAR *voidpf;
typedef Byte *voidp;
#endif
#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
# include <limits.h>
# if (UINT_MAX == 0xffffffffUL)
# define Z_U4 unsigned
# elif (ULONG_MAX == 0xffffffffUL)
# define Z_U4 unsigned long
# elif (USHRT_MAX == 0xffffffffUL)
# define Z_U4 unsigned short
# endif
#endif
#ifdef Z_U4
typedef Z_U4 z_crc_t;
#else
typedef unsigned long z_crc_t;
#endif
#if 1 /* was set to #if 1 by ./configure */
# define Z_HAVE_UNISTD_H
#endif
#if 1 /* was set to #if 1 by ./configure */
# define Z_HAVE_STDARG_H
#endif
#ifdef STDC
# ifndef Z_SOLO
# include <sys/types.h> /* for off_t */
# endif
#endif
#if defined(STDC) || defined(Z_HAVE_STDARG_H)
# ifndef Z_SOLO
# include <stdarg.h> /* for va_list */
# endif
#endif
#ifdef _WIN32
# ifndef Z_SOLO
# include <stddef.h> /* for wchar_t */
# endif
#endif
/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
* "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
* though the former does not conform to the LFS document), but considering
* both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
* equivalently requesting no 64-bit operations
*/
#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
# undef _LARGEFILE64_SOURCE
#endif
#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
# define Z_HAVE_UNISTD_H
#endif
#ifndef Z_SOLO
# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
# ifdef VMS
# include <unixio.h> /* for off_t */
# endif
# ifndef z_off_t
# define z_off_t off_t
# endif
# endif
#endif
#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
# define Z_LFS64
#endif
#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
# define Z_LARGE64
#endif
#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
# define Z_WANT64
#endif
#if !defined(SEEK_SET) && !defined(Z_SOLO)
# define SEEK_SET 0 /* Seek from beginning of file. */
# define SEEK_CUR 1 /* Seek from current position. */
# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
#endif
#ifndef z_off_t
# define z_off_t long
#endif
#if !defined(_WIN32) && defined(Z_LARGE64)
# define z_off64_t off64_t
#else
# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
# define z_off64_t __int64
# else
# define z_off64_t z_off_t
# endif
#endif
/* MVS linker does not support external names larger than 8 bytes */
#if defined(__MVS__)
#pragma map(deflateInit_,"DEIN")
#pragma map(deflateInit2_,"DEIN2")
#pragma map(deflateEnd,"DEEND")
#pragma map(deflateBound,"DEBND")
#pragma map(inflateInit_,"ININ")
#pragma map(inflateInit2_,"ININ2")
#pragma map(inflateEnd,"INEND")
#pragma map(inflateSync,"INSY")
#pragma map(inflateSetDictionary,"INSEDI")
#pragma map(compressBound,"CMBND")
#pragma map(inflate_table,"INTABL")
#pragma map(inflate_fast,"INFA")
#pragma map(inflate_copyright,"INCOPY")
#endif
#endif /* ZCONF_H */

1768
external/zlib/include/zlib.h vendored Executable file

File diff suppressed because it is too large Load Diff

8
external/zlib/prebuilt/android/Android.mk vendored Executable file
View File

@ -0,0 +1,8 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := cocos_zlib_static
LOCAL_MODULE_FILENAME := zlib
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libz.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../include
include $(PREBUILT_STATIC_LIBRARY)

Binary file not shown.

BIN
external/zlib/prebuilt/android/armeabi/libz.a vendored Executable file

Binary file not shown.

BIN
external/zlib/prebuilt/android/x86/libz.a vendored Executable file

Binary file not shown.

BIN
external/zlib/prebuilt/mac/libz.a vendored Executable file

Binary file not shown.

View File

@ -281,6 +281,8 @@
"cocos/3d/CCSprite3D.h",
"cocos/3d/CCSprite3DMaterial.cpp",
"cocos/3d/CCSprite3DMaterial.h",
"cocos/3d/CCTerrain.cpp",
"cocos/3d/CCTerrain.h",
"cocos/3d/CCTextureCube.cpp",
"cocos/3d/CCTextureCube.h",
"cocos/3d/CMakeLists.txt",
@ -557,8 +559,6 @@
"cocos/editor-support/cocostudio/ActionTimeline/CCActionTimelineNode.h",
"cocos/editor-support/cocostudio/ActionTimeline/CCFrame.cpp",
"cocos/editor-support/cocostudio/ActionTimeline/CCFrame.h",
"cocos/editor-support/cocostudio/ActionTimeline/CCNodeReader.cpp",
"cocos/editor-support/cocostudio/ActionTimeline/CCNodeReader.h",
"cocos/editor-support/cocostudio/ActionTimeline/CCTimeLine.cpp",
"cocos/editor-support/cocostudio/ActionTimeline/CCTimeLine.h",
"cocos/editor-support/cocostudio/ActionTimeline/CCTimelineMacro.h",
@ -1124,6 +1124,8 @@
"cocos/renderer/ccShader_3D_PositionTex.vert",
"cocos/renderer/ccShader_3D_Skybox.frag",
"cocos/renderer/ccShader_3D_Skybox.vert",
"cocos/renderer/ccShader_3D_Terrain.frag",
"cocos/renderer/ccShader_3D_Terrain.vert",
"cocos/renderer/ccShader_Label.vert",
"cocos/renderer/ccShader_Label_df.frag",
"cocos/renderer/ccShader_Label_df_glow.frag",
@ -1765,7 +1767,6 @@
"external/curl/include/android/curl/multi.h",
"external/curl/include/android/curl/stdcheaders.h",
"external/curl/include/android/curl/typecheck-gcc.h",
"external/curl/include/android/curl/types.h",
"external/curl/include/ios/curl/curl.h",
"external/curl/include/ios/curl/curlbuild-32.h",
"external/curl/include/ios/curl/curlbuild-64.h",
@ -1778,8 +1779,6 @@
"external/curl/include/ios/curl/stdcheaders.h",
"external/curl/include/ios/curl/typecheck-gcc.h",
"external/curl/include/mac/curl/curl.h",
"external/curl/include/mac/curl/curlbuild-32.h",
"external/curl/include/mac/curl/curlbuild-64.h",
"external/curl/include/mac/curl/curlbuild.h",
"external/curl/include/mac/curl/curlrules.h",
"external/curl/include/mac/curl/curlver.h",
@ -1842,8 +1841,8 @@
"external/curl/prebuilt/mac/libssl.a",
"external/curl/prebuilt/win32/libcurl.dll",
"external/curl/prebuilt/win32/libcurl_imp.lib",
"external/curl/prebuilt/win32/libeay32.dll",
"external/curl/prebuilt/win32/ssleay32.dll",
"external/curl/prebuilt/win32/libeay32.lib",
"external/curl/prebuilt/win32/ssleay32.lib",
"external/curl/prebuilt/winrt_8.1/arm/libcurl.dll",
"external/curl/prebuilt/winrt_8.1/arm/libcurl.lib",
"external/curl/prebuilt/winrt_8.1/arm/libeay32.dll",
@ -1886,145 +1885,108 @@
"external/flatbuffers/idl_gen_text.cpp",
"external/flatbuffers/idl_parser.cpp",
"external/flatbuffers/util.h",
"external/freetype2/include/android/freetype2/freetype/config/ftconfig.h",
"external/freetype2/include/android/freetype2/freetype/config/ftheader.h",
"external/freetype2/include/android/freetype2/freetype/config/ftmodule.h",
"external/freetype2/include/android/freetype2/freetype/config/ftoption.h",
"external/freetype2/include/android/freetype2/freetype/config/ftstdlib.h",
"external/freetype2/include/android/freetype2/freetype/freetype.h",
"external/freetype2/include/android/freetype2/freetype/ftadvanc.h",
"external/freetype2/include/android/freetype2/freetype/ftautoh.h",
"external/freetype2/include/android/freetype2/freetype/ftbbox.h",
"external/freetype2/include/android/freetype2/freetype/ftbdf.h",
"external/freetype2/include/android/freetype2/freetype/ftbitmap.h",
"external/freetype2/include/android/freetype2/freetype/ftbzip2.h",
"external/freetype2/include/android/freetype2/freetype/ftcache.h",
"external/freetype2/include/android/freetype2/freetype/ftcffdrv.h",
"external/freetype2/include/android/freetype2/freetype/ftchapters.h",
"external/freetype2/include/android/freetype2/freetype/ftcid.h",
"external/freetype2/include/android/freetype2/freetype/fterrdef.h",
"external/freetype2/include/android/freetype2/freetype/fterrors.h",
"external/freetype2/include/android/freetype2/freetype/ftgasp.h",
"external/freetype2/include/android/freetype2/freetype/ftglyph.h",
"external/freetype2/include/android/freetype2/freetype/ftgxval.h",
"external/freetype2/include/android/freetype2/freetype/ftgzip.h",
"external/freetype2/include/android/freetype2/freetype/ftimage.h",
"external/freetype2/include/android/freetype2/freetype/ftincrem.h",
"external/freetype2/include/android/freetype2/freetype/ftlcdfil.h",
"external/freetype2/include/android/freetype2/freetype/ftlist.h",
"external/freetype2/include/android/freetype2/freetype/ftlzw.h",
"external/freetype2/include/android/freetype2/freetype/ftmac.h",
"external/freetype2/include/android/freetype2/freetype/ftmm.h",
"external/freetype2/include/android/freetype2/freetype/ftmodapi.h",
"external/freetype2/include/android/freetype2/freetype/ftmoderr.h",
"external/freetype2/include/android/freetype2/freetype/ftotval.h",
"external/freetype2/include/android/freetype2/freetype/ftoutln.h",
"external/freetype2/include/android/freetype2/freetype/ftpfr.h",
"external/freetype2/include/android/freetype2/freetype/ftrender.h",
"external/freetype2/include/android/freetype2/freetype/ftsizes.h",
"external/freetype2/include/android/freetype2/freetype/ftsnames.h",
"external/freetype2/include/android/freetype2/freetype/ftstroke.h",
"external/freetype2/include/android/freetype2/freetype/ftsynth.h",
"external/freetype2/include/android/freetype2/freetype/ftsystem.h",
"external/freetype2/include/android/freetype2/freetype/fttrigon.h",
"external/freetype2/include/android/freetype2/freetype/ftttdrv.h",
"external/freetype2/include/android/freetype2/freetype/fttypes.h",
"external/freetype2/include/android/freetype2/freetype/ftwinfnt.h",
"external/freetype2/include/android/freetype2/freetype/ftxf86.h",
"external/freetype2/include/android/freetype2/freetype/t1tables.h",
"external/freetype2/include/android/freetype2/freetype/ttnameid.h",
"external/freetype2/include/android/freetype2/freetype/tttables.h",
"external/freetype2/include/android/freetype2/freetype/tttags.h",
"external/freetype2/include/android/freetype2/freetype/ttunpat.h",
"external/freetype2/include/android/ft2build.h",
"external/freetype2/include/ios/freetype/config/ftconfig.h",
"external/freetype2/include/ios/freetype/config/ftheader.h",
"external/freetype2/include/ios/freetype/config/ftmodule.h",
"external/freetype2/include/ios/freetype/config/ftoption.h",
"external/freetype2/include/ios/freetype/config/ftstdlib.h",
"external/freetype2/include/ios/freetype/freetype.h",
"external/freetype2/include/ios/freetype/ftadvanc.h",
"external/freetype2/include/ios/freetype/ftautoh.h",
"external/freetype2/include/ios/freetype/ftbbox.h",
"external/freetype2/include/ios/freetype/ftbdf.h",
"external/freetype2/include/ios/freetype/ftbitmap.h",
"external/freetype2/include/ios/freetype/ftbzip2.h",
"external/freetype2/include/ios/freetype/ftcache.h",
"external/freetype2/include/ios/freetype/ftcffdrv.h",
"external/freetype2/include/ios/freetype/ftchapters.h",
"external/freetype2/include/ios/freetype/ftcid.h",
"external/freetype2/include/ios/freetype/fterrdef.h",
"external/freetype2/include/ios/freetype/fterrors.h",
"external/freetype2/include/ios/freetype/ftgasp.h",
"external/freetype2/include/ios/freetype/ftglyph.h",
"external/freetype2/include/ios/freetype/ftgxval.h",
"external/freetype2/include/ios/freetype/ftgzip.h",
"external/freetype2/include/ios/freetype/ftimage.h",
"external/freetype2/include/ios/freetype/ftincrem.h",
"external/freetype2/include/ios/freetype/ftlcdfil.h",
"external/freetype2/include/ios/freetype/ftlist.h",
"external/freetype2/include/ios/freetype/ftlzw.h",
"external/freetype2/include/ios/freetype/ftmac.h",
"external/freetype2/include/ios/freetype/ftmm.h",
"external/freetype2/include/ios/freetype/ftmodapi.h",
"external/freetype2/include/ios/freetype/ftmoderr.h",
"external/freetype2/include/ios/freetype/ftotval.h",
"external/freetype2/include/ios/freetype/ftoutln.h",
"external/freetype2/include/ios/freetype/ftpfr.h",
"external/freetype2/include/ios/freetype/ftrender.h",
"external/freetype2/include/ios/freetype/ftsizes.h",
"external/freetype2/include/ios/freetype/ftsnames.h",
"external/freetype2/include/ios/freetype/ftstroke.h",
"external/freetype2/include/ios/freetype/ftsynth.h",
"external/freetype2/include/ios/freetype/ftsystem.h",
"external/freetype2/include/ios/freetype/fttrigon.h",
"external/freetype2/include/ios/freetype/ftttdrv.h",
"external/freetype2/include/ios/freetype/fttypes.h",
"external/freetype2/include/ios/freetype/ftwinfnt.h",
"external/freetype2/include/ios/freetype/ftxf86.h",
"external/freetype2/include/ios/freetype/internal/autohint.h",
"external/freetype2/include/ios/freetype/internal/ftcalc.h",
"external/freetype2/include/ios/freetype/internal/ftdebug.h",
"external/freetype2/include/ios/freetype/internal/ftdriver.h",
"external/freetype2/include/ios/freetype/internal/ftgloadr.h",
"external/freetype2/include/ios/freetype/internal/ftmemory.h",
"external/freetype2/include/ios/freetype/internal/ftobjs.h",
"external/freetype2/include/ios/freetype/internal/ftpic.h",
"external/freetype2/include/ios/freetype/internal/ftrfork.h",
"external/freetype2/include/ios/freetype/internal/ftserv.h",
"external/freetype2/include/ios/freetype/internal/ftstream.h",
"external/freetype2/include/ios/freetype/internal/fttrace.h",
"external/freetype2/include/ios/freetype/internal/ftvalid.h",
"external/freetype2/include/ios/freetype/internal/internal.h",
"external/freetype2/include/ios/freetype/internal/psaux.h",
"external/freetype2/include/ios/freetype/internal/pshints.h",
"external/freetype2/include/ios/freetype/internal/services/svbdf.h",
"external/freetype2/include/ios/freetype/internal/services/svcid.h",
"external/freetype2/include/ios/freetype/internal/services/svgldict.h",
"external/freetype2/include/ios/freetype/internal/services/svgxval.h",
"external/freetype2/include/ios/freetype/internal/services/svkern.h",
"external/freetype2/include/ios/freetype/internal/services/svmm.h",
"external/freetype2/include/ios/freetype/internal/services/svotval.h",
"external/freetype2/include/ios/freetype/internal/services/svpfr.h",
"external/freetype2/include/ios/freetype/internal/services/svpostnm.h",
"external/freetype2/include/ios/freetype/internal/services/svprop.h",
"external/freetype2/include/ios/freetype/internal/services/svpscmap.h",
"external/freetype2/include/ios/freetype/internal/services/svpsinfo.h",
"external/freetype2/include/ios/freetype/internal/services/svsfnt.h",
"external/freetype2/include/ios/freetype/internal/services/svttcmap.h",
"external/freetype2/include/ios/freetype/internal/services/svtteng.h",
"external/freetype2/include/ios/freetype/internal/services/svttglyf.h",
"external/freetype2/include/ios/freetype/internal/services/svwinfnt.h",
"external/freetype2/include/ios/freetype/internal/services/svxf86nm.h",
"external/freetype2/include/ios/freetype/internal/sfnt.h",
"external/freetype2/include/ios/freetype/internal/t1types.h",
"external/freetype2/include/ios/freetype/internal/tttypes.h",
"external/freetype2/include/ios/freetype/t1tables.h",
"external/freetype2/include/ios/freetype/ttnameid.h",
"external/freetype2/include/ios/freetype/tttables.h",
"external/freetype2/include/ios/freetype/tttags.h",
"external/freetype2/include/ios/freetype/ttunpat.h",
"external/freetype2/include/ios/ft2build.h",
"external/freetype2/include/android/freetype2/config/ftconfig.h",
"external/freetype2/include/android/freetype2/config/ftheader.h",
"external/freetype2/include/android/freetype2/config/ftmodule.h",
"external/freetype2/include/android/freetype2/config/ftoption.h",
"external/freetype2/include/android/freetype2/config/ftstdlib.h",
"external/freetype2/include/android/freetype2/freetype.h",
"external/freetype2/include/android/freetype2/ft2build.h",
"external/freetype2/include/android/freetype2/ftadvanc.h",
"external/freetype2/include/android/freetype2/ftautoh.h",
"external/freetype2/include/android/freetype2/ftbbox.h",
"external/freetype2/include/android/freetype2/ftbdf.h",
"external/freetype2/include/android/freetype2/ftbitmap.h",
"external/freetype2/include/android/freetype2/ftbzip2.h",
"external/freetype2/include/android/freetype2/ftcache.h",
"external/freetype2/include/android/freetype2/ftcffdrv.h",
"external/freetype2/include/android/freetype2/ftchapters.h",
"external/freetype2/include/android/freetype2/ftcid.h",
"external/freetype2/include/android/freetype2/fterrdef.h",
"external/freetype2/include/android/freetype2/fterrors.h",
"external/freetype2/include/android/freetype2/ftgasp.h",
"external/freetype2/include/android/freetype2/ftglyph.h",
"external/freetype2/include/android/freetype2/ftgxval.h",
"external/freetype2/include/android/freetype2/ftgzip.h",
"external/freetype2/include/android/freetype2/ftimage.h",
"external/freetype2/include/android/freetype2/ftincrem.h",
"external/freetype2/include/android/freetype2/ftlcdfil.h",
"external/freetype2/include/android/freetype2/ftlist.h",
"external/freetype2/include/android/freetype2/ftlzw.h",
"external/freetype2/include/android/freetype2/ftmac.h",
"external/freetype2/include/android/freetype2/ftmm.h",
"external/freetype2/include/android/freetype2/ftmodapi.h",
"external/freetype2/include/android/freetype2/ftmoderr.h",
"external/freetype2/include/android/freetype2/ftotval.h",
"external/freetype2/include/android/freetype2/ftoutln.h",
"external/freetype2/include/android/freetype2/ftpfr.h",
"external/freetype2/include/android/freetype2/ftrender.h",
"external/freetype2/include/android/freetype2/ftsizes.h",
"external/freetype2/include/android/freetype2/ftsnames.h",
"external/freetype2/include/android/freetype2/ftstroke.h",
"external/freetype2/include/android/freetype2/ftsynth.h",
"external/freetype2/include/android/freetype2/ftsystem.h",
"external/freetype2/include/android/freetype2/fttrigon.h",
"external/freetype2/include/android/freetype2/ftttdrv.h",
"external/freetype2/include/android/freetype2/fttypes.h",
"external/freetype2/include/android/freetype2/ftwinfnt.h",
"external/freetype2/include/android/freetype2/ftxf86.h",
"external/freetype2/include/android/freetype2/t1tables.h",
"external/freetype2/include/android/freetype2/ttnameid.h",
"external/freetype2/include/android/freetype2/tttables.h",
"external/freetype2/include/android/freetype2/tttags.h",
"external/freetype2/include/android/freetype2/ttunpat.h",
"external/freetype2/include/ios/freetype2/config/ftconfig.h",
"external/freetype2/include/ios/freetype2/config/ftheader.h",
"external/freetype2/include/ios/freetype2/config/ftmodule.h",
"external/freetype2/include/ios/freetype2/config/ftoption.h",
"external/freetype2/include/ios/freetype2/config/ftstdlib.h",
"external/freetype2/include/ios/freetype2/freetype.h",
"external/freetype2/include/ios/freetype2/ft2build.h",
"external/freetype2/include/ios/freetype2/ftadvanc.h",
"external/freetype2/include/ios/freetype2/ftautoh.h",
"external/freetype2/include/ios/freetype2/ftbbox.h",
"external/freetype2/include/ios/freetype2/ftbdf.h",
"external/freetype2/include/ios/freetype2/ftbitmap.h",
"external/freetype2/include/ios/freetype2/ftbzip2.h",
"external/freetype2/include/ios/freetype2/ftcache.h",
"external/freetype2/include/ios/freetype2/ftcffdrv.h",
"external/freetype2/include/ios/freetype2/ftchapters.h",
"external/freetype2/include/ios/freetype2/ftcid.h",
"external/freetype2/include/ios/freetype2/fterrdef.h",
"external/freetype2/include/ios/freetype2/fterrors.h",
"external/freetype2/include/ios/freetype2/ftgasp.h",
"external/freetype2/include/ios/freetype2/ftglyph.h",
"external/freetype2/include/ios/freetype2/ftgxval.h",
"external/freetype2/include/ios/freetype2/ftgzip.h",
"external/freetype2/include/ios/freetype2/ftimage.h",
"external/freetype2/include/ios/freetype2/ftincrem.h",
"external/freetype2/include/ios/freetype2/ftlcdfil.h",
"external/freetype2/include/ios/freetype2/ftlist.h",
"external/freetype2/include/ios/freetype2/ftlzw.h",
"external/freetype2/include/ios/freetype2/ftmac.h",
"external/freetype2/include/ios/freetype2/ftmm.h",
"external/freetype2/include/ios/freetype2/ftmodapi.h",
"external/freetype2/include/ios/freetype2/ftmoderr.h",
"external/freetype2/include/ios/freetype2/ftotval.h",
"external/freetype2/include/ios/freetype2/ftoutln.h",
"external/freetype2/include/ios/freetype2/ftpfr.h",
"external/freetype2/include/ios/freetype2/ftrender.h",
"external/freetype2/include/ios/freetype2/ftsizes.h",
"external/freetype2/include/ios/freetype2/ftsnames.h",
"external/freetype2/include/ios/freetype2/ftstroke.h",
"external/freetype2/include/ios/freetype2/ftsynth.h",
"external/freetype2/include/ios/freetype2/ftsystem.h",
"external/freetype2/include/ios/freetype2/fttrigon.h",
"external/freetype2/include/ios/freetype2/ftttdrv.h",
"external/freetype2/include/ios/freetype2/fttypes.h",
"external/freetype2/include/ios/freetype2/ftwinfnt.h",
"external/freetype2/include/ios/freetype2/ftxf86.h",
"external/freetype2/include/ios/freetype2/t1tables.h",
"external/freetype2/include/ios/freetype2/ttnameid.h",
"external/freetype2/include/ios/freetype2/tttables.h",
"external/freetype2/include/ios/freetype2/tttags.h",
"external/freetype2/include/ios/freetype2/ttunpat.h",
"external/freetype2/include/linux/freetype/config/ftconfig.h",
"external/freetype2/include/linux/freetype/config/ftheader.h",
"external/freetype2/include/linux/freetype/config/ftmodule.h",
@ -2032,11 +1994,13 @@
"external/freetype2/include/linux/freetype/config/ftstdlib.h",
"external/freetype2/include/linux/freetype/freetype.h",
"external/freetype2/include/linux/freetype/ftadvanc.h",
"external/freetype2/include/linux/freetype/ftautoh.h",
"external/freetype2/include/linux/freetype/ftbbox.h",
"external/freetype2/include/linux/freetype/ftbdf.h",
"external/freetype2/include/linux/freetype/ftbitmap.h",
"external/freetype2/include/linux/freetype/ftbzip2.h",
"external/freetype2/include/linux/freetype/ftcache.h",
"external/freetype2/include/linux/freetype/ftcffdrv.h",
"external/freetype2/include/linux/freetype/ftchapters.h",
"external/freetype2/include/linux/freetype/ftcid.h",
"external/freetype2/include/linux/freetype/fterrdef.h",
@ -2064,227 +2028,155 @@
"external/freetype2/include/linux/freetype/ftsynth.h",
"external/freetype2/include/linux/freetype/ftsystem.h",
"external/freetype2/include/linux/freetype/fttrigon.h",
"external/freetype2/include/linux/freetype/ftttdrv.h",
"external/freetype2/include/linux/freetype/fttypes.h",
"external/freetype2/include/linux/freetype/ftwinfnt.h",
"external/freetype2/include/linux/freetype/ftxf86.h",
"external/freetype2/include/linux/freetype/internal/autohint.h",
"external/freetype2/include/linux/freetype/internal/ftcalc.h",
"external/freetype2/include/linux/freetype/internal/ftdebug.h",
"external/freetype2/include/linux/freetype/internal/ftdriver.h",
"external/freetype2/include/linux/freetype/internal/ftgloadr.h",
"external/freetype2/include/linux/freetype/internal/ftmemory.h",
"external/freetype2/include/linux/freetype/internal/ftobjs.h",
"external/freetype2/include/linux/freetype/internal/ftpic.h",
"external/freetype2/include/linux/freetype/internal/ftrfork.h",
"external/freetype2/include/linux/freetype/internal/ftserv.h",
"external/freetype2/include/linux/freetype/internal/ftstream.h",
"external/freetype2/include/linux/freetype/internal/fttrace.h",
"external/freetype2/include/linux/freetype/internal/ftvalid.h",
"external/freetype2/include/linux/freetype/internal/internal.h",
"external/freetype2/include/linux/freetype/internal/psaux.h",
"external/freetype2/include/linux/freetype/internal/pshints.h",
"external/freetype2/include/linux/freetype/internal/services/svbdf.h",
"external/freetype2/include/linux/freetype/internal/services/svcid.h",
"external/freetype2/include/linux/freetype/internal/services/svgldict.h",
"external/freetype2/include/linux/freetype/internal/services/svgxval.h",
"external/freetype2/include/linux/freetype/internal/services/svkern.h",
"external/freetype2/include/linux/freetype/internal/services/svmm.h",
"external/freetype2/include/linux/freetype/internal/services/svotval.h",
"external/freetype2/include/linux/freetype/internal/services/svpfr.h",
"external/freetype2/include/linux/freetype/internal/services/svpostnm.h",
"external/freetype2/include/linux/freetype/internal/services/svpscmap.h",
"external/freetype2/include/linux/freetype/internal/services/svpsinfo.h",
"external/freetype2/include/linux/freetype/internal/services/svsfnt.h",
"external/freetype2/include/linux/freetype/internal/services/svttcmap.h",
"external/freetype2/include/linux/freetype/internal/services/svtteng.h",
"external/freetype2/include/linux/freetype/internal/services/svttglyf.h",
"external/freetype2/include/linux/freetype/internal/services/svwinfnt.h",
"external/freetype2/include/linux/freetype/internal/services/svxf86nm.h",
"external/freetype2/include/linux/freetype/internal/sfnt.h",
"external/freetype2/include/linux/freetype/internal/t1types.h",
"external/freetype2/include/linux/freetype/internal/tttypes.h",
"external/freetype2/include/linux/freetype/t1tables.h",
"external/freetype2/include/linux/freetype/ttnameid.h",
"external/freetype2/include/linux/freetype/tttables.h",
"external/freetype2/include/linux/freetype/tttags.h",
"external/freetype2/include/linux/freetype/ttunpat.h",
"external/freetype2/include/linux/ft2build.h",
"external/freetype2/include/mac/freetype/config/ftconfig.h",
"external/freetype2/include/mac/freetype/config/ftheader.h",
"external/freetype2/include/mac/freetype/config/ftmodule.h",
"external/freetype2/include/mac/freetype/config/ftoption.h",
"external/freetype2/include/mac/freetype/config/ftstdlib.h",
"external/freetype2/include/mac/freetype/freetype.h",
"external/freetype2/include/mac/freetype/ftadvanc.h",
"external/freetype2/include/mac/freetype/ftautoh.h",
"external/freetype2/include/mac/freetype/ftbbox.h",
"external/freetype2/include/mac/freetype/ftbdf.h",
"external/freetype2/include/mac/freetype/ftbitmap.h",
"external/freetype2/include/mac/freetype/ftbzip2.h",
"external/freetype2/include/mac/freetype/ftcache.h",
"external/freetype2/include/mac/freetype/ftcffdrv.h",
"external/freetype2/include/mac/freetype/ftchapters.h",
"external/freetype2/include/mac/freetype/ftcid.h",
"external/freetype2/include/mac/freetype/fterrdef.h",
"external/freetype2/include/mac/freetype/fterrors.h",
"external/freetype2/include/mac/freetype/ftgasp.h",
"external/freetype2/include/mac/freetype/ftglyph.h",
"external/freetype2/include/mac/freetype/ftgxval.h",
"external/freetype2/include/mac/freetype/ftgzip.h",
"external/freetype2/include/mac/freetype/ftimage.h",
"external/freetype2/include/mac/freetype/ftincrem.h",
"external/freetype2/include/mac/freetype/ftlcdfil.h",
"external/freetype2/include/mac/freetype/ftlist.h",
"external/freetype2/include/mac/freetype/ftlzw.h",
"external/freetype2/include/mac/freetype/ftmac.h",
"external/freetype2/include/mac/freetype/ftmm.h",
"external/freetype2/include/mac/freetype/ftmodapi.h",
"external/freetype2/include/mac/freetype/ftmoderr.h",
"external/freetype2/include/mac/freetype/ftotval.h",
"external/freetype2/include/mac/freetype/ftoutln.h",
"external/freetype2/include/mac/freetype/ftpfr.h",
"external/freetype2/include/mac/freetype/ftrender.h",
"external/freetype2/include/mac/freetype/ftsizes.h",
"external/freetype2/include/mac/freetype/ftsnames.h",
"external/freetype2/include/mac/freetype/ftstroke.h",
"external/freetype2/include/mac/freetype/ftsynth.h",
"external/freetype2/include/mac/freetype/ftsystem.h",
"external/freetype2/include/mac/freetype/fttrigon.h",
"external/freetype2/include/mac/freetype/ftttdrv.h",
"external/freetype2/include/mac/freetype/fttypes.h",
"external/freetype2/include/mac/freetype/ftwinfnt.h",
"external/freetype2/include/mac/freetype/ftxf86.h",
"external/freetype2/include/mac/freetype/internal/autohint.h",
"external/freetype2/include/mac/freetype/internal/ftcalc.h",
"external/freetype2/include/mac/freetype/internal/ftdebug.h",
"external/freetype2/include/mac/freetype/internal/ftdriver.h",
"external/freetype2/include/mac/freetype/internal/ftgloadr.h",
"external/freetype2/include/mac/freetype/internal/ftmemory.h",
"external/freetype2/include/mac/freetype/internal/ftobjs.h",
"external/freetype2/include/mac/freetype/internal/ftpic.h",
"external/freetype2/include/mac/freetype/internal/ftrfork.h",
"external/freetype2/include/mac/freetype/internal/ftserv.h",
"external/freetype2/include/mac/freetype/internal/ftstream.h",
"external/freetype2/include/mac/freetype/internal/fttrace.h",
"external/freetype2/include/mac/freetype/internal/ftvalid.h",
"external/freetype2/include/mac/freetype/internal/internal.h",
"external/freetype2/include/mac/freetype/internal/psaux.h",
"external/freetype2/include/mac/freetype/internal/pshints.h",
"external/freetype2/include/mac/freetype/internal/services/svbdf.h",
"external/freetype2/include/mac/freetype/internal/services/svcid.h",
"external/freetype2/include/mac/freetype/internal/services/svgldict.h",
"external/freetype2/include/mac/freetype/internal/services/svgxval.h",
"external/freetype2/include/mac/freetype/internal/services/svkern.h",
"external/freetype2/include/mac/freetype/internal/services/svmm.h",
"external/freetype2/include/mac/freetype/internal/services/svotval.h",
"external/freetype2/include/mac/freetype/internal/services/svpfr.h",
"external/freetype2/include/mac/freetype/internal/services/svpostnm.h",
"external/freetype2/include/mac/freetype/internal/services/svprop.h",
"external/freetype2/include/mac/freetype/internal/services/svpscmap.h",
"external/freetype2/include/mac/freetype/internal/services/svpsinfo.h",
"external/freetype2/include/mac/freetype/internal/services/svsfnt.h",
"external/freetype2/include/mac/freetype/internal/services/svttcmap.h",
"external/freetype2/include/mac/freetype/internal/services/svtteng.h",
"external/freetype2/include/mac/freetype/internal/services/svttglyf.h",
"external/freetype2/include/mac/freetype/internal/services/svwinfnt.h",
"external/freetype2/include/mac/freetype/internal/services/svxf86nm.h",
"external/freetype2/include/mac/freetype/internal/sfnt.h",
"external/freetype2/include/mac/freetype/internal/t1types.h",
"external/freetype2/include/mac/freetype/internal/tttypes.h",
"external/freetype2/include/mac/freetype/t1tables.h",
"external/freetype2/include/mac/freetype/ttnameid.h",
"external/freetype2/include/mac/freetype/tttables.h",
"external/freetype2/include/mac/freetype/tttags.h",
"external/freetype2/include/mac/freetype/ttunpat.h",
"external/freetype2/include/mac/ft2build.h",
"external/freetype2/include/win32/freetype/config/ftconfig.h",
"external/freetype2/include/win32/freetype/config/ftheader.h",
"external/freetype2/include/win32/freetype/config/ftmodule.h",
"external/freetype2/include/win32/freetype/config/ftoption.h",
"external/freetype2/include/win32/freetype/config/ftstdlib.h",
"external/freetype2/include/win32/freetype/freetype.h",
"external/freetype2/include/win32/freetype/ftadvanc.h",
"external/freetype2/include/win32/freetype/ftautoh.h",
"external/freetype2/include/win32/freetype/ftbbox.h",
"external/freetype2/include/win32/freetype/ftbdf.h",
"external/freetype2/include/win32/freetype/ftbitmap.h",
"external/freetype2/include/win32/freetype/ftbzip2.h",
"external/freetype2/include/win32/freetype/ftcache.h",
"external/freetype2/include/win32/freetype/ftcffdrv.h",
"external/freetype2/include/win32/freetype/ftchapters.h",
"external/freetype2/include/win32/freetype/ftcid.h",
"external/freetype2/include/win32/freetype/fterrdef.h",
"external/freetype2/include/win32/freetype/fterrors.h",
"external/freetype2/include/win32/freetype/ftgasp.h",
"external/freetype2/include/win32/freetype/ftglyph.h",
"external/freetype2/include/win32/freetype/ftgxval.h",
"external/freetype2/include/win32/freetype/ftgzip.h",
"external/freetype2/include/win32/freetype/ftimage.h",
"external/freetype2/include/win32/freetype/ftincrem.h",
"external/freetype2/include/win32/freetype/ftlcdfil.h",
"external/freetype2/include/win32/freetype/ftlist.h",
"external/freetype2/include/win32/freetype/ftlzw.h",
"external/freetype2/include/win32/freetype/ftmac.h",
"external/freetype2/include/win32/freetype/ftmm.h",
"external/freetype2/include/win32/freetype/ftmodapi.h",
"external/freetype2/include/win32/freetype/ftmoderr.h",
"external/freetype2/include/win32/freetype/ftotval.h",
"external/freetype2/include/win32/freetype/ftoutln.h",
"external/freetype2/include/win32/freetype/ftpfr.h",
"external/freetype2/include/win32/freetype/ftrender.h",
"external/freetype2/include/win32/freetype/ftsizes.h",
"external/freetype2/include/win32/freetype/ftsnames.h",
"external/freetype2/include/win32/freetype/ftstroke.h",
"external/freetype2/include/win32/freetype/ftsynth.h",
"external/freetype2/include/win32/freetype/ftsystem.h",
"external/freetype2/include/win32/freetype/fttrigon.h",
"external/freetype2/include/win32/freetype/ftttdrv.h",
"external/freetype2/include/win32/freetype/fttypes.h",
"external/freetype2/include/win32/freetype/ftwinfnt.h",
"external/freetype2/include/win32/freetype/ftxf86.h",
"external/freetype2/include/win32/freetype/internal/autohint.h",
"external/freetype2/include/win32/freetype/internal/ftcalc.h",
"external/freetype2/include/win32/freetype/internal/ftdebug.h",
"external/freetype2/include/win32/freetype/internal/ftdriver.h",
"external/freetype2/include/win32/freetype/internal/ftgloadr.h",
"external/freetype2/include/win32/freetype/internal/ftmemory.h",
"external/freetype2/include/win32/freetype/internal/ftobjs.h",
"external/freetype2/include/win32/freetype/internal/ftpic.h",
"external/freetype2/include/win32/freetype/internal/ftrfork.h",
"external/freetype2/include/win32/freetype/internal/ftserv.h",
"external/freetype2/include/win32/freetype/internal/ftstream.h",
"external/freetype2/include/win32/freetype/internal/fttrace.h",
"external/freetype2/include/win32/freetype/internal/ftvalid.h",
"external/freetype2/include/win32/freetype/internal/internal.h",
"external/freetype2/include/win32/freetype/internal/psaux.h",
"external/freetype2/include/win32/freetype/internal/pshints.h",
"external/freetype2/include/win32/freetype/internal/services/svbdf.h",
"external/freetype2/include/win32/freetype/internal/services/svcid.h",
"external/freetype2/include/win32/freetype/internal/services/svgldict.h",
"external/freetype2/include/win32/freetype/internal/services/svgxval.h",
"external/freetype2/include/win32/freetype/internal/services/svkern.h",
"external/freetype2/include/win32/freetype/internal/services/svmm.h",
"external/freetype2/include/win32/freetype/internal/services/svotval.h",
"external/freetype2/include/win32/freetype/internal/services/svpfr.h",
"external/freetype2/include/win32/freetype/internal/services/svpostnm.h",
"external/freetype2/include/win32/freetype/internal/services/svprop.h",
"external/freetype2/include/win32/freetype/internal/services/svpscmap.h",
"external/freetype2/include/win32/freetype/internal/services/svpsinfo.h",
"external/freetype2/include/win32/freetype/internal/services/svsfnt.h",
"external/freetype2/include/win32/freetype/internal/services/svttcmap.h",
"external/freetype2/include/win32/freetype/internal/services/svtteng.h",
"external/freetype2/include/win32/freetype/internal/services/svttglyf.h",
"external/freetype2/include/win32/freetype/internal/services/svwinfnt.h",
"external/freetype2/include/win32/freetype/internal/services/svxf86nm.h",
"external/freetype2/include/win32/freetype/internal/sfnt.h",
"external/freetype2/include/win32/freetype/internal/t1types.h",
"external/freetype2/include/win32/freetype/internal/tttypes.h",
"external/freetype2/include/win32/freetype/t1tables.h",
"external/freetype2/include/win32/freetype/ttnameid.h",
"external/freetype2/include/win32/freetype/tttables.h",
"external/freetype2/include/win32/freetype/tttags.h",
"external/freetype2/include/win32/freetype/ttunpat.h",
"external/freetype2/include/win32/ft2build.h",
"external/freetype2/include/mac/freetype2/config/ftconfig.h",
"external/freetype2/include/mac/freetype2/config/ftheader.h",
"external/freetype2/include/mac/freetype2/config/ftmodule.h",
"external/freetype2/include/mac/freetype2/config/ftoption.h",
"external/freetype2/include/mac/freetype2/config/ftstdlib.h",
"external/freetype2/include/mac/freetype2/freetype.h",
"external/freetype2/include/mac/freetype2/ft2build.h",
"external/freetype2/include/mac/freetype2/ftadvanc.h",
"external/freetype2/include/mac/freetype2/ftautoh.h",
"external/freetype2/include/mac/freetype2/ftbbox.h",
"external/freetype2/include/mac/freetype2/ftbdf.h",
"external/freetype2/include/mac/freetype2/ftbitmap.h",
"external/freetype2/include/mac/freetype2/ftbzip2.h",
"external/freetype2/include/mac/freetype2/ftcache.h",
"external/freetype2/include/mac/freetype2/ftcffdrv.h",
"external/freetype2/include/mac/freetype2/ftchapters.h",
"external/freetype2/include/mac/freetype2/ftcid.h",
"external/freetype2/include/mac/freetype2/fterrdef.h",
"external/freetype2/include/mac/freetype2/fterrors.h",
"external/freetype2/include/mac/freetype2/ftgasp.h",
"external/freetype2/include/mac/freetype2/ftglyph.h",
"external/freetype2/include/mac/freetype2/ftgxval.h",
"external/freetype2/include/mac/freetype2/ftgzip.h",
"external/freetype2/include/mac/freetype2/ftimage.h",
"external/freetype2/include/mac/freetype2/ftincrem.h",
"external/freetype2/include/mac/freetype2/ftlcdfil.h",
"external/freetype2/include/mac/freetype2/ftlist.h",
"external/freetype2/include/mac/freetype2/ftlzw.h",
"external/freetype2/include/mac/freetype2/ftmac.h",
"external/freetype2/include/mac/freetype2/ftmm.h",
"external/freetype2/include/mac/freetype2/ftmodapi.h",
"external/freetype2/include/mac/freetype2/ftmoderr.h",
"external/freetype2/include/mac/freetype2/ftotval.h",
"external/freetype2/include/mac/freetype2/ftoutln.h",
"external/freetype2/include/mac/freetype2/ftpfr.h",
"external/freetype2/include/mac/freetype2/ftrender.h",
"external/freetype2/include/mac/freetype2/ftsizes.h",
"external/freetype2/include/mac/freetype2/ftsnames.h",
"external/freetype2/include/mac/freetype2/ftstroke.h",
"external/freetype2/include/mac/freetype2/ftsynth.h",
"external/freetype2/include/mac/freetype2/ftsystem.h",
"external/freetype2/include/mac/freetype2/fttrigon.h",
"external/freetype2/include/mac/freetype2/ftttdrv.h",
"external/freetype2/include/mac/freetype2/fttypes.h",
"external/freetype2/include/mac/freetype2/ftwinfnt.h",
"external/freetype2/include/mac/freetype2/ftxf86.h",
"external/freetype2/include/mac/freetype2/t1tables.h",
"external/freetype2/include/mac/freetype2/ttnameid.h",
"external/freetype2/include/mac/freetype2/tttables.h",
"external/freetype2/include/mac/freetype2/tttags.h",
"external/freetype2/include/mac/freetype2/ttunpat.h",
"external/freetype2/include/win32/freetype2/config/ftconfig.h",
"external/freetype2/include/win32/freetype2/config/ftheader.h",
"external/freetype2/include/win32/freetype2/config/ftmodule.h",
"external/freetype2/include/win32/freetype2/config/ftoption.h",
"external/freetype2/include/win32/freetype2/config/ftstdlib.h",
"external/freetype2/include/win32/freetype2/freetype.h",
"external/freetype2/include/win32/freetype2/ft2build.h",
"external/freetype2/include/win32/freetype2/ftadvanc.h",
"external/freetype2/include/win32/freetype2/ftautoh.h",
"external/freetype2/include/win32/freetype2/ftbbox.h",
"external/freetype2/include/win32/freetype2/ftbdf.h",
"external/freetype2/include/win32/freetype2/ftbitmap.h",
"external/freetype2/include/win32/freetype2/ftbzip2.h",
"external/freetype2/include/win32/freetype2/ftcache.h",
"external/freetype2/include/win32/freetype2/ftcffdrv.h",
"external/freetype2/include/win32/freetype2/ftchapters.h",
"external/freetype2/include/win32/freetype2/ftcid.h",
"external/freetype2/include/win32/freetype2/fterrdef.h",
"external/freetype2/include/win32/freetype2/fterrors.h",
"external/freetype2/include/win32/freetype2/ftgasp.h",
"external/freetype2/include/win32/freetype2/ftglyph.h",
"external/freetype2/include/win32/freetype2/ftgxval.h",
"external/freetype2/include/win32/freetype2/ftgzip.h",
"external/freetype2/include/win32/freetype2/ftimage.h",
"external/freetype2/include/win32/freetype2/ftincrem.h",
"external/freetype2/include/win32/freetype2/ftlcdfil.h",
"external/freetype2/include/win32/freetype2/ftlist.h",
"external/freetype2/include/win32/freetype2/ftlzw.h",
"external/freetype2/include/win32/freetype2/ftmac.h",
"external/freetype2/include/win32/freetype2/ftmm.h",
"external/freetype2/include/win32/freetype2/ftmodapi.h",
"external/freetype2/include/win32/freetype2/ftmoderr.h",
"external/freetype2/include/win32/freetype2/ftotval.h",
"external/freetype2/include/win32/freetype2/ftoutln.h",
"external/freetype2/include/win32/freetype2/ftpfr.h",
"external/freetype2/include/win32/freetype2/ftrender.h",
"external/freetype2/include/win32/freetype2/ftsizes.h",
"external/freetype2/include/win32/freetype2/ftsnames.h",
"external/freetype2/include/win32/freetype2/ftstroke.h",
"external/freetype2/include/win32/freetype2/ftsynth.h",
"external/freetype2/include/win32/freetype2/ftsystem.h",
"external/freetype2/include/win32/freetype2/fttrigon.h",
"external/freetype2/include/win32/freetype2/ftttdrv.h",
"external/freetype2/include/win32/freetype2/fttypes.h",
"external/freetype2/include/win32/freetype2/ftwinfnt.h",
"external/freetype2/include/win32/freetype2/ftxf86.h",
"external/freetype2/include/win32/freetype2/internal/autohint.h",
"external/freetype2/include/win32/freetype2/internal/ftcalc.h",
"external/freetype2/include/win32/freetype2/internal/ftdebug.h",
"external/freetype2/include/win32/freetype2/internal/ftdriver.h",
"external/freetype2/include/win32/freetype2/internal/ftgloadr.h",
"external/freetype2/include/win32/freetype2/internal/ftmemory.h",
"external/freetype2/include/win32/freetype2/internal/ftobjs.h",
"external/freetype2/include/win32/freetype2/internal/ftpic.h",
"external/freetype2/include/win32/freetype2/internal/ftrfork.h",
"external/freetype2/include/win32/freetype2/internal/ftserv.h",
"external/freetype2/include/win32/freetype2/internal/ftstream.h",
"external/freetype2/include/win32/freetype2/internal/fttrace.h",
"external/freetype2/include/win32/freetype2/internal/ftvalid.h",
"external/freetype2/include/win32/freetype2/internal/internal.h",
"external/freetype2/include/win32/freetype2/internal/psaux.h",
"external/freetype2/include/win32/freetype2/internal/pshints.h",
"external/freetype2/include/win32/freetype2/internal/services/svbdf.h",
"external/freetype2/include/win32/freetype2/internal/services/svcid.h",
"external/freetype2/include/win32/freetype2/internal/services/svgldict.h",
"external/freetype2/include/win32/freetype2/internal/services/svgxval.h",
"external/freetype2/include/win32/freetype2/internal/services/svkern.h",
"external/freetype2/include/win32/freetype2/internal/services/svmm.h",
"external/freetype2/include/win32/freetype2/internal/services/svotval.h",
"external/freetype2/include/win32/freetype2/internal/services/svpfr.h",
"external/freetype2/include/win32/freetype2/internal/services/svpostnm.h",
"external/freetype2/include/win32/freetype2/internal/services/svprop.h",
"external/freetype2/include/win32/freetype2/internal/services/svpscmap.h",
"external/freetype2/include/win32/freetype2/internal/services/svpsinfo.h",
"external/freetype2/include/win32/freetype2/internal/services/svsfnt.h",
"external/freetype2/include/win32/freetype2/internal/services/svttcmap.h",
"external/freetype2/include/win32/freetype2/internal/services/svtteng.h",
"external/freetype2/include/win32/freetype2/internal/services/svttglyf.h",
"external/freetype2/include/win32/freetype2/internal/services/svwinfnt.h",
"external/freetype2/include/win32/freetype2/internal/services/svxf86nm.h",
"external/freetype2/include/win32/freetype2/internal/sfnt.h",
"external/freetype2/include/win32/freetype2/internal/t1types.h",
"external/freetype2/include/win32/freetype2/internal/tttypes.h",
"external/freetype2/include/win32/freetype2/t1tables.h",
"external/freetype2/include/win32/freetype2/ttnameid.h",
"external/freetype2/include/win32/freetype2/tttables.h",
"external/freetype2/include/win32/freetype2/tttags.h",
"external/freetype2/include/win32/freetype2/ttunpat.h",
"external/freetype2/include/winrt/README.txt",
"external/freetype2/include/winrt/freetype/config/ftconfig.h",
"external/freetype2/include/winrt/freetype/config/ftheader.h",
@ -3115,6 +3007,13 @@
"external/xxhash/xxhash.h",
"external/xxtea/xxtea.cpp",
"external/xxtea/xxtea.h",
"external/zlib/include/zconf.h",
"external/zlib/include/zlib.h",
"external/zlib/prebuilt/android/Android.mk",
"external/zlib/prebuilt/android/armeabi-v7a/libz.a",
"external/zlib/prebuilt/android/armeabi/libz.a",
"external/zlib/prebuilt/android/x86/libz.a",
"external/zlib/prebuilt/mac/libz.a",
"licenses/LICENSE_AA-EDT.txt",
"licenses/LICENSE_CCBReader.txt",
"licenses/LICENSE_CCControlExtension.txt",
@ -5376,6 +5275,7 @@
"cocos/scripting/lua-bindings/auto/api/TableView.lua",
"cocos/scripting/lua-bindings/auto/api/TableViewCell.lua",
"cocos/scripting/lua-bindings/auto/api/TargetedAction.lua",
"cocos/scripting/lua-bindings/auto/api/Terrain.lua",
"cocos/scripting/lua-bindings/auto/api/Text.lua",
"cocos/scripting/lua-bindings/auto/api/TextAtlas.lua",
"cocos/scripting/lua-bindings/auto/api/TextBMFont.lua",
@ -5561,6 +5461,7 @@
"cocos/scripting/lua-bindings/proj.ios_mac/cocos2d_lua_bindings.xcodeproj/project.pbxproj",
"cocos/scripting/lua-bindings/proj.win32/libluacocos2d.vcxproj",
"cocos/scripting/lua-bindings/proj.win32/libluacocos2d.vcxproj.filters",
"cocos/scripting/lua-bindings/script/3d/3dConstants.lua",
"cocos/scripting/lua-bindings/script/cocos2d/Cocos2d.lua",
"cocos/scripting/lua-bindings/script/cocos2d/Cocos2dConstants.lua",
"cocos/scripting/lua-bindings/script/cocos2d/DeprecatedCocos2dClass.lua",

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="org.eclipse.cdt.managedbuilder.core.genmakebuilder"/>
<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS">
<mapEntry key="?children?" value="?children?=?name?=entry\\\\\\\|\\\|\|?name?=outputEntries\||"/>
<mapEntry key="?name?" value=""/>
<mapEntry key="org.eclipse.cdt.make.core.append_environment" value="true"/>
<mapEntry key="org.eclipse.cdt.make.core.autoBuildTarget" value="all"/>
<mapEntry key="org.eclipse.cdt.make.core.buildArguments" value="${ProjDirPath}/build_native.py -b release"/>
<mapEntry key="org.eclipse.cdt.make.core.buildCommand" value="python"/>
<mapEntry key="org.eclipse.cdt.make.core.buildLocation" value="${ProjDirPath}"/>
<mapEntry key="org.eclipse.cdt.make.core.cleanBuildTarget" value="clean"/>
<mapEntry key="org.eclipse.cdt.make.core.contents" value="org.eclipse.cdt.make.core.activeConfigSettings"/>
<mapEntry key="org.eclipse.cdt.make.core.enableAutoBuild" value="false"/>
<mapEntry key="org.eclipse.cdt.make.core.enableCleanBuild" value="true"/>
<mapEntry key="org.eclipse.cdt.make.core.enableFullBuild" value="true"/>
<mapEntry key="org.eclipse.cdt.make.core.fullBuildTarget" value="all"/>
<mapEntry key="org.eclipse.cdt.make.core.stopOnError" value="true"/>
<mapEntry key="org.eclipse.cdt.make.core.useDefaultBuildCmd" value="false"/>
</mapAttribute>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
</launchConfiguration>

Some files were not shown because too many files have changed in this diff Show More