Merge branch 'dev' of https://github.com/KiwanoEngine/Kiwano into dev
This commit is contained in:
commit
093e422135
|
|
@ -5,7 +5,7 @@
|
|||
<ClInclude Include="..\..\src\kiwano\2d\action\ActionDelay.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\2d\action\ActionGroup.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\2d\action\ActionHelper.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\2d\action\ActionManager.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\2d\action\ActionScheduler.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\2d\action\ActionWalk.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\2d\action\ActionTween.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\2d\action\Animation.h" />
|
||||
|
|
@ -17,7 +17,6 @@
|
|||
<ClInclude Include="..\..\src\kiwano\core\Cloneable.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Common.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Director.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\EventTicker.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\event\Event.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\event\EventType.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\event\KeyEvent.h" />
|
||||
|
|
@ -26,16 +25,12 @@
|
|||
<ClInclude Include="..\..\src\kiwano\core\Exception.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Function.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\IntrusiveList.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Json.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Keys.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Library.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Serializable.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Singleton.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\String.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Ticker.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Time.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Timer.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Xml.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\kiwano.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\config.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\macros.h" />
|
||||
|
|
@ -56,8 +51,6 @@
|
|||
<ClInclude Include="..\..\src\kiwano\core\RefCounter.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Resource.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\SmartPtr.hpp" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\Task.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\core\TaskManager.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\math\Constants.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\math\EaseFunctions.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\math\Math.h" />
|
||||
|
|
@ -102,15 +95,22 @@
|
|||
<ClInclude Include="..\..\src\kiwano\render\TextStyle.hpp" />
|
||||
<ClInclude Include="..\..\src\kiwano\render\Texture.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\render\TextureCache.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\utils\EventTicker.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\utils\Json.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\utils\LocalStorage.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\utils\ResourceCache.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\utils\Task.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\utils\TaskScheduler.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\utils\Ticker.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\utils\Timer.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\utils\UserData.h" />
|
||||
<ClInclude Include="..\..\src\kiwano\utils\Xml.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\Action.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\ActionDelay.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\ActionGroup.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\ActionManager.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\ActionScheduler.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\ActionWalk.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\ActionTween.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\Animation.cpp" />
|
||||
|
|
@ -127,7 +127,6 @@
|
|||
<ClCompile Include="..\..\src\kiwano\2d\TextActor.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\2d\Transition.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\Allocator.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\EventTicker.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\Module.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\Director.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\EventDispatcher.cpp" />
|
||||
|
|
@ -143,11 +142,7 @@
|
|||
<ClCompile Include="..\..\src\kiwano\core\RefCounter.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\Resource.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\String.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\Ticker.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\Time.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\Task.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\TaskManager.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\core\Timer.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\platform\Application.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\platform\FileSystem.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\platform\Input.cpp" />
|
||||
|
|
@ -177,8 +172,13 @@
|
|||
<ClCompile Include="..\..\src\kiwano\render\TextLayout.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\render\Texture.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\render\TextureCache.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\utils\EventTicker.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\utils\LocalStorage.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\utils\ResourceCache.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\utils\Task.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\utils\TaskScheduler.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\utils\Ticker.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\utils\Timer.cpp" />
|
||||
<ClCompile Include="..\..\src\kiwano\utils\UserData.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
|
|
|
|||
|
|
@ -90,9 +90,6 @@
|
|||
<ClInclude Include="..\..\src\kiwano\2d\action\ActionTween.h">
|
||||
<Filter>2d\action</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\2d\action\ActionManager.h">
|
||||
<Filter>2d\action</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\2d\action\Animation.h">
|
||||
<Filter>2d\action</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -285,12 +282,6 @@
|
|||
<ClInclude Include="..\..\src\kiwano\core\Any.h">
|
||||
<Filter>core</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\core\Json.h">
|
||||
<Filter>core</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\core\Xml.h">
|
||||
<Filter>core</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\core\IntrusiveList.h">
|
||||
<Filter>core</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -321,20 +312,29 @@
|
|||
<ClInclude Include="..\..\src\kiwano\render\FrameSequence.h">
|
||||
<Filter>render</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\core\Task.h">
|
||||
<Filter>core</Filter>
|
||||
<ClInclude Include="..\..\src\kiwano\utils\EventTicker.h">
|
||||
<Filter>utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\core\TaskManager.h">
|
||||
<Filter>core</Filter>
|
||||
<ClInclude Include="..\..\src\kiwano\utils\Json.h">
|
||||
<Filter>utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\core\Timer.h">
|
||||
<Filter>core</Filter>
|
||||
<ClInclude Include="..\..\src\kiwano\utils\Task.h">
|
||||
<Filter>utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\core\Ticker.h">
|
||||
<Filter>core</Filter>
|
||||
<ClInclude Include="..\..\src\kiwano\utils\Ticker.h">
|
||||
<Filter>utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\core\EventTicker.h">
|
||||
<Filter>core</Filter>
|
||||
<ClInclude Include="..\..\src\kiwano\utils\Timer.h">
|
||||
<Filter>utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\utils\Xml.h">
|
||||
<Filter>utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\utils\TaskScheduler.h">
|
||||
<Filter>utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\2d\action\ActionScheduler.h">
|
||||
<Filter>2d\action</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\kiwano\render\DirectX\D3DDeviceResources.h">
|
||||
<Filter>render\DirectX</Filter>
|
||||
|
|
@ -380,9 +380,6 @@
|
|||
<ClCompile Include="..\..\src\kiwano\2d\action\ActionTween.cpp">
|
||||
<Filter>2d\action</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\ActionManager.cpp">
|
||||
<Filter>2d\action</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\Animation.cpp">
|
||||
<Filter>2d\action</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -545,20 +542,23 @@
|
|||
<ClCompile Include="..\..\src\kiwano\render\FrameSequence.cpp">
|
||||
<Filter>render</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\kiwano\core\TaskManager.cpp">
|
||||
<Filter>core</Filter>
|
||||
<ClCompile Include="..\..\src\kiwano\utils\EventTicker.cpp">
|
||||
<Filter>utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\kiwano\core\Task.cpp">
|
||||
<Filter>core</Filter>
|
||||
<ClCompile Include="..\..\src\kiwano\utils\Task.cpp">
|
||||
<Filter>utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\kiwano\core\Timer.cpp">
|
||||
<Filter>core</Filter>
|
||||
<ClCompile Include="..\..\src\kiwano\utils\Ticker.cpp">
|
||||
<Filter>utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\kiwano\core\Ticker.cpp">
|
||||
<Filter>core</Filter>
|
||||
<ClCompile Include="..\..\src\kiwano\utils\Timer.cpp">
|
||||
<Filter>utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\kiwano\core\EventTicker.cpp">
|
||||
<Filter>core</Filter>
|
||||
<ClCompile Include="..\..\src\kiwano\utils\TaskScheduler.cpp">
|
||||
<Filter>utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\kiwano\2d\action\ActionScheduler.cpp">
|
||||
<Filter>2d\action</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
#pragma once
|
||||
#include <kiwano/core/Common.h>
|
||||
#include <kiwano/core/ObjectBase.h>
|
||||
#include <kiwano/core/Json.h>
|
||||
#include <kiwano/utils/Json.h>
|
||||
|
||||
namespace kiwano
|
||||
{
|
||||
|
|
|
|||
|
|
@ -77,9 +77,9 @@ Actor::~Actor()
|
|||
|
||||
void Actor::Update(Duration dt)
|
||||
{
|
||||
UpdateActions(this, dt);
|
||||
ActionScheduler::Update(this, dt);
|
||||
TaskScheduler::Update(dt);
|
||||
UpdateComponents(dt);
|
||||
UpdateTasks(dt);
|
||||
|
||||
if (!update_pausing_)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,12 +19,12 @@
|
|||
// THE SOFTWARE.
|
||||
|
||||
#pragma once
|
||||
#include <kiwano/math/Math.h>
|
||||
#include <kiwano/core/ObjectBase.h>
|
||||
#include <kiwano/core/Time.h>
|
||||
#include <kiwano/core/TaskManager.h>
|
||||
#include <kiwano/core/EventDispatcher.h>
|
||||
#include <kiwano/math/Math.h>
|
||||
#include <kiwano/2d/action/ActionManager.h>
|
||||
#include <kiwano/utils/TaskScheduler.h>
|
||||
#include <kiwano/2d/action/ActionScheduler.h>
|
||||
#include <kiwano/2d/Component.h>
|
||||
|
||||
namespace kiwano
|
||||
|
|
@ -62,8 +62,8 @@ typedef IntrusiveList<ActorPtr> ActorList;
|
|||
*/
|
||||
class KGE_API Actor
|
||||
: public ObjectBase
|
||||
, public TaskManager
|
||||
, public ActionManager
|
||||
, public TaskScheduler
|
||||
, public ActionScheduler
|
||||
, public EventDispatcher
|
||||
, protected IntrusiveListValue<ActorPtr>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
namespace kiwano
|
||||
{
|
||||
class Actor;
|
||||
class ActionManager;
|
||||
class ActionScheduler;
|
||||
|
||||
KGE_DECLARE_SMART_PTR(Action);
|
||||
|
||||
|
|
@ -55,7 +55,7 @@ class KGE_API Action
|
|||
, public Cloneable<Action>
|
||||
, protected IntrusiveListValue<ActionPtr>
|
||||
{
|
||||
friend class ActionManager;
|
||||
friend class ActionScheduler;
|
||||
friend class ActionGroup;
|
||||
friend IntrusiveList<ActionPtr>;
|
||||
|
||||
|
|
|
|||
|
|
@ -19,12 +19,13 @@
|
|||
// THE SOFTWARE.
|
||||
|
||||
#include <kiwano/2d/Actor.h>
|
||||
#include <kiwano/2d/action/ActionManager.h>
|
||||
#include <kiwano/2d/action/ActionScheduler.h>
|
||||
#include <kiwano/core/Logger.h>
|
||||
|
||||
namespace kiwano
|
||||
{
|
||||
void ActionManager::UpdateActions(Actor* target, Duration dt)
|
||||
|
||||
void ActionScheduler::Update(Actor* target, Duration dt)
|
||||
{
|
||||
if (actions_.IsEmpty() || !target)
|
||||
return;
|
||||
|
|
@ -42,7 +43,7 @@ void ActionManager::UpdateActions(Actor* target, Duration dt)
|
|||
}
|
||||
}
|
||||
|
||||
Action* ActionManager::AddAction(ActionPtr action)
|
||||
Action* ActionScheduler::AddAction(ActionPtr action)
|
||||
{
|
||||
KGE_ASSERT(action && "AddAction failed, NULL pointer exception");
|
||||
|
||||
|
|
@ -53,7 +54,7 @@ Action* ActionManager::AddAction(ActionPtr action)
|
|||
return action.Get();
|
||||
}
|
||||
|
||||
void ActionManager::ResumeAllActions()
|
||||
void ActionScheduler::ResumeAllActions()
|
||||
{
|
||||
if (actions_.IsEmpty())
|
||||
return;
|
||||
|
|
@ -64,7 +65,7 @@ void ActionManager::ResumeAllActions()
|
|||
}
|
||||
}
|
||||
|
||||
void ActionManager::PauseAllActions()
|
||||
void ActionScheduler::PauseAllActions()
|
||||
{
|
||||
if (actions_.IsEmpty())
|
||||
return;
|
||||
|
|
@ -75,7 +76,7 @@ void ActionManager::PauseAllActions()
|
|||
}
|
||||
}
|
||||
|
||||
void ActionManager::StopAllActions()
|
||||
void ActionScheduler::StopAllActions()
|
||||
{
|
||||
if (actions_.IsEmpty())
|
||||
return;
|
||||
|
|
@ -86,7 +87,7 @@ void ActionManager::StopAllActions()
|
|||
}
|
||||
}
|
||||
|
||||
ActionPtr ActionManager::GetAction(const String& name)
|
||||
ActionPtr ActionScheduler::GetAction(const String& name)
|
||||
{
|
||||
if (actions_.IsEmpty())
|
||||
return nullptr;
|
||||
|
|
@ -97,7 +98,7 @@ ActionPtr ActionManager::GetAction(const String& name)
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
const ActionList& ActionManager::GetAllActions() const
|
||||
const ActionList& ActionScheduler::GetAllActions() const
|
||||
{
|
||||
return actions_;
|
||||
}
|
||||
|
|
@ -30,9 +30,9 @@ namespace kiwano
|
|||
|
||||
/**
|
||||
* \~chinese
|
||||
* @brief 动画管理器
|
||||
* @brief 动画调度器
|
||||
*/
|
||||
class KGE_API ActionManager
|
||||
class KGE_API ActionScheduler
|
||||
{
|
||||
public:
|
||||
/// \~chinese
|
||||
|
|
@ -60,10 +60,9 @@ public:
|
|||
/// @brief 获取所有动画
|
||||
const ActionList& GetAllActions() const;
|
||||
|
||||
protected:
|
||||
/// \~chinese
|
||||
/// @brief 更新动画
|
||||
void UpdateActions(Actor* target, Duration dt);
|
||||
void Update(Actor* target, Duration dt);
|
||||
|
||||
private:
|
||||
ActionList actions_;
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
#include <kiwano/core/ObjectBase.h>
|
||||
#include <kiwano/core/Logger.h>
|
||||
#include <kiwano/core/Json.h>
|
||||
#include <kiwano/utils/Json.h>
|
||||
#include <typeinfo>
|
||||
|
||||
namespace kiwano
|
||||
|
|
|
|||
|
|
@ -52,11 +52,6 @@
|
|||
#include <kiwano/core/Resource.h>
|
||||
#include <kiwano/core/SmartPtr.hpp>
|
||||
#include <kiwano/core/Time.h>
|
||||
#include <kiwano/core/Timer.h>
|
||||
#include <kiwano/core/Ticker.h>
|
||||
#include <kiwano/core/EventTicker.h>
|
||||
#include <kiwano/core/Task.h>
|
||||
#include <kiwano/core/TaskManager.h>
|
||||
#include <kiwano/core/event/Event.h>
|
||||
#include <kiwano/core/event/KeyEvent.h>
|
||||
#include <kiwano/core/event/MouseEvent.h>
|
||||
|
|
@ -98,7 +93,7 @@
|
|||
#include <kiwano/2d/action/ActionDelay.h>
|
||||
#include <kiwano/2d/action/ActionGroup.h>
|
||||
#include <kiwano/2d/action/ActionHelper.h>
|
||||
#include <kiwano/2d/action/ActionManager.h>
|
||||
#include <kiwano/2d/action/ActionScheduler.h>
|
||||
#include <kiwano/2d/action/ActionTween.h>
|
||||
#include <kiwano/2d/action/ActionWalk.h>
|
||||
#include <kiwano/2d/action/Animation.h>
|
||||
|
|
@ -120,3 +115,8 @@
|
|||
#include <kiwano/utils/LocalStorage.h>
|
||||
#include <kiwano/utils/ResourceCache.h>
|
||||
#include <kiwano/utils/UserData.h>
|
||||
#include <kiwano/utils/Timer.h>
|
||||
#include <kiwano/utils/Ticker.h>
|
||||
#include <kiwano/utils/EventTicker.h>
|
||||
#include <kiwano/utils/Task.h>
|
||||
#include <kiwano/utils/TaskScheduler.h>
|
||||
|
|
|
|||
|
|
@ -52,6 +52,8 @@ void Application::Run(RunnerPtr runner, bool debug)
|
|||
{
|
||||
KGE_ASSERT(runner);
|
||||
runner_ = runner;
|
||||
timer_ = Timer::Create();
|
||||
running_ = true;
|
||||
|
||||
// Setup all modules
|
||||
for (auto c : modules_)
|
||||
|
|
@ -68,8 +70,6 @@ void Application::Run(RunnerPtr runner, bool debug)
|
|||
// Everything is ready
|
||||
runner->OnReady();
|
||||
|
||||
running_ = true;
|
||||
timer_ = Timer::Create();
|
||||
while (running_)
|
||||
{
|
||||
timer_->Tick();
|
||||
|
|
|
|||
|
|
@ -23,11 +23,11 @@
|
|||
#include <kiwano/core/Common.h>
|
||||
#include <kiwano/core/Module.h>
|
||||
#include <kiwano/core/Time.h>
|
||||
#include <kiwano/core/Timer.h>
|
||||
#include <kiwano/core/Singleton.h>
|
||||
#include <kiwano/core/event/Event.h>
|
||||
#include <kiwano/platform/Runner.h>
|
||||
#include <kiwano/platform/Window.h>
|
||||
#include <kiwano/utils/Timer.h>
|
||||
|
||||
namespace kiwano
|
||||
{
|
||||
|
|
|
|||
|
|
@ -29,8 +29,10 @@ Window::Window()
|
|||
, is_fullscreen_(false)
|
||||
, width_(0)
|
||||
, height_(0)
|
||||
, min_width_(100)
|
||||
, min_height_(50)
|
||||
, min_width_(0)
|
||||
, min_height_(0)
|
||||
, max_width_(0)
|
||||
, max_height_(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -147,6 +147,14 @@ public:
|
|||
*/
|
||||
virtual void SetMinimumSize(uint32_t width, uint32_t height) = 0;
|
||||
|
||||
/**
|
||||
* \~chinese
|
||||
* @brief 设置窗口最大大小
|
||||
* @param width 最大窗口宽度
|
||||
* @param height 最大窗口高度
|
||||
*/
|
||||
virtual void SetMaximumSize(uint32_t width, uint32_t height) = 0;
|
||||
|
||||
/**
|
||||
* \~chinese
|
||||
* @brief 譜崔報炎峺寞窃侏
|
||||
|
|
@ -213,6 +221,8 @@ protected:
|
|||
uint32_t height_;
|
||||
uint32_t min_width_;
|
||||
uint32_t min_height_;
|
||||
uint32_t max_width_;
|
||||
uint32_t max_height_;
|
||||
WindowHandle handle_;
|
||||
String title_;
|
||||
std::queue<EventPtr> event_queue_;
|
||||
|
|
|
|||
|
|
@ -59,6 +59,8 @@ public:
|
|||
|
||||
void SetMinimumSize(uint32_t width, uint32_t height) override;
|
||||
|
||||
void SetMaximumSize(uint32_t width, uint32_t height) override;
|
||||
|
||||
void SetCursor(CursorType cursor) override;
|
||||
|
||||
void SetResolution(uint32_t width, uint32_t height, bool fullscreen) override;
|
||||
|
|
@ -263,8 +265,11 @@ void WindowWin32Impl::Init(const String& title, uint32_t width, uint32_t height,
|
|||
height = win_height;
|
||||
}
|
||||
|
||||
handle_ = ::CreateWindowExA(fullscreen ? WS_EX_TOPMOST : 0, "KiwanoAppWnd", title.c_str(), GetStyle(),
|
||||
left, top, width, height, nullptr, nullptr, hinst, nullptr);
|
||||
width_ = width;
|
||||
height_ = height;
|
||||
resizable_ = resizable;
|
||||
handle_ = ::CreateWindowExA(fullscreen ? WS_EX_TOPMOST : 0, "KiwanoAppWnd", title.c_str(), GetStyle(), left, top,
|
||||
width, height, nullptr, nullptr, hinst, nullptr);
|
||||
|
||||
if (handle_ == nullptr)
|
||||
{
|
||||
|
|
@ -272,10 +277,6 @@ void WindowWin32Impl::Init(const String& title, uint32_t width, uint32_t height,
|
|||
KGE_THROW_SYSTEM_ERROR(HRESULT_FROM_WIN32(GetLastError()), "Create window failed");
|
||||
}
|
||||
|
||||
width_ = width;
|
||||
height_ = height;
|
||||
resizable_ = resizable;
|
||||
|
||||
// disable imm
|
||||
::ImmAssociateContext(handle_, nullptr);
|
||||
|
||||
|
|
@ -339,6 +340,12 @@ void WindowWin32Impl::SetMinimumSize(uint32_t width, uint32_t height)
|
|||
min_height_ = height;
|
||||
}
|
||||
|
||||
void WindowWin32Impl::SetMaximumSize(uint32_t width, uint32_t height)
|
||||
{
|
||||
max_width_ = width;
|
||||
max_height_ = height;
|
||||
}
|
||||
|
||||
void WindowWin32Impl::SetCursor(CursorType cursor)
|
||||
{
|
||||
mouse_cursor_ = cursor;
|
||||
|
|
@ -576,13 +583,15 @@ LRESULT WindowWin32Impl::MessageProc(HWND hwnd, UINT32 msg, WPARAM wparam, LPARA
|
|||
}
|
||||
else if (SIZE_MAXIMIZED == wparam)
|
||||
{
|
||||
KGE_SYS_LOG("Window maximized");
|
||||
|
||||
if (is_minimized_)
|
||||
{
|
||||
is_minimized_ = false;
|
||||
if (Application::GetInstance().IsRunning())
|
||||
{
|
||||
TimerPtr timer = Application::GetInstance().GetTimer();
|
||||
timer->Pause();
|
||||
timer->Resume();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -597,7 +606,7 @@ LRESULT WindowWin32Impl::MessageProc(HWND hwnd, UINT32 msg, WPARAM wparam, LPARA
|
|||
if (Application::GetInstance().IsRunning())
|
||||
{
|
||||
TimerPtr timer = Application::GetInstance().GetTimer();
|
||||
timer->Pause();
|
||||
timer->Resume();
|
||||
}
|
||||
}
|
||||
else if (is_resizing_)
|
||||
|
|
@ -606,8 +615,6 @@ LRESULT WindowWin32Impl::MessageProc(HWND hwnd, UINT32 msg, WPARAM wparam, LPARA
|
|||
}
|
||||
else
|
||||
{
|
||||
KGE_SYS_LOG("Window resized");
|
||||
|
||||
this->width_ = ((uint32_t)(short)LOWORD(lparam));
|
||||
this->height_ = ((uint32_t)(short)HIWORD(lparam));
|
||||
|
||||
|
|
@ -615,6 +622,8 @@ LRESULT WindowWin32Impl::MessageProc(HWND hwnd, UINT32 msg, WPARAM wparam, LPARA
|
|||
evt->width = this->GetWidth();
|
||||
evt->height = this->GetHeight();
|
||||
this->PushEvent(evt);
|
||||
|
||||
KGE_SYS_LOG("Window resized to (%d, %d)", this->width_, this->height_);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -630,7 +639,6 @@ LRESULT WindowWin32Impl::MessageProc(HWND hwnd, UINT32 msg, WPARAM wparam, LPARA
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_EXITSIZEMOVE:
|
||||
{
|
||||
|
|
@ -640,17 +648,40 @@ LRESULT WindowWin32Impl::MessageProc(HWND hwnd, UINT32 msg, WPARAM wparam, LPARA
|
|||
TimerPtr timer = Application::GetInstance().GetTimer();
|
||||
timer->Resume();
|
||||
}
|
||||
|
||||
// Send window resized event when client size changed
|
||||
RECT client_rect = { 0 };
|
||||
::GetClientRect(hwnd, &client_rect);
|
||||
|
||||
uint32_t client_width = uint32_t(client_rect.right - client_rect.left);
|
||||
uint32_t client_height = uint32_t(client_rect.bottom - client_rect.top);
|
||||
if (client_width != this->GetWidth() || client_height != this->GetHeight())
|
||||
{
|
||||
KGE_SYS_LOG("Window resized to (%d, %d)", client_width, client_height);
|
||||
|
||||
this->width_ = client_width;
|
||||
this->height_ = client_height;
|
||||
|
||||
WindowResizedEventPtr evt = new WindowResizedEvent;
|
||||
evt->width = this->GetWidth();
|
||||
evt->height = this->GetHeight();
|
||||
this->PushEvent(evt);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_GETMINMAXINFO:
|
||||
{
|
||||
// prevent the window from becoming too small
|
||||
((MINMAXINFO*)lparam)->ptMinTrackSize.x = LONG(min_width_);
|
||||
((MINMAXINFO*)lparam)->ptMinTrackSize.y = LONG(min_height_);
|
||||
if (min_width_ || min_height_)
|
||||
{
|
||||
((MINMAXINFO*)lparam)->ptMinTrackSize = POINT{ LONG(min_width_), LONG(min_height_) };
|
||||
}
|
||||
if (max_width_ || max_height_)
|
||||
{
|
||||
((MINMAXINFO*)lparam)->ptMaxTrackSize = POINT{ LONG(max_width_), LONG(max_height_) };
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
|
||||
case WM_MOVE:
|
||||
{
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#include <kiwano/core/EventTicker.h>
|
||||
#include <kiwano/utils/EventTicker.h>
|
||||
|
||||
namespace kiwano
|
||||
{
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
// THE SOFTWARE.
|
||||
|
||||
#pragma once
|
||||
#include <kiwano/core/Ticker.h>
|
||||
#include <kiwano/utils/Ticker.h>
|
||||
#include <kiwano/core/EventDispatcher.h>
|
||||
#include <kiwano/core/event/Event.h>
|
||||
|
||||
|
|
@ -63,6 +63,8 @@ public:
|
|||
/// @param times 报时次数(设 -1 为永久)
|
||||
static EventTickerPtr Create(Duration interval, int times = -1);
|
||||
|
||||
using Ticker::Tick;
|
||||
|
||||
bool Tick(Duration dt) override;
|
||||
};
|
||||
|
||||
|
|
@ -19,11 +19,11 @@
|
|||
// THE SOFTWARE.
|
||||
|
||||
#pragma once
|
||||
#include <kiwano/core/Resource.h>
|
||||
#include <kiwano/utils/Json.h>
|
||||
#include <kiwano/utils/Xml.h>
|
||||
#include <kiwano/render/Frame.h>
|
||||
#include <kiwano/render/FrameSequence.h>
|
||||
#include <kiwano/core/Resource.h>
|
||||
#include <kiwano/core/Json.h>
|
||||
#include <kiwano/core/Xml.h>
|
||||
#include <kiwano/render/Font.h>
|
||||
#include <kiwano/render/GifImage.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#include <kiwano/core/Task.h>
|
||||
#include <kiwano/utils/Task.h>
|
||||
|
||||
namespace kiwano
|
||||
{
|
||||
|
|
@ -19,12 +19,12 @@
|
|||
// THE SOFTWARE.
|
||||
|
||||
#pragma once
|
||||
#include <kiwano/core/Ticker.h>
|
||||
#include <kiwano/utils/Ticker.h>
|
||||
#include <kiwano/core/IntrusiveList.h>
|
||||
|
||||
namespace kiwano
|
||||
{
|
||||
class TaskManager;
|
||||
class TaskScheduler;
|
||||
|
||||
KGE_DECLARE_SMART_PTR(Task);
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ class KGE_API Task
|
|||
: public ObjectBase
|
||||
, protected IntrusiveListValue<TaskPtr>
|
||||
{
|
||||
friend class TaskManager;
|
||||
friend class TaskScheduler;
|
||||
friend IntrusiveList<TaskPtr>;
|
||||
|
||||
public:
|
||||
|
|
@ -19,11 +19,11 @@
|
|||
// THE SOFTWARE.
|
||||
|
||||
#include <kiwano/core/Logger.h>
|
||||
#include <kiwano/core/TaskManager.h>
|
||||
#include <kiwano/utils/TaskScheduler.h>
|
||||
|
||||
namespace kiwano
|
||||
{
|
||||
void TaskManager::UpdateTasks(Duration dt)
|
||||
void TaskScheduler::Update(Duration dt)
|
||||
{
|
||||
if (tasks_.IsEmpty())
|
||||
return;
|
||||
|
|
@ -40,7 +40,7 @@ void TaskManager::UpdateTasks(Duration dt)
|
|||
}
|
||||
}
|
||||
|
||||
Task* TaskManager::AddTask(TaskPtr task)
|
||||
Task* TaskScheduler::AddTask(TaskPtr task)
|
||||
{
|
||||
KGE_ASSERT(task && "AddTask failed, NULL pointer exception");
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ Task* TaskManager::AddTask(TaskPtr task)
|
|||
return task.Get();
|
||||
}
|
||||
|
||||
void TaskManager::StopTasks(const String& name)
|
||||
void TaskScheduler::StopTasks(const String& name)
|
||||
{
|
||||
if (tasks_.IsEmpty())
|
||||
return;
|
||||
|
|
@ -67,7 +67,7 @@ void TaskManager::StopTasks(const String& name)
|
|||
}
|
||||
}
|
||||
|
||||
void TaskManager::StartTasks(const String& name)
|
||||
void TaskScheduler::StartTasks(const String& name)
|
||||
{
|
||||
if (tasks_.IsEmpty())
|
||||
return;
|
||||
|
|
@ -81,7 +81,7 @@ void TaskManager::StartTasks(const String& name)
|
|||
}
|
||||
}
|
||||
|
||||
void TaskManager::RemoveTasks(const String& name)
|
||||
void TaskScheduler::RemoveTasks(const String& name)
|
||||
{
|
||||
if (tasks_.IsEmpty())
|
||||
return;
|
||||
|
|
@ -95,7 +95,7 @@ void TaskManager::RemoveTasks(const String& name)
|
|||
}
|
||||
}
|
||||
|
||||
void TaskManager::StopAllTasks()
|
||||
void TaskScheduler::StopAllTasks()
|
||||
{
|
||||
if (tasks_.IsEmpty())
|
||||
return;
|
||||
|
|
@ -106,7 +106,7 @@ void TaskManager::StopAllTasks()
|
|||
}
|
||||
}
|
||||
|
||||
void TaskManager::StartAllTasks()
|
||||
void TaskScheduler::StartAllTasks()
|
||||
{
|
||||
if (tasks_.IsEmpty())
|
||||
return;
|
||||
|
|
@ -117,12 +117,12 @@ void TaskManager::StartAllTasks()
|
|||
}
|
||||
}
|
||||
|
||||
void TaskManager::RemoveAllTasks()
|
||||
void TaskScheduler::RemoveAllTasks()
|
||||
{
|
||||
tasks_.Clear();
|
||||
}
|
||||
|
||||
const TaskList& TaskManager::GetAllTasks() const
|
||||
const TaskList& TaskScheduler::GetAllTasks() const
|
||||
{
|
||||
return tasks_;
|
||||
}
|
||||
|
|
@ -19,15 +19,15 @@
|
|||
// THE SOFTWARE.
|
||||
|
||||
#pragma once
|
||||
#include <kiwano/core/Task.h>
|
||||
#include <kiwano/utils/Task.h>
|
||||
|
||||
namespace kiwano
|
||||
{
|
||||
/**
|
||||
* \~chinese
|
||||
* @brief 任务管理器
|
||||
* @brief 任务调度器
|
||||
*/
|
||||
class KGE_API TaskManager
|
||||
class KGE_API TaskScheduler
|
||||
{
|
||||
public:
|
||||
/// \~chinese
|
||||
|
|
@ -62,12 +62,12 @@ public:
|
|||
/// @brief 获取所有任务
|
||||
const TaskList& GetAllTasks() const;
|
||||
|
||||
protected:
|
||||
/// \~chinese
|
||||
/// @brief 更新任务
|
||||
void UpdateTasks(Duration dt);
|
||||
/// @brief 更新调度器
|
||||
void Update(Duration dt);
|
||||
|
||||
private:
|
||||
TaskList tasks_;
|
||||
};
|
||||
|
||||
} // namespace kiwano
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#include <kiwano/core/Ticker.h>
|
||||
#include <kiwano/utils/Ticker.h>
|
||||
|
||||
namespace kiwano
|
||||
{
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
// THE SOFTWARE.
|
||||
|
||||
#pragma once
|
||||
#include <kiwano/core/Timer.h>
|
||||
#include <kiwano/utils/Timer.h>
|
||||
|
||||
namespace kiwano
|
||||
{
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#include <kiwano/core/Timer.h>
|
||||
#include <kiwano/utils/Timer.h>
|
||||
#include <kiwano/core/Allocator.h>
|
||||
|
||||
namespace kiwano
|
||||
Loading…
Reference in New Issue