细节调整
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)  | ||||
| 	{  | ||||
| 		if (*pp != nullptr)  | ||||
| 		{  | ||||
| 			(*pp)->Release();  | ||||
| 			(*pp) = nullptr;  | ||||
| 	inline void SafeReleaseInterface(Interface*& p) | ||||
| 	{ | ||||
| 		if (p != 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