细节调整

This commit is contained in:
Nomango 2018-05-10 20:23:32 +08:00
parent b5e6650566
commit 2528e41a58
25 changed files with 87 additions and 87 deletions

View File

@ -26,7 +26,7 @@ void e2d::Animate::setAnimation(Animation * animation)
{ {
if (animation && animation != _animation) if (animation && animation != _animation)
{ {
SafeRelease(&_animation); SafeRelease(_animation);
_animation = animation; _animation = animation;
_animation->retain(); _animation->retain();
} }
@ -90,7 +90,7 @@ void e2d::Animate::reset()
void e2d::Animate::onDestroy() void e2d::Animate::onDestroy()
{ {
Action::onDestroy(); Action::onDestroy();
SafeRelease(&_animation); SafeRelease(_animation);
} }
e2d::Animate * e2d::Animate::clone() const e2d::Animate * e2d::Animate::clone() const

View File

@ -81,7 +81,7 @@ void e2d::Loop::reset()
void e2d::Loop::onDestroy() void e2d::Loop::onDestroy()
{ {
Action::onDestroy(); Action::onDestroy();
SafeRelease(&_action); SafeRelease(_action);
} }
void e2d::Loop::_resetTime() void e2d::Loop::_resetTime()

View File

@ -35,7 +35,7 @@ void e2d::Sequence::onDestroy()
Action::onDestroy(); Action::onDestroy();
for (auto action : _actions) for (auto action : _actions)
{ {
SafeRelease(&action); SafeRelease(action);
} }
} }

View File

@ -32,7 +32,7 @@ void e2d::Spawn::onDestroy()
Action::onDestroy(); Action::onDestroy();
for (auto action : _actions) for (auto action : _actions)
{ {
SafeRelease(&action); SafeRelease(action);
} }
} }

View File

@ -89,9 +89,9 @@ void Input::__uninit()
if (s_MouseDevice) if (s_MouseDevice)
s_MouseDevice->Unacquire(); s_MouseDevice->Unacquire();
SafeReleaseInterface(&s_MouseDevice); SafeReleaseInterface(s_MouseDevice);
SafeReleaseInterface(&s_KeyboardDevice); SafeReleaseInterface(s_KeyboardDevice);
SafeReleaseInterface(&s_pDirectInput); SafeReleaseInterface(s_pDirectInput);
} }
void e2d::Input::__update() void e2d::Input::__update()

View File

@ -133,20 +133,20 @@ bool e2d::Renderer::__createDeviceResources()
void e2d::Renderer::__discardDeviceResources() void e2d::Renderer::__discardDeviceResources()
{ {
SafeReleaseInterface(&s_pRenderTarget); SafeReleaseInterface(s_pRenderTarget);
SafeReleaseInterface(&s_pSolidBrush); SafeReleaseInterface(s_pSolidBrush);
SafeReleaseInterface(&s_pTextRenderer); SafeReleaseInterface(s_pTextRenderer);
} }
void e2d::Renderer::__discardResources() void e2d::Renderer::__discardResources()
{ {
SafeReleaseInterface(&s_pTextFormat); SafeReleaseInterface(s_pTextFormat);
SafeReleaseInterface(&s_pDirect2dFactory); SafeReleaseInterface(s_pDirect2dFactory);
SafeReleaseInterface(&s_pRenderTarget); SafeReleaseInterface(s_pRenderTarget);
SafeReleaseInterface(&s_pSolidBrush); SafeReleaseInterface(s_pSolidBrush);
SafeReleaseInterface(&s_pTextRenderer); SafeReleaseInterface(s_pTextRenderer);
SafeReleaseInterface(&s_pIWICFactory); SafeReleaseInterface(s_pIWICFactory);
SafeReleaseInterface(&s_pDWriteFactory); SafeReleaseInterface(s_pDWriteFactory);
} }
void e2d::Renderer::__render() void e2d::Renderer::__render()
@ -206,7 +206,7 @@ void e2d::Renderer::__render()
pTextLayout->Draw(NULL, s_pTextRenderer, 10, 0); pTextLayout->Draw(NULL, s_pTextRenderer, 10, 0);
SafeReleaseInterface(&pTextLayout); SafeReleaseInterface(pTextLayout);
} }
} }

View File

@ -14,7 +14,7 @@ e2d::Collider::Collider()
e2d::Collider::~Collider() e2d::Collider::~Collider()
{ {
SafeReleaseInterface(&_transformed); SafeReleaseInterface(_transformed);
} }
e2d::Node * e2d::Collider::getParentNode() const e2d::Node * e2d::Collider::getParentNode() const
@ -90,7 +90,7 @@ void e2d::Collider::_transform()
} }
// 释放原碰撞体 // 释放原碰撞体
SafeReleaseInterface(&_transformed); SafeReleaseInterface(_transformed);
// 根据父节点转换几何图形 // 根据父节点转换几何图形
Renderer::getID2D1Factory()->CreateTransformedGeometry( Renderer::getID2D1Factory()->CreateTransformedGeometry(

View File

@ -27,12 +27,12 @@ e2d::ColliderCircle::ColliderCircle(Node * node)
e2d::ColliderCircle::~ColliderCircle() e2d::ColliderCircle::~ColliderCircle()
{ {
SafeReleaseInterface(&_d2dCircle); SafeReleaseInterface(_d2dCircle);
} }
void e2d::ColliderCircle::setCircle(Point center, double radius) void e2d::ColliderCircle::setCircle(Point center, double radius)
{ {
SafeReleaseInterface(&_d2dCircle); SafeReleaseInterface(_d2dCircle);
Renderer::getID2D1Factory()->CreateEllipseGeometry( Renderer::getID2D1Factory()->CreateEllipseGeometry(
D2D1::Ellipse( D2D1::Ellipse(

View File

@ -27,12 +27,12 @@ e2d::ColliderEllipse::ColliderEllipse(Node * node)
e2d::ColliderEllipse::~ColliderEllipse() e2d::ColliderEllipse::~ColliderEllipse()
{ {
SafeReleaseInterface(&_d2dEllipse); SafeReleaseInterface(_d2dEllipse);
} }
void e2d::ColliderEllipse::setEllipse(Point center, double radiusX, double radiusY) void e2d::ColliderEllipse::setEllipse(Point center, double radiusX, double radiusY)
{ {
SafeReleaseInterface(&_d2dEllipse); SafeReleaseInterface(_d2dEllipse);
Renderer::getID2D1Factory()->CreateEllipseGeometry( Renderer::getID2D1Factory()->CreateEllipseGeometry(
D2D1::Ellipse( D2D1::Ellipse(

View File

@ -20,12 +20,12 @@ e2d::ColliderRect::ColliderRect(Node * node)
e2d::ColliderRect::~ColliderRect() e2d::ColliderRect::~ColliderRect()
{ {
SafeReleaseInterface(&_d2dRectangle); SafeReleaseInterface(_d2dRectangle);
} }
void e2d::ColliderRect::setRect(double left, double top, double right, double bottom) void e2d::ColliderRect::setRect(double left, double top, double right, double bottom)
{ {
SafeReleaseInterface(&_d2dRectangle); SafeReleaseInterface(_d2dRectangle);
Renderer::getID2D1Factory()->CreateRectangleGeometry( Renderer::getID2D1Factory()->CreateRectangleGeometry(
D2D1::RectF( D2D1::RectF(

View File

@ -35,7 +35,7 @@ void e2d::Animation::onDestroy()
{ {
for (auto frame : _frames) for (auto frame : _frames)
{ {
SafeRelease(&frame); SafeRelease(frame);
} }
} }

View File

@ -227,10 +227,10 @@ bool e2d::Image::preload(const String& fileName)
} }
// 释放相关资源 // 释放相关资源
SafeReleaseInterface(&pDecoder); SafeReleaseInterface(pDecoder);
SafeReleaseInterface(&pSource); SafeReleaseInterface(pSource);
SafeReleaseInterface(&pStream); SafeReleaseInterface(pStream);
SafeReleaseInterface(&pConverter); SafeReleaseInterface(pConverter);
return SUCCEEDED(hr); return SUCCEEDED(hr);
} }
@ -352,11 +352,11 @@ bool e2d::Image::preload(int resNameId, const String& resType)
} }
// 释放相关资源 // 释放相关资源
SafeReleaseInterface(&pDecoder); SafeReleaseInterface(pDecoder);
SafeReleaseInterface(&pSource); SafeReleaseInterface(pSource);
SafeReleaseInterface(&pStream); SafeReleaseInterface(pStream);
SafeReleaseInterface(&pConverter); SafeReleaseInterface(pConverter);
SafeReleaseInterface(&pScaler); SafeReleaseInterface(pScaler);
return SUCCEEDED(hr); return SUCCEEDED(hr);
} }
@ -366,13 +366,13 @@ void e2d::Image::clearCache()
{ {
for (auto bitmap : s_mBitmapsFromFile) for (auto bitmap : s_mBitmapsFromFile)
{ {
SafeReleaseInterface(&bitmap.second); SafeReleaseInterface(bitmap.second);
} }
s_mBitmapsFromFile.clear(); s_mBitmapsFromFile.clear();
for (auto bitmap : s_mBitmapsFromResource) for (auto bitmap : s_mBitmapsFromResource)
{ {
SafeReleaseInterface(&bitmap.second); SafeReleaseInterface(bitmap.second);
} }
s_mBitmapsFromResource.clear(); s_mBitmapsFromResource.clear();
} }

View File

@ -89,5 +89,5 @@ void e2d::Scene::showCollider(bool visiable)
void e2d::Scene::onDestroy() void e2d::Scene::onDestroy()
{ {
SafeRelease(&_root); SafeRelease(_root);
} }

View File

@ -25,9 +25,9 @@ CustomTextRenderer::CustomTextRenderer(
CustomTextRenderer::~CustomTextRenderer() CustomTextRenderer::~CustomTextRenderer()
{ {
SafeReleaseInterface(&pD2DFactory_); SafeReleaseInterface(pD2DFactory_);
SafeReleaseInterface(&pRT_); SafeReleaseInterface(pRT_);
SafeReleaseInterface(&pBrush_); SafeReleaseInterface(pBrush_);
} }
STDMETHODIMP_(void) CustomTextRenderer::SetTextStyle( STDMETHODIMP_(void) CustomTextRenderer::SetTextStyle(
@ -146,9 +146,9 @@ STDMETHODIMP CustomTextRenderer::DrawGlyphRun(
); );
} }
SafeReleaseInterface(&pPathGeometry); SafeReleaseInterface(pPathGeometry);
SafeReleaseInterface(&pSink); SafeReleaseInterface(pSink);
SafeReleaseInterface(&pTransformedGeometry); SafeReleaseInterface(pTransformedGeometry);
return hr; return hr;
} }
@ -233,8 +233,8 @@ STDMETHODIMP CustomTextRenderer::DrawUnderline(
); );
} }
SafeReleaseInterface(&pRectangleGeometry); SafeReleaseInterface(pRectangleGeometry);
SafeReleaseInterface(&pTransformedGeometry); SafeReleaseInterface(pTransformedGeometry);
return S_OK; return S_OK;
} }
@ -319,8 +319,8 @@ STDMETHODIMP CustomTextRenderer::DrawStrikethrough(
); );
} }
SafeReleaseInterface(&pRectangleGeometry); SafeReleaseInterface(pRectangleGeometry);
SafeReleaseInterface(&pTransformedGeometry); SafeReleaseInterface(pTransformedGeometry);
return S_OK; return S_OK;
} }

View File

@ -166,7 +166,7 @@ void e2d::ActionManager::__clearAllBindedWith(Node * target)
auto a = s_vRunningActions[i]; auto a = s_vRunningActions[i];
if (a->getTarget() == target) if (a->getTarget() == target)
{ {
SafeRelease(&a); SafeRelease(a);
s_vRunningActions.erase(s_vRunningActions.begin() + i); s_vRunningActions.erase(s_vRunningActions.begin() + i);
} }
else else
@ -181,7 +181,7 @@ void e2d::ActionManager::__uninit()
{ {
for (auto action : s_vRunningActions) for (auto action : s_vRunningActions)
{ {
SafeRelease(&action); SafeRelease(action);
} }
s_vActions.clear(); s_vActions.clear();
s_vRunningActions.clear(); s_vRunningActions.clear();

View File

@ -246,7 +246,7 @@ void e2d::ColliderManager::__removeCollider(Collider * pCollider)
{ {
if (s_vColliders[i] == pCollider) if (s_vColliders[i] == pCollider)
{ {
SafeRelease(&pCollider); SafeRelease(pCollider);
s_vColliders.erase(s_vColliders.begin() + i); s_vColliders.erase(s_vColliders.begin() + i);
return; return;
} }

View File

@ -68,7 +68,7 @@ void e2d::SceneManager::clear()
while (s_SceneStack.size()) while (s_SceneStack.size())
{ {
auto temp = s_SceneStack.top(); auto temp = s_SceneStack.top();
SafeRelease(&temp); SafeRelease(temp);
s_SceneStack.pop(); s_SceneStack.pop();
} }
} }
@ -127,7 +127,7 @@ void e2d::SceneManager::__update()
} }
else else
{ {
SafeRelease(&s_pCurrScene); SafeRelease(s_pCurrScene);
} }
// 执行下一场景的 onEnter 函数 // 执行下一场景的 onEnter 函数
@ -172,8 +172,8 @@ bool e2d::SceneManager::__init()
void e2d::SceneManager::__uninit() void e2d::SceneManager::__uninit()
{ {
SafeRelease(&s_pCurrScene); SafeRelease(s_pCurrScene);
SafeRelease(&s_pNextScene); SafeRelease(s_pNextScene);
SafeRelease(&s_pTransition); SafeRelease(s_pTransition);
SceneManager::clear(); SceneManager::clear();
} }

View File

@ -896,7 +896,7 @@ bool e2d::Node::isPointIn(Point point) const
&ret &ret
); );
// 删除临时创建的碰撞体 // 删除临时创建的碰撞体
SafeReleaseInterface(&rect); SafeReleaseInterface(rect);
} }
if (ret) if (ret)
@ -950,9 +950,9 @@ bool e2d::Node::isIntersectWith(const Node * node) const
&relation &relation
); );
// 删除临时创建的碰撞体 // 删除临时创建的碰撞体
SafeReleaseInterface(&pRect1); SafeReleaseInterface(pRect1);
SafeReleaseInterface(&pRect2); SafeReleaseInterface(pRect2);
SafeReleaseInterface(&pCollider); SafeReleaseInterface(pCollider);
if ((relation != D2D1_GEOMETRY_RELATION_UNKNOWN) && if ((relation != D2D1_GEOMETRY_RELATION_UNKNOWN) &&
(relation != D2D1_GEOMETRY_RELATION_DISJOINT)) (relation != D2D1_GEOMETRY_RELATION_DISJOINT))
{ {
@ -985,7 +985,7 @@ void e2d::Node::onDestroy()
ColliderManager::__removeCollider(_collider); ColliderManager::__removeCollider(_collider);
for (auto child : _children) for (auto child : _children)
{ {
SafeRelease(&child); SafeRelease(child);
} }
} }

View File

@ -46,7 +46,7 @@ bool e2d::Sprite::open(Image * image)
{ {
if (image) if (image)
{ {
SafeRelease(&_image); SafeRelease(_image);
_image = image; _image = image;
_image->retain(); _image->retain();
@ -128,5 +128,5 @@ void e2d::Sprite::onRender()
void e2d::Sprite::onDestroy() void e2d::Sprite::onDestroy()
{ {
Node::onDestroy(); Node::onDestroy();
SafeRelease(&_image); SafeRelease(_image);
} }

View File

@ -76,8 +76,8 @@ e2d::Text::Text(
e2d::Text::~Text() e2d::Text::~Text()
{ {
SafeReleaseInterface(&_textFormat); SafeReleaseInterface(_textFormat);
SafeReleaseInterface(&_textLayout); SafeReleaseInterface(_textLayout);
} }
e2d::String e2d::Text::getText() const e2d::String e2d::Text::getText() const
@ -313,7 +313,7 @@ void e2d::Text::_reset()
void e2d::Text::_createFormat() void e2d::Text::_createFormat()
{ {
SafeReleaseInterface(&_textFormat); SafeReleaseInterface(_textFormat);
HRESULT hr = Renderer::getIDWriteFactory()->CreateTextFormat( HRESULT hr = Renderer::getIDWriteFactory()->CreateTextFormat(
_style.fontFamily, _style.fontFamily,
@ -359,7 +359,7 @@ void e2d::Text::_createFormat()
void e2d::Text::_createLayout() void e2d::Text::_createLayout()
{ {
SafeReleaseInterface(&_textLayout); SafeReleaseInterface(_textLayout);
// 文本为空字符串时,重置属性 // 文本为空字符串时,重置属性
if (_text.isEmpty()) if (_text.isEmpty())
@ -410,7 +410,7 @@ void e2d::Text::_createLayout()
// 重设文本宽高 // 重设文本宽高
this->setSize(metrics.width, metrics.height); this->setSize(metrics.width, metrics.height);
// 重新创建 layout // 重新创建 layout
SafeReleaseInterface(&_textLayout); SafeReleaseInterface(_textLayout);
hr = Renderer::getIDWriteFactory()->CreateTextLayout(_text, length, _textFormat, _width, 0, &_textLayout); hr = Renderer::getIDWriteFactory()->CreateTextLayout(_text, length, _textFormat, _width, 0, &_textLayout);
} }
} }

View File

@ -816,7 +816,7 @@ bool e2d::Music::__init()
if (FAILED(hr = s_pXAudio2->CreateMasteringVoice(&s_pMasteringVoice))) if (FAILED(hr = s_pXAudio2->CreateMasteringVoice(&s_pMasteringVoice)))
{ {
WARN_IF(true, "Failed creating mastering voice"); WARN_IF(true, "Failed creating mastering voice");
e2d::SafeReleaseInterface(&s_pXAudio2); e2d::SafeReleaseInterface(s_pXAudio2);
return false; return false;
} }
@ -838,5 +838,5 @@ void e2d::Music::__uninit()
s_pMasteringVoice->DestroyVoice(); s_pMasteringVoice->DestroyVoice();
} }
e2d::SafeReleaseInterface(&s_pXAudio2); e2d::SafeReleaseInterface(s_pXAudio2);
} }

View File

@ -18,8 +18,8 @@ e2d::Transition::Transition(double duration)
e2d::Transition::~Transition() e2d::Transition::~Transition()
{ {
SafeReleaseInterface(&_outLayer); SafeReleaseInterface(_outLayer);
SafeReleaseInterface(&_inLayer); SafeReleaseInterface(_inLayer);
} }
bool e2d::Transition::isDone() bool e2d::Transition::isDone()
@ -29,8 +29,8 @@ bool e2d::Transition::isDone()
void e2d::Transition::onDestroy() void e2d::Transition::onDestroy()
{ {
SafeRelease(&_outScene); SafeRelease(_outScene);
SafeRelease(&_inScene); SafeRelease(_inScene);
} }
void e2d::Transition::_init(Scene * prev, Scene * next) void e2d::Transition::_init(Scene * prev, Scene * next)

View File

@ -866,12 +866,12 @@ protected:
template<typename Object> template<typename Object>
inline void SafeRelease(Object** p) inline void SafeRelease(Object*& p)
{ {
if (*p) if (p != nullptr)
{ {
(*p)->release(); p->release();
(*p) = nullptr; p = nullptr;
} }
} }

View File

@ -4,12 +4,12 @@
namespace e2d namespace e2d
{ {
template<class Interface> template<class Interface>
inline void SafeReleaseInterface(Interface **pp) inline void SafeReleaseInterface(Interface*& p)
{ {
if (*pp != nullptr) if (p != nullptr)
{ {
(*pp)->Release(); p->Release();
(*pp) = nullptr; p = nullptr;
} }
} }

View File

@ -101,7 +101,7 @@
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>false</SDLCheck> <SDLCheck>false</SDLCheck>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> <DebugInformationFormat>None</DebugInformationFormat>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
<TreatWarningAsError>true</TreatWarningAsError> <TreatWarningAsError>true</TreatWarningAsError>
</ClCompile> </ClCompile>