细节调整
This commit is contained in:
parent
b5e6650566
commit
2528e41a58
|
|
@ -26,7 +26,7 @@ void e2d::Animate::setAnimation(Animation * animation)
|
|||
{
|
||||
if (animation && animation != _animation)
|
||||
{
|
||||
SafeRelease(&_animation);
|
||||
SafeRelease(_animation);
|
||||
_animation = animation;
|
||||
_animation->retain();
|
||||
}
|
||||
|
|
@ -90,7 +90,7 @@ void e2d::Animate::reset()
|
|||
void e2d::Animate::onDestroy()
|
||||
{
|
||||
Action::onDestroy();
|
||||
SafeRelease(&_animation);
|
||||
SafeRelease(_animation);
|
||||
}
|
||||
|
||||
e2d::Animate * e2d::Animate::clone() const
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ void e2d::Loop::reset()
|
|||
void e2d::Loop::onDestroy()
|
||||
{
|
||||
Action::onDestroy();
|
||||
SafeRelease(&_action);
|
||||
SafeRelease(_action);
|
||||
}
|
||||
|
||||
void e2d::Loop::_resetTime()
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ void e2d::Sequence::onDestroy()
|
|||
Action::onDestroy();
|
||||
for (auto action : _actions)
|
||||
{
|
||||
SafeRelease(&action);
|
||||
SafeRelease(action);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ void e2d::Spawn::onDestroy()
|
|||
Action::onDestroy();
|
||||
for (auto action : _actions)
|
||||
{
|
||||
SafeRelease(&action);
|
||||
SafeRelease(action);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -89,9 +89,9 @@ void Input::__uninit()
|
|||
if (s_MouseDevice)
|
||||
s_MouseDevice->Unacquire();
|
||||
|
||||
SafeReleaseInterface(&s_MouseDevice);
|
||||
SafeReleaseInterface(&s_KeyboardDevice);
|
||||
SafeReleaseInterface(&s_pDirectInput);
|
||||
SafeReleaseInterface(s_MouseDevice);
|
||||
SafeReleaseInterface(s_KeyboardDevice);
|
||||
SafeReleaseInterface(s_pDirectInput);
|
||||
}
|
||||
|
||||
void e2d::Input::__update()
|
||||
|
|
|
|||
|
|
@ -133,20 +133,20 @@ bool e2d::Renderer::__createDeviceResources()
|
|||
|
||||
void e2d::Renderer::__discardDeviceResources()
|
||||
{
|
||||
SafeReleaseInterface(&s_pRenderTarget);
|
||||
SafeReleaseInterface(&s_pSolidBrush);
|
||||
SafeReleaseInterface(&s_pTextRenderer);
|
||||
SafeReleaseInterface(s_pRenderTarget);
|
||||
SafeReleaseInterface(s_pSolidBrush);
|
||||
SafeReleaseInterface(s_pTextRenderer);
|
||||
}
|
||||
|
||||
void e2d::Renderer::__discardResources()
|
||||
{
|
||||
SafeReleaseInterface(&s_pTextFormat);
|
||||
SafeReleaseInterface(&s_pDirect2dFactory);
|
||||
SafeReleaseInterface(&s_pRenderTarget);
|
||||
SafeReleaseInterface(&s_pSolidBrush);
|
||||
SafeReleaseInterface(&s_pTextRenderer);
|
||||
SafeReleaseInterface(&s_pIWICFactory);
|
||||
SafeReleaseInterface(&s_pDWriteFactory);
|
||||
SafeReleaseInterface(s_pTextFormat);
|
||||
SafeReleaseInterface(s_pDirect2dFactory);
|
||||
SafeReleaseInterface(s_pRenderTarget);
|
||||
SafeReleaseInterface(s_pSolidBrush);
|
||||
SafeReleaseInterface(s_pTextRenderer);
|
||||
SafeReleaseInterface(s_pIWICFactory);
|
||||
SafeReleaseInterface(s_pDWriteFactory);
|
||||
}
|
||||
|
||||
void e2d::Renderer::__render()
|
||||
|
|
@ -206,7 +206,7 @@ void e2d::Renderer::__render()
|
|||
|
||||
pTextLayout->Draw(NULL, s_pTextRenderer, 10, 0);
|
||||
|
||||
SafeReleaseInterface(&pTextLayout);
|
||||
SafeReleaseInterface(pTextLayout);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ e2d::Collider::Collider()
|
|||
|
||||
e2d::Collider::~Collider()
|
||||
{
|
||||
SafeReleaseInterface(&_transformed);
|
||||
SafeReleaseInterface(_transformed);
|
||||
}
|
||||
|
||||
e2d::Node * e2d::Collider::getParentNode() const
|
||||
|
|
@ -90,7 +90,7 @@ void e2d::Collider::_transform()
|
|||
}
|
||||
|
||||
// 释放原碰撞体
|
||||
SafeReleaseInterface(&_transformed);
|
||||
SafeReleaseInterface(_transformed);
|
||||
|
||||
// 根据父节点转换几何图形
|
||||
Renderer::getID2D1Factory()->CreateTransformedGeometry(
|
||||
|
|
|
|||
|
|
@ -27,12 +27,12 @@ e2d::ColliderCircle::ColliderCircle(Node * node)
|
|||
|
||||
e2d::ColliderCircle::~ColliderCircle()
|
||||
{
|
||||
SafeReleaseInterface(&_d2dCircle);
|
||||
SafeReleaseInterface(_d2dCircle);
|
||||
}
|
||||
|
||||
void e2d::ColliderCircle::setCircle(Point center, double radius)
|
||||
{
|
||||
SafeReleaseInterface(&_d2dCircle);
|
||||
SafeReleaseInterface(_d2dCircle);
|
||||
|
||||
Renderer::getID2D1Factory()->CreateEllipseGeometry(
|
||||
D2D1::Ellipse(
|
||||
|
|
|
|||
|
|
@ -27,12 +27,12 @@ e2d::ColliderEllipse::ColliderEllipse(Node * node)
|
|||
|
||||
e2d::ColliderEllipse::~ColliderEllipse()
|
||||
{
|
||||
SafeReleaseInterface(&_d2dEllipse);
|
||||
SafeReleaseInterface(_d2dEllipse);
|
||||
}
|
||||
|
||||
void e2d::ColliderEllipse::setEllipse(Point center, double radiusX, double radiusY)
|
||||
{
|
||||
SafeReleaseInterface(&_d2dEllipse);
|
||||
SafeReleaseInterface(_d2dEllipse);
|
||||
|
||||
Renderer::getID2D1Factory()->CreateEllipseGeometry(
|
||||
D2D1::Ellipse(
|
||||
|
|
|
|||
|
|
@ -20,12 +20,12 @@ e2d::ColliderRect::ColliderRect(Node * node)
|
|||
|
||||
e2d::ColliderRect::~ColliderRect()
|
||||
{
|
||||
SafeReleaseInterface(&_d2dRectangle);
|
||||
SafeReleaseInterface(_d2dRectangle);
|
||||
}
|
||||
|
||||
void e2d::ColliderRect::setRect(double left, double top, double right, double bottom)
|
||||
{
|
||||
SafeReleaseInterface(&_d2dRectangle);
|
||||
SafeReleaseInterface(_d2dRectangle);
|
||||
|
||||
Renderer::getID2D1Factory()->CreateRectangleGeometry(
|
||||
D2D1::RectF(
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ void e2d::Animation::onDestroy()
|
|||
{
|
||||
for (auto frame : _frames)
|
||||
{
|
||||
SafeRelease(&frame);
|
||||
SafeRelease(frame);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -227,10 +227,10 @@ bool e2d::Image::preload(const String& fileName)
|
|||
}
|
||||
|
||||
// 释放相关资源
|
||||
SafeReleaseInterface(&pDecoder);
|
||||
SafeReleaseInterface(&pSource);
|
||||
SafeReleaseInterface(&pStream);
|
||||
SafeReleaseInterface(&pConverter);
|
||||
SafeReleaseInterface(pDecoder);
|
||||
SafeReleaseInterface(pSource);
|
||||
SafeReleaseInterface(pStream);
|
||||
SafeReleaseInterface(pConverter);
|
||||
|
||||
return SUCCEEDED(hr);
|
||||
}
|
||||
|
|
@ -352,11 +352,11 @@ bool e2d::Image::preload(int resNameId, const String& resType)
|
|||
}
|
||||
|
||||
// 释放相关资源
|
||||
SafeReleaseInterface(&pDecoder);
|
||||
SafeReleaseInterface(&pSource);
|
||||
SafeReleaseInterface(&pStream);
|
||||
SafeReleaseInterface(&pConverter);
|
||||
SafeReleaseInterface(&pScaler);
|
||||
SafeReleaseInterface(pDecoder);
|
||||
SafeReleaseInterface(pSource);
|
||||
SafeReleaseInterface(pStream);
|
||||
SafeReleaseInterface(pConverter);
|
||||
SafeReleaseInterface(pScaler);
|
||||
|
||||
return SUCCEEDED(hr);
|
||||
}
|
||||
|
|
@ -366,13 +366,13 @@ void e2d::Image::clearCache()
|
|||
{
|
||||
for (auto bitmap : s_mBitmapsFromFile)
|
||||
{
|
||||
SafeReleaseInterface(&bitmap.second);
|
||||
SafeReleaseInterface(bitmap.second);
|
||||
}
|
||||
s_mBitmapsFromFile.clear();
|
||||
|
||||
for (auto bitmap : s_mBitmapsFromResource)
|
||||
{
|
||||
SafeReleaseInterface(&bitmap.second);
|
||||
SafeReleaseInterface(bitmap.second);
|
||||
}
|
||||
s_mBitmapsFromResource.clear();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,5 +89,5 @@ void e2d::Scene::showCollider(bool visiable)
|
|||
|
||||
void e2d::Scene::onDestroy()
|
||||
{
|
||||
SafeRelease(&_root);
|
||||
SafeRelease(_root);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,9 +25,9 @@ CustomTextRenderer::CustomTextRenderer(
|
|||
|
||||
CustomTextRenderer::~CustomTextRenderer()
|
||||
{
|
||||
SafeReleaseInterface(&pD2DFactory_);
|
||||
SafeReleaseInterface(&pRT_);
|
||||
SafeReleaseInterface(&pBrush_);
|
||||
SafeReleaseInterface(pD2DFactory_);
|
||||
SafeReleaseInterface(pRT_);
|
||||
SafeReleaseInterface(pBrush_);
|
||||
}
|
||||
|
||||
STDMETHODIMP_(void) CustomTextRenderer::SetTextStyle(
|
||||
|
|
@ -146,9 +146,9 @@ STDMETHODIMP CustomTextRenderer::DrawGlyphRun(
|
|||
);
|
||||
}
|
||||
|
||||
SafeReleaseInterface(&pPathGeometry);
|
||||
SafeReleaseInterface(&pSink);
|
||||
SafeReleaseInterface(&pTransformedGeometry);
|
||||
SafeReleaseInterface(pPathGeometry);
|
||||
SafeReleaseInterface(pSink);
|
||||
SafeReleaseInterface(pTransformedGeometry);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
|
@ -233,8 +233,8 @@ STDMETHODIMP CustomTextRenderer::DrawUnderline(
|
|||
);
|
||||
}
|
||||
|
||||
SafeReleaseInterface(&pRectangleGeometry);
|
||||
SafeReleaseInterface(&pTransformedGeometry);
|
||||
SafeReleaseInterface(pRectangleGeometry);
|
||||
SafeReleaseInterface(pTransformedGeometry);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
|
@ -319,8 +319,8 @@ STDMETHODIMP CustomTextRenderer::DrawStrikethrough(
|
|||
);
|
||||
}
|
||||
|
||||
SafeReleaseInterface(&pRectangleGeometry);
|
||||
SafeReleaseInterface(&pTransformedGeometry);
|
||||
SafeReleaseInterface(pRectangleGeometry);
|
||||
SafeReleaseInterface(pTransformedGeometry);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ void e2d::ActionManager::__clearAllBindedWith(Node * target)
|
|||
auto a = s_vRunningActions[i];
|
||||
if (a->getTarget() == target)
|
||||
{
|
||||
SafeRelease(&a);
|
||||
SafeRelease(a);
|
||||
s_vRunningActions.erase(s_vRunningActions.begin() + i);
|
||||
}
|
||||
else
|
||||
|
|
@ -181,7 +181,7 @@ void e2d::ActionManager::__uninit()
|
|||
{
|
||||
for (auto action : s_vRunningActions)
|
||||
{
|
||||
SafeRelease(&action);
|
||||
SafeRelease(action);
|
||||
}
|
||||
s_vActions.clear();
|
||||
s_vRunningActions.clear();
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ void e2d::ColliderManager::__removeCollider(Collider * pCollider)
|
|||
{
|
||||
if (s_vColliders[i] == pCollider)
|
||||
{
|
||||
SafeRelease(&pCollider);
|
||||
SafeRelease(pCollider);
|
||||
s_vColliders.erase(s_vColliders.begin() + i);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ void e2d::SceneManager::clear()
|
|||
while (s_SceneStack.size())
|
||||
{
|
||||
auto temp = s_SceneStack.top();
|
||||
SafeRelease(&temp);
|
||||
SafeRelease(temp);
|
||||
s_SceneStack.pop();
|
||||
}
|
||||
}
|
||||
|
|
@ -127,7 +127,7 @@ void e2d::SceneManager::__update()
|
|||
}
|
||||
else
|
||||
{
|
||||
SafeRelease(&s_pCurrScene);
|
||||
SafeRelease(s_pCurrScene);
|
||||
}
|
||||
|
||||
// 执行下一场景的 onEnter 函数
|
||||
|
|
@ -172,8 +172,8 @@ bool e2d::SceneManager::__init()
|
|||
|
||||
void e2d::SceneManager::__uninit()
|
||||
{
|
||||
SafeRelease(&s_pCurrScene);
|
||||
SafeRelease(&s_pNextScene);
|
||||
SafeRelease(&s_pTransition);
|
||||
SafeRelease(s_pCurrScene);
|
||||
SafeRelease(s_pNextScene);
|
||||
SafeRelease(s_pTransition);
|
||||
SceneManager::clear();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -896,7 +896,7 @@ bool e2d::Node::isPointIn(Point point) const
|
|||
&ret
|
||||
);
|
||||
// 删除临时创建的碰撞体
|
||||
SafeReleaseInterface(&rect);
|
||||
SafeReleaseInterface(rect);
|
||||
}
|
||||
|
||||
if (ret)
|
||||
|
|
@ -950,9 +950,9 @@ bool e2d::Node::isIntersectWith(const Node * node) const
|
|||
&relation
|
||||
);
|
||||
// 删除临时创建的碰撞体
|
||||
SafeReleaseInterface(&pRect1);
|
||||
SafeReleaseInterface(&pRect2);
|
||||
SafeReleaseInterface(&pCollider);
|
||||
SafeReleaseInterface(pRect1);
|
||||
SafeReleaseInterface(pRect2);
|
||||
SafeReleaseInterface(pCollider);
|
||||
if ((relation != D2D1_GEOMETRY_RELATION_UNKNOWN) &&
|
||||
(relation != D2D1_GEOMETRY_RELATION_DISJOINT))
|
||||
{
|
||||
|
|
@ -985,7 +985,7 @@ void e2d::Node::onDestroy()
|
|||
ColliderManager::__removeCollider(_collider);
|
||||
for (auto child : _children)
|
||||
{
|
||||
SafeRelease(&child);
|
||||
SafeRelease(child);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ bool e2d::Sprite::open(Image * image)
|
|||
{
|
||||
if (image)
|
||||
{
|
||||
SafeRelease(&_image);
|
||||
SafeRelease(_image);
|
||||
_image = image;
|
||||
_image->retain();
|
||||
|
||||
|
|
@ -128,5 +128,5 @@ void e2d::Sprite::onRender()
|
|||
void e2d::Sprite::onDestroy()
|
||||
{
|
||||
Node::onDestroy();
|
||||
SafeRelease(&_image);
|
||||
SafeRelease(_image);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,8 +76,8 @@ e2d::Text::Text(
|
|||
|
||||
e2d::Text::~Text()
|
||||
{
|
||||
SafeReleaseInterface(&_textFormat);
|
||||
SafeReleaseInterface(&_textLayout);
|
||||
SafeReleaseInterface(_textFormat);
|
||||
SafeReleaseInterface(_textLayout);
|
||||
}
|
||||
|
||||
e2d::String e2d::Text::getText() const
|
||||
|
|
@ -313,7 +313,7 @@ void e2d::Text::_reset()
|
|||
|
||||
void e2d::Text::_createFormat()
|
||||
{
|
||||
SafeReleaseInterface(&_textFormat);
|
||||
SafeReleaseInterface(_textFormat);
|
||||
|
||||
HRESULT hr = Renderer::getIDWriteFactory()->CreateTextFormat(
|
||||
_style.fontFamily,
|
||||
|
|
@ -359,7 +359,7 @@ void e2d::Text::_createFormat()
|
|||
|
||||
void e2d::Text::_createLayout()
|
||||
{
|
||||
SafeReleaseInterface(&_textLayout);
|
||||
SafeReleaseInterface(_textLayout);
|
||||
|
||||
// 文本为空字符串时,重置属性
|
||||
if (_text.isEmpty())
|
||||
|
|
@ -410,7 +410,7 @@ void e2d::Text::_createLayout()
|
|||
// 重设文本宽高
|
||||
this->setSize(metrics.width, metrics.height);
|
||||
// 重新创建 layout
|
||||
SafeReleaseInterface(&_textLayout);
|
||||
SafeReleaseInterface(_textLayout);
|
||||
hr = Renderer::getIDWriteFactory()->CreateTextLayout(_text, length, _textFormat, _width, 0, &_textLayout);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -816,7 +816,7 @@ bool e2d::Music::__init()
|
|||
if (FAILED(hr = s_pXAudio2->CreateMasteringVoice(&s_pMasteringVoice)))
|
||||
{
|
||||
WARN_IF(true, "Failed creating mastering voice");
|
||||
e2d::SafeReleaseInterface(&s_pXAudio2);
|
||||
e2d::SafeReleaseInterface(s_pXAudio2);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -838,5 +838,5 @@ void e2d::Music::__uninit()
|
|||
s_pMasteringVoice->DestroyVoice();
|
||||
}
|
||||
|
||||
e2d::SafeReleaseInterface(&s_pXAudio2);
|
||||
e2d::SafeReleaseInterface(s_pXAudio2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ e2d::Transition::Transition(double duration)
|
|||
|
||||
e2d::Transition::~Transition()
|
||||
{
|
||||
SafeReleaseInterface(&_outLayer);
|
||||
SafeReleaseInterface(&_inLayer);
|
||||
SafeReleaseInterface(_outLayer);
|
||||
SafeReleaseInterface(_inLayer);
|
||||
}
|
||||
|
||||
bool e2d::Transition::isDone()
|
||||
|
|
@ -29,8 +29,8 @@ bool e2d::Transition::isDone()
|
|||
|
||||
void e2d::Transition::onDestroy()
|
||||
{
|
||||
SafeRelease(&_outScene);
|
||||
SafeRelease(&_inScene);
|
||||
SafeRelease(_outScene);
|
||||
SafeRelease(_inScene);
|
||||
}
|
||||
|
||||
void e2d::Transition::_init(Scene * prev, Scene * next)
|
||||
|
|
|
|||
|
|
@ -866,12 +866,12 @@ protected:
|
|||
|
||||
|
||||
template<typename Object>
|
||||
inline void SafeRelease(Object** p)
|
||||
inline void SafeRelease(Object*& p)
|
||||
{
|
||||
if (*p)
|
||||
if (p != nullptr)
|
||||
{
|
||||
(*p)->release();
|
||||
(*p) = nullptr;
|
||||
p->release();
|
||||
p = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@
|
|||
namespace e2d
|
||||
{
|
||||
template<class Interface>
|
||||
inline void SafeReleaseInterface(Interface **pp)
|
||||
inline void SafeReleaseInterface(Interface*& p)
|
||||
{
|
||||
if (*pp != nullptr)
|
||||
if (p != nullptr)
|
||||
{
|
||||
(*pp)->Release();
|
||||
(*pp) = nullptr;
|
||||
p->Release();
|
||||
p = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@
|
|||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<DebugInformationFormat>None</DebugInformationFormat>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
|
|
|
|||
Loading…
Reference in New Issue