mirror of https://github.com/axmolengine/axmol.git
Merge branch 'v3-newaudio' of D:\github_repository\cocosNew into v3
This commit is contained in:
commit
a558e78ff0
|
@ -137,3 +137,4 @@ project.properties
|
|||
/templates/lua-template-runtime/runtime
|
||||
/v*-deps-*.zip
|
||||
/v*-lua-runtime-*.zip
|
||||
/tools/fbx-conv/
|
||||
|
|
20
AUTHORS
20
AUTHORS
|
@ -25,7 +25,7 @@ Developers:
|
|||
longlene
|
||||
Improve android project creation script
|
||||
|
||||
simpliplant
|
||||
reneklacan
|
||||
Hardware keyboard support
|
||||
|
||||
liuyq
|
||||
|
@ -530,6 +530,7 @@ Developers:
|
|||
Casting variables to their own type, and print warning info if no corresponding lua callback function instead of crash.
|
||||
fix of WebSocket url parse error for 'ws://domain.com/websocket' pattern.
|
||||
Fixed a bug that Websocket doesn't support send/receive data which larger than 4096 bytes.
|
||||
Show detail class & function name in error message of lua-binding
|
||||
|
||||
musikov
|
||||
Fixing a bug that missing precision when getting strokeColor and fontFillColor
|
||||
|
@ -797,6 +798,7 @@ Developers:
|
|||
Adds support for get response when Activity's onActivityResult is triggered
|
||||
Improve Android projects
|
||||
Android jni error clear & more readable log
|
||||
Add support of software PVRTC v1 decompression
|
||||
|
||||
youknowone
|
||||
Adds iOS-like elastic bounceback support for cocos2d::extension::ScrollView
|
||||
|
@ -828,6 +830,8 @@ Developers:
|
|||
Added missing Text Font and Placeholder feature of EditBox for Mac platform
|
||||
HttpRequest uses std::function as callback
|
||||
EditBox: mac secure input
|
||||
Fix a bug that can not get/set text in password mode on Mac OS X
|
||||
Make sure TableView parents are visible before handling touch
|
||||
|
||||
iSevenDays
|
||||
Fixed a bug that the result of 'malloc' is incompatible with type 'unsigned char *' in Image::saveImageToPNG
|
||||
|
@ -887,6 +891,7 @@ Developers:
|
|||
Added TextField::getStringLength()
|
||||
Add shadow, outline, glow filter support for UIText
|
||||
Fix UITextField IME can't auto detach
|
||||
Add getChildByName method for get a node that can be cast to Type T
|
||||
|
||||
QiuleiWang
|
||||
Fix the bug that calculated height of multi-line string was incorrect on iOS
|
||||
|
@ -896,7 +901,8 @@ Developers:
|
|||
|
||||
kyokomi
|
||||
Fix the bug that UIButton doesn't support TTF font
|
||||
Fix a but of TextReader
|
||||
Fix a bug of TextReader
|
||||
Fix a bug that UITextField doesn't support TTF font
|
||||
|
||||
gin0606
|
||||
Add a new line at the end of a file
|
||||
|
@ -911,6 +917,16 @@ Developers:
|
|||
chareice
|
||||
Make `setup.py` work on zsh
|
||||
|
||||
taug
|
||||
Could add seach path and resolution order path in front.
|
||||
|
||||
CaiCQ
|
||||
Fix a but that LabelTTF may lost chinese characters on linux
|
||||
|
||||
chenguangqi
|
||||
Fixed a compiling error on Android
|
||||
Fixed an error when importing project using Eclipse on Android
|
||||
|
||||
Retired Core Developers:
|
||||
WenSheng Yang
|
||||
Author of windows port, CCTextField,
|
||||
|
|
33
CHANGELOG
33
CHANGELOG
|
@ -1,18 +1,43 @@
|
|||
cocos2d-x-3.2 ??
|
||||
cocos2d-x-3.3 ??
|
||||
[NEW] CCImage: support of software PVRTC v1 decompression
|
||||
|
||||
[FIX] Label: can not set charmap after it is created
|
||||
[FIX] Scale9Sprite: new added sprite will be hidden
|
||||
[FIX] UIListView: can not insert an item in specific position, it is added at bottom
|
||||
[FIX] TabelView: can handle touch event though its parents are invisible
|
||||
[FIX] TextField: can not use backspace to delete a character
|
||||
|
||||
[FIX] Others: can not import java library shift by engine correctly when using Eclispe on Android
|
||||
|
||||
cocos2d-x-3.2 Jul.17 2014
|
||||
[NEW] Node: added getChildByName method for get a node that can be cast to Type T
|
||||
[NEW] FileUtils: could add seach path and resolution order path in front
|
||||
|
||||
[FIX] Animation3D: getOrCreate is deprecated and replaced with Animation3D::create
|
||||
[FIX] Animate3D: setSpeed() accept negtive value, which means play reverse, getPlayback and setPlayBack are deprecated
|
||||
[FIX] EditBox: can not set/get text in password mode on Mac OS X
|
||||
[FIX] Game Controller: joystick y value inversed on iOS
|
||||
[FIX] GLView: cursor position is not correct if design resolution is different from device resolution
|
||||
[FIX] Label: color can not be set correctly if using system font
|
||||
[FIX] Label: color can not be set correctly if using system font on iOS
|
||||
[FIX] LabelTTF: may lost chinese characters on linux
|
||||
[FIX] Lua-binding: support UIVideoPlayer
|
||||
[FIX] Node: setRotation3D not work based on anchor point
|
||||
[FIX] Node: modify regular of enumerateChildren, now it just searchs its children
|
||||
[FIX] Setup.py: not work if using zsh
|
||||
[FIX] Physics integration: body shape will be wrong when using negative value to scale
|
||||
[FIX] ScrollViewDelegate: make the scrollView delegate methods optional
|
||||
[FIX] Setup.py: will crash on windows because of checking `zsh`
|
||||
[FIX] SpriteBatchNode: opacity can not work
|
||||
[FIX] Sprite3D: may crash on Android if playing animation and replace Scene after come from background
|
||||
[FIX] UIdget: opacity is wrong when replace texture
|
||||
[FIX] UIwidget: opacity is wrong when replace texture
|
||||
[FIX] UIRichText: will crash when using utf8 string and the length exceed specified length
|
||||
[FIX] UIText: can not wrap words automatically
|
||||
[FIX] UITextField: keyboard can not hide if touching space outside of keyboard
|
||||
[FIX] UITextField: can not wrap words automatically
|
||||
[FIX] UIVideoPlayer: can not exit full screen mode on Android
|
||||
|
||||
[FIX] Others: don't release singleton objects correctly that are needed in the whole game, which will be treated
|
||||
as memory leak when using VLD.
|
||||
[FIX] Others: compiling error when building for iOS 64-bit devices with Xcode6 beta3
|
||||
|
||||
|
||||
cocos2d-x-3.2rc0 Jul.7 2014
|
||||
|
|
|
@ -8,7 +8,7 @@ import shutil
|
|||
from optparse import OptionParser
|
||||
|
||||
CPP_SAMPLES = ['cpp-empty-test', 'cpp-tests', 'game-controller-test']
|
||||
LUA_SAMPLES = ['lua-empty-test', 'lua-tests']
|
||||
LUA_SAMPLES = ['lua-empty-test', 'lua-tests', 'lua-game-controller-test']
|
||||
ALL_SAMPLES = CPP_SAMPLES + LUA_SAMPLES
|
||||
|
||||
def get_num_of_cpu():
|
||||
|
@ -172,6 +172,10 @@ def copy_resources(target, app_android_root):
|
|||
|
||||
resources_dir = os.path.join(app_android_root, "../../../cpp-tests/Resources")
|
||||
copy_files(resources_dir, assets_res_dir)
|
||||
if target == "lua-game-controller-test":
|
||||
print("coming generator game controller")
|
||||
resources_dir = os.path.join(app_android_root, "../../../game-controller-test/Resources")
|
||||
copy_files(resources_dir, assets_res_dir)
|
||||
|
||||
def build_samples(target,ndk_build_param,android_platform,build_mode):
|
||||
|
||||
|
@ -203,7 +207,8 @@ def build_samples(target,ndk_build_param,android_platform,build_mode):
|
|||
"game-controller-test": "tests/game-controller-test/proj.android",
|
||||
"cpp-tests": "tests/cpp-tests/proj.android",
|
||||
"lua-empty-test": "tests/lua-empty-test/project/proj.android",
|
||||
"lua-tests": "tests/lua-tests/project/proj.android"
|
||||
"lua-tests": "tests/lua-tests/project/proj.android",
|
||||
"lua-game-controller-test": "tests/lua-game-controller-test/project/proj.android"
|
||||
}
|
||||
|
||||
for target in build_targets:
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Express 2012 for Windows Desktop
|
||||
# Visual Studio 2012
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libAudio", "..\cocos\audio\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\cocos\2d\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libBox2D", "..\external\Box2D\proj.win32\Box2D.vcxproj", "{929480E7-23C0-4DF6-8456-096D71547116}"
|
||||
EndProject
|
||||
|
@ -21,13 +24,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libNetwork", "..\cocos\netw
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libSpine", "..\cocos\editor-support\spine\proj.win32\libSpine.vcxproj", "{B7C2A162-DEC9-4418-972E-240AB3CBFCAE}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libLocalStorage", "..\cocos\storage\local-storage\proj.win32\libLocalStorage.vcxproj", "{632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblua", "..\cocos\scripting\lua-bindings\proj.win32\liblua.vcxproj", "{DDC3E27F-004D-4DD4-9DD3-931A013D2159}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua-tests", "..\tests\lua-tests\project\proj.win32\lua-tests.win32.vcxproj", "{4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGUI", "..\cocos\ui\proj.win32\libGUI.vcxproj", "{7E06E92C-537A-442B-9E4A-4761C84F8A1A}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpp-empty-test", "..\tests\cpp-empty-test\proj.win32\cpp-empty-test.vcxproj", "{B8BF9E81-35FD-4582-BA1C-B85FA365BABB}"
|
||||
EndProject
|
||||
|
@ -79,10 +83,6 @@ Global
|
|||
{B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Release|Win32.Build.0 = Release|Win32
|
||||
{632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Release|Win32.Build.0 = Release|Win32
|
||||
{DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Release|Win32.ActiveCfg = Release|Win32
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0510"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "15CBA015196EE56C005877BB"
|
||||
BuildableName = "lua-game-controller-test iOS.app"
|
||||
BlueprintName = "lua-game-controller-test iOS"
|
||||
ReferencedContainer = "container:cocos2d_tests.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "15CBA015196EE56C005877BB"
|
||||
BuildableName = "lua-game-controller-test iOS.app"
|
||||
BlueprintName = "lua-game-controller-test iOS"
|
||||
ReferencedContainer = "container:cocos2d_tests.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "15CBA015196EE56C005877BB"
|
||||
BuildableName = "lua-game-controller-test iOS.app"
|
||||
BlueprintName = "lua-game-controller-test iOS"
|
||||
ReferencedContainer = "container:cocos2d_tests.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "15CBA015196EE56C005877BB"
|
||||
BuildableName = "lua-game-controller-test iOS.app"
|
||||
BlueprintName = "lua-game-controller-test iOS"
|
||||
ReferencedContainer = "container:cocos2d_tests.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -54,10 +54,18 @@ public:
|
|||
virtual std::string description() const;
|
||||
|
||||
/** returns a clone of action */
|
||||
virtual Action* clone() const = 0;
|
||||
virtual Action* clone() const
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/** returns a new action that performs the exactly the reverse action */
|
||||
virtual Action* reverse() const = 0;
|
||||
virtual Action* reverse() const
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//! return true if the action has finished
|
||||
virtual bool isDone() const;
|
||||
|
@ -137,8 +145,16 @@ public:
|
|||
//
|
||||
// Overrides
|
||||
//
|
||||
virtual FiniteTimeAction* reverse() const override = 0;
|
||||
virtual FiniteTimeAction* clone() const override = 0;
|
||||
virtual FiniteTimeAction* reverse() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
virtual FiniteTimeAction* clone() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
protected:
|
||||
FiniteTimeAction()
|
||||
|
|
|
@ -49,8 +49,18 @@ public:
|
|||
//
|
||||
// Overrides
|
||||
//
|
||||
virtual ActionEase* clone() const override = 0;
|
||||
virtual ActionEase* reverse() const override = 0;
|
||||
virtual ActionEase* clone() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual ActionEase* reverse() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual void startWithTarget(Node *target) override;
|
||||
virtual void stop() override;
|
||||
virtual void update(float time) override;
|
||||
|
@ -83,8 +93,16 @@ public:
|
|||
//
|
||||
// Overrides
|
||||
//
|
||||
virtual EaseRateAction* clone() const override = 0;
|
||||
virtual EaseRateAction* reverse() const override = 0;
|
||||
virtual EaseRateAction* clone() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
virtual EaseRateAction* reverse() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
EaseRateAction() {}
|
||||
|
@ -323,8 +341,17 @@ public:
|
|||
//
|
||||
// Overrides
|
||||
//
|
||||
virtual EaseElastic* clone() const override = 0;
|
||||
virtual EaseElastic* reverse() const override = 0;
|
||||
virtual EaseElastic* clone() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual EaseElastic* reverse() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
EaseElastic() {}
|
||||
|
@ -428,8 +455,17 @@ class CC_DLL EaseBounce : public ActionEase
|
|||
public:
|
||||
|
||||
// Overrides
|
||||
virtual EaseBounce* clone() const override = 0;
|
||||
virtual EaseBounce* reverse() const override = 0;
|
||||
virtual EaseBounce* clone() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual EaseBounce* reverse() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
EaseBounce() {}
|
||||
|
@ -594,11 +630,11 @@ private:
|
|||
@brief Ease Bezier
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseBezierAction : public cocos2d::ActionEase
|
||||
class CC_DLL EaseBezierAction : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseBezierAction* create(cocos2d::ActionInterval* action);
|
||||
static EaseBezierAction* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseBezierAction* clone() const override;
|
||||
|
@ -624,11 +660,11 @@ private:
|
|||
@brief Ease Quadratic In
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseQuadraticActionIn:public cocos2d::ActionEase
|
||||
class CC_DLL EaseQuadraticActionIn : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseQuadraticActionIn* create(cocos2d::ActionInterval* action);
|
||||
static EaseQuadraticActionIn* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseQuadraticActionIn* clone() const override;
|
||||
|
@ -647,11 +683,11 @@ private:
|
|||
@brief Ease Quadratic Out
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseQuadraticActionOut:public cocos2d::ActionEase
|
||||
class CC_DLL EaseQuadraticActionOut : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseQuadraticActionOut* create(cocos2d::ActionInterval* action);
|
||||
static EaseQuadraticActionOut* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseQuadraticActionOut* clone() const override;
|
||||
|
@ -670,11 +706,11 @@ private:
|
|||
@brief Ease Quadratic InOut
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseQuadraticActionInOut:public cocos2d::ActionEase
|
||||
class CC_DLL EaseQuadraticActionInOut : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseQuadraticActionInOut* create(cocos2d::ActionInterval* action);
|
||||
static EaseQuadraticActionInOut* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseQuadraticActionInOut* clone() const override;
|
||||
|
@ -692,11 +728,11 @@ private:
|
|||
@brief Ease Quartic In
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseQuarticActionIn:public cocos2d::ActionEase
|
||||
class CC_DLL EaseQuarticActionIn : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseQuarticActionIn* create(cocos2d::ActionInterval* action);
|
||||
static EaseQuarticActionIn* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseQuarticActionIn* clone() const override;
|
||||
|
@ -714,11 +750,11 @@ private:
|
|||
@brief Ease Quartic Out
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseQuarticActionOut:public cocos2d::ActionEase
|
||||
class CC_DLL EaseQuarticActionOut : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseQuarticActionOut* create(cocos2d::ActionInterval* action);
|
||||
static EaseQuarticActionOut* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseQuarticActionOut* clone() const override;
|
||||
|
@ -736,11 +772,11 @@ private:
|
|||
@brief Ease Quartic InOut
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseQuarticActionInOut:public cocos2d::ActionEase
|
||||
class CC_DLL EaseQuarticActionInOut : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseQuarticActionInOut* create(cocos2d::ActionInterval* action);
|
||||
static EaseQuarticActionInOut* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseQuarticActionInOut* clone() const override;
|
||||
|
@ -759,11 +795,11 @@ private:
|
|||
@brief Ease Quintic In
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseQuinticActionIn:public cocos2d::ActionEase
|
||||
class CC_DLL EaseQuinticActionIn : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseQuinticActionIn* create(cocos2d::ActionInterval* action);
|
||||
static EaseQuinticActionIn* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseQuinticActionIn* clone() const override;
|
||||
|
@ -781,11 +817,11 @@ private:
|
|||
@brief Ease Quintic Out
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseQuinticActionOut:public cocos2d::ActionEase
|
||||
class CC_DLL EaseQuinticActionOut : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseQuinticActionOut* create(cocos2d::ActionInterval* action);
|
||||
static EaseQuinticActionOut* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseQuinticActionOut* clone() const override;
|
||||
|
@ -803,11 +839,11 @@ private:
|
|||
@brief Ease Quintic InOut
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseQuinticActionInOut:public cocos2d::ActionEase
|
||||
class CC_DLL EaseQuinticActionInOut : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseQuinticActionInOut* create(cocos2d::ActionInterval* action);
|
||||
static EaseQuinticActionInOut* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseQuinticActionInOut* clone() const override;
|
||||
|
@ -825,11 +861,11 @@ private:
|
|||
@brief Ease Circle In
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseCircleActionIn:public cocos2d::ActionEase
|
||||
class CC_DLL EaseCircleActionIn : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseCircleActionIn* create(cocos2d::ActionInterval* action);
|
||||
static EaseCircleActionIn* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseCircleActionIn* clone() const override;
|
||||
|
@ -847,11 +883,11 @@ private:
|
|||
@brief Ease Circle Out
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseCircleActionOut:public cocos2d::ActionEase
|
||||
class CC_DLL EaseCircleActionOut : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseCircleActionOut* create(cocos2d::ActionInterval* action);
|
||||
static EaseCircleActionOut* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseCircleActionOut* clone() const override;
|
||||
|
@ -869,11 +905,11 @@ private:
|
|||
@brief Ease Circle InOut
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseCircleActionInOut:public cocos2d::ActionEase
|
||||
class CC_DLL EaseCircleActionInOut:public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseCircleActionInOut* create(cocos2d::ActionInterval* action);
|
||||
static EaseCircleActionInOut* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseCircleActionInOut* clone() const override;
|
||||
|
@ -891,11 +927,11 @@ private:
|
|||
@brief Ease Cubic In
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseCubicActionIn:public cocos2d::ActionEase
|
||||
class CC_DLL EaseCubicActionIn:public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseCubicActionIn* create(cocos2d::ActionInterval* action);
|
||||
static EaseCubicActionIn* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseCubicActionIn* clone() const override;
|
||||
|
@ -913,11 +949,11 @@ private:
|
|||
@brief Ease Cubic Out
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseCubicActionOut:public cocos2d::ActionEase
|
||||
class CC_DLL EaseCubicActionOut : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseCubicActionOut* create(cocos2d::ActionInterval* action);
|
||||
static EaseCubicActionOut* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseCubicActionOut* clone() const override;
|
||||
|
@ -935,11 +971,11 @@ private:
|
|||
@brief Ease Cubic InOut
|
||||
@ingroup Actions
|
||||
*/
|
||||
class EaseCubicActionInOut:public cocos2d::ActionEase
|
||||
class CC_DLL EaseCubicActionInOut : public ActionEase
|
||||
{
|
||||
public:
|
||||
/** creates the action */
|
||||
static EaseCubicActionInOut* create(cocos2d::ActionInterval* action);
|
||||
static EaseCubicActionInOut* create(ActionInterval* action);
|
||||
|
||||
virtual void update(float time) override;
|
||||
virtual EaseCubicActionInOut* clone() const override;
|
||||
|
|
|
@ -48,7 +48,11 @@ public:
|
|||
virtual GridBase* getGrid();
|
||||
|
||||
// overrides
|
||||
virtual GridAction * clone() const override = 0;
|
||||
virtual GridAction * clone() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
virtual GridAction* reverse() const override;
|
||||
virtual void startWithTarget(Node *target) override;
|
||||
|
||||
|
@ -109,7 +113,11 @@ public:
|
|||
void setVertex(const Vec2& position, const Vec3& vertex);
|
||||
|
||||
// Overrides
|
||||
virtual Grid3DAction * clone() const override = 0;
|
||||
virtual Grid3DAction * clone() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
/** @brief Base class for TiledGrid3D actions */
|
||||
|
@ -156,7 +164,11 @@ public:
|
|||
virtual GridBase* getGrid();
|
||||
|
||||
// Override
|
||||
virtual TiledGrid3DAction * clone() const override = 0;
|
||||
virtual TiledGrid3DAction * clone() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
/** @brief AccelDeccelAmplitude action */
|
||||
|
|
|
@ -51,8 +51,18 @@ public:
|
|||
//
|
||||
// Overrides
|
||||
//
|
||||
virtual ActionInstant* clone() const override = 0;
|
||||
virtual ActionInstant * reverse() const override = 0;
|
||||
virtual ActionInstant* clone() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual ActionInstant * reverse() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual bool isDone() const override;
|
||||
virtual void step(float dt) override;
|
||||
virtual void update(float time) override;
|
||||
|
|
|
@ -77,13 +77,23 @@ public:
|
|||
virtual bool isDone(void) const override;
|
||||
virtual void step(float dt) override;
|
||||
virtual void startWithTarget(Node *target) override;
|
||||
virtual ActionInterval* reverse() const override = 0;
|
||||
virtual ActionInterval *clone() const override = 0;
|
||||
virtual ActionInterval* reverse() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual ActionInterval *clone() const override
|
||||
{
|
||||
CC_ASSERT(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
/** initializes the action */
|
||||
bool initWithDuration(float d);
|
||||
|
||||
protected:
|
||||
float _elapsed;
|
||||
bool _firstTick;
|
||||
};
|
||||
|
@ -588,6 +598,8 @@ public:
|
|||
CC_CONSTRUCTOR_ACCESS:
|
||||
JumpTo() {}
|
||||
virtual ~JumpTo() {}
|
||||
|
||||
private:
|
||||
CC_DISALLOW_COPY_AND_ASSIGN(JumpTo);
|
||||
};
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ THE SOFTWARE.
|
|||
#include "base/CCRef.h"
|
||||
#include "base/CCMap.h"
|
||||
#include "base/CCValue.h"
|
||||
#include "2d/CCAnimation.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
|
|
|
@ -89,7 +89,28 @@ bool ComponentContainer::remove(const std::string& name)
|
|||
com->setOwner(nullptr);
|
||||
|
||||
_components->erase(iter);
|
||||
ret = true;
|
||||
} while(0);
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool ComponentContainer::remove(Component *com)
|
||||
{
|
||||
bool ret = false;
|
||||
do
|
||||
{
|
||||
CC_BREAK_IF(!_components);
|
||||
|
||||
for (auto iter = _components->begin(); iter != _components->end(); ++iter)
|
||||
{
|
||||
if (iter->second == com)
|
||||
{
|
||||
com->onExit();
|
||||
com->setOwner(nullptr);
|
||||
_components->erase(iter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
ret = true;
|
||||
} while(0);
|
||||
return ret;
|
||||
|
|
|
@ -50,6 +50,7 @@ public:
|
|||
virtual Component* get(const std::string& name) const;
|
||||
virtual bool add(Component *com);
|
||||
virtual bool remove(const std::string& name);
|
||||
virtual bool remove(Component *com);
|
||||
virtual void removeAll();
|
||||
virtual void visit(float delta);
|
||||
public:
|
||||
|
|
|
@ -79,85 +79,85 @@ class PointArray;
|
|||
namespace DrawPrimitives
|
||||
{
|
||||
/** Initializes the drawing primitives */
|
||||
void init();
|
||||
void CC_DLL init();
|
||||
|
||||
/** Frees allocated resources by the drawing primitives */
|
||||
void free();
|
||||
void CC_DLL free();
|
||||
|
||||
/** draws a point given x and y coordinate measured in points */
|
||||
void drawPoint(const Vec2& point);
|
||||
void CC_DLL drawPoint(const Vec2& point);
|
||||
|
||||
/** draws an array of points.
|
||||
@since v0.7.2
|
||||
*/
|
||||
void drawPoints(const Vec2 *points, unsigned int numberOfPoints);
|
||||
void CC_DLL drawPoints(const Vec2 *points, unsigned int numberOfPoints);
|
||||
|
||||
/** draws a line given the origin and destination point measured in points */
|
||||
void drawLine(const Vec2& origin, const Vec2& destination);
|
||||
void CC_DLL drawLine(const Vec2& origin, const Vec2& destination);
|
||||
|
||||
/** draws a rectangle given the origin and destination point measured in points. */
|
||||
void drawRect(Vec2 origin, Vec2 destination);
|
||||
void CC_DLL drawRect(Vec2 origin, Vec2 destination);
|
||||
|
||||
/** draws a solid rectangle given the origin and destination point measured in points.
|
||||
@since 1.1
|
||||
*/
|
||||
void drawSolidRect(Vec2 origin, Vec2 destination, Color4F color);
|
||||
void CC_DLL drawSolidRect(Vec2 origin, Vec2 destination, Color4F color);
|
||||
|
||||
/** draws a polygon given a pointer to point coordinates and the number of vertices measured in points.
|
||||
The polygon can be closed or open
|
||||
*/
|
||||
void drawPoly(const Vec2 *vertices, unsigned int numOfVertices, bool closePolygon);
|
||||
void CC_DLL drawPoly(const Vec2 *vertices, unsigned int numOfVertices, bool closePolygon);
|
||||
|
||||
/** draws a solid polygon given a pointer to CGPoint coordinates, the number of vertices measured in points, and a color.
|
||||
*/
|
||||
void drawSolidPoly(const Vec2 *poli, unsigned int numberOfPoints, Color4F color);
|
||||
void CC_DLL drawSolidPoly(const Vec2 *poli, unsigned int numberOfPoints, Color4F color);
|
||||
|
||||
/** draws a circle given the center, radius and number of segments. */
|
||||
void drawCircle(const Vec2& center, float radius, float angle, unsigned int segments, bool drawLineToCenter, float scaleX, float scaleY);
|
||||
void drawCircle(const Vec2& center, float radius, float angle, unsigned int segments, bool drawLineToCenter);
|
||||
void CC_DLL drawCircle(const Vec2& center, float radius, float angle, unsigned int segments, bool drawLineToCenter, float scaleX, float scaleY);
|
||||
void CC_DLL drawCircle(const Vec2& center, float radius, float angle, unsigned int segments, bool drawLineToCenter);
|
||||
|
||||
/** draws a solid circle given the center, radius and number of segments. */
|
||||
void drawSolidCircle(const Vec2& center, float radius, float angle, unsigned int segments, float scaleX, float scaleY);
|
||||
void drawSolidCircle(const Vec2& center, float radius, float angle, unsigned int segments);
|
||||
void CC_DLL drawSolidCircle(const Vec2& center, float radius, float angle, unsigned int segments, float scaleX, float scaleY);
|
||||
void CC_DLL drawSolidCircle(const Vec2& center, float radius, float angle, unsigned int segments);
|
||||
|
||||
/** draws a quad bezier path
|
||||
@warning This function could be pretty slow. Use it only for debugging purposes.
|
||||
@since v0.8
|
||||
*/
|
||||
void drawQuadBezier(const Vec2& origin, const Vec2& control, const Vec2& destination, unsigned int segments);
|
||||
void CC_DLL drawQuadBezier(const Vec2& origin, const Vec2& control, const Vec2& destination, unsigned int segments);
|
||||
|
||||
/** draws a cubic bezier path
|
||||
@warning This function could be pretty slow. Use it only for debugging purposes.
|
||||
@since v0.8
|
||||
*/
|
||||
void drawCubicBezier(const Vec2& origin, const Vec2& control1, const Vec2& control2, const Vec2& destination, unsigned int segments);
|
||||
void CC_DLL drawCubicBezier(const Vec2& origin, const Vec2& control1, const Vec2& control2, const Vec2& destination, unsigned int segments);
|
||||
|
||||
/** draws a Catmull Rom path.
|
||||
@warning This function could be pretty slow. Use it only for debugging purposes.
|
||||
@since v2.0
|
||||
*/
|
||||
void drawCatmullRom(PointArray *arrayOfControlPoints, unsigned int segments);
|
||||
void CC_DLL drawCatmullRom(PointArray *arrayOfControlPoints, unsigned int segments);
|
||||
|
||||
/** draws a Cardinal Spline path.
|
||||
@warning This function could be pretty slow. Use it only for debugging purposes.
|
||||
@since v2.0
|
||||
*/
|
||||
void drawCardinalSpline(PointArray *config, float tension, unsigned int segments);
|
||||
void CC_DLL drawCardinalSpline(PointArray *config, float tension, unsigned int segments);
|
||||
|
||||
/** set the drawing color with 4 unsigned bytes
|
||||
@since v2.0
|
||||
*/
|
||||
void setDrawColor4B(GLubyte r, GLubyte g, GLubyte b, GLubyte a);
|
||||
void CC_DLL setDrawColor4B(GLubyte r, GLubyte g, GLubyte b, GLubyte a);
|
||||
|
||||
/** set the drawing color with 4 floats
|
||||
@since v2.0
|
||||
*/
|
||||
void setDrawColor4F(GLfloat r, GLfloat g, GLfloat b, GLfloat a);
|
||||
void CC_DLL setDrawColor4F(GLfloat r, GLfloat g, GLfloat b, GLfloat a);
|
||||
|
||||
/** set the point size in points. Default 1.
|
||||
@since v2.0
|
||||
*/
|
||||
void setPointSize(GLfloat pointSize);
|
||||
void CC_DLL setPointSize(GLfloat pointSize);
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -49,15 +49,16 @@ THE SOFTWARE.
|
|||
#include <algorithm>
|
||||
|
||||
NS_CC_BEGIN
|
||||
namespace experimental {
|
||||
|
||||
const int FastTMXLayer::FAST_TMX_ORIENTATION_ORTHO = 0;
|
||||
const int FastTMXLayer::FAST_TMX_ORIENTATION_HEX = 1;
|
||||
const int FastTMXLayer::FAST_TMX_ORIENTATION_ISO = 2;
|
||||
const int TMXLayer::FAST_TMX_ORIENTATION_ORTHO = 0;
|
||||
const int TMXLayer::FAST_TMX_ORIENTATION_HEX = 1;
|
||||
const int TMXLayer::FAST_TMX_ORIENTATION_ISO = 2;
|
||||
|
||||
// FastTMXLayer - init & alloc & dealloc
|
||||
FastTMXLayer * FastTMXLayer::create(TMXTilesetInfo *tilesetInfo, TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo)
|
||||
TMXLayer * TMXLayer::create(TMXTilesetInfo *tilesetInfo, TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo)
|
||||
{
|
||||
FastTMXLayer *ret = new FastTMXLayer();
|
||||
TMXLayer *ret = new TMXLayer();
|
||||
if (ret->initWithTilesetInfo(tilesetInfo, layerInfo, mapInfo))
|
||||
{
|
||||
ret->autorelease();
|
||||
|
@ -66,7 +67,7 @@ FastTMXLayer * FastTMXLayer::create(TMXTilesetInfo *tilesetInfo, TMXLayerInfo *l
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
bool FastTMXLayer::initWithTilesetInfo(TMXTilesetInfo *tilesetInfo, TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo)
|
||||
bool TMXLayer::initWithTilesetInfo(TMXTilesetInfo *tilesetInfo, TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo)
|
||||
{
|
||||
|
||||
if( tilesetInfo )
|
||||
|
@ -108,7 +109,7 @@ bool FastTMXLayer::initWithTilesetInfo(TMXTilesetInfo *tilesetInfo, TMXLayerInfo
|
|||
return true;
|
||||
}
|
||||
|
||||
FastTMXLayer::FastTMXLayer()
|
||||
TMXLayer::TMXLayer()
|
||||
: _layerName("")
|
||||
, _layerSize(Size::ZERO)
|
||||
, _mapTileSize(Size::ZERO)
|
||||
|
@ -124,7 +125,7 @@ FastTMXLayer::FastTMXLayer()
|
|||
_buffersVBO[0] = _buffersVBO[1] = 0;
|
||||
}
|
||||
|
||||
FastTMXLayer::~FastTMXLayer()
|
||||
TMXLayer::~TMXLayer()
|
||||
{
|
||||
CC_SAFE_RELEASE(_tileSet);
|
||||
CC_SAFE_RELEASE(_texture);
|
||||
|
@ -140,7 +141,7 @@ FastTMXLayer::~FastTMXLayer()
|
|||
}
|
||||
}
|
||||
|
||||
void FastTMXLayer::draw(Renderer *renderer, const Mat4& transform, uint32_t flags)
|
||||
void TMXLayer::draw(Renderer *renderer, const Mat4& transform, uint32_t flags)
|
||||
{
|
||||
updateTotalQuads();
|
||||
|
||||
|
@ -169,13 +170,13 @@ void FastTMXLayer::draw(Renderer *renderer, const Mat4& transform, uint32_t flag
|
|||
auto& cmd = _renderCommands[index++];
|
||||
|
||||
cmd.init(iter.first);
|
||||
cmd.func = CC_CALLBACK_0(FastTMXLayer::onDraw, this, _indicesVertexZOffsets[iter.first], iter.second);
|
||||
cmd.func = CC_CALLBACK_0(TMXLayer::onDraw, this, _indicesVertexZOffsets[iter.first], iter.second);
|
||||
renderer->addCommand(&cmd);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void FastTMXLayer::onDraw(int offset, int count)
|
||||
void TMXLayer::onDraw(int offset, int count)
|
||||
{
|
||||
GL::bindTexture2D(_texture->getName());
|
||||
getGLProgramState()->apply(_modelViewTransform);
|
||||
|
@ -194,7 +195,7 @@ void FastTMXLayer::onDraw(int offset, int count)
|
|||
CC_INCREMENT_GL_DRAWN_BATCHES_AND_VERTICES(1, count * 4);
|
||||
}
|
||||
|
||||
void FastTMXLayer::updateTiles(const Rect& culledRect)
|
||||
void TMXLayer::updateTiles(const Rect& culledRect)
|
||||
{
|
||||
Rect visibleTiles = culledRect;
|
||||
Size mapTileSize = CC_SIZE_PIXELS_TO_POINTS(_mapTileSize);
|
||||
|
@ -287,7 +288,7 @@ void FastTMXLayer::updateTiles(const Rect& culledRect)
|
|||
|
||||
}
|
||||
|
||||
void FastTMXLayer::updateVertexBuffer()
|
||||
void TMXLayer::updateVertexBuffer()
|
||||
{
|
||||
GL::bindVAO(0);
|
||||
if(!glIsBuffer(_buffersVBO[0]))
|
||||
|
@ -300,7 +301,7 @@ void FastTMXLayer::updateVertexBuffer()
|
|||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
}
|
||||
|
||||
void FastTMXLayer::updateIndexBuffer()
|
||||
void TMXLayer::updateIndexBuffer()
|
||||
{
|
||||
if(!glIsBuffer(_buffersVBO[1]))
|
||||
{
|
||||
|
@ -312,7 +313,7 @@ void FastTMXLayer::updateIndexBuffer()
|
|||
}
|
||||
|
||||
// FastTMXLayer - setup Tiles
|
||||
void FastTMXLayer::setupTiles()
|
||||
void TMXLayer::setupTiles()
|
||||
{
|
||||
// Optimization: quick hack that sets the image size on the tileset
|
||||
_tileSet->_imageSize = _texture->getContentSizeInPixels();
|
||||
|
@ -352,7 +353,7 @@ void FastTMXLayer::setupTiles()
|
|||
|
||||
}
|
||||
|
||||
Mat4 FastTMXLayer::tileToNodeTransform()
|
||||
Mat4 TMXLayer::tileToNodeTransform()
|
||||
{
|
||||
float w = _mapTileSize.width / CC_CONTENT_SCALE_FACTOR();
|
||||
float h = _mapTileSize.height / CC_CONTENT_SCALE_FACTOR();
|
||||
|
@ -404,7 +405,7 @@ Mat4 FastTMXLayer::tileToNodeTransform()
|
|||
|
||||
}
|
||||
|
||||
void FastTMXLayer::updateTotalQuads()
|
||||
void TMXLayer::updateTotalQuads()
|
||||
{
|
||||
if(_quadsDirty)
|
||||
{
|
||||
|
@ -536,7 +537,7 @@ void FastTMXLayer::updateTotalQuads()
|
|||
}
|
||||
|
||||
// removing / getting tiles
|
||||
Sprite* FastTMXLayer::getTileAt(const Vec2& tileCoordinate)
|
||||
Sprite* TMXLayer::getTileAt(const Vec2& tileCoordinate)
|
||||
{
|
||||
CCASSERT( tileCoordinate.x < _layerSize.width && tileCoordinate.y < _layerSize.height && tileCoordinate.x >=0 && tileCoordinate.y >=0, "TMXLayer: invalid position");
|
||||
CCASSERT( _tiles, "TMXLayer: the tiles map has been released");
|
||||
|
@ -576,7 +577,7 @@ Sprite* FastTMXLayer::getTileAt(const Vec2& tileCoordinate)
|
|||
return tile;
|
||||
}
|
||||
|
||||
int FastTMXLayer::getTileGIDAt(const Vec2& tileCoordinate, TMXTileFlags* flags/* = nullptr*/)
|
||||
int TMXLayer::getTileGIDAt(const Vec2& tileCoordinate, TMXTileFlags* flags/* = nullptr*/)
|
||||
{
|
||||
CCASSERT(tileCoordinate.x < _layerSize.width && tileCoordinate.y < _layerSize.height && tileCoordinate.x >=0 && tileCoordinate.y >=0, "TMXLayer: invalid position");
|
||||
CCASSERT(_tiles, "TMXLayer: the tiles map has been released");
|
||||
|
@ -602,12 +603,12 @@ int FastTMXLayer::getTileGIDAt(const Vec2& tileCoordinate, TMXTileFlags* flags/*
|
|||
return (tile & kTMXFlippedMask);
|
||||
}
|
||||
|
||||
Vec2 FastTMXLayer::getPositionAt(const Vec2& pos)
|
||||
Vec2 TMXLayer::getPositionAt(const Vec2& pos)
|
||||
{
|
||||
return PointApplyTransform(pos, _tileToNodeTransform);
|
||||
}
|
||||
|
||||
int FastTMXLayer::getVertexZForPos(const Vec2& pos)
|
||||
int TMXLayer::getVertexZForPos(const Vec2& pos)
|
||||
{
|
||||
int ret = 0;
|
||||
int maxVal = 0;
|
||||
|
@ -638,7 +639,7 @@ int FastTMXLayer::getVertexZForPos(const Vec2& pos)
|
|||
return ret;
|
||||
}
|
||||
|
||||
void FastTMXLayer::removeTileAt(const Vec2& tileCoordinate)
|
||||
void TMXLayer::removeTileAt(const Vec2& tileCoordinate)
|
||||
{
|
||||
|
||||
CCASSERT( tileCoordinate.x < _layerSize.width && tileCoordinate.y < _layerSize.height && tileCoordinate.x >=0 && tileCoordinate.y >=0, "TMXLayer: invalid position");
|
||||
|
@ -661,7 +662,7 @@ void FastTMXLayer::removeTileAt(const Vec2& tileCoordinate)
|
|||
}
|
||||
}
|
||||
|
||||
void FastTMXLayer::setFlaggedTileGIDByIndex(int index, int gid)
|
||||
void TMXLayer::setFlaggedTileGIDByIndex(int index, int gid)
|
||||
{
|
||||
if(gid == _tiles[index]) return;
|
||||
_tiles[index] = gid;
|
||||
|
@ -669,7 +670,7 @@ void FastTMXLayer::setFlaggedTileGIDByIndex(int index, int gid)
|
|||
_dirty = true;
|
||||
}
|
||||
|
||||
void FastTMXLayer::removeChild(Node* node, bool cleanup)
|
||||
void TMXLayer::removeChild(Node* node, bool cleanup)
|
||||
{
|
||||
int tag = node->getTag();
|
||||
auto it = _spriteContainer.find(tag);
|
||||
|
@ -680,8 +681,8 @@ void FastTMXLayer::removeChild(Node* node, bool cleanup)
|
|||
Node::removeChild(node, cleanup);
|
||||
}
|
||||
|
||||
// FastTMXLayer - Properties
|
||||
Value FastTMXLayer::getProperty(const std::string& propertyName) const
|
||||
// TMXLayer - Properties
|
||||
Value TMXLayer::getProperty(const std::string& propertyName) const
|
||||
{
|
||||
if (_properties.find(propertyName) != _properties.end())
|
||||
return _properties.at(propertyName);
|
||||
|
@ -689,7 +690,7 @@ Value FastTMXLayer::getProperty(const std::string& propertyName) const
|
|||
return Value();
|
||||
}
|
||||
|
||||
void FastTMXLayer::parseInternalProperties()
|
||||
void TMXLayer::parseInternalProperties()
|
||||
{
|
||||
auto vertexz = getProperty("cc_vertexz");
|
||||
if (vertexz.isNull()) return;
|
||||
|
@ -719,7 +720,7 @@ void FastTMXLayer::parseInternalProperties()
|
|||
}
|
||||
|
||||
//CCTMXLayer2 - obtaining positions, offset
|
||||
Vec2 FastTMXLayer::calculateLayerOffset(const Vec2& pos)
|
||||
Vec2 TMXLayer::calculateLayerOffset(const Vec2& pos)
|
||||
{
|
||||
Vec2 ret = Vec2::ZERO;
|
||||
switch (_layerOrientation)
|
||||
|
@ -740,12 +741,12 @@ Vec2 FastTMXLayer::calculateLayerOffset(const Vec2& pos)
|
|||
}
|
||||
|
||||
// TMXLayer - adding / remove tiles
|
||||
void FastTMXLayer::setTileGID(int gid, const Vec2& tileCoordinate)
|
||||
void TMXLayer::setTileGID(int gid, const Vec2& tileCoordinate)
|
||||
{
|
||||
setTileGID(gid, tileCoordinate, (TMXTileFlags)0);
|
||||
}
|
||||
|
||||
void FastTMXLayer::setTileGID(int gid, const Vec2& tileCoordinate, TMXTileFlags flags)
|
||||
void TMXLayer::setTileGID(int gid, const Vec2& tileCoordinate, TMXTileFlags flags)
|
||||
{
|
||||
CCASSERT(tileCoordinate.x < _layerSize.width && tileCoordinate.y < _layerSize.height && tileCoordinate.x >=0 && tileCoordinate.y >=0, "TMXLayer: invalid position");
|
||||
CCASSERT(_tiles, "TMXLayer: the tiles map has been released");
|
||||
|
@ -796,7 +797,7 @@ void FastTMXLayer::setTileGID(int gid, const Vec2& tileCoordinate, TMXTileFlags
|
|||
}
|
||||
}
|
||||
|
||||
void FastTMXLayer::setupTileSprite(Sprite* sprite, Vec2 pos, int gid)
|
||||
void TMXLayer::setupTileSprite(Sprite* sprite, Vec2 pos, int gid)
|
||||
{
|
||||
sprite->setPosition(getPositionAt(pos));
|
||||
sprite->setPositionZ((float)getVertexZForPos(pos));
|
||||
|
@ -852,9 +853,11 @@ void FastTMXLayer::setupTileSprite(Sprite* sprite, Vec2 pos, int gid)
|
|||
}
|
||||
}
|
||||
|
||||
std::string FastTMXLayer::getDescription() const
|
||||
std::string TMXLayer::getDescription() const
|
||||
{
|
||||
return StringUtils::format("<FastTMXLayer | tag = %d, size = %d,%d>", _tag, (int)_mapTileSize.width, (int)_mapTileSize.height);
|
||||
}
|
||||
|
||||
} //end of namespace experimental
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -45,6 +45,8 @@ class Texture2D;
|
|||
class Sprite;
|
||||
struct _ccCArray;
|
||||
|
||||
namespace experimental{
|
||||
|
||||
/**
|
||||
* @addtogroup tilemap_parallax_nodes
|
||||
* @{
|
||||
|
@ -76,20 +78,20 @@ http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:tiled_maps
|
|||
@since v3.2
|
||||
*/
|
||||
|
||||
class CC_DLL FastTMXLayer : public Node
|
||||
class CC_DLL TMXLayer : public Node
|
||||
{
|
||||
public:
|
||||
/** creates a FastTMXLayer with an tileset info, a layer info and a map info */
|
||||
static FastTMXLayer * create(TMXTilesetInfo *tilesetInfo, TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo);
|
||||
static TMXLayer * create(TMXTilesetInfo *tilesetInfo, TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo);
|
||||
/**
|
||||
* @js ctor
|
||||
*/
|
||||
FastTMXLayer();
|
||||
TMXLayer();
|
||||
/**
|
||||
* @js NA
|
||||
* @lua NA
|
||||
*/
|
||||
virtual ~FastTMXLayer();
|
||||
virtual ~TMXLayer();
|
||||
|
||||
/** returns the tile gid at a given tile coordinate. It also returns the tile flags.
|
||||
*/
|
||||
|
@ -256,7 +258,7 @@ public:
|
|||
|
||||
// end of tilemap_parallax_nodes group
|
||||
/// @}
|
||||
|
||||
} //end of namespace experimental
|
||||
NS_CC_END
|
||||
|
||||
#endif //__CCTMX_LAYER2_H__
|
||||
|
|
|
@ -34,12 +34,13 @@ THE SOFTWARE.
|
|||
#include "deprecated/CCString.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
namespace experimental {
|
||||
|
||||
// implementation FastTMXTiledMap
|
||||
|
||||
FastTMXTiledMap * FastTMXTiledMap::create(const std::string& tmxFile)
|
||||
TMXTiledMap * TMXTiledMap::create(const std::string& tmxFile)
|
||||
{
|
||||
FastTMXTiledMap *ret = new FastTMXTiledMap();
|
||||
TMXTiledMap *ret = new TMXTiledMap();
|
||||
if (ret->initWithTMXFile(tmxFile))
|
||||
{
|
||||
ret->autorelease();
|
||||
|
@ -49,9 +50,9 @@ FastTMXTiledMap * FastTMXTiledMap::create(const std::string& tmxFile)
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
FastTMXTiledMap* FastTMXTiledMap::createWithXML(const std::string& tmxString, const std::string& resourcePath)
|
||||
TMXTiledMap* TMXTiledMap::createWithXML(const std::string& tmxString, const std::string& resourcePath)
|
||||
{
|
||||
FastTMXTiledMap *ret = new FastTMXTiledMap();
|
||||
TMXTiledMap *ret = new TMXTiledMap();
|
||||
if (ret->initWithXML(tmxString, resourcePath))
|
||||
{
|
||||
ret->autorelease();
|
||||
|
@ -61,7 +62,7 @@ FastTMXTiledMap* FastTMXTiledMap::createWithXML(const std::string& tmxString, co
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
bool FastTMXTiledMap::initWithTMXFile(const std::string& tmxFile)
|
||||
bool TMXTiledMap::initWithTMXFile(const std::string& tmxFile)
|
||||
{
|
||||
CCASSERT(tmxFile.size()>0, "FastTMXTiledMap: tmx file should not be empty");
|
||||
|
||||
|
@ -79,7 +80,7 @@ bool FastTMXTiledMap::initWithTMXFile(const std::string& tmxFile)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool FastTMXTiledMap::initWithXML(const std::string& tmxString, const std::string& resourcePath)
|
||||
bool TMXTiledMap::initWithXML(const std::string& tmxString, const std::string& resourcePath)
|
||||
{
|
||||
setContentSize(Size::ZERO);
|
||||
|
||||
|
@ -91,21 +92,21 @@ bool FastTMXTiledMap::initWithXML(const std::string& tmxString, const std::strin
|
|||
return true;
|
||||
}
|
||||
|
||||
FastTMXTiledMap::FastTMXTiledMap()
|
||||
TMXTiledMap::TMXTiledMap()
|
||||
:_mapSize(Size::ZERO)
|
||||
,_tileSize(Size::ZERO)
|
||||
{
|
||||
}
|
||||
|
||||
FastTMXTiledMap::~FastTMXTiledMap()
|
||||
TMXTiledMap::~TMXTiledMap()
|
||||
{
|
||||
}
|
||||
|
||||
// private
|
||||
FastTMXLayer * FastTMXTiledMap::parseLayer(TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo)
|
||||
TMXLayer * TMXTiledMap::parseLayer(TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo)
|
||||
{
|
||||
TMXTilesetInfo *tileset = tilesetForLayer(layerInfo, mapInfo);
|
||||
FastTMXLayer *layer = FastTMXLayer::create(tileset, layerInfo, mapInfo);
|
||||
TMXLayer *layer = TMXLayer::create(tileset, layerInfo, mapInfo);
|
||||
|
||||
// tell the layerinfo to release the ownership of the tiles map.
|
||||
layerInfo->_ownTiles = false;
|
||||
|
@ -114,7 +115,7 @@ FastTMXLayer * FastTMXTiledMap::parseLayer(TMXLayerInfo *layerInfo, TMXMapInfo *
|
|||
return layer;
|
||||
}
|
||||
|
||||
TMXTilesetInfo * FastTMXTiledMap::tilesetForLayer(TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo)
|
||||
TMXTilesetInfo * TMXTiledMap::tilesetForLayer(TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo)
|
||||
{
|
||||
Size size = layerInfo->_layerSize;
|
||||
auto& tilesets = mapInfo->getTilesets();
|
||||
|
@ -155,7 +156,7 @@ TMXTilesetInfo * FastTMXTiledMap::tilesetForLayer(TMXLayerInfo *layerInfo, TMXMa
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
void FastTMXTiledMap::buildWithMapInfo(TMXMapInfo* mapInfo)
|
||||
void TMXTiledMap::buildWithMapInfo(TMXMapInfo* mapInfo)
|
||||
{
|
||||
_mapSize = mapInfo->getMapSize();
|
||||
_tileSize = mapInfo->getTileSize();
|
||||
|
@ -173,7 +174,7 @@ void FastTMXTiledMap::buildWithMapInfo(TMXMapInfo* mapInfo)
|
|||
for(const auto &layerInfo : layers) {
|
||||
if (layerInfo->_visible)
|
||||
{
|
||||
FastTMXLayer *child = parseLayer(layerInfo, mapInfo);
|
||||
TMXLayer *child = parseLayer(layerInfo, mapInfo);
|
||||
addChild(child, idx, idx);
|
||||
|
||||
// update content size with the max size
|
||||
|
@ -189,13 +190,13 @@ void FastTMXTiledMap::buildWithMapInfo(TMXMapInfo* mapInfo)
|
|||
}
|
||||
|
||||
// public
|
||||
FastTMXLayer * FastTMXTiledMap::getLayer(const std::string& layerName) const
|
||||
TMXLayer * TMXTiledMap::getLayer(const std::string& layerName) const
|
||||
{
|
||||
CCASSERT(layerName.size() > 0, "Invalid layer name!");
|
||||
|
||||
for (auto& child : _children)
|
||||
{
|
||||
FastTMXLayer* layer = dynamic_cast<FastTMXLayer*>(child);
|
||||
TMXLayer* layer = dynamic_cast<TMXLayer*>(child);
|
||||
if(layer)
|
||||
{
|
||||
if(layerName.compare( layer->getLayerName()) == 0)
|
||||
|
@ -209,7 +210,7 @@ FastTMXLayer * FastTMXTiledMap::getLayer(const std::string& layerName) const
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
TMXObjectGroup * FastTMXTiledMap::getObjectGroup(const std::string& groupName) const
|
||||
TMXObjectGroup * TMXTiledMap::getObjectGroup(const std::string& groupName) const
|
||||
{
|
||||
CCASSERT(groupName.size() > 0, "Invalid group name!");
|
||||
|
||||
|
@ -230,7 +231,7 @@ TMXObjectGroup * FastTMXTiledMap::getObjectGroup(const std::string& groupName) c
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
Value FastTMXTiledMap::getProperty(const std::string& propertyName) const
|
||||
Value TMXTiledMap::getProperty(const std::string& propertyName) const
|
||||
{
|
||||
if (_properties.find(propertyName) != _properties.end())
|
||||
return _properties.at(propertyName);
|
||||
|
@ -238,7 +239,7 @@ Value FastTMXTiledMap::getProperty(const std::string& propertyName) const
|
|||
return Value();
|
||||
}
|
||||
|
||||
Value FastTMXTiledMap::getPropertiesForGID(int GID) const
|
||||
Value TMXTiledMap::getPropertiesForGID(int GID) const
|
||||
{
|
||||
if (_tileProperties.find(GID) != _tileProperties.end())
|
||||
return _tileProperties.at(GID);
|
||||
|
@ -246,11 +247,12 @@ Value FastTMXTiledMap::getPropertiesForGID(int GID) const
|
|||
return Value();
|
||||
}
|
||||
|
||||
std::string FastTMXTiledMap::getDescription() const
|
||||
std::string TMXTiledMap::getDescription() const
|
||||
{
|
||||
return StringUtils::format("<FastTMXTiledMap | Tag = %d, Layers = %d", _tag, static_cast<int>(_children.size()));
|
||||
}
|
||||
|
||||
} //end of namespace experimental
|
||||
|
||||
NS_CC_END
|
||||
|
||||
|
|
|
@ -33,11 +33,14 @@ THE SOFTWARE.
|
|||
NS_CC_BEGIN
|
||||
|
||||
class TMXObjectGroup;
|
||||
class FastTMXLayer;
|
||||
class TMXLayerInfo;
|
||||
class TMXTilesetInfo;
|
||||
class TMXMapInfo;
|
||||
|
||||
namespace experimental {
|
||||
|
||||
class TMXLayer;
|
||||
|
||||
/** @brief FastTMXTiledMap knows how to parse and render a TMX map.
|
||||
|
||||
It adds support for the TMX tiled map format used by http://www.mapeditor.org
|
||||
|
@ -89,17 +92,17 @@ object->getProperty(name_of_the_property);
|
|||
|
||||
@since v3.2
|
||||
*/
|
||||
class CC_DLL FastTMXTiledMap : public Node
|
||||
class CC_DLL TMXTiledMap : public Node
|
||||
{
|
||||
public:
|
||||
/** creates a TMX Tiled Map with a TMX file.*/
|
||||
static FastTMXTiledMap* create(const std::string& tmxFile);
|
||||
static TMXTiledMap* create(const std::string& tmxFile);
|
||||
|
||||
/** initializes a TMX Tiled Map with a TMX formatted XML string and a path to TMX resources */
|
||||
static FastTMXTiledMap* createWithXML(const std::string& tmxString, const std::string& resourcePath);
|
||||
static TMXTiledMap* createWithXML(const std::string& tmxString, const std::string& resourcePath);
|
||||
|
||||
/** return the FastTMXLayer for the specific layer */
|
||||
FastTMXLayer* getLayer(const std::string& layerName) const;
|
||||
TMXLayer* getLayer(const std::string& layerName) const;
|
||||
|
||||
/** return the TMXObjectGroup for the specific group */
|
||||
TMXObjectGroup* getObjectGroup(const std::string& groupName) const;
|
||||
|
@ -141,12 +144,12 @@ protected:
|
|||
/**
|
||||
* @js ctor
|
||||
*/
|
||||
FastTMXTiledMap();
|
||||
TMXTiledMap();
|
||||
/**
|
||||
* @js NA
|
||||
* @lua NA
|
||||
*/
|
||||
virtual ~FastTMXTiledMap();
|
||||
virtual ~TMXTiledMap();
|
||||
|
||||
/** initializes a TMX Tiled Map with a TMX file */
|
||||
bool initWithTMXFile(const std::string& tmxFile);
|
||||
|
@ -154,7 +157,7 @@ protected:
|
|||
/** initializes a TMX Tiled Map with a TMX formatted XML string and a path to TMX resources */
|
||||
bool initWithXML(const std::string& tmxString, const std::string& resourcePath);
|
||||
|
||||
FastTMXLayer * parseLayer(TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo);
|
||||
TMXLayer * parseLayer(TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo);
|
||||
TMXTilesetInfo * tilesetForLayer(TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo);
|
||||
void buildWithMapInfo(TMXMapInfo* mapInfo);
|
||||
|
||||
|
@ -173,13 +176,15 @@ protected:
|
|||
ValueMapIntKey _tileProperties;
|
||||
|
||||
private:
|
||||
CC_DISALLOW_COPY_AND_ASSIGN(FastTMXTiledMap);
|
||||
CC_DISALLOW_COPY_AND_ASSIGN(TMXTiledMap);
|
||||
|
||||
};
|
||||
|
||||
// end of tilemap_parallax_nodes group
|
||||
/// @}
|
||||
|
||||
} //end of namespace experimental
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //__CCTMX_TILE_MAP2_H__
|
||||
|
|
|
@ -22,11 +22,11 @@
|
|||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#include <sstream>
|
||||
|
||||
#include "2d/CCFontAtlasCache.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
#include "2d/CCFontFNT.h"
|
||||
#include "2d/CCFontFreeType.h"
|
||||
#include "CCFontCharMap.h"
|
||||
|
@ -178,7 +178,10 @@ FontAtlas * FontAtlasCache::getFontAtlasCharMap(Texture2D* texture, int itemWidt
|
|||
|
||||
FontAtlas * FontAtlasCache::getFontAtlasCharMap(const std::string& charMapFile, int itemWidth, int itemHeight, int startCharMap)
|
||||
{
|
||||
std::string atlasName = generateFontName(charMapFile, 0, GlyphCollection::CUSTOM,false);
|
||||
char tmp[255];
|
||||
snprintf(tmp,250,"name:%s_%d_%d_%d",charMapFile.c_str(),itemWidth,itemHeight,startCharMap);
|
||||
|
||||
std::string atlasName = generateFontName(tmp, 0, GlyphCollection::CUSTOM,false);
|
||||
|
||||
auto it = _atlasMap.find(atlasName);
|
||||
if ( it == _atlasMap.end() )
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#ifndef _CCFontAtlasCache_h_
|
||||
#define _CCFontAtlasCache_h_
|
||||
|
||||
#include <iostream>
|
||||
#include <unordered_map>
|
||||
|
||||
#include "2d/CCFontAtlas.h"
|
||||
|
|
|
@ -186,7 +186,7 @@ bool LabelTextFormatter::alignText(Label *theLabel)
|
|||
int i = 0;
|
||||
|
||||
int lineNumber = 0;
|
||||
int strLen = static_cast<int>(theLabel->_currentUTF16String.length());
|
||||
int strLen = theLabel->_limitShowCount;
|
||||
std::vector<char16_t> lastLine;
|
||||
auto strWhole = theLabel->_currentUTF16String;
|
||||
|
||||
|
|
|
@ -173,9 +173,9 @@ CC_CONSTRUCTOR_ACCESS:
|
|||
|
||||
protected:
|
||||
//add the api for avoid use deprecated api
|
||||
void _addTouchListener();
|
||||
CC_DEPRECATED_ATTRIBUTE void _addTouchListener() {}
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE void addTouchListener() { _addTouchListener();};
|
||||
CC_DEPRECATED_ATTRIBUTE void addTouchListener() {}
|
||||
CC_DEPRECATED_ATTRIBUTE int executeScriptTouchHandler(EventTouch::EventCode eventType, Touch* touch, Event* event);
|
||||
CC_DEPRECATED_ATTRIBUTE int executeScriptTouchesHandler(EventTouch::EventCode eventType, const std::vector<Touch*>& touches, Event* event);
|
||||
|
||||
|
|
|
@ -839,6 +839,18 @@ MenuItemToggle * MenuItemToggle::createWithTarget(Ref* target, SEL_MenuHandler s
|
|||
return ret;
|
||||
}
|
||||
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8) || (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
|
||||
MenuItemToggle * MenuItemToggle::createWithCallbackVA(const ccMenuCallback &callback, MenuItem* item, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, item);
|
||||
MenuItemToggle *ret = new MenuItemToggle();
|
||||
ret->initWithCallback(callback, item, args);
|
||||
ret->autorelease();
|
||||
va_end(args);
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
MenuItemToggle * MenuItemToggle::createWithCallback(const ccMenuCallback &callback, MenuItem* item, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
@ -849,6 +861,7 @@ MenuItemToggle * MenuItemToggle::createWithCallback(const ccMenuCallback &callba
|
|||
va_end(args);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
MenuItemToggle * MenuItemToggle::create()
|
||||
{
|
||||
|
|
|
@ -478,7 +478,25 @@ public:
|
|||
/** creates a menu item from a Array with a callable object */
|
||||
static MenuItemToggle * createWithCallback(const ccMenuCallback& callback, const Vector<MenuItem*>& menuItems);
|
||||
/** creates a menu item from a list of items with a callable object */
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8) || (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
|
||||
// WP8 in VS2012 does not support nullptr in variable args lists and variadic templates are also not supported
|
||||
typedef MenuItem* M;
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, M m1, std::nullptr_t listEnd) { return createWithCallbackVA(callback, m1, NULL); }
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, M m1, M m2, std::nullptr_t listEnd) { return createWithCallbackVA(callback, m1, m2, NULL); }
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, M m1, M m2, M m3, std::nullptr_t listEnd) { return createWithCallbackVA(callback, m1, m2, m3, NULL); }
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, M m1, M m2, M m3, M m4, std::nullptr_t listEnd) { return createWithCallbackVA(callback, m1, m2, m3, m4, NULL); }
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, M m1, M m2, M m3, M m4, M m5, std::nullptr_t listEnd) { return createWithCallbackVA(callback, m1, m2, m3, m4, m5, NULL); }
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, M m1, M m2, M m3, M m4, M m5, M m6, std::nullptr_t listEnd) { return createWithCallbackVA(callback, m1, m2, m3, m4, m5, m6, NULL); }
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, M m1, M m2, M m3, M m4, M m5, M m6, M m7, std::nullptr_t listEnd) { return createWithCallbackVA(callback, m1, m2, m3, m4, m5, m6, m7, NULL); }
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, M m1, M m2, M m3, M m4, M m5, M m6, M m7, M m8, std::nullptr_t listEnd) { return createWithCallbackVA(callback, m1, m2, m3, m4, m5, m6, m7, m8, NULL); }
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, M m1, M m2, M m3, M m4, M m5, M m6, M m7, M m8, M m9, std::nullptr_t listEnd) { return createWithCallbackVA(callback, m1, m2, m3, m4, m5, m6, m7, m8, m9, NULL); }
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, M m1, M m2, M m3, M m4, M m5, M m6, M m7, M m8, M m9, M m10, std::nullptr_t listEnd) { return createWithCallbackVA(callback, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, NULL); }
|
||||
|
||||
// On WP8 for lists longer than 10 items, use createWithArray or variadicCreate with NULL as the last argument
|
||||
static MenuItemToggle* createWithCallbackVA(const ccMenuCallback& callback, M item, ...);
|
||||
#else
|
||||
static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, MenuItem* item, ...) CC_REQUIRES_NULL_TERMINATION;
|
||||
#endif
|
||||
/** creates a menu item with no target/selector and no items */
|
||||
static MenuItemToggle* create();
|
||||
/** creates a menu item with a item */
|
||||
|
|
|
@ -1850,6 +1850,11 @@ bool Node::removeComponent(const std::string& name)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Node::removeComponent(Component *component)
|
||||
{
|
||||
return _componentContainer->remove(component);
|
||||
}
|
||||
|
||||
void Node::removeAllComponents()
|
||||
{
|
||||
if( _componentContainer )
|
||||
|
|
|
@ -71,7 +71,7 @@ enum {
|
|||
kNodeOnCleanup
|
||||
};
|
||||
|
||||
bool nodeComparisonLess(Node* n1, Node* n2);
|
||||
bool CC_DLL nodeComparisonLess(Node* n1, Node* n2);
|
||||
|
||||
class EventListener;
|
||||
|
||||
|
@ -712,6 +712,15 @@ public:
|
|||
* @since v3.2
|
||||
*/
|
||||
virtual Node* getChildByName(const std::string& name) const;
|
||||
/**
|
||||
* Gets a child from the container with its name that can be cast to Type T
|
||||
*
|
||||
* @param name An identifier to find the child node.
|
||||
*
|
||||
* @return a Node with the given name that can be cast to Type T
|
||||
*/
|
||||
template <typename T>
|
||||
inline T getChildByName(const std::string& name) const { return static_cast<T>(getChildByName(name)); }
|
||||
/** Search the children of the receiving node to perform processing for nodes which share a name.
|
||||
*
|
||||
* @param name The name to search for, supports c++11 regular expression.
|
||||
|
@ -1424,6 +1433,10 @@ public:
|
|||
*/
|
||||
virtual bool removeComponent(const std::string& name);
|
||||
|
||||
/**
|
||||
* removes a component by its pointer
|
||||
*/
|
||||
virtual bool removeComponent(Component *component);
|
||||
/**
|
||||
* removes all components
|
||||
*/
|
||||
|
|
|
@ -33,7 +33,7 @@ NS_CC_BEGIN
|
|||
|
||||
class GridBase;
|
||||
|
||||
class NodeGrid : public Node
|
||||
class CC_DLL NodeGrid : public Node
|
||||
{
|
||||
public:
|
||||
static NodeGrid* create();
|
||||
|
|
|
@ -94,6 +94,9 @@ RenderTexture::~RenderTexture()
|
|||
|
||||
void RenderTexture::listenToBackground(EventCustom *event)
|
||||
{
|
||||
// We have not found a way to dispatch the enter background message before the texture data are destroyed.
|
||||
// So we disable this pair of message handler at present.
|
||||
#if 0
|
||||
#if CC_ENABLE_CACHE_TEXTURE_DATA
|
||||
CC_SAFE_DELETE(_UITextureImage);
|
||||
|
||||
|
@ -118,10 +121,12 @@ void RenderTexture::listenToBackground(EventCustom *event)
|
|||
glDeleteFramebuffers(1, &_FBO);
|
||||
_FBO = 0;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void RenderTexture::listenToForeground(EventCustom *event)
|
||||
{
|
||||
#if 0
|
||||
#if CC_ENABLE_CACHE_TEXTURE_DATA
|
||||
// -- regenerate frame buffer object and attach the texture
|
||||
glGetIntegerv(GL_FRAMEBUFFER_BINDING, &_oldFBO);
|
||||
|
@ -139,6 +144,7 @@ void RenderTexture::listenToForeground(EventCustom *event)
|
|||
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, _texture->getName(), 0);
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, _oldFBO);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
RenderTexture * RenderTexture::create(int w, int h, Texture2D::PixelFormat eFormat)
|
||||
|
@ -564,6 +570,14 @@ void RenderTexture::onBegin()
|
|||
Mat4::createOrthographicOffCenter((float)-1.0 / widthRatio, (float)1.0 / widthRatio, (float)-1.0 / heightRatio, (float)1.0 / heightRatio, -1, 1, &orthoMatrix);
|
||||
director->multiplyMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_PROJECTION, orthoMatrix);
|
||||
}
|
||||
else
|
||||
{
|
||||
#if CC_TARGET_PLATFORM == CC_PLATFORM_WP8
|
||||
Mat4 modifiedProjection = director->getMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_PROJECTION);
|
||||
modifiedProjection = CCEGLView::sharedOpenGLView()->getReverseOrientationMatrix() * modifiedProjection;
|
||||
director->loadMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_PROJECTION, modifiedProjection);
|
||||
#endif
|
||||
}
|
||||
|
||||
//calculate viewport
|
||||
{
|
||||
|
|
|
@ -153,7 +153,7 @@ public:
|
|||
//
|
||||
virtual void onEnter() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionRotoZoom();
|
||||
virtual ~TransitionRotoZoom();
|
||||
|
||||
|
@ -175,7 +175,7 @@ public:
|
|||
//
|
||||
virtual void onEnter() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionJumpZoom();
|
||||
virtual ~TransitionJumpZoom();
|
||||
|
||||
|
@ -201,10 +201,11 @@ public:
|
|||
//
|
||||
virtual void onEnter() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionMoveInL();
|
||||
virtual ~TransitionMoveInL();
|
||||
|
||||
protected:
|
||||
/** initializes the scenes */
|
||||
virtual void initScenes();
|
||||
|
||||
|
@ -220,10 +221,11 @@ class CC_DLL TransitionMoveInR : public TransitionMoveInL
|
|||
public:
|
||||
static TransitionMoveInR* create(float t, Scene* scene);
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionMoveInR();
|
||||
virtual ~TransitionMoveInR();
|
||||
|
||||
protected:
|
||||
virtual void initScenes();
|
||||
|
||||
private:
|
||||
|
@ -238,10 +240,11 @@ class CC_DLL TransitionMoveInT : public TransitionMoveInL
|
|||
public:
|
||||
static TransitionMoveInT* create(float t, Scene* scene);
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionMoveInT();
|
||||
virtual ~TransitionMoveInT();
|
||||
|
||||
protected:
|
||||
virtual void initScenes();
|
||||
|
||||
private:
|
||||
|
@ -256,10 +259,11 @@ class CC_DLL TransitionMoveInB : public TransitionMoveInL
|
|||
public:
|
||||
static TransitionMoveInB* create(float t, Scene* scene);
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionMoveInB();
|
||||
virtual ~TransitionMoveInB();
|
||||
|
||||
protected:
|
||||
virtual void initScenes();
|
||||
|
||||
private:
|
||||
|
@ -284,10 +288,11 @@ public:
|
|||
//
|
||||
virtual void onEnter() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionSlideInL();
|
||||
virtual ~TransitionSlideInL();
|
||||
|
||||
protected:
|
||||
/** initializes the scenes */
|
||||
virtual void initScenes(void);
|
||||
|
||||
|
@ -308,10 +313,11 @@ public:
|
|||
/** returns the action that will be performed by the incoming and outgoing scene */
|
||||
virtual ActionInterval* action(void);
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionSlideInR();
|
||||
virtual ~TransitionSlideInR();
|
||||
|
||||
protected:
|
||||
/** initializes the scenes */
|
||||
virtual void initScenes(void);
|
||||
|
||||
|
@ -332,10 +338,11 @@ public:
|
|||
/** returns the action that will be performed by the incoming and outgoing scene */
|
||||
virtual ActionInterval* action(void);
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionSlideInB();
|
||||
virtual ~TransitionSlideInB();
|
||||
|
||||
protected:
|
||||
/** initializes the scenes */
|
||||
virtual void initScenes();
|
||||
|
||||
|
@ -356,10 +363,11 @@ public:
|
|||
/** returns the action that will be performed by the incoming and outgoing scene */
|
||||
virtual ActionInterval* action(void);
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionSlideInT();
|
||||
virtual ~TransitionSlideInT();
|
||||
|
||||
protected:
|
||||
/** initializes the scenes */
|
||||
virtual void initScenes(void);
|
||||
|
||||
|
@ -387,7 +395,7 @@ public:
|
|||
virtual void onEnter() override;
|
||||
virtual ActionInterval* easeActionWithAction(ActionInterval * action) override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionShrinkGrow();
|
||||
virtual ~TransitionShrinkGrow();
|
||||
|
||||
|
@ -414,7 +422,7 @@ public:
|
|||
*/
|
||||
virtual void onEnter() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionFlipX();
|
||||
virtual ~TransitionFlipX();
|
||||
|
||||
|
@ -441,7 +449,7 @@ public:
|
|||
*/
|
||||
virtual void onEnter() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionFlipY();
|
||||
virtual ~TransitionFlipY();
|
||||
|
||||
|
@ -468,7 +476,7 @@ public:
|
|||
*/
|
||||
virtual void onEnter() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionFlipAngular();
|
||||
virtual ~TransitionFlipAngular();
|
||||
|
||||
|
@ -495,7 +503,7 @@ public:
|
|||
*/
|
||||
virtual void onEnter() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionZoomFlipX();
|
||||
virtual ~TransitionZoomFlipX();
|
||||
|
||||
|
@ -522,7 +530,7 @@ public:
|
|||
*/
|
||||
virtual void onEnter() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionZoomFlipY();
|
||||
virtual ~TransitionZoomFlipY();
|
||||
|
||||
|
@ -549,7 +557,7 @@ public:
|
|||
*/
|
||||
virtual void onEnter() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionZoomFlipAngular();
|
||||
virtual ~TransitionZoomFlipAngular();
|
||||
|
||||
|
@ -625,7 +633,7 @@ public :
|
|||
*/
|
||||
virtual void onExit() override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionCrossFade();
|
||||
virtual ~TransitionCrossFade();
|
||||
|
||||
|
@ -653,10 +661,11 @@ public :
|
|||
virtual ActionInterval * easeActionWithAction(ActionInterval * action) override;
|
||||
virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionTurnOffTiles();
|
||||
virtual ~TransitionTurnOffTiles();
|
||||
|
||||
protected:
|
||||
virtual void sceneOrder() override;
|
||||
NodeGrid* _outSceneProxy;
|
||||
|
||||
|
@ -685,9 +694,12 @@ public:
|
|||
virtual ActionInterval * easeActionWithAction(ActionInterval * action) override;
|
||||
virtual void onExit() override;
|
||||
virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override;
|
||||
protected:
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionSplitCols();
|
||||
virtual ~TransitionSplitCols();
|
||||
|
||||
protected:
|
||||
void switchTargetToInscene();
|
||||
NodeGrid* _gridProxy;
|
||||
private:
|
||||
|
@ -707,7 +719,7 @@ public:
|
|||
//
|
||||
virtual ActionInterval* action(void) override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionSplitRows();
|
||||
virtual ~TransitionSplitRows();
|
||||
|
||||
|
@ -736,10 +748,12 @@ public:
|
|||
virtual ActionInterval* easeActionWithAction(ActionInterval * action) override;
|
||||
virtual void onExit() override;
|
||||
virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override;
|
||||
protected:
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionFadeTR();
|
||||
virtual ~TransitionFadeTR();
|
||||
|
||||
protected:
|
||||
virtual void sceneOrder();
|
||||
|
||||
NodeGrid* _outSceneProxy;
|
||||
|
@ -761,7 +775,7 @@ public:
|
|||
//
|
||||
virtual ActionInterval* actionWithSize(const Size& size) override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionFadeBL();
|
||||
virtual ~TransitionFadeBL();
|
||||
|
||||
|
@ -782,7 +796,7 @@ public:
|
|||
//
|
||||
virtual ActionInterval* actionWithSize(const Size& size) override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionFadeUp();
|
||||
virtual ~TransitionFadeUp();
|
||||
|
||||
|
@ -803,7 +817,7 @@ public:
|
|||
//
|
||||
virtual ActionInterval* actionWithSize(const Size& size) override;
|
||||
|
||||
protected:
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionFadeDown();
|
||||
virtual ~TransitionFadeDown();
|
||||
|
||||
|
|
|
@ -59,15 +59,6 @@ public:
|
|||
* scene is being turned from left over the outgoing scene.
|
||||
*/
|
||||
static TransitionPageTurn* create(float t,Scene* scene,bool backwards);
|
||||
/**
|
||||
* @js ctor
|
||||
*/
|
||||
TransitionPageTurn();
|
||||
/**
|
||||
* @js NA
|
||||
* @lua NA
|
||||
*/
|
||||
virtual ~TransitionPageTurn();
|
||||
|
||||
//
|
||||
// Overrides
|
||||
|
@ -89,6 +80,17 @@ public:
|
|||
virtual void onEnter() override;
|
||||
virtual void onExit() override;
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
/**
|
||||
* @js ctor
|
||||
*/
|
||||
TransitionPageTurn();
|
||||
/**
|
||||
* @js NA
|
||||
* @lua NA
|
||||
*/
|
||||
virtual ~TransitionPageTurn();
|
||||
|
||||
protected:
|
||||
virtual void sceneOrder() override;
|
||||
|
||||
|
|
|
@ -44,14 +44,16 @@ class CC_DLL TransitionProgress : public TransitionScene
|
|||
public:
|
||||
static TransitionProgress* create(float t, Scene* scene);
|
||||
|
||||
TransitionProgress();
|
||||
|
||||
//
|
||||
// Overrides
|
||||
//
|
||||
virtual void onEnter() override;
|
||||
virtual void onExit() override;
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
TransitionProgress();
|
||||
virtual ~TransitionProgress(){}
|
||||
|
||||
protected:
|
||||
virtual void sceneOrder() override;
|
||||
|
||||
|
@ -74,6 +76,13 @@ class CC_DLL TransitionProgressRadialCCW : public TransitionProgress
|
|||
public:
|
||||
static TransitionProgressRadialCCW* create(float t, Scene* scene);
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
/**
|
||||
* @js ctor
|
||||
*/
|
||||
TransitionProgressRadialCCW(){}
|
||||
virtual ~TransitionProgressRadialCCW(){}
|
||||
|
||||
protected:
|
||||
//
|
||||
// Overrides
|
||||
|
@ -91,6 +100,13 @@ class CC_DLL TransitionProgressRadialCW : public TransitionProgress
|
|||
public:
|
||||
static TransitionProgressRadialCW* create(float t, Scene* scene);
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
/**
|
||||
* @js ctor
|
||||
*/
|
||||
TransitionProgressRadialCW(){}
|
||||
virtual ~TransitionProgressRadialCW(){}
|
||||
|
||||
protected:
|
||||
//
|
||||
// Overrides
|
||||
|
@ -107,6 +123,13 @@ class CC_DLL TransitionProgressHorizontal : public TransitionProgress
|
|||
public:
|
||||
static TransitionProgressHorizontal* create(float t, Scene* scene);
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
/**
|
||||
* @js ctor
|
||||
*/
|
||||
TransitionProgressHorizontal(){}
|
||||
virtual ~TransitionProgressHorizontal(){}
|
||||
|
||||
protected:
|
||||
//
|
||||
// Overrides
|
||||
|
@ -119,6 +142,13 @@ class CC_DLL TransitionProgressVertical : public TransitionProgress
|
|||
public:
|
||||
static TransitionProgressVertical* create(float t, Scene* scene);
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
/**
|
||||
* @js ctor
|
||||
*/
|
||||
TransitionProgressVertical(){}
|
||||
virtual ~TransitionProgressVertical(){}
|
||||
|
||||
protected:
|
||||
//
|
||||
// Overrides
|
||||
|
@ -131,6 +161,13 @@ class CC_DLL TransitionProgressInOut : public TransitionProgress
|
|||
public:
|
||||
static TransitionProgressInOut* create(float t, Scene* scene);
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
/**
|
||||
* @js ctor
|
||||
*/
|
||||
TransitionProgressInOut(){}
|
||||
virtual ~TransitionProgressInOut(){}
|
||||
|
||||
protected:
|
||||
//
|
||||
// Overrides
|
||||
|
@ -145,6 +182,13 @@ class CC_DLL TransitionProgressOutIn : public TransitionProgress
|
|||
public:
|
||||
static TransitionProgressOutIn* create(float t, Scene* scene);
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
/**
|
||||
* @js ctor
|
||||
*/
|
||||
TransitionProgressOutIn(){}
|
||||
virtual ~TransitionProgressOutIn(){}
|
||||
|
||||
protected:
|
||||
//
|
||||
// Overrides
|
||||
|
|
|
@ -84,63 +84,63 @@ namespace tweenfunc {
|
|||
|
||||
|
||||
//tween functions for CCActionEase
|
||||
float easeIn(float time, float rate);
|
||||
float easeOut(float time, float rate);
|
||||
float easeInOut(float time, float rate);
|
||||
float CC_DLL easeIn(float time, float rate);
|
||||
float CC_DLL easeOut(float time, float rate);
|
||||
float CC_DLL easeInOut(float time, float rate);
|
||||
|
||||
float bezieratFunction( float a, float b, float c, float d, float t );
|
||||
float CC_DLL bezieratFunction( float a, float b, float c, float d, float t );
|
||||
|
||||
float quadraticIn(float time);
|
||||
float quadraticOut(float time);
|
||||
float quadraticInOut(float time);
|
||||
float CC_DLL quadraticIn(float time);
|
||||
float CC_DLL quadraticOut(float time);
|
||||
float CC_DLL quadraticInOut(float time);
|
||||
|
||||
|
||||
float tweenTo(float time, TweenType type, float *easingParam);
|
||||
float CC_DLL tweenTo(float time, TweenType type, float *easingParam);
|
||||
|
||||
float linear(float time);
|
||||
float CC_DLL linear(float time);
|
||||
|
||||
|
||||
float sineEaseIn(float time);
|
||||
float sineEaseOut(float time);
|
||||
float sineEaseInOut(float time);
|
||||
float CC_DLL sineEaseIn(float time);
|
||||
float CC_DLL sineEaseOut(float time);
|
||||
float CC_DLL sineEaseInOut(float time);
|
||||
|
||||
float quadEaseIn(float time);
|
||||
float quadEaseOut(float time);
|
||||
float quadEaseInOut(float time);
|
||||
float CC_DLL quadEaseIn(float time);
|
||||
float CC_DLL quadEaseOut(float time);
|
||||
float CC_DLL quadEaseInOut(float time);
|
||||
|
||||
float cubicEaseIn(float time);
|
||||
float cubicEaseOut(float time);
|
||||
float cubicEaseInOut(float time);
|
||||
float CC_DLL cubicEaseIn(float time);
|
||||
float CC_DLL cubicEaseOut(float time);
|
||||
float CC_DLL cubicEaseInOut(float time);
|
||||
|
||||
float quartEaseIn(float time);
|
||||
float quartEaseOut(float time);
|
||||
float quartEaseInOut(float time);
|
||||
float CC_DLL quartEaseIn(float time);
|
||||
float CC_DLL quartEaseOut(float time);
|
||||
float CC_DLL quartEaseInOut(float time);
|
||||
|
||||
float quintEaseIn(float time);
|
||||
float quintEaseOut(float time);
|
||||
float quintEaseInOut(float time);
|
||||
float CC_DLL quintEaseIn(float time);
|
||||
float CC_DLL quintEaseOut(float time);
|
||||
float CC_DLL quintEaseInOut(float time);
|
||||
|
||||
float expoEaseIn(float time);
|
||||
float expoEaseOut(float time);
|
||||
float expoEaseInOut(float time);
|
||||
float CC_DLL expoEaseIn(float time);
|
||||
float CC_DLL expoEaseOut(float time);
|
||||
float CC_DLL expoEaseInOut(float time);
|
||||
|
||||
float circEaseIn(float time);
|
||||
float circEaseOut(float time);
|
||||
float circEaseInOut(float time);
|
||||
float CC_DLL circEaseIn(float time);
|
||||
float CC_DLL circEaseOut(float time);
|
||||
float CC_DLL circEaseInOut(float time);
|
||||
|
||||
float elasticEaseIn(float time, float period);
|
||||
float elasticEaseOut(float time, float period);
|
||||
float elasticEaseInOut(float time, float period);
|
||||
float CC_DLL elasticEaseIn(float time, float period);
|
||||
float CC_DLL elasticEaseOut(float time, float period);
|
||||
float CC_DLL elasticEaseInOut(float time, float period);
|
||||
|
||||
float backEaseIn(float time);
|
||||
float backEaseOut(float time);
|
||||
float backEaseInOut(float time);
|
||||
float CC_DLL backEaseIn(float time);
|
||||
float CC_DLL backEaseOut(float time);
|
||||
float CC_DLL backEaseInOut(float time);
|
||||
|
||||
float bounceEaseIn(float time);
|
||||
float bounceEaseOut(float time);
|
||||
float bounceEaseInOut(float time);
|
||||
float CC_DLL bounceEaseIn(float time);
|
||||
float CC_DLL bounceEaseOut(float time);
|
||||
float CC_DLL bounceEaseInOut(float time);
|
||||
|
||||
float customEase(float time, float *easingParam);
|
||||
float CC_DLL customEase(float time, float *easingParam);
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
LIBRARY
|
|
@ -18,7 +18,7 @@
|
|||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '10.0'">v100</PlatformToolset>
|
||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '11.0'">v110</PlatformToolset>
|
||||
|
@ -27,7 +27,7 @@
|
|||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '10.0'">v100</PlatformToolset>
|
||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '11.0'">v110</PlatformToolset>
|
||||
|
@ -65,10 +65,10 @@
|
|||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LibraryPath>$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath)</LibraryPath>
|
||||
<LibraryPath>../../external/sqlite3/libraries/win32;$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LibraryPath>$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath)</LibraryPath>
|
||||
<LibraryPath>../../external/sqlite3/libraries/win32;$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<PreBuildEvent>
|
||||
|
@ -78,7 +78,7 @@
|
|||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\unzip;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\png\include\win32;$(EngineRoot)external\jpeg\include\win32;$(EngineRoot)external\tiff\include\win32;$(EngineRoot)external\webp\include\win32;$(EngineRoot)external\freetype2\include\win32;$(EngineRoot)external\win32-specific\icon\include;$(EngineRoot)external\win32-specific\zlib\include;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\xxhash;$(EngineRoot)external\ConvertUTF;$(EngineRoot)external;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_USRDLL;_DEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
|
@ -114,6 +114,8 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou
|
|||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(TargetName).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<ModuleDefinitionFile>cocos2d.def</ModuleDefinitionFile>
|
||||
<AdditionalDependencies>libchipmunk.lib;sqlite3.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
|
@ -127,7 +129,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou
|
|||
</PreBuildEvent>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\unzip;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\png\include\win32;$(EngineRoot)external\jpeg\include\win32;$(EngineRoot)external\tiff\include\win32;$(EngineRoot)external\webp\include\win32;$(EngineRoot)external\freetype2\include\win32;$(EngineRoot)external\win32-specific\icon\include;$(EngineRoot)external\win32-specific\zlib\include;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\xxhash;$(EngineRoot)external\ConvertUTF;$(EngineRoot)external;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_USRDLL;NDEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
|
@ -155,7 +157,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou
|
|||
</Command>
|
||||
</PreLinkEvent>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>libchipmunk.lib;sqlite3.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
|
||||
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries> ;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
|
@ -165,6 +167,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou
|
|||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(TargetName).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<ModuleDefinitionFile>cocos2d.def</ModuleDefinitionFile>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
|
@ -226,6 +229,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou
|
|||
<ClCompile Include="..\base\ccUtils.cpp" />
|
||||
<ClCompile Include="..\base\CCValue.cpp" />
|
||||
<ClCompile Include="..\base\etc1.cpp" />
|
||||
<ClCompile Include="..\base\pvr.cpp" />
|
||||
<ClCompile Include="..\base\ObjectFactory.cpp" />
|
||||
<ClCompile Include="..\base\s3tc.cpp" />
|
||||
<ClCompile Include="..\base\TGAlib.cpp" />
|
||||
|
@ -284,6 +288,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou
|
|||
<ClCompile Include="..\renderer\CCTexture2D.cpp" />
|
||||
<ClCompile Include="..\renderer\CCTextureAtlas.cpp" />
|
||||
<ClCompile Include="..\renderer\CCTextureCache.cpp" />
|
||||
<ClCompile Include="..\storage\local-storage\LocalStorage.cpp" />
|
||||
<ClCompile Include="CCAction.cpp" />
|
||||
<ClCompile Include="CCActionCamera.cpp" />
|
||||
<ClCompile Include="CCActionCatmullRom.cpp" />
|
||||
|
@ -418,6 +423,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou
|
|||
<ClInclude Include="..\base\etc1.h" />
|
||||
<ClInclude Include="..\base\firePngData.h" />
|
||||
<ClInclude Include="..\base\ObjectFactory.h" />
|
||||
<ClInclude Include="..\base\pvr.h" />
|
||||
<ClInclude Include="..\base\s3tc.h" />
|
||||
<ClInclude Include="..\base\TGAlib.h" />
|
||||
<ClInclude Include="..\base\uthash.h" />
|
||||
|
@ -489,6 +495,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou
|
|||
<ClInclude Include="..\renderer\CCTexture2D.h" />
|
||||
<ClInclude Include="..\renderer\CCTextureAtlas.h" />
|
||||
<ClInclude Include="..\renderer\CCTextureCache.h" />
|
||||
<ClInclude Include="..\storage\local-storage\LocalStorage.h" />
|
||||
<ClInclude Include="CCAction.h" />
|
||||
<ClInclude Include="CCActionCamera.h" />
|
||||
<ClInclude Include="CCActionCatmullRom.h" />
|
||||
|
@ -564,6 +571,12 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou
|
|||
<None Include="..\math\Vec2.inl" />
|
||||
<None Include="..\math\Vec3.inl" />
|
||||
<None Include="..\math\Vec4.inl" />
|
||||
<None Include="cocos2d.def" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\external\chipmunk\proj.win32\chipmunk.vcxproj">
|
||||
<Project>{207bc7a9-ccf1-4f2f-a04d-45f72242ae25}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
|
|
@ -55,6 +55,9 @@
|
|||
<Filter Include="3d">
|
||||
<UniqueIdentifier>{a20c4bdc-bd4c-40c1-a78a-fe31cd3ec76a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="storage">
|
||||
<UniqueIdentifier>{44bdf58f-4af2-433c-b4af-58dc05ef96b5}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\physics\CCPhysicsBody.cpp">
|
||||
|
@ -403,9 +406,6 @@
|
|||
<ClCompile Include="..\base\CCUserDefault.cpp">
|
||||
<Filter>base</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\base\CCUserDefaultAndroid.cpp">
|
||||
<Filter>base</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\base\ccUTF8.cpp">
|
||||
<Filter>base</Filter>
|
||||
</ClCompile>
|
||||
|
@ -418,6 +418,9 @@
|
|||
<ClCompile Include="..\base\etc1.cpp">
|
||||
<Filter>base</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\base\pvr.cpp">
|
||||
<Filter>platform</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\base\s3tc.cpp">
|
||||
<Filter>base</Filter>
|
||||
</ClCompile>
|
||||
|
@ -589,6 +592,9 @@
|
|||
<ClCompile Include="CCFastTMXTiledMap.cpp">
|
||||
<Filter>2d</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\storage\local-storage\LocalStorage.cpp">
|
||||
<Filter>storage</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\physics\CCPhysicsBody.h">
|
||||
|
@ -988,6 +994,9 @@
|
|||
<ClInclude Include="..\base\etc1.h">
|
||||
<Filter>base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\base\pvr.h">
|
||||
<Filter>platform</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\base\firePngData.h">
|
||||
<Filter>base</Filter>
|
||||
</ClInclude>
|
||||
|
@ -1198,6 +1207,9 @@
|
|||
<ClInclude Include="CCFastTMXLayer.h">
|
||||
<Filter>2d</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\storage\local-storage\LocalStorage.h">
|
||||
<Filter>storage</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\math\Mat4.inl">
|
||||
|
@ -1224,5 +1236,6 @@
|
|||
<None Include="..\3d\CCAnimationCurve.inl">
|
||||
<Filter>3d</Filter>
|
||||
</None>
|
||||
<None Include="cocos2d.def" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -38,11 +38,11 @@
|
|||
NS_CC_BEGIN
|
||||
|
||||
class Animation3D;
|
||||
class Bone;
|
||||
class Bone3D;
|
||||
/**
|
||||
* Animate3D, Animates a Sprite3D given with an Animation3D
|
||||
*/
|
||||
class Animate3D: public ActionInterval
|
||||
class CC_DLL Animate3D: public ActionInterval
|
||||
{
|
||||
public:
|
||||
|
||||
|
@ -92,7 +92,7 @@ protected:
|
|||
float _start; //start time 0 - 1, used to generate sub Animate3D
|
||||
float _last; //last time 0 - 1, used to generate sub Animate3D
|
||||
bool _playReverse; // is playing reverse
|
||||
std::map<Bone*, Animation3D::Curve*> _boneCurves; //weak ref
|
||||
std::map<Bone3D*, Animation3D::Curve*> _boneCurves; //weak ref
|
||||
};
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -39,7 +39,7 @@ NS_CC_BEGIN
|
|||
/**
|
||||
* static animation data, shared
|
||||
*/
|
||||
class Animation3D: public Ref
|
||||
class CC_DLL Animation3D: public Ref
|
||||
{
|
||||
friend class Bundle3D;
|
||||
public:
|
||||
|
|
|
@ -87,7 +87,7 @@ public:
|
|||
/**
|
||||
* Returns the position of the file pointer.
|
||||
*/
|
||||
long int tell();
|
||||
ssize_t tell();
|
||||
|
||||
/**
|
||||
* Sets the position of the file pointer.
|
||||
|
|
|
@ -40,7 +40,7 @@ NS_CC_BEGIN
|
|||
class EventListenerCustom;
|
||||
class EventCustom;
|
||||
|
||||
class RenderMeshData
|
||||
class CC_DLL RenderMeshData
|
||||
{
|
||||
friend class Mesh;
|
||||
public:
|
||||
|
@ -66,7 +66,7 @@ protected:
|
|||
* Mesh: Geometry with a collection of vertex.
|
||||
* Supporting various vertex formats.
|
||||
*/
|
||||
class Mesh : public Ref
|
||||
class CC_DLL Mesh : public Ref
|
||||
{
|
||||
public:
|
||||
/** Defines supported index formats. */
|
||||
|
|
|
@ -36,22 +36,22 @@ NS_CC_BEGIN
|
|||
*
|
||||
* @param m C3DMatrix representing the inverse bind pose for this Bone.
|
||||
*/
|
||||
void Bone::setInverseBindPose(const Mat4& m)
|
||||
void Bone3D::setInverseBindPose(const Mat4& m)
|
||||
{
|
||||
_invBindPose = m;
|
||||
}
|
||||
|
||||
const Mat4& Bone::getInverseBindPose()
|
||||
const Mat4& Bone3D::getInverseBindPose()
|
||||
{
|
||||
return _invBindPose;
|
||||
}
|
||||
|
||||
void Bone::setOriPose(const Mat4& m)
|
||||
void Bone3D::setOriPose(const Mat4& m)
|
||||
{
|
||||
_oriPose = m;
|
||||
}
|
||||
|
||||
void Bone::resetPose()
|
||||
void Bone3D::resetPose()
|
||||
{
|
||||
_local =_oriPose;
|
||||
|
||||
|
@ -60,7 +60,7 @@ void Bone::resetPose()
|
|||
}
|
||||
}
|
||||
|
||||
void Bone::setWorldMatDirty(bool dirty)
|
||||
void Bone3D::setWorldMatDirty(bool dirty)
|
||||
{
|
||||
_worldDirty = dirty;
|
||||
for (auto it : _children) {
|
||||
|
@ -69,7 +69,7 @@ void Bone::setWorldMatDirty(bool dirty)
|
|||
}
|
||||
|
||||
//update own world matrix and children's
|
||||
void Bone::updateWorldMat()
|
||||
void Bone3D::updateWorldMat()
|
||||
{
|
||||
getWorldMat();
|
||||
for (auto itor : _children) {
|
||||
|
@ -77,7 +77,7 @@ void Bone::updateWorldMat()
|
|||
}
|
||||
}
|
||||
|
||||
const Mat4& Bone::getWorldMat()
|
||||
const Mat4& Bone3D::getWorldMat()
|
||||
{
|
||||
if (_worldDirty)
|
||||
{
|
||||
|
@ -95,7 +95,7 @@ const Mat4& Bone::getWorldMat()
|
|||
return _world;
|
||||
}
|
||||
|
||||
void Bone::setAnimationValue(float* trans, float* rot, float* scale, void* tag, float weight)
|
||||
void Bone3D::setAnimationValue(float* trans, float* rot, float* scale, void* tag, float weight)
|
||||
{
|
||||
for (auto& it : _blendStates) {
|
||||
if (it.tag == tag)
|
||||
|
@ -124,7 +124,7 @@ void Bone::setAnimationValue(float* trans, float* rot, float* scale, void* tag,
|
|||
_blendStates.push_back(state);
|
||||
}
|
||||
|
||||
void Bone::clearBoneBlendState()
|
||||
void Bone3D::clearBoneBlendState()
|
||||
{
|
||||
_blendStates.clear();
|
||||
for (auto it : _children) {
|
||||
|
@ -135,14 +135,14 @@ void Bone::clearBoneBlendState()
|
|||
/**
|
||||
* Creates C3DBone.
|
||||
*/
|
||||
Bone* Bone::create(const std::string& id)
|
||||
Bone3D* Bone3D::create(const std::string& id)
|
||||
{
|
||||
auto bone = new Bone(id);
|
||||
auto bone = new Bone3D(id);
|
||||
bone->autorelease();
|
||||
return bone;
|
||||
}
|
||||
|
||||
void Bone::updateJointMatrix(Vec4* matrixPalette)
|
||||
void Bone3D::updateJointMatrix(Vec4* matrixPalette)
|
||||
{
|
||||
{
|
||||
static Mat4 t;
|
||||
|
@ -154,37 +154,37 @@ void Bone::updateJointMatrix(Vec4* matrixPalette)
|
|||
}
|
||||
}
|
||||
|
||||
Bone* Bone::getParentBone()
|
||||
Bone3D* Bone3D::getParentBone()
|
||||
{
|
||||
return _parent;
|
||||
}
|
||||
ssize_t Bone::getChildBoneCount() const
|
||||
ssize_t Bone3D::getChildBoneCount() const
|
||||
{
|
||||
return _children.size();
|
||||
}
|
||||
Bone* Bone::getChildBoneByIndex(int index)
|
||||
Bone3D* Bone3D::getChildBoneByIndex(int index)
|
||||
{
|
||||
return _children.at(index);
|
||||
}
|
||||
void Bone::addChildBone(Bone* bone)
|
||||
void Bone3D::addChildBone(Bone3D* bone)
|
||||
{
|
||||
if (_children.find(bone) == _children.end())
|
||||
_children.pushBack(bone);
|
||||
}
|
||||
void Bone::removeChildBoneByIndex(int index)
|
||||
void Bone3D::removeChildBoneByIndex(int index)
|
||||
{
|
||||
_children.erase(index);
|
||||
}
|
||||
void Bone::removeChildBone(Bone* bone)
|
||||
void Bone3D::removeChildBone(Bone3D* bone)
|
||||
{
|
||||
_children.eraseObject(bone);
|
||||
}
|
||||
void Bone::removeAllChildBone()
|
||||
void Bone3D::removeAllChildBone()
|
||||
{
|
||||
_children.clear();
|
||||
}
|
||||
|
||||
Bone::Bone(const std::string& id)
|
||||
Bone3D::Bone3D(const std::string& id)
|
||||
: _name(id)
|
||||
, _parent(nullptr)
|
||||
, _worldDirty(true)
|
||||
|
@ -192,12 +192,12 @@ Bone::Bone(const std::string& id)
|
|||
|
||||
}
|
||||
|
||||
Bone::~Bone()
|
||||
Bone3D::~Bone3D()
|
||||
{
|
||||
removeAllChildBone();
|
||||
}
|
||||
|
||||
void Bone::updateLocalMat()
|
||||
void Bone3D::updateLocalMat()
|
||||
{
|
||||
if (_blendStates.size())
|
||||
{
|
||||
|
@ -299,13 +299,13 @@ bool MeshSkin::initFromSkinData(const SkinData& skindata)
|
|||
{
|
||||
ssize_t i = 0;
|
||||
for (; i < skindata.skinBoneNames.size(); i++) {
|
||||
auto bone = Bone::create(skindata.skinBoneNames[i]);
|
||||
auto bone = Bone3D::create(skindata.skinBoneNames[i]);
|
||||
bone->_invBindPose = skindata.inverseBindPoseMatrices[i];
|
||||
bone->setOriPose(skindata.skinBoneOriginMatrices[i]);
|
||||
addSkinBone(bone);
|
||||
}
|
||||
for (i = 0; i < skindata.nodeBoneNames.size(); i++) {
|
||||
auto bone = Bone::create(skindata.nodeBoneNames[i]);
|
||||
auto bone = Bone3D::create(skindata.nodeBoneNames[i]);
|
||||
bone->setOriPose(skindata.nodeBoneOriginMatrices[i]);
|
||||
addNodeBone(bone);
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ ssize_t MeshSkin::getBoneCount() const
|
|||
}
|
||||
|
||||
//get bone
|
||||
Bone* MeshSkin::getBoneByIndex(unsigned int index) const
|
||||
Bone3D* MeshSkin::getBoneByIndex(unsigned int index) const
|
||||
{
|
||||
if (index < _skinBones.size())
|
||||
return _skinBones.at(index);
|
||||
|
@ -340,7 +340,7 @@ Bone* MeshSkin::getBoneByIndex(unsigned int index) const
|
|||
|
||||
return nullptr;
|
||||
}
|
||||
Bone* MeshSkin::getBoneByName(const std::string& id) const
|
||||
Bone3D* MeshSkin::getBoneByName(const std::string& id) const
|
||||
{
|
||||
//search from skin bones
|
||||
for (auto it : _skinBones) {
|
||||
|
@ -355,18 +355,18 @@ Bone* MeshSkin::getBoneByName(const std::string& id) const
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
Bone* MeshSkin::getRootBone() const
|
||||
Bone3D* MeshSkin::getRootBone() const
|
||||
{
|
||||
return _rootBone;
|
||||
}
|
||||
void MeshSkin::setRootBone(Bone* joint)
|
||||
void MeshSkin::setRootBone(Bone3D* joint)
|
||||
{
|
||||
CC_SAFE_RETAIN(joint);
|
||||
CC_SAFE_RELEASE(_rootBone);
|
||||
_rootBone = joint;
|
||||
}
|
||||
|
||||
int MeshSkin::getBoneIndex(Bone* bone) const
|
||||
int MeshSkin::getBoneIndex(Bone3D* bone) const
|
||||
{
|
||||
int i = 0;
|
||||
for (; i < _skinBones.size(); i++) {
|
||||
|
@ -419,12 +419,12 @@ void MeshSkin::removeAllBones()
|
|||
CC_SAFE_RELEASE(_rootBone);
|
||||
}
|
||||
|
||||
void MeshSkin::addSkinBone(Bone* bone)
|
||||
void MeshSkin::addSkinBone(Bone3D* bone)
|
||||
{
|
||||
_skinBones.pushBack(bone);
|
||||
}
|
||||
|
||||
void MeshSkin::addNodeBone(Bone* bone)
|
||||
void MeshSkin::addNodeBone(Bone3D* bone)
|
||||
{
|
||||
_nodeBones.pushBack(bone);
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ NS_CC_BEGIN
|
|||
/**
|
||||
* Defines a basic hierachial structure of transformation spaces.
|
||||
*/
|
||||
class Bone : public Ref
|
||||
class Bone3D : public Ref
|
||||
{
|
||||
friend class MeshSkin;
|
||||
public:
|
||||
|
@ -76,7 +76,7 @@ public:
|
|||
/**
|
||||
* Creates C3DBone.
|
||||
*/
|
||||
static Bone* create(const std::string& id);
|
||||
static Bone3D* create(const std::string& id);
|
||||
|
||||
/**
|
||||
* Sets the inverse bind pose matrix.
|
||||
|
@ -105,17 +105,17 @@ public:
|
|||
void updateJointMatrix(Vec4* matrixPalette);
|
||||
|
||||
/**bone tree, we do not inherit from Node, Node has too many properties that we do not need. A clean Node is needed.*/
|
||||
Bone* getParentBone();
|
||||
Bone3D* getParentBone();
|
||||
/**get child bone count*/
|
||||
ssize_t getChildBoneCount() const;
|
||||
/**get child bone by index*/
|
||||
Bone* getChildBoneByIndex(int index);
|
||||
Bone3D* getChildBoneByIndex(int index);
|
||||
/**add child bone*/
|
||||
void addChildBone(Bone* bone);
|
||||
void addChildBone(Bone3D* bone);
|
||||
/**remove child bone by index*/
|
||||
void removeChildBoneByIndex(int index);
|
||||
/**remove child bone*/
|
||||
void removeChildBone(Bone* bone);
|
||||
void removeChildBone(Bone3D* bone);
|
||||
/**remove all child bone*/
|
||||
void removeAllChildBone();
|
||||
|
||||
|
@ -143,12 +143,12 @@ protected:
|
|||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
Bone(const std::string& id);
|
||||
Bone3D(const std::string& id);
|
||||
|
||||
/**
|
||||
* Destructor.
|
||||
*/
|
||||
virtual ~Bone();
|
||||
virtual ~Bone3D();
|
||||
|
||||
/**
|
||||
* Update local matrix
|
||||
|
@ -166,9 +166,9 @@ protected:
|
|||
|
||||
Mat4 _oriPose; //original bone pose
|
||||
|
||||
Bone* _parent; //parent bone
|
||||
Bone3D* _parent; //parent bone
|
||||
|
||||
Vector<Bone*> _children;
|
||||
Vector<Bone3D*> _children;
|
||||
|
||||
bool _worldDirty;
|
||||
Mat4 _world;
|
||||
|
@ -193,15 +193,15 @@ public:
|
|||
ssize_t getBoneCount() const;
|
||||
|
||||
/**get bone*/
|
||||
Bone* getBoneByIndex(unsigned int index) const;
|
||||
Bone* getBoneByName(const std::string& id) const;
|
||||
Bone3D* getBoneByIndex(unsigned int index) const;
|
||||
Bone3D* getBoneByName(const std::string& id) const;
|
||||
|
||||
/**get & set root bone*/
|
||||
Bone* getRootBone() const;
|
||||
void setRootBone(Bone* bone);
|
||||
Bone3D* getRootBone() const;
|
||||
void setRootBone(Bone3D* bone);
|
||||
|
||||
/**get bone index*/
|
||||
int getBoneIndex(Bone* bone) const;
|
||||
int getBoneIndex(Bone3D* bone) const;
|
||||
|
||||
/**compute matrix palette used by gpu skin*/
|
||||
Vec4* getMatrixPalette();
|
||||
|
@ -225,17 +225,17 @@ CC_CONSTRUCTOR_ACCESS:
|
|||
void removeAllBones();
|
||||
|
||||
/**add skin bone*/
|
||||
void addSkinBone(Bone* bone);
|
||||
void addSkinBone(Bone3D* bone);
|
||||
|
||||
/**add Node bone*/
|
||||
void addNodeBone(Bone* bone);
|
||||
void addNodeBone(Bone3D* bone);
|
||||
|
||||
protected:
|
||||
|
||||
Vector<Bone*> _skinBones; // bones with skin
|
||||
Vector<Bone*> _nodeBones; //bones without skin, only used to compute transform of children
|
||||
Vector<Bone3D*> _skinBones; // bones with skin
|
||||
Vector<Bone3D*> _nodeBones; //bones without skin, only used to compute transform of children
|
||||
|
||||
Bone* _rootBone;
|
||||
Bone3D* _rootBone;
|
||||
|
||||
// Pointer to the array of palette matrices.
|
||||
// This array is passed to the vertex shader as a uniform.
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include "CCObjLoader.h"
|
||||
#include "platform/CCFileUtils.h"
|
||||
#include "base/ccUtils.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
|
@ -102,7 +103,7 @@ static inline int parseInt(const char*& token)
|
|||
static inline float parseFloat(const char*& token)
|
||||
{
|
||||
token += strspn(token, " \t");
|
||||
float f = (float)atof(token);
|
||||
float f = (float)utils::atof(token);
|
||||
token += strcspn(token, " \t\r");
|
||||
return f;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ class Texture2D;
|
|||
class MeshSkin;
|
||||
|
||||
/** Sprite3D: A sprite can be loaded from 3D model files, .obj, .c3t, .c3b, then can be drawed as sprite */
|
||||
class Sprite3D : public Node, public BlendProtocol
|
||||
class CC_DLL Sprite3D : public Node, public BlendProtocol
|
||||
{
|
||||
public:
|
||||
/** creates a Sprite3D*/
|
||||
|
@ -94,7 +94,7 @@ protected:
|
|||
BlendFunc _blend;
|
||||
};
|
||||
|
||||
extern std::string s_attributeNames[];//attribute names array
|
||||
extern std::string CC_DLL s_attributeNames[];//attribute names array
|
||||
|
||||
NS_CC_END
|
||||
#endif // __SPRITE3D_H_
|
||||
|
|
|
@ -140,6 +140,7 @@ base/ccTypes.cpp \
|
|||
base/ccUTF8.cpp \
|
||||
base/ccUtils.cpp \
|
||||
base/etc1.cpp \
|
||||
base/pvr.cpp \
|
||||
base/s3tc.cpp \
|
||||
base/CCController.cpp \
|
||||
base/CCController-android.cpp \
|
||||
|
@ -206,12 +207,6 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH) \
|
|||
$(LOCAL_PATH)/../external/ConvertUTF \
|
||||
$(LOCAL_PATH)/../external/nslog
|
||||
|
||||
|
||||
LOCAL_LDLIBS := -lGLESv2 \
|
||||
-llog \
|
||||
-lz \
|
||||
-landroid
|
||||
|
||||
LOCAL_EXPORT_LDLIBS := -lGLESv2 \
|
||||
-llog \
|
||||
-lz \
|
||||
|
@ -220,15 +215,23 @@ LOCAL_EXPORT_LDLIBS := -lGLESv2 \
|
|||
LOCAL_WHOLE_STATIC_LIBRARIES := cocos_freetype2_static
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dxandroid_static
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_png_static
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_jpeg_static
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_tiff_static
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_webp_static
|
||||
|
||||
# define the macro to compile through support/zip_support/ioapi.c
|
||||
LOCAL_CFLAGS := -DUSE_FILE32API
|
||||
LOCAL_CPPFLAGS := -Wno-deprecated-declarations
|
||||
LOCAL_CPPFLAGS := -Wno-deprecated-declarations -Wno-extern-c-compat
|
||||
LOCAL_EXPORT_CFLAGS := -DUSE_FILE32API
|
||||
LOCAL_EXPORT_CPPFLAGS := -Wno-deprecated-declarations
|
||||
LOCAL_EXPORT_CPPFLAGS := -Wno-deprecated-declarations -Wno-extern-c-compat
|
||||
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
$(call import-module,freetype2/prebuilt/android)
|
||||
$(call import-module,chipmunk)
|
||||
$(call import-module,platform/android)
|
||||
$(call import-module,jpeg/prebuilt/android)
|
||||
$(call import-module,png/prebuilt/android)
|
||||
$(call import-module,tiff/prebuilt/android)
|
||||
$(call import-module,webp/prebuilt/android)
|
||||
|
|
|
@ -30,11 +30,11 @@ THE SOFTWARE.
|
|||
#define EXPORT_DLL _EXPORT_
|
||||
#elif defined(_WIN32)
|
||||
#if defined(_EXPORT_DLL_)
|
||||
#define EXPORT_DLL// __declspec(dllexport)
|
||||
#define EXPORT_DLL __declspec(dllexport)
|
||||
#elif defined(IGNORE_EXPORT)
|
||||
#define EXPORT_DLL
|
||||
#else /* use a DLL library */
|
||||
#define EXPORT_DLL// __declspec(dllimport)
|
||||
#define EXPORT_DLL __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#if defined(_SHARED_)
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '10.0'">v100</PlatformToolset>
|
||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '11.0'">v110</PlatformToolset>
|
||||
|
@ -27,7 +27,7 @@
|
|||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '10.0'">v100</PlatformToolset>
|
||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '11.0'">v110</PlatformToolset>
|
||||
|
@ -74,7 +74,7 @@
|
|||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_EXPORT_DLL_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
|
@ -90,7 +90,7 @@
|
|||
<OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(TargetName).lib</ImportLibrary>
|
||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
|
@ -98,7 +98,7 @@
|
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_EXPORT_DLL_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
|
@ -116,7 +116,7 @@
|
|||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(TargetName).lib</ImportLibrary>
|
||||
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
|
@ -130,6 +130,11 @@
|
|||
<ClCompile Include="..\win32\MciPlayer.cpp" />
|
||||
<ClCompile Include="..\win32\SimpleAudioEngine.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\2d\cocos2d.vcxproj">
|
||||
<Project>{98a51ba8-fc3a-415b-ac8f-8c7bd464e93e}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
|
|
@ -63,6 +63,7 @@
|
|||
#include "renderer/CCTextureCache.h"
|
||||
#include "CCGLView.h"
|
||||
#include "base/base64.h"
|
||||
#include "base/ccUtils.h"
|
||||
NS_CC_BEGIN
|
||||
|
||||
extern const char* cocos2dVersion(void);
|
||||
|
@ -660,8 +661,8 @@ void Console::commandTouch(int fd, const std::string& args)
|
|||
if((argv.size() == 3) && (isFloat(argv[1]) && isFloat(argv[2])))
|
||||
{
|
||||
|
||||
float x = std::atof(argv[1].c_str());
|
||||
float y = std::atof(argv[2].c_str());
|
||||
float x = utils::atof(argv[1].c_str());
|
||||
float y = utils::atof(argv[2].c_str());
|
||||
|
||||
srand ((unsigned)time(nullptr));
|
||||
_touchId = rand();
|
||||
|
@ -686,10 +687,10 @@ void Console::commandTouch(int fd, const std::string& args)
|
|||
&& (isFloat(argv[3])) && (isFloat(argv[4])))
|
||||
{
|
||||
|
||||
float x1 = std::atof(argv[1].c_str());
|
||||
float y1 = std::atof(argv[2].c_str());
|
||||
float x2 = std::atof(argv[3].c_str());
|
||||
float y2 = std::atof(argv[4].c_str());
|
||||
float x1 = utils::atof(argv[1].c_str());
|
||||
float y1 = utils::atof(argv[2].c_str());
|
||||
float x2 = utils::atof(argv[3].c_str());
|
||||
float y2 = utils::atof(argv[4].c_str());
|
||||
|
||||
srand ((unsigned)time(nullptr));
|
||||
_touchId = rand();
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#include "ccMacros.h"
|
||||
#include "CCDirector.h"
|
||||
#include "jni/JniHelper.h"
|
||||
|
||||
#include "base/CCEventController.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
|
|
|
@ -196,7 +196,7 @@ void Controller::registerListeners()
|
|||
};
|
||||
|
||||
_impl->_gcController.extendedGamepad.leftThumbstick.yAxis.valueChangedHandler = ^(GCControllerAxisInput *axis, float value){
|
||||
onAxisEvent(Key::JOYSTICK_LEFT_Y, value, axis.isAnalog);
|
||||
onAxisEvent(Key::JOYSTICK_LEFT_Y, -value, axis.isAnalog);
|
||||
};
|
||||
|
||||
_impl->_gcController.extendedGamepad.rightThumbstick.xAxis.valueChangedHandler = ^(GCControllerAxisInput *axis, float value){
|
||||
|
@ -204,7 +204,7 @@ void Controller::registerListeners()
|
|||
};
|
||||
|
||||
_impl->_gcController.extendedGamepad.rightThumbstick.yAxis.valueChangedHandler = ^(GCControllerAxisInput *axis, float value){
|
||||
onAxisEvent(Key::JOYSTICK_RIGHT_Y, value, axis.isAnalog);
|
||||
onAxisEvent(Key::JOYSTICK_RIGHT_Y, -value, axis.isAnalog);
|
||||
};
|
||||
|
||||
_impl->_gcController.extendedGamepad.valueChangedHandler = ^(GCExtendedGamepad *gamepad, GCControllerElement *element){
|
||||
|
|
|
@ -41,6 +41,9 @@ class EventDispatcher;
|
|||
class Controller
|
||||
{
|
||||
public:
|
||||
/** Controllers' standard key
|
||||
* Controller receives only standard key which contained within enum Key by default.
|
||||
*/
|
||||
enum Key
|
||||
{
|
||||
JOYSTICK_LEFT_X = 1000,
|
||||
|
@ -87,9 +90,17 @@ public:
|
|||
static const int TAG_UNSET = -1;
|
||||
|
||||
static const std::vector<Controller*>& getAllController(){ return s_allController;}
|
||||
/** Gets a controller with its tag
|
||||
* @param tag An identifier to find the controller.
|
||||
*/
|
||||
static Controller* getControllerByTag(int tag);
|
||||
|
||||
/** To start discovering new controllers
|
||||
* @warning The API only work on the IOS platform.Empty implementation on Android
|
||||
*/
|
||||
static void startDiscoveryController();
|
||||
/** End the discovery process
|
||||
* @warning The API only work on the IOS platform.Empty implementation on Android
|
||||
*/
|
||||
static void stopDiscoveryController();
|
||||
|
||||
const std::string& getDeviceName() const { return _deviceName;}
|
||||
|
@ -108,7 +119,15 @@ public:
|
|||
*/
|
||||
void receiveExternalKeyEvent(int externalKeyCode,bool receive);
|
||||
|
||||
/** Changes the tag that is used to identify the controller easily.
|
||||
* @param tag A integer that identifies the controller.
|
||||
*/
|
||||
void setTag(int tag) { _controllerTag = tag;}
|
||||
/**
|
||||
* Returns a tag that is used to identify the controller easily.
|
||||
*
|
||||
* @return An integer that identifies the controller.
|
||||
*/
|
||||
int getTag() const { return _controllerTag;}
|
||||
|
||||
private:
|
||||
|
|
|
@ -100,7 +100,7 @@ ssize_t Data::getSize() const
|
|||
return _size;
|
||||
}
|
||||
|
||||
void Data::copy(unsigned char* bytes, const ssize_t size)
|
||||
void Data::copy(const unsigned char* bytes, const ssize_t size)
|
||||
{
|
||||
clear();
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ public:
|
|||
* Developer should free the pointer after invoking this method.
|
||||
* @see Data::fastSet
|
||||
*/
|
||||
void copy(unsigned char* bytes, const ssize_t size);
|
||||
void copy(const unsigned char* bytes, const ssize_t size);
|
||||
|
||||
/** Fast set the buffer pointer and its size. Please use it carefully.
|
||||
* @param bytes The buffer pointer, note that it have to be allocated by 'malloc' or 'calloc',
|
||||
|
|
|
@ -36,6 +36,7 @@ THE SOFTWARE.
|
|||
#include "base/CCVector.h"
|
||||
#include "CCGL.h"
|
||||
#include "2d/CCLabelAtlas.h"
|
||||
#include "2d/CCScene.h"
|
||||
#include <stack>
|
||||
#include "math/CCMath.h"
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ class Node;
|
|||
/**
|
||||
* Base class of all kinds of events.
|
||||
*/
|
||||
class Event : public Ref
|
||||
class CC_DLL Event : public Ref
|
||||
{
|
||||
public:
|
||||
enum class Type
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
NS_CC_BEGIN
|
||||
|
||||
class EventAcceleration : public Event
|
||||
class CC_DLL EventAcceleration : public Event
|
||||
{
|
||||
public:
|
||||
EventAcceleration(const Acceleration& acc);
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
NS_CC_BEGIN
|
||||
|
||||
class EventCustom : public Event
|
||||
class CC_DLL EventCustom : public Event
|
||||
{
|
||||
public:
|
||||
/** Constructor */
|
||||
|
|
|
@ -53,7 +53,7 @@ event listeners can be added and removed even
|
|||
from within an EventListener, while events are being
|
||||
dispatched.
|
||||
*/
|
||||
class EventDispatcher : public Ref
|
||||
class CC_DLL EventDispatcher : public Ref
|
||||
{
|
||||
public:
|
||||
// Adds event listener
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace ui {
|
|||
class Widget;
|
||||
}
|
||||
|
||||
class EventFocus : public Event
|
||||
class CC_DLL EventFocus : public Event
|
||||
{
|
||||
public:
|
||||
EventFocus(ui::Widget* widgetLoseFocus, ui::Widget* widgetGetFocus);
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
NS_CC_BEGIN
|
||||
|
||||
class EventKeyboard : public Event
|
||||
class CC_DLL EventKeyboard : public Event
|
||||
{
|
||||
public:
|
||||
/**
|
||||
|
|
|
@ -43,7 +43,7 @@ class Node;
|
|||
* If you need custom listener which with different callback, you need to inherit this class.
|
||||
* For instance, you could refer to EventListenerAcceleration, EventListenerKeyboard, EventListenerTouchOneByOne, EventListenerCustom.
|
||||
*/
|
||||
class EventListener : public Ref
|
||||
class CC_DLL EventListener : public Ref
|
||||
{
|
||||
public:
|
||||
enum class Type
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
NS_CC_BEGIN
|
||||
|
||||
class EventListenerAcceleration : public EventListener
|
||||
class CC_DLL EventListenerAcceleration : public EventListener
|
||||
{
|
||||
public:
|
||||
static const std::string LISTENER_ID;
|
||||
|
|
|
@ -49,7 +49,7 @@ class EventCustom;
|
|||
*
|
||||
* dispatcher->removeEventListener(listener);
|
||||
*/
|
||||
class EventListenerCustom : public EventListener
|
||||
class CC_DLL EventListenerCustom : public EventListener
|
||||
{
|
||||
public:
|
||||
/** Creates an event listener with type and callback.
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace ui {
|
|||
class Widget;
|
||||
}
|
||||
|
||||
class EventListenerFocus : public EventListener
|
||||
class CC_DLL EventListenerFocus : public EventListener
|
||||
{
|
||||
public:
|
||||
static const std::string LISTENER_ID;
|
||||
|
|
|
@ -33,7 +33,7 @@ NS_CC_BEGIN
|
|||
|
||||
class Event;
|
||||
|
||||
class EventListenerKeyboard : public EventListener
|
||||
class CC_DLL EventListenerKeyboard : public EventListener
|
||||
{
|
||||
public:
|
||||
static const std::string LISTENER_ID;
|
||||
|
|
|
@ -33,7 +33,7 @@ NS_CC_BEGIN
|
|||
|
||||
class Event;
|
||||
|
||||
class EventListenerMouse : public EventListener
|
||||
class CC_DLL EventListenerMouse : public EventListener
|
||||
{
|
||||
public:
|
||||
static const std::string LISTENER_ID;
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
NS_CC_BEGIN
|
||||
|
||||
class EventListenerTouchOneByOne : public EventListener
|
||||
class CC_DLL EventListenerTouchOneByOne : public EventListener
|
||||
{
|
||||
public:
|
||||
static const std::string LISTENER_ID;
|
||||
|
@ -67,7 +67,7 @@ private:
|
|||
};
|
||||
|
||||
|
||||
class EventListenerTouchAllAtOnce : public EventListener
|
||||
class CC_DLL EventListenerTouchAllAtOnce : public EventListener
|
||||
{
|
||||
public:
|
||||
static const std::string LISTENER_ID;
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
NS_CC_BEGIN
|
||||
|
||||
class EventMouse : public Event
|
||||
class CC_DLL EventMouse : public Event
|
||||
{
|
||||
public:
|
||||
/**
|
||||
|
|
|
@ -33,7 +33,7 @@ NS_CC_BEGIN
|
|||
|
||||
#define TOUCH_PERF_DEBUG 1
|
||||
|
||||
class EventTouch : public Event
|
||||
class CC_DLL EventTouch : public Event
|
||||
{
|
||||
public:
|
||||
static const int MAX_TOUCHES = 5;
|
||||
|
|
|
@ -30,7 +30,7 @@ THE SOFTWARE.
|
|||
#include "math/CCGeometry.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
extern const std::string STD_STRING_EMPTY;
|
||||
extern const std::string CC_DLL STD_STRING_EMPTY;
|
||||
|
||||
/**
|
||||
* @addtogroup input
|
||||
|
|
|
@ -45,7 +45,7 @@ NS_CC_BEGIN
|
|||
*/
|
||||
|
||||
template <class K, class V>
|
||||
class CC_DLL Map
|
||||
class Map
|
||||
{
|
||||
public:
|
||||
// ------------------------------------------
|
||||
|
|
|
@ -28,6 +28,8 @@ THE SOFTWARE.
|
|||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "base/ccUtils.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
@ -133,10 +135,10 @@ Rect RectFromString(const std::string& str)
|
|||
strArray sizeInfo;
|
||||
CC_BREAK_IF(!splitWithForm(sizeStr.c_str(), sizeInfo));
|
||||
|
||||
float x = (float) atof(pointInfo[0].c_str());
|
||||
float y = (float) atof(pointInfo[1].c_str());
|
||||
float width = (float) atof(sizeInfo[0].c_str());
|
||||
float height = (float) atof(sizeInfo[1].c_str());
|
||||
float x = (float) utils::atof(pointInfo[0].c_str());
|
||||
float y = (float) utils::atof(pointInfo[1].c_str());
|
||||
float width = (float) utils::atof(sizeInfo[0].c_str());
|
||||
float height = (float) utils::atof(sizeInfo[1].c_str());
|
||||
|
||||
result = Rect(x, y, width, height);
|
||||
} while (0);
|
||||
|
@ -153,8 +155,8 @@ Vec2 PointFromString(const std::string& str)
|
|||
strArray strs;
|
||||
CC_BREAK_IF(!splitWithForm(str, strs));
|
||||
|
||||
float x = (float) atof(strs[0].c_str());
|
||||
float y = (float) atof(strs[1].c_str());
|
||||
float x = (float) utils::atof(strs[0].c_str());
|
||||
float y = (float) utils::atof(strs[1].c_str());
|
||||
|
||||
ret = Vec2(x, y);
|
||||
} while (0);
|
||||
|
@ -171,8 +173,8 @@ Size SizeFromString(const std::string& pszContent)
|
|||
strArray strs;
|
||||
CC_BREAK_IF(!splitWithForm(pszContent, strs));
|
||||
|
||||
float width = (float) atof(strs[0].c_str());
|
||||
float height = (float) atof(strs[1].c_str());
|
||||
float width = (float) utils::atof(strs[0].c_str());
|
||||
float height = (float) utils::atof(strs[1].c_str());
|
||||
|
||||
ret = Size(width, height);
|
||||
} while (0);
|
||||
|
|
|
@ -143,9 +143,9 @@ public:
|
|||
long numberOfCalls;
|
||||
};
|
||||
|
||||
extern void ProfilingBeginTimingBlock(const char *timerName);
|
||||
extern void ProfilingEndTimingBlock(const char *timerName);
|
||||
extern void ProfilingResetTimingBlock(const char *timerName);
|
||||
extern void CC_DLL ProfilingBeginTimingBlock(const char *timerName);
|
||||
extern void CC_DLL ProfilingEndTimingBlock(const char *timerName);
|
||||
extern void CC_DLL ProfilingResetTimingBlock(const char *timerName);
|
||||
|
||||
/*
|
||||
* cocos2d profiling categories
|
||||
|
|
|
@ -27,6 +27,7 @@ THE SOFTWARE.
|
|||
#include "platform/CCFileUtils.h"
|
||||
#include "tinyxml2.h"
|
||||
#include "base/base64.h"
|
||||
#include "base/ccUtils.h"
|
||||
|
||||
#if (CC_TARGET_PLATFORM != CC_PLATFORM_IOS && CC_TARGET_PLATFORM != CC_PLATFORM_MAC && CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)
|
||||
|
||||
|
@ -250,7 +251,7 @@ double UserDefault::getDoubleForKey(const char* pKey, double defaultValue)
|
|||
|
||||
if (value)
|
||||
{
|
||||
ret = atof(value);
|
||||
ret = utils::atof(value);
|
||||
}
|
||||
|
||||
if (doc) delete doc;
|
||||
|
|
|
@ -173,7 +173,7 @@ public:
|
|||
/**
|
||||
* @js NA
|
||||
*/
|
||||
const static std::string& getXMLFilePath();
|
||||
static const std::string& getXMLFilePath();
|
||||
/**
|
||||
* @js NA
|
||||
*/
|
||||
|
|
|
@ -24,6 +24,7 @@ THE SOFTWARE.
|
|||
****************************************************************************/
|
||||
#include "base/CCUserDefault.h"
|
||||
#include "base/CCPlatformConfig.h"
|
||||
#include "base/ccUtils.h"
|
||||
#include "platform/CCCommon.h"
|
||||
#include "base/base64.h"
|
||||
|
||||
|
@ -243,7 +244,7 @@ float UserDefault::getFloatForKey(const char* pKey, float defaultValue)
|
|||
{
|
||||
if (node->FirstChild())
|
||||
{
|
||||
float ret = atof((const char*)node->FirstChild()->Value());
|
||||
float ret = utils::atof((const char*)node->FirstChild()->Value());
|
||||
|
||||
// set value in NSUserDefaults
|
||||
setFloatForKey(pKey, ret);
|
||||
|
@ -279,7 +280,7 @@ double UserDefault::getDoubleForKey(const char* pKey, double defaultValue)
|
|||
{
|
||||
if (node->FirstChild())
|
||||
{
|
||||
double ret = atof((const char*)node->FirstChild()->Value());
|
||||
double ret = utils::atof((const char*)node->FirstChild()->Value());
|
||||
|
||||
// set value in NSUserDefaults
|
||||
setDoubleForKey(pKey, ret);
|
||||
|
@ -455,7 +456,7 @@ void UserDefault::setDataForKey(const char* pKey, const Data& value)
|
|||
deleteNodeByKey(pKey);
|
||||
#endif
|
||||
|
||||
CCLOG("SET DATA FOR KEY: --%s--%d", value.getBytes(), value.getSize());
|
||||
CCLOG("SET DATA FOR KEY: --%s--%d", value.getBytes(), (int)(value.getSize()));
|
||||
char * encodedData = nullptr;
|
||||
unsigned int encodedDataLen = base64Encode(value.getBytes(), value.getSize(), &encodedData);
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "base/CCValue.h"
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include "base/ccUtils.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
|
@ -504,7 +505,7 @@ float Value::asFloat() const
|
|||
|
||||
if (_type == Type::STRING)
|
||||
{
|
||||
return atof(_field.strVal->c_str());
|
||||
return utils::atof(_field.strVal->c_str());
|
||||
}
|
||||
|
||||
if (_type == Type::INTEGER)
|
||||
|
@ -540,7 +541,7 @@ double Value::asDouble() const
|
|||
|
||||
if (_type == Type::STRING)
|
||||
{
|
||||
return static_cast<double>(atof(_field.strVal->c_str()));
|
||||
return static_cast<double>(utils::atof(_field.strVal->c_str()));
|
||||
}
|
||||
|
||||
if (_type == Type::INTEGER)
|
||||
|
|
|
@ -43,7 +43,7 @@ extern const ValueVector ValueVectorNull;
|
|||
extern const ValueMap ValueMapNull;
|
||||
extern const ValueMapIntKey ValueMapIntKeyNull;
|
||||
|
||||
class Value
|
||||
class CC_DLL Value
|
||||
{
|
||||
public:
|
||||
static const Value Null;
|
||||
|
|
|
@ -35,7 +35,7 @@ THE SOFTWARE.
|
|||
NS_CC_BEGIN
|
||||
|
||||
template<class T>
|
||||
class CC_DLL Vector
|
||||
class Vector
|
||||
{
|
||||
public:
|
||||
// ------------------------------------------
|
||||
|
|
|
@ -40,6 +40,7 @@ set(COCOS_BASE_SRC
|
|||
base/ccUTF8.cpp
|
||||
base/ccUtils.cpp
|
||||
base/etc1.cpp
|
||||
base/pvr.cpp
|
||||
base/s3tc.cpp
|
||||
base/ObjectFactory.cpp
|
||||
)
|
||||
|
|
|
@ -32,11 +32,11 @@ THE SOFTWARE.
|
|||
|
||||
NS_CC_BEGIN
|
||||
|
||||
class ObjectFactory
|
||||
class CC_DLL ObjectFactory
|
||||
{
|
||||
public:
|
||||
typedef cocos2d::Ref* (*Instance)(void);
|
||||
struct TInfo
|
||||
struct CC_DLL TInfo
|
||||
{
|
||||
TInfo(void);
|
||||
TInfo(const std::string& type, Instance ins = NULL);
|
||||
|
|
|
@ -68,7 +68,7 @@ int _base64Decode(const unsigned char *input, unsigned int input_len, unsigned c
|
|||
switch (char_count) {
|
||||
case 1:
|
||||
#if (CC_TARGET_PLATFORM != CC_PLATFORM_BADA)
|
||||
std::fprintf(stderr, "base64Decode: encoding incomplete: at least 2 bits missing");
|
||||
fprintf(stderr, "base64Decode: encoding incomplete: at least 2 bits missing");
|
||||
#endif
|
||||
errors++;
|
||||
break;
|
||||
|
@ -83,7 +83,7 @@ int _base64Decode(const unsigned char *input, unsigned int input_len, unsigned c
|
|||
} else if ( input_idx < input_len ) {
|
||||
if (char_count) {
|
||||
#if (CC_TARGET_PLATFORM != CC_PLATFORM_BADA)
|
||||
std::fprintf(stderr, "base64 encoding incomplete: at least %d bits truncated",
|
||||
fprintf(stderr, "base64 encoding incomplete: at least %d bits truncated",
|
||||
((4 - char_count) * 6));
|
||||
#endif
|
||||
errors++;
|
||||
|
|
|
@ -26,6 +26,8 @@ THE SOFTWARE.
|
|||
#ifndef __SUPPORT_BASE64_H__
|
||||
#define __SUPPORT_BASE64_H__
|
||||
|
||||
#include "base/CCPlatformMacros.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
@ -44,7 +46,7 @@ namespace cocos2d {
|
|||
*
|
||||
@since v0.8.1
|
||||
*/
|
||||
int base64Decode(const unsigned char *in, unsigned int inLength, unsigned char **out);
|
||||
int CC_DLL base64Decode(const unsigned char *in, unsigned int inLength, unsigned char **out);
|
||||
|
||||
/**
|
||||
* Encodes bytes into a 64base encoded memory with terminating '\0' character.
|
||||
|
@ -54,7 +56,7 @@ int base64Decode(const unsigned char *in, unsigned int inLength, unsigned char *
|
|||
*
|
||||
@since v2.1.4
|
||||
*/
|
||||
int base64Encode(const unsigned char *in, unsigned int inLength, char **out);
|
||||
int CC_DLL base64Encode(const unsigned char *in, unsigned int inLength, char **out);
|
||||
|
||||
}//namespace cocos2d
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ struct Color4F;
|
|||
/** RGB color composed of bytes 3 bytes
|
||||
@since v3.0
|
||||
*/
|
||||
struct Color3B
|
||||
struct CC_DLL Color3B
|
||||
{
|
||||
Color3B();
|
||||
Color3B(GLubyte _r, GLubyte _g, GLubyte _b);
|
||||
|
@ -66,21 +66,21 @@ struct Color3B
|
|||
GLubyte g;
|
||||
GLubyte b;
|
||||
|
||||
const static Color3B WHITE;
|
||||
const static Color3B YELLOW;
|
||||
const static Color3B BLUE;
|
||||
const static Color3B GREEN;
|
||||
const static Color3B RED;
|
||||
const static Color3B MAGENTA;
|
||||
const static Color3B BLACK;
|
||||
const static Color3B ORANGE;
|
||||
const static Color3B GRAY;
|
||||
static const Color3B WHITE;
|
||||
static const Color3B YELLOW;
|
||||
static const Color3B BLUE;
|
||||
static const Color3B GREEN;
|
||||
static const Color3B RED;
|
||||
static const Color3B MAGENTA;
|
||||
static const Color3B BLACK;
|
||||
static const Color3B ORANGE;
|
||||
static const Color3B GRAY;
|
||||
};
|
||||
|
||||
/** RGBA color composed of 4 bytes
|
||||
@since v3.0
|
||||
*/
|
||||
struct Color4B
|
||||
struct CC_DLL Color4B
|
||||
{
|
||||
Color4B();
|
||||
Color4B(GLubyte _r, GLubyte _g, GLubyte _b, GLubyte _a);
|
||||
|
@ -99,22 +99,22 @@ struct Color4B
|
|||
GLubyte b;
|
||||
GLubyte a;
|
||||
|
||||
const static Color4B WHITE;
|
||||
const static Color4B YELLOW;
|
||||
const static Color4B BLUE;
|
||||
const static Color4B GREEN;
|
||||
const static Color4B RED;
|
||||
const static Color4B MAGENTA;
|
||||
const static Color4B BLACK;
|
||||
const static Color4B ORANGE;
|
||||
const static Color4B GRAY;
|
||||
static const Color4B WHITE;
|
||||
static const Color4B YELLOW;
|
||||
static const Color4B BLUE;
|
||||
static const Color4B GREEN;
|
||||
static const Color4B RED;
|
||||
static const Color4B MAGENTA;
|
||||
static const Color4B BLACK;
|
||||
static const Color4B ORANGE;
|
||||
static const Color4B GRAY;
|
||||
};
|
||||
|
||||
|
||||
/** RGBA color composed of 4 floats
|
||||
@since v3.0
|
||||
*/
|
||||
struct Color4F
|
||||
struct CC_DLL Color4F
|
||||
{
|
||||
Color4F();
|
||||
Color4F(float _r, float _g, float _b, float _a);
|
||||
|
@ -138,15 +138,15 @@ struct Color4F
|
|||
GLfloat b;
|
||||
GLfloat a;
|
||||
|
||||
const static Color4F WHITE;
|
||||
const static Color4F YELLOW;
|
||||
const static Color4F BLUE;
|
||||
const static Color4F GREEN;
|
||||
const static Color4F RED;
|
||||
const static Color4F MAGENTA;
|
||||
const static Color4F BLACK;
|
||||
const static Color4F ORANGE;
|
||||
const static Color4F GRAY;
|
||||
static const Color4F WHITE;
|
||||
static const Color4F YELLOW;
|
||||
static const Color4F BLUE;
|
||||
static const Color4F GREEN;
|
||||
static const Color4F RED;
|
||||
static const Color4F MAGENTA;
|
||||
static const Color4F BLACK;
|
||||
static const Color4F ORANGE;
|
||||
static const Color4F GRAY;
|
||||
};
|
||||
|
||||
/** A vertex composed of 2 floats: x, y
|
||||
|
@ -184,7 +184,7 @@ struct Color4F
|
|||
/** A texcoord composed of 2 floats: u, y
|
||||
@since v3.0
|
||||
*/
|
||||
struct Tex2F {
|
||||
struct CC_DLL Tex2F {
|
||||
Tex2F(float _u, float _v): u(_u), v(_v) {}
|
||||
|
||||
Tex2F(): u(0.f), v(0.f) {}
|
||||
|
@ -195,7 +195,7 @@ struct Tex2F {
|
|||
|
||||
|
||||
//! Vec2 Sprite component
|
||||
struct PointSprite
|
||||
struct CC_DLL PointSprite
|
||||
{
|
||||
Vec2 pos; // 8 bytes
|
||||
Color4B color; // 4 bytes
|
||||
|
@ -203,7 +203,7 @@ struct PointSprite
|
|||
};
|
||||
|
||||
//! A 2D Quad. 4 * 2 floats
|
||||
struct Quad2
|
||||
struct CC_DLL Quad2
|
||||
{
|
||||
Vec2 tl;
|
||||
Vec2 tr;
|
||||
|
@ -213,7 +213,7 @@ struct Quad2
|
|||
|
||||
|
||||
//! A 3D Quad. 4 * 3 floats
|
||||
struct Quad3 {
|
||||
struct CC_DLL Quad3 {
|
||||
Vec3 bl;
|
||||
Vec3 br;
|
||||
Vec3 tl;
|
||||
|
@ -232,7 +232,7 @@ struct V2F_C4B_T2F
|
|||
};
|
||||
|
||||
//! a Vec2 with a vertex point, a tex coord point and a color 4F
|
||||
struct V2F_C4F_T2F
|
||||
struct CC_DLL V2F_C4F_T2F
|
||||
{
|
||||
//! vertices (2F)
|
||||
Vec2 vertices;
|
||||
|
@ -243,7 +243,7 @@ struct V2F_C4F_T2F
|
|||
};
|
||||
|
||||
//! a Vec2 with a vertex point, a tex coord point and a color 4B
|
||||
struct V3F_C4B_T2F
|
||||
struct CC_DLL V3F_C4B_T2F
|
||||
{
|
||||
//! vertices (3F)
|
||||
Vec3 vertices; // 12 bytes
|
||||
|
@ -256,7 +256,7 @@ struct V3F_C4B_T2F
|
|||
};
|
||||
|
||||
//! a Vec2 with a vertex point, a tex coord point
|
||||
struct V3F_T2F
|
||||
struct CC_DLL V3F_T2F
|
||||
{
|
||||
//! vertices (2F)
|
||||
Vec3 vertices;
|
||||
|
@ -265,7 +265,7 @@ struct V3F_T2F
|
|||
};
|
||||
|
||||
//! A Triangle of V2F_C4B_T2F
|
||||
struct V2F_C4B_T2F_Triangle
|
||||
struct CC_DLL V2F_C4B_T2F_Triangle
|
||||
{
|
||||
//! Vec2 A
|
||||
V2F_C4B_T2F a;
|
||||
|
@ -276,7 +276,7 @@ struct V2F_C4B_T2F_Triangle
|
|||
};
|
||||
|
||||
//! A Quad of V2F_C4B_T2F
|
||||
struct V2F_C4B_T2F_Quad
|
||||
struct CC_DLL V2F_C4B_T2F_Quad
|
||||
{
|
||||
//! bottom left
|
||||
V2F_C4B_T2F bl;
|
||||
|
@ -289,7 +289,7 @@ struct V2F_C4B_T2F_Quad
|
|||
};
|
||||
|
||||
//! 4 Vertex3FTex2FColor4B
|
||||
struct V3F_C4B_T2F_Quad
|
||||
struct CC_DLL V3F_C4B_T2F_Quad
|
||||
{
|
||||
//! top left
|
||||
V3F_C4B_T2F tl;
|
||||
|
@ -302,7 +302,7 @@ struct V3F_C4B_T2F_Quad
|
|||
};
|
||||
|
||||
//! 4 Vertex2FTex2FColor4F Quad
|
||||
struct V2F_C4F_T2F_Quad
|
||||
struct CC_DLL V2F_C4F_T2F_Quad
|
||||
{
|
||||
//! bottom left
|
||||
V2F_C4F_T2F bl;
|
||||
|
@ -314,7 +314,7 @@ struct V2F_C4F_T2F_Quad
|
|||
V2F_C4F_T2F tr;
|
||||
};
|
||||
|
||||
struct V3F_T2F_Quad
|
||||
struct CC_DLL V3F_T2F_Quad
|
||||
{
|
||||
//! bottom left
|
||||
V3F_T2F bl;
|
||||
|
@ -327,7 +327,7 @@ struct V3F_T2F_Quad
|
|||
};
|
||||
|
||||
//! Blend Function used for textures
|
||||
struct BlendFunc
|
||||
struct CC_DLL BlendFunc
|
||||
{
|
||||
//! source blend function
|
||||
GLenum src;
|
||||
|
@ -335,13 +335,13 @@ struct BlendFunc
|
|||
GLenum dst;
|
||||
|
||||
//! Blending disabled. Uses {GL_ONE, GL_ZERO}
|
||||
const static BlendFunc DISABLE;
|
||||
static const BlendFunc DISABLE;
|
||||
//! Blending enabled for textures with Alpha premultiplied. Uses {GL_ONE, GL_ONE_MINUS_SRC_ALPHA}
|
||||
const static BlendFunc ALPHA_PREMULTIPLIED;
|
||||
static const BlendFunc ALPHA_PREMULTIPLIED;
|
||||
//! Blending enabled for textures with Alpha NON premultiplied. Uses {GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA}
|
||||
const static BlendFunc ALPHA_NON_PREMULTIPLIED;
|
||||
static const BlendFunc ALPHA_NON_PREMULTIPLIED;
|
||||
//! Enables Additive blending. Uses {GL_SRC_ALPHA, GL_ONE}
|
||||
const static BlendFunc ADDITIVE;
|
||||
static const BlendFunc ADDITIVE;
|
||||
|
||||
bool operator==(const BlendFunc &a) const
|
||||
{
|
||||
|
@ -359,7 +359,7 @@ struct BlendFunc
|
|||
|
||||
// XXX: If any of these enums are edited and/or reordered, update Texture2D.m
|
||||
//! Vertical text alignment type
|
||||
enum class TextVAlignment
|
||||
enum class CC_DLL TextVAlignment
|
||||
{
|
||||
TOP,
|
||||
CENTER,
|
||||
|
@ -368,7 +368,7 @@ enum class TextVAlignment
|
|||
|
||||
// XXX: If any of these enums are edited and/or reordered, update Texture2D.m
|
||||
//! Horizontal text alignment type
|
||||
enum class TextHAlignment
|
||||
enum class CC_DLL TextHAlignment
|
||||
{
|
||||
LEFT,
|
||||
CENTER,
|
||||
|
@ -378,7 +378,7 @@ enum class TextHAlignment
|
|||
// types for animation in particle systems
|
||||
|
||||
// texture coordinates for a quad
|
||||
struct T2F_Quad
|
||||
struct CC_DLL T2F_Quad
|
||||
{
|
||||
//! bottom left
|
||||
Tex2F bl;
|
||||
|
@ -391,7 +391,7 @@ struct T2F_Quad
|
|||
};
|
||||
|
||||
// struct that holds the size in pixels, texture coordinates and delays for animated ParticleSystemQuad
|
||||
struct AnimationFrameData
|
||||
struct CC_DLL AnimationFrameData
|
||||
{
|
||||
T2F_Quad texCoords;
|
||||
float delay;
|
||||
|
@ -404,7 +404,7 @@ struct AnimationFrameData
|
|||
|
||||
|
||||
// shadow attributes
|
||||
struct FontShadow
|
||||
struct CC_DLL FontShadow
|
||||
{
|
||||
public:
|
||||
|
||||
|
@ -426,7 +426,7 @@ public:
|
|||
};
|
||||
|
||||
// stroke attributes
|
||||
struct FontStroke
|
||||
struct CC_DLL FontStroke
|
||||
{
|
||||
public:
|
||||
|
||||
|
@ -447,7 +447,7 @@ public:
|
|||
};
|
||||
|
||||
// font attributes
|
||||
struct FontDefinition
|
||||
struct CC_DLL FontDefinition
|
||||
{
|
||||
public:
|
||||
/**
|
||||
|
@ -484,7 +484,7 @@ public:
|
|||
/**
|
||||
@brief The device accelerometer reports values for each axis in units of g-force
|
||||
*/
|
||||
class Acceleration
|
||||
class CC_DLL Acceleration
|
||||
: public Ref
|
||||
{
|
||||
public:
|
||||
|
@ -497,8 +497,8 @@ public:
|
|||
Acceleration(): x(0), y(0), z(0), timestamp(0) {}
|
||||
};
|
||||
|
||||
extern const std::string STD_STRING_EMPTY;
|
||||
extern const ssize_t CC_INVALID_INDEX;
|
||||
extern const std::string CC_DLL STD_STRING_EMPTY;
|
||||
extern const ssize_t CC_DLL CC_INVALID_INDEX;
|
||||
|
||||
NS_CC_END
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ CC_DEPRECATED_ATTRIBUTE CC_DLL int cc_wcslen(const unsigned short* str);
|
|||
* @deprecated Please use `StringUtils::trimUTF16Vector` instead
|
||||
*/
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE void cc_utf8_trim_ws(std::vector<unsigned short>* str);
|
||||
CC_DEPRECATED_ATTRIBUTE CC_DLL void cc_utf8_trim_ws(std::vector<unsigned short>* str);
|
||||
|
||||
/**
|
||||
* Whether the character is a whitespace character.
|
||||
|
@ -144,7 +144,7 @@ CC_DEPRECATED_ATTRIBUTE void cc_utf8_trim_ws(std::vector<unsigned short>* str);
|
|||
*
|
||||
* @see http://en.wikipedia.org/wiki/Whitespace_character#Unicode
|
||||
* */
|
||||
CC_DEPRECATED_ATTRIBUTE bool isspace_unicode(unsigned short ch);
|
||||
CC_DEPRECATED_ATTRIBUTE CC_DLL bool isspace_unicode(unsigned short ch);
|
||||
|
||||
/**
|
||||
* Whether the character is a Chinese/Japanese/Korean character.
|
||||
|
@ -156,7 +156,7 @@ CC_DEPRECATED_ATTRIBUTE bool isspace_unicode(unsigned short ch);
|
|||
* @see http://www.searchtb.com/2012/04/chinese_encode.html
|
||||
* @see http://tieba.baidu.com/p/748765987
|
||||
* */
|
||||
CC_DEPRECATED_ATTRIBUTE bool iscjk_unicode(unsigned short ch);
|
||||
CC_DEPRECATED_ATTRIBUTE CC_DLL bool iscjk_unicode(unsigned short ch);
|
||||
|
||||
/**
|
||||
* Returns the length of the string in characters.
|
||||
|
@ -166,7 +166,7 @@ CC_DEPRECATED_ATTRIBUTE bool iscjk_unicode(unsigned short ch);
|
|||
* @deprecated Please use `StringUtils::getCharacterCountInUTF8String` instead
|
||||
* @returns the length of the string in characters
|
||||
**/
|
||||
CC_DEPRECATED_ATTRIBUTE long cc_utf8_strlen (const char * p, int max = -1);
|
||||
CC_DEPRECATED_ATTRIBUTE CC_DLL long cc_utf8_strlen (const char * p, int max = -1);
|
||||
|
||||
/**
|
||||
* Find the last character that is not equal to the character given.
|
||||
|
@ -176,13 +176,13 @@ CC_DEPRECATED_ATTRIBUTE long cc_utf8_strlen (const char * p, int max = -1);
|
|||
* @deprecated Please use `StringUtils::getIndexOfLastNotChar16` instead
|
||||
* @returns the index of the last character that is not \p c.
|
||||
* */
|
||||
CC_DEPRECATED_ATTRIBUTE unsigned int cc_utf8_find_last_not_char(const std::vector<unsigned short>& str, unsigned short c);
|
||||
CC_DEPRECATED_ATTRIBUTE CC_DLL unsigned int cc_utf8_find_last_not_char(const std::vector<unsigned short>& str, unsigned short c);
|
||||
|
||||
/**
|
||||
* @brief Gets `unsigned short` vector from a given utf16 string
|
||||
* @deprecated Please use `StringUtils::getChar16VectorFromUTF16String` instead
|
||||
*/
|
||||
CC_DEPRECATED_ATTRIBUTE std::vector<unsigned short> cc_utf16_vec_from_utf16_str(const unsigned short* str);
|
||||
CC_DEPRECATED_ATTRIBUTE CC_DLL std::vector<unsigned short> cc_utf16_vec_from_utf16_str(const unsigned short* str);
|
||||
|
||||
/**
|
||||
* Creates an utf8 string from a c string. The result will be null terminated.
|
||||
|
@ -194,7 +194,7 @@ CC_DEPRECATED_ATTRIBUTE std::vector<unsigned short> cc_utf16_vec_from_utf16_str(
|
|||
* @returns the newly created utf16 string, it must be released with `delete[]`,
|
||||
* If an error occurs, %NULL will be returned.
|
||||
* */
|
||||
CC_DEPRECATED_ATTRIBUTE unsigned short* cc_utf8_to_utf16(const char* str_old, int length = -1, int* rUtf16Size = nullptr);
|
||||
CC_DEPRECATED_ATTRIBUTE CC_DLL unsigned short* cc_utf8_to_utf16(const char* str_old, int length = -1, int* rUtf16Size = nullptr);
|
||||
|
||||
/**
|
||||
* Converts a string from UTF-16 to UTF-8. The result will be null terminated.
|
||||
|
@ -207,7 +207,7 @@ CC_DEPRECATED_ATTRIBUTE unsigned short* cc_utf8_to_utf16(const char* str_old, in
|
|||
* @returns a pointer to a newly allocated UTF-8 string. This value must be
|
||||
* released with `delete[]`. If an error occurs, %NULL will be returned.
|
||||
**/
|
||||
CC_DEPRECATED_ATTRIBUTE char * cc_utf16_to_utf8 (const unsigned short *str,
|
||||
CC_DEPRECATED_ATTRIBUTE CC_DLL char * cc_utf16_to_utf8 (const unsigned short *str,
|
||||
int len = -1,
|
||||
long *items_read = nullptr,
|
||||
long *items_written = nullptr);
|
||||
|
|
|
@ -24,6 +24,9 @@ THE SOFTWARE.
|
|||
****************************************************************************/
|
||||
|
||||
#include "base/ccUtils.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "base/CCDirector.h"
|
||||
#include "renderer/CCCustomCommand.h"
|
||||
#include "renderer/CCRenderer.h"
|
||||
|
@ -161,6 +164,27 @@ std::vector<Node*> findChildren(const Node &node, const std::string &name)
|
|||
return vec;
|
||||
}
|
||||
|
||||
#define MAX_ITOA_BUFFER_SIZE 256
|
||||
double atof(const char* str)
|
||||
{
|
||||
if (str == nullptr)
|
||||
{
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
char buf[MAX_ITOA_BUFFER_SIZE];
|
||||
strncpy(buf, str, MAX_ITOA_BUFFER_SIZE);
|
||||
|
||||
// strip string, only remain 7 numbers after '.'
|
||||
char* dot = strchr(buf, '.');
|
||||
if (dot != nullptr && dot - buf + 8 < MAX_ITOA_BUFFER_SIZE)
|
||||
{
|
||||
dot[8] = '\0';
|
||||
}
|
||||
|
||||
return ::atof(buf);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -61,7 +61,7 @@ namespace utils
|
|||
* base filename ("hello.png" etc.), don't use a relative path containing directory names.("mydir/hello.png" etc.)
|
||||
* @since v3.2
|
||||
*/
|
||||
void captureScreen(const std::function<void(bool, const std::string&)>& afterCaptured, const std::string& filename);
|
||||
void CC_DLL captureScreen(const std::function<void(bool, const std::string&)>& afterCaptured, const std::string& filename);
|
||||
|
||||
/** Find children by name, it will return all child that has the same name.
|
||||
* It supports c++ 11 regular expression. It is a helper function of `Node::enumerateChildren()`.
|
||||
|
@ -72,7 +72,12 @@ namespace utils
|
|||
* @return Array of Nodes that matches the name
|
||||
* @since v3.2
|
||||
*/
|
||||
std::vector<Node*> findChildren(const Node &node, const std::string &name);
|
||||
std::vector<Node*> CC_DLL findChildren(const Node &node, const std::string &name);
|
||||
|
||||
/** Same to ::atof, but strip the string, remain 7 numbers after '.' before call atof。
|
||||
* Why we need this? Because in android c++_static, atof ( and std::atof ) is unsupported for numbers have long decimal part and contain several numbers can approximate to 1 ( like 90.099998474121094 ), it will return inf. this function is used to fix this bug.
|
||||
*/
|
||||
double CC_DLL atof(const char* str);
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -0,0 +1,713 @@
|
|||
/******************************************************************************
|
||||
|
||||
@File PVRTDecompress.cpp
|
||||
|
||||
@Title
|
||||
|
||||
@Copyright Copyright (C) 2000 - 2008 by Imagination Technologies Limited.
|
||||
|
||||
@Platform ANSI compatible
|
||||
|
||||
@Description PVRTC Texture Decompression.
|
||||
|
||||
******************************************************************************/
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <cstdint>
|
||||
#include "pvr.h"
|
||||
|
||||
#define PVRT_MIN(a,b) (((a) < (b)) ? (a) : (b))
|
||||
#define PVRT_MAX(a,b) (((a) > (b)) ? (a) : (b))
|
||||
#define PVRT_CLAMP(x, l, h) (PVRT_MIN((h), PVRT_MAX((x), (l))))
|
||||
|
||||
/*****************************************************************************
|
||||
* defines and consts
|
||||
*****************************************************************************/
|
||||
#define PT_INDEX (2) // The Punch-through index
|
||||
|
||||
#define BLK_Y_SIZE (4) // always 4 for all 2D block types
|
||||
|
||||
#define BLK_X_MAX (8) // Max X dimension for blocks
|
||||
|
||||
#define BLK_X_2BPP (8) // dimensions for the two formats
|
||||
#define BLK_X_4BPP (4)
|
||||
|
||||
#define WRAP_COORD(Val, Size) ((Val) & ((Size)-1))
|
||||
|
||||
#define POWER_OF_2(X) util_number_is_power_2(X)
|
||||
|
||||
/*
|
||||
Define an expression to either wrap or clamp large or small vals to the
|
||||
legal coordinate range
|
||||
*/
|
||||
#define LIMIT_COORD(Val, Size, AssumeImageTiles) \
|
||||
((AssumeImageTiles)? WRAP_COORD((Val), (Size)): PVRT_CLAMP((Val), 0, (Size)-1))
|
||||
|
||||
/*****************************************************************************
|
||||
* Useful typedefs
|
||||
*****************************************************************************/
|
||||
|
||||
typedef uint32_t U32;
|
||||
typedef uint8_t U8;
|
||||
|
||||
/***********************************************************
|
||||
DECOMPRESSION ROUTINES
|
||||
************************************************************/
|
||||
|
||||
/*!***********************************************************************
|
||||
@Struct AMTC_BLOCK_STRUCT
|
||||
@Brief
|
||||
*************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
// Uses 64 bits pre block
|
||||
U32 PackedData[2];
|
||||
}AMTC_BLOCK_STRUCT;
|
||||
|
||||
|
||||
static void PVRDecompress(AMTC_BLOCK_STRUCT *pCompressedData,
|
||||
const bool Do2bitMode,
|
||||
const int XDim,
|
||||
const int YDim,
|
||||
const int AssumeImageTiles,
|
||||
unsigned char* pResultImage);
|
||||
|
||||
/*!***********************************************************************
|
||||
@Function PVRTDecompressPVRTC
|
||||
@Input pCompressedData The PVRTC texture data to decompress
|
||||
@Input Do2bitMode Signifies whether the data is PVRTC2 or PVRTC4
|
||||
@Input XDim X dimension of the texture
|
||||
@Input YDim Y dimension of the texture
|
||||
@Modified pResultImage The decompressed texture data
|
||||
@Description Decompresses PVRTC to RGBA 8888
|
||||
*************************************************************************/
|
||||
int PVRTDecompressPVRTC(const void * const pCompressedData,const int XDim,const int YDim, void *pDestData,const bool Do2bitMode)
|
||||
{
|
||||
PVRDecompress((AMTC_BLOCK_STRUCT*)pCompressedData,Do2bitMode,XDim,YDim,1,(unsigned char*)pDestData);
|
||||
|
||||
return XDim*YDim/2;
|
||||
}
|
||||
|
||||
/*!***********************************************************************
|
||||
@Function util_number_is_power_2
|
||||
@Input input A number
|
||||
@Returns TRUE if the number is an integer power of two, else FALSE.
|
||||
@Description Check that a number is an integer power of two, i.e.
|
||||
1, 2, 4, 8, ... etc.
|
||||
Returns FALSE for zero.
|
||||
*************************************************************************/
|
||||
int util_number_is_power_2( unsigned input )
|
||||
{
|
||||
unsigned minus1;
|
||||
|
||||
if( !input ) return 0;
|
||||
|
||||
minus1 = input - 1;
|
||||
return ( (input | minus1) == (input ^ minus1) ) ? 1 : 0;
|
||||
}
|
||||
|
||||
|
||||
/*!***********************************************************************
|
||||
@Function Unpack5554Colour
|
||||
@Input pBlock
|
||||
@Input ABColours
|
||||
@Description Given a block, extract the colour information and convert
|
||||
to 5554 formats
|
||||
*************************************************************************/
|
||||
static void Unpack5554Colour(const AMTC_BLOCK_STRUCT *pBlock,
|
||||
int ABColours[2][4])
|
||||
{
|
||||
U32 RawBits[2];
|
||||
|
||||
int i;
|
||||
|
||||
// Extract A and B
|
||||
RawBits[0] = pBlock->PackedData[1] & (0xFFFE); // 15 bits (shifted up by one)
|
||||
RawBits[1] = pBlock->PackedData[1] >> 16; // 16 bits
|
||||
|
||||
// step through both colours
|
||||
for(i = 0; i < 2; i++)
|
||||
{
|
||||
// If completely opaque
|
||||
if(RawBits[i] & (1<<15))
|
||||
{
|
||||
// Extract R and G (both 5 bit)
|
||||
ABColours[i][0] = (RawBits[i] >> 10) & 0x1F;
|
||||
ABColours[i][1] = (RawBits[i] >> 5) & 0x1F;
|
||||
|
||||
/*
|
||||
The precision of Blue depends on A or B. If A then we need to
|
||||
replicate the top bit to get 5 bits in total
|
||||
*/
|
||||
ABColours[i][2] = RawBits[i] & 0x1F;
|
||||
if(i==0)
|
||||
{
|
||||
ABColours[0][2] |= ABColours[0][2] >> 4;
|
||||
}
|
||||
|
||||
// set 4bit alpha fully on...
|
||||
ABColours[i][3] = 0xF;
|
||||
}
|
||||
else // Else if colour has variable translucency
|
||||
{
|
||||
/*
|
||||
Extract R and G (both 4 bit).
|
||||
(Leave a space on the end for the replication of bits
|
||||
*/
|
||||
ABColours[i][0] = (RawBits[i] >> (8-1)) & 0x1E;
|
||||
ABColours[i][1] = (RawBits[i] >> (4-1)) & 0x1E;
|
||||
|
||||
// replicate bits to truly expand to 5 bits
|
||||
ABColours[i][0] |= ABColours[i][0] >> 4;
|
||||
ABColours[i][1] |= ABColours[i][1] >> 4;
|
||||
|
||||
// grab the 3(+padding) or 4 bits of blue and add an extra padding bit
|
||||
ABColours[i][2] = (RawBits[i] & 0xF) << 1;
|
||||
|
||||
/*
|
||||
expand from 3 to 5 bits if this is from colour A, or 4 to 5 bits if from
|
||||
colour B
|
||||
*/
|
||||
if(i==0)
|
||||
{
|
||||
ABColours[0][2] |= ABColours[0][2] >> 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
ABColours[0][2] |= ABColours[0][2] >> 4;
|
||||
}
|
||||
|
||||
// Set the alpha bits to be 3 + a zero on the end
|
||||
ABColours[i][3] = (RawBits[i] >> 11) & 0xE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*!***********************************************************************
|
||||
@Function UnpackModulations
|
||||
@Input pBlock
|
||||
@Input Do2bitMode
|
||||
@Input ModulationVals
|
||||
@Input ModulationModes
|
||||
@Input StartX
|
||||
@Input StartY
|
||||
@Description Given the block and the texture type and it's relative
|
||||
position in the 2x2 group of blocks, extract the bit
|
||||
patterns for the fully defined pixels.
|
||||
*************************************************************************/
|
||||
static void UnpackModulations(const AMTC_BLOCK_STRUCT *pBlock,
|
||||
const int Do2bitMode,
|
||||
int ModulationVals[8][16],
|
||||
int ModulationModes[8][16],
|
||||
int StartX,
|
||||
int StartY)
|
||||
{
|
||||
int BlockModMode;
|
||||
U32 ModulationBits;
|
||||
|
||||
int x, y;
|
||||
|
||||
BlockModMode= pBlock->PackedData[1] & 1;
|
||||
ModulationBits = pBlock->PackedData[0];
|
||||
|
||||
// if it's in an interpolated mode
|
||||
if(Do2bitMode && BlockModMode)
|
||||
{
|
||||
/*
|
||||
run through all the pixels in the block. Note we can now treat all the
|
||||
"stored" values as if they have 2bits (even when they didn't!)
|
||||
*/
|
||||
for(y = 0; y < BLK_Y_SIZE; y++)
|
||||
{
|
||||
for(x = 0; x < BLK_X_2BPP; x++)
|
||||
{
|
||||
ModulationModes[y+StartY][x+StartX] = BlockModMode;
|
||||
|
||||
// if this is a stored value...
|
||||
if(((x^y)&1) == 0)
|
||||
{
|
||||
ModulationVals[y+StartY][x+StartX] = ModulationBits & 3;
|
||||
ModulationBits >>= 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(Do2bitMode) // else if direct encoded 2bit mode - i.e. 1 mode bit per pixel
|
||||
{
|
||||
for(y = 0; y < BLK_Y_SIZE; y++)
|
||||
{
|
||||
for(x = 0; x < BLK_X_2BPP; x++)
|
||||
{
|
||||
ModulationModes[y+StartY][x+StartX] = BlockModMode;
|
||||
|
||||
// double the bits so 0=> 00, and 1=>11
|
||||
if(ModulationBits & 1)
|
||||
{
|
||||
ModulationVals[y+StartY][x+StartX] = 0x3;
|
||||
}
|
||||
else
|
||||
{
|
||||
ModulationVals[y+StartY][x+StartX] = 0x0;
|
||||
}
|
||||
ModulationBits >>= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else // else its the 4bpp mode so each value has 2 bits
|
||||
{
|
||||
for(y = 0; y < BLK_Y_SIZE; y++)
|
||||
{
|
||||
for(x = 0; x < BLK_X_4BPP; x++)
|
||||
{
|
||||
ModulationModes[y+StartY][x+StartX] = BlockModMode;
|
||||
|
||||
ModulationVals[y+StartY][x+StartX] = ModulationBits & 3;
|
||||
ModulationBits >>= 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// make sure nothing is left over
|
||||
assert(ModulationBits==0);
|
||||
}
|
||||
|
||||
/*!***********************************************************************
|
||||
@Function InterpolateColours
|
||||
@Input ColourP
|
||||
@Input ColourQ
|
||||
@Input ColourR
|
||||
@Input ColourS
|
||||
@Input Do2bitMode
|
||||
@Input x
|
||||
@Input y
|
||||
@Modified Result
|
||||
@Description This performs a HW bit accurate interpolation of either the
|
||||
A or B colours for a particular pixel.
|
||||
|
||||
NOTE: It is assumed that the source colours are in ARGB 5554
|
||||
format - This means that some "preparation" of the values will
|
||||
be necessary.
|
||||
*************************************************************************/
|
||||
static void InterpolateColours(const int ColourP[4],
|
||||
const int ColourQ[4],
|
||||
const int ColourR[4],
|
||||
const int ColourS[4],
|
||||
const int Do2bitMode,
|
||||
const int x,
|
||||
const int y,
|
||||
int Result[4])
|
||||
{
|
||||
int u, v, uscale;
|
||||
int k;
|
||||
|
||||
int tmp1, tmp2;
|
||||
|
||||
int P[4], Q[4], R[4], S[4];
|
||||
|
||||
// Copy the colours
|
||||
for(k = 0; k < 4; k++)
|
||||
{
|
||||
P[k] = ColourP[k];
|
||||
Q[k] = ColourQ[k];
|
||||
R[k] = ColourR[k];
|
||||
S[k] = ColourS[k];
|
||||
}
|
||||
|
||||
// put the x and y values into the right range
|
||||
v = (y & 0x3) | ((~y & 0x2) << 1);
|
||||
|
||||
if(Do2bitMode)
|
||||
u = (x & 0x7) | ((~x & 0x4) << 1);
|
||||
else
|
||||
u = (x & 0x3) | ((~x & 0x2) << 1);
|
||||
|
||||
// get the u and v scale amounts
|
||||
v = v - BLK_Y_SIZE/2;
|
||||
|
||||
if(Do2bitMode)
|
||||
{
|
||||
u = u - BLK_X_2BPP/2;
|
||||
uscale = 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
u = u - BLK_X_4BPP/2;
|
||||
uscale = 4;
|
||||
}
|
||||
|
||||
for(k = 0; k < 4; k++)
|
||||
{
|
||||
tmp1 = P[k] * uscale + u * (Q[k] - P[k]);
|
||||
tmp2 = R[k] * uscale + u * (S[k] - R[k]);
|
||||
|
||||
tmp1 = tmp1 * 4 + v * (tmp2 - tmp1);
|
||||
|
||||
Result[k] = tmp1;
|
||||
}
|
||||
|
||||
// Lop off the appropriate number of bits to get us to 8 bit precision
|
||||
if(Do2bitMode)
|
||||
{
|
||||
// do RGB
|
||||
for(k = 0; k < 3; k++)
|
||||
{
|
||||
Result[k] >>= 2;
|
||||
}
|
||||
|
||||
Result[3] >>= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// do RGB (A is ok)
|
||||
for(k = 0; k < 3; k++)
|
||||
{
|
||||
Result[k] >>= 1;
|
||||
}
|
||||
}
|
||||
|
||||
// sanity check
|
||||
for(k = 0; k < 4; k++)
|
||||
{
|
||||
assert(Result[k] < 256);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Convert from 5554 to 8888
|
||||
|
||||
do RGB 5.3 => 8
|
||||
*/
|
||||
for(k = 0; k < 3; k++)
|
||||
{
|
||||
Result[k] += Result[k] >> 5;
|
||||
}
|
||||
|
||||
Result[3] += Result[3] >> 4;
|
||||
|
||||
// 2nd sanity check
|
||||
for(k = 0; k < 4; k++)
|
||||
{
|
||||
assert(Result[k] < 256);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*!***********************************************************************
|
||||
@Function GetModulationValue
|
||||
@Input x
|
||||
@Input y
|
||||
@Input Do2bitMode
|
||||
@Input ModulationVals
|
||||
@Input ModulationModes
|
||||
@Input Mod
|
||||
@Input DoPT
|
||||
@Description Get the modulation value as a numerator of a fraction of 8ths
|
||||
*************************************************************************/
|
||||
static void GetModulationValue(int x,
|
||||
int y,
|
||||
const int Do2bitMode,
|
||||
const int ModulationVals[8][16],
|
||||
const int ModulationModes[8][16],
|
||||
int *Mod,
|
||||
int *DoPT)
|
||||
{
|
||||
static const int RepVals0[4] = {0, 3, 5, 8};
|
||||
static const int RepVals1[4] = {0, 4, 4, 8};
|
||||
|
||||
int ModVal;
|
||||
|
||||
// Map X and Y into the local 2x2 block
|
||||
y = (y & 0x3) | ((~y & 0x2) << 1);
|
||||
|
||||
if(Do2bitMode)
|
||||
x = (x & 0x7) | ((~x & 0x4) << 1);
|
||||
else
|
||||
x = (x & 0x3) | ((~x & 0x2) << 1);
|
||||
|
||||
// assume no PT for now
|
||||
*DoPT = 0;
|
||||
|
||||
// extract the modulation value. If a simple encoding
|
||||
if(ModulationModes[y][x]==0)
|
||||
{
|
||||
ModVal = RepVals0[ModulationVals[y][x]];
|
||||
}
|
||||
else if(Do2bitMode)
|
||||
{
|
||||
// if this is a stored value
|
||||
if(((x^y)&1)==0)
|
||||
ModVal = RepVals0[ModulationVals[y][x]];
|
||||
else if(ModulationModes[y][x] == 1) // else average from the neighbours if H&V interpolation..
|
||||
{
|
||||
ModVal = (RepVals0[ModulationVals[y-1][x]] +
|
||||
RepVals0[ModulationVals[y+1][x]] +
|
||||
RepVals0[ModulationVals[y][x-1]] +
|
||||
RepVals0[ModulationVals[y][x+1]] + 2) / 4;
|
||||
}
|
||||
else if(ModulationModes[y][x] == 2) // else if H-Only
|
||||
{
|
||||
ModVal = (RepVals0[ModulationVals[y][x-1]] +
|
||||
RepVals0[ModulationVals[y][x+1]] + 1) / 2;
|
||||
}
|
||||
else // else it's V-Only
|
||||
{
|
||||
ModVal = (RepVals0[ModulationVals[y-1][x]] +
|
||||
RepVals0[ModulationVals[y+1][x]] + 1) / 2;
|
||||
}
|
||||
}
|
||||
else // else it's 4BPP and PT encoding
|
||||
{
|
||||
ModVal = RepVals1[ModulationVals[y][x]];
|
||||
|
||||
*DoPT = ModulationVals[y][x] == PT_INDEX;
|
||||
}
|
||||
|
||||
*Mod =ModVal;
|
||||
}
|
||||
|
||||
/*!***********************************************************************
|
||||
@Function TwiddleUV
|
||||
@Input YSize Y dimension of the texture in pixels
|
||||
@Input XSize X dimension of the texture in pixels
|
||||
@Input YPos Pixel Y position
|
||||
@Input XPos Pixel X position
|
||||
@Returns The twiddled offset of the pixel
|
||||
@Description Given the Block (or pixel) coordinates and the dimension of
|
||||
the texture in blocks (or pixels) this returns the twiddled
|
||||
offset of the block (or pixel) from the start of the map.
|
||||
|
||||
NOTE the dimensions of the texture must be a power of 2
|
||||
*************************************************************************/
|
||||
static int DisableTwiddlingRoutine = 0;
|
||||
|
||||
static U32 TwiddleUV(U32 YSize, U32 XSize, U32 YPos, U32 XPos)
|
||||
{
|
||||
U32 Twiddled;
|
||||
|
||||
U32 MinDimension;
|
||||
U32 MaxValue;
|
||||
|
||||
U32 SrcBitPos;
|
||||
U32 DstBitPos;
|
||||
|
||||
int ShiftCount;
|
||||
|
||||
assert(YPos < YSize);
|
||||
assert(XPos < XSize);
|
||||
|
||||
assert(POWER_OF_2(YSize));
|
||||
assert(POWER_OF_2(XSize));
|
||||
|
||||
if(YSize < XSize)
|
||||
{
|
||||
MinDimension = YSize;
|
||||
MaxValue = XPos;
|
||||
}
|
||||
else
|
||||
{
|
||||
MinDimension = XSize;
|
||||
MaxValue = YPos;
|
||||
}
|
||||
|
||||
// Nasty hack to disable twiddling
|
||||
if(DisableTwiddlingRoutine)
|
||||
return (YPos* XSize + XPos);
|
||||
|
||||
// Step through all the bits in the "minimum" dimension
|
||||
SrcBitPos = 1;
|
||||
DstBitPos = 1;
|
||||
Twiddled = 0;
|
||||
ShiftCount = 0;
|
||||
|
||||
while(SrcBitPos < MinDimension)
|
||||
{
|
||||
if(YPos & SrcBitPos)
|
||||
{
|
||||
Twiddled |= DstBitPos;
|
||||
}
|
||||
|
||||
if(XPos & SrcBitPos)
|
||||
{
|
||||
Twiddled |= (DstBitPos << 1);
|
||||
}
|
||||
|
||||
|
||||
SrcBitPos <<= 1;
|
||||
DstBitPos <<= 2;
|
||||
ShiftCount += 1;
|
||||
|
||||
}
|
||||
|
||||
// prepend any unused bits
|
||||
MaxValue >>= ShiftCount;
|
||||
|
||||
Twiddled |= (MaxValue << (2*ShiftCount));
|
||||
|
||||
return Twiddled;
|
||||
}
|
||||
|
||||
/*!***********************************************************************
|
||||
@Function Decompress
|
||||
@Input pCompressedData The PVRTC texture data to decompress
|
||||
@Input Do2BitMode Signifies whether the data is PVRTC2 or PVRTC4
|
||||
@Input XDim X dimension of the texture
|
||||
@Input YDim Y dimension of the texture
|
||||
@Input AssumeImageTiles Assume the texture data tiles
|
||||
@Modified pResultImage The decompressed texture data
|
||||
@Description Decompresses PVRTC to RGBA 8888
|
||||
*************************************************************************/
|
||||
static void PVRDecompress(AMTC_BLOCK_STRUCT *pCompressedData,
|
||||
const bool Do2bitMode,
|
||||
const int XDim,
|
||||
const int YDim,
|
||||
const int AssumeImageTiles,
|
||||
unsigned char* pResultImage)
|
||||
{
|
||||
int x, y;
|
||||
int i, j;
|
||||
|
||||
int BlkX, BlkY;
|
||||
int BlkXp1, BlkYp1;
|
||||
int XBlockSize;
|
||||
int BlkXDim, BlkYDim;
|
||||
|
||||
int StartX, StartY;
|
||||
|
||||
int ModulationVals[8][16];
|
||||
int ModulationModes[8][16];
|
||||
|
||||
int Mod, DoPT;
|
||||
|
||||
unsigned int uPosition;
|
||||
|
||||
// local neighbourhood of blocks
|
||||
AMTC_BLOCK_STRUCT *pBlocks[2][2];
|
||||
|
||||
AMTC_BLOCK_STRUCT *pPrevious[2][2] = {{NULL, NULL}, {NULL, NULL}};
|
||||
|
||||
// Low precision colours extracted from the blocks
|
||||
struct
|
||||
{
|
||||
int Reps[2][4];
|
||||
}Colours5554[2][2];
|
||||
|
||||
// Interpolated A and B colours for the pixel
|
||||
int ASig[4], BSig[4];
|
||||
|
||||
int Result[4];
|
||||
|
||||
if(Do2bitMode)
|
||||
XBlockSize = BLK_X_2BPP;
|
||||
else
|
||||
XBlockSize = BLK_X_4BPP;
|
||||
|
||||
// For MBX don't allow the sizes to get too small
|
||||
BlkXDim = PVRT_MAX(2, XDim / XBlockSize);
|
||||
BlkYDim = PVRT_MAX(2, YDim / BLK_Y_SIZE);
|
||||
|
||||
/*
|
||||
Step through the pixels of the image decompressing each one in turn
|
||||
|
||||
Note that this is a hideously inefficient way to do this!
|
||||
*/
|
||||
for(y = 0; y < YDim; y++)
|
||||
{
|
||||
for(x = 0; x < XDim; x++)
|
||||
{
|
||||
// map this pixel to the top left neighbourhood of blocks
|
||||
BlkX = (x - XBlockSize/2);
|
||||
BlkY = (y - BLK_Y_SIZE/2);
|
||||
|
||||
BlkX = LIMIT_COORD(BlkX, XDim, AssumeImageTiles);
|
||||
BlkY = LIMIT_COORD(BlkY, YDim, AssumeImageTiles);
|
||||
|
||||
|
||||
BlkX /= XBlockSize;
|
||||
BlkY /= BLK_Y_SIZE;
|
||||
|
||||
// compute the positions of the other 3 blocks
|
||||
BlkXp1 = LIMIT_COORD(BlkX+1, BlkXDim, AssumeImageTiles);
|
||||
BlkYp1 = LIMIT_COORD(BlkY+1, BlkYDim, AssumeImageTiles);
|
||||
|
||||
// Map to block memory locations
|
||||
pBlocks[0][0] = pCompressedData +TwiddleUV(BlkYDim, BlkXDim, BlkY, BlkX);
|
||||
pBlocks[0][1] = pCompressedData +TwiddleUV(BlkYDim, BlkXDim, BlkY, BlkXp1);
|
||||
pBlocks[1][0] = pCompressedData +TwiddleUV(BlkYDim, BlkXDim, BlkYp1, BlkX);
|
||||
pBlocks[1][1] = pCompressedData +TwiddleUV(BlkYDim, BlkXDim, BlkYp1, BlkXp1);
|
||||
|
||||
|
||||
/*
|
||||
extract the colours and the modulation information IF the previous values
|
||||
have changed.
|
||||
*/
|
||||
if(memcmp(pPrevious, pBlocks, 4*sizeof(void*)) != 0)
|
||||
{
|
||||
StartY = 0;
|
||||
for(i = 0; i < 2; i++)
|
||||
{
|
||||
StartX = 0;
|
||||
for(j = 0; j < 2; j++)
|
||||
{
|
||||
Unpack5554Colour(pBlocks[i][j], Colours5554[i][j].Reps);
|
||||
|
||||
UnpackModulations(pBlocks[i][j],
|
||||
Do2bitMode,
|
||||
ModulationVals,
|
||||
ModulationModes,
|
||||
StartX, StartY);
|
||||
|
||||
StartX += XBlockSize;
|
||||
}
|
||||
|
||||
StartY += BLK_Y_SIZE;
|
||||
}
|
||||
|
||||
// make a copy of the new pointers
|
||||
memcpy(pPrevious, pBlocks, 4*sizeof(void*));
|
||||
}
|
||||
|
||||
// decompress the pixel. First compute the interpolated A and B signals
|
||||
InterpolateColours(Colours5554[0][0].Reps[0],
|
||||
Colours5554[0][1].Reps[0],
|
||||
Colours5554[1][0].Reps[0],
|
||||
Colours5554[1][1].Reps[0],
|
||||
Do2bitMode, x, y,
|
||||
ASig);
|
||||
|
||||
InterpolateColours(Colours5554[0][0].Reps[1],
|
||||
Colours5554[0][1].Reps[1],
|
||||
Colours5554[1][0].Reps[1],
|
||||
Colours5554[1][1].Reps[1],
|
||||
Do2bitMode, x, y,
|
||||
BSig);
|
||||
|
||||
GetModulationValue(x,y, Do2bitMode, (const int (*)[16])ModulationVals, (const int (*)[16])ModulationModes,
|
||||
&Mod, &DoPT);
|
||||
|
||||
// compute the modulated colour
|
||||
for(i = 0; i < 4; i++)
|
||||
{
|
||||
Result[i] = ASig[i] * 8 + Mod * (BSig[i] - ASig[i]);
|
||||
Result[i] >>= 3;
|
||||
}
|
||||
|
||||
if(DoPT)
|
||||
Result[3] = 0;
|
||||
|
||||
// Store the result in the output image
|
||||
uPosition = (x+y*XDim)<<2;
|
||||
pResultImage[uPosition+0] = (U8)Result[0];
|
||||
pResultImage[uPosition+1] = (U8)Result[1];
|
||||
pResultImage[uPosition+2] = (U8)Result[2];
|
||||
pResultImage[uPosition+3] = (U8)Result[3];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
End of file (pvr.cpp)
|
||||
*****************************************************************************/
|
|
@ -0,0 +1,22 @@
|
|||
/******************************************************************************
|
||||
|
||||
@File PVRTDecompress.h
|
||||
|
||||
@Title
|
||||
|
||||
@Copyright Copyright (C) 2000 - 2008 by Imagination Technologies Limited.
|
||||
|
||||
@Platform ANSI compatible
|
||||
|
||||
@Description PVRTC Texture Decompression.
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __PVR_H__
|
||||
#define __PVR_H__
|
||||
|
||||
|
||||
int PVRTDecompressPVRTC(const void * const pCompressedData,const int XDim,const int YDim,void *pDestData,const bool Do2bitMode);
|
||||
|
||||
|
||||
#endif //__PVR_H__
|
|
@ -31,7 +31,7 @@ NS_CC_BEGIN
|
|||
|
||||
const char* cocos2dVersion()
|
||||
{
|
||||
return "cocos2d-x 3.2beta0";
|
||||
return "cocos2d-x 3.2";
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -253,6 +253,8 @@ THE SOFTWARE.
|
|||
#include "2d/CCTMXTiledMap.h"
|
||||
#include "2d/CCTMXXMLParser.h"
|
||||
#include "2d/CCTileMapAtlas.h"
|
||||
#include "2d/CCFastTMXTiledMap.h"
|
||||
#include "2d/CCFastTMXLayer.h"
|
||||
|
||||
// component
|
||||
#include "2d/CCComponent.h"
|
||||
|
|
|
@ -29,6 +29,7 @@ Copyright (c) 2013-2014 Chukong Technologies
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "CCArray.h"
|
||||
#include "base/ccUtils.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
|
@ -118,7 +119,7 @@ float __String::floatValue() const
|
|||
{
|
||||
return 0.0f;
|
||||
}
|
||||
return (float)atof(_string.c_str());
|
||||
return (float)utils::atof(_string.c_str());
|
||||
}
|
||||
|
||||
double __String::doubleValue() const
|
||||
|
@ -127,7 +128,7 @@ double __String::doubleValue() const
|
|||
{
|
||||
return 0.0;
|
||||
}
|
||||
return atof(_string.c_str());
|
||||
return utils::atof(_string.c_str());
|
||||
}
|
||||
|
||||
bool __String::boolValue() const
|
||||
|
|
|
@ -215,7 +215,7 @@ std::string toString(T arg)
|
|||
return ss.str();
|
||||
}
|
||||
|
||||
std::string format(const char* format, ...) CC_FORMAT_PRINTF(1, 2);
|
||||
std::string CC_DLL format(const char* format, ...) CC_FORMAT_PRINTF(1, 2);
|
||||
|
||||
} // namespace StringUtils {
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
<SDLCheck>
|
||||
</SDLCheck>
|
||||
<AdditionalIncludeDirectories>$(EngineRoot);$(EngineRoot)extensions;$(EngineRoot)cocos\audio\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;CC_CONSTRUCTOR_ACCESS=public;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DebugInformationFormat>None</DebugInformationFormat>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</ClCompile>
|
||||
|
@ -145,6 +145,14 @@
|
|||
<ClInclude Include="..\CCSpriteLoader.h" />
|
||||
<ClInclude Include="..\CocosBuilder.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\..\extensions\proj.win32\libExtensions.vcxproj">
|
||||
<Project>{21b2c324-891f-48ea-ad1a-5ae13de12e28}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\2d\cocos2d.vcxproj">
|
||||
<Project>{98a51ba8-fc3a-415b-ac8f-8c7bd464e93e}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
|
|
@ -215,6 +215,9 @@ void ActionTimeline::startWithTarget(Node *target)
|
|||
[this, target](Node* child)
|
||||
{
|
||||
ActionTimelineData* data = dynamic_cast<ActionTimelineData*>(child->getUserObject());
|
||||
|
||||
if(data)
|
||||
{
|
||||
int actionTag = data->getActionTag();
|
||||
if(_timelineMap.find(actionTag) != _timelineMap.end())
|
||||
{
|
||||
|
@ -224,6 +227,7 @@ void ActionTimeline::startWithTarget(Node *target)
|
|||
timeline->setNode(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -27,10 +27,11 @@ THE SOFTWARE.
|
|||
|
||||
#include "CCTimeLine.h"
|
||||
#include "renderer/CCRenderer.h"
|
||||
#include "cocostudio/CocosStudioExport.h"
|
||||
|
||||
NS_TIMELINE_BEGIN
|
||||
|
||||
class ActionTimelineData : public cocos2d::Ref
|
||||
class CC_STUDIO_DLL ActionTimelineData : public cocos2d::Ref
|
||||
{
|
||||
public:
|
||||
static ActionTimelineData* create(int actionTag);
|
||||
|
@ -45,7 +46,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class ActionTimeline : public cocos2d::Action
|
||||
class CC_STUDIO_DLL ActionTimeline : public cocos2d::Action
|
||||
{
|
||||
public:
|
||||
friend class Frame;
|
||||
|
|
|
@ -28,6 +28,7 @@ THE SOFTWARE.
|
|||
#include "cocos2d.h"
|
||||
#include "cocostudio/DictionaryHelper.h"
|
||||
#include "CCTimelineMacro.h"
|
||||
#include "cocostudio/CocosStudioExport.h"
|
||||
|
||||
NS_TIMELINE_BEGIN
|
||||
|
||||
|
@ -35,7 +36,7 @@ class ActionTimeline;
|
|||
class Timeline;
|
||||
class Frame;
|
||||
|
||||
class ActionTimelineCache
|
||||
class CC_STUDIO_DLL ActionTimelineCache
|
||||
{
|
||||
public:
|
||||
/** Gets the singleton */
|
||||
|
|
|
@ -27,12 +27,13 @@ THE SOFTWARE.
|
|||
|
||||
#include "cocos2d.h"
|
||||
#include "CCTimelineMacro.h"
|
||||
#include "cocostudio/CocosStudioExport.h"
|
||||
|
||||
NS_TIMELINE_BEGIN
|
||||
|
||||
class Timeline;
|
||||
|
||||
class Frame : public cocos2d::Ref
|
||||
class CC_STUDIO_DLL Frame : public cocos2d::Ref
|
||||
{
|
||||
public:
|
||||
|
||||
|
@ -68,7 +69,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class VisibleFrame : public Frame
|
||||
class CC_STUDIO_DLL VisibleFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static VisibleFrame* create();
|
||||
|
@ -86,7 +87,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class TextureFrame : public Frame
|
||||
class CC_STUDIO_DLL TextureFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static TextureFrame* create();
|
||||
|
@ -106,7 +107,7 @@ protected:
|
|||
std::string _textureName;
|
||||
};
|
||||
|
||||
class RotationFrame : public Frame
|
||||
class CC_STUDIO_DLL RotationFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static RotationFrame* create();
|
||||
|
@ -125,7 +126,7 @@ protected:
|
|||
float _betwennRotation;
|
||||
};
|
||||
|
||||
class SkewFrame : public Frame
|
||||
class CC_STUDIO_DLL SkewFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static SkewFrame* create();
|
||||
|
@ -150,7 +151,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class RotationSkewFrame : public SkewFrame
|
||||
class CC_STUDIO_DLL RotationSkewFrame : public SkewFrame
|
||||
{
|
||||
public:
|
||||
static RotationSkewFrame* create();
|
||||
|
@ -163,7 +164,7 @@ public:
|
|||
};
|
||||
|
||||
|
||||
class PositionFrame : public Frame
|
||||
class CC_STUDIO_DLL PositionFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static PositionFrame* create();
|
||||
|
@ -189,7 +190,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class ScaleFrame : public Frame
|
||||
class CC_STUDIO_DLL ScaleFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static ScaleFrame* create();
|
||||
|
@ -216,7 +217,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class AnchorPointFrame : public Frame
|
||||
class CC_STUDIO_DLL AnchorPointFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static AnchorPointFrame* create();
|
||||
|
@ -242,7 +243,7 @@ enum InnerActionType
|
|||
SingleFrame
|
||||
};
|
||||
|
||||
class InnerActionFrame : public Frame
|
||||
class CC_STUDIO_DLL InnerActionFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static InnerActionFrame* create();
|
||||
|
@ -263,7 +264,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class ColorFrame : public Frame
|
||||
class CC_STUDIO_DLL ColorFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static ColorFrame* create();
|
||||
|
@ -290,7 +291,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class EventFrame : public Frame
|
||||
class CC_STUDIO_DLL EventFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static EventFrame* create();
|
||||
|
@ -307,7 +308,7 @@ protected:
|
|||
std::string _event;
|
||||
};
|
||||
|
||||
class ZOrderFrame : public Frame
|
||||
class CC_STUDIO_DLL ZOrderFrame : public Frame
|
||||
{
|
||||
public:
|
||||
static ZOrderFrame* create();
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue