diff options
| author | Eugene Sandulenko | 2010-08-06 10:59:50 +0000 | 
|---|---|---|
| committer | Eugene Sandulenko | 2010-10-12 22:30:57 +0000 | 
| commit | a17ec87b7dd09e7b251a3f578d1f788917550451 (patch) | |
| tree | c77bdbb06d39d9a200b5e0514d2aedc7f43c8e28 | |
| parent | 6dcf9f0ee557e692df3c70a263ca35068ff45380 (diff) | |
| download | scummvm-rg350-a17ec87b7dd09e7b251a3f578d1f788917550451.tar.gz scummvm-rg350-a17ec87b7dd09e7b251a3f578d1f788917550451.tar.bz2 scummvm-rg350-a17ec87b7dd09e7b251a3f578d1f788917550451.zip | |
SWORD25: Number of compilation and warning fixes
svn-id: r53219
32 files changed, 240 insertions, 235 deletions
| diff --git a/engines/sword25/gfx/animation.cpp b/engines/sword25/gfx/animation.cpp index a2b2051c59..deeca40df7 100644 --- a/engines/sword25/gfx/animation.cpp +++ b/engines/sword25/gfx/animation.cpp @@ -155,7 +155,7 @@ BS_Animation::~BS_Animation()  	}  	// Delete Callbacks -	std::vector<ANIMATION_CALLBACK_DATA>::iterator it = m_DeleteCallbacks.begin(); +	Common::Array<ANIMATION_CALLBACK_DATA>::iterator it = m_DeleteCallbacks.begin();  	for (; it != m_DeleteCallbacks.end(); it++) ((*it).Callback)((*it).Data);  } @@ -298,7 +298,7 @@ void BS_Animation::FrameNotification(int TimeElapsed)  		if (TmpCurFrame < 0)  		{  			// Loop-Point Callbacks -			std::vector<ANIMATION_CALLBACK_DATA>::iterator it = m_LoopPointCallbacks.begin(); +			Common::Array<ANIMATION_CALLBACK_DATA>::iterator it = m_LoopPointCallbacks.begin();  			while (it != m_LoopPointCallbacks.end())  			{  				if (((*it).Callback)((*it).Data) == false) @@ -317,7 +317,7 @@ void BS_Animation::FrameNotification(int TimeElapsed)  		else if (static_cast<unsigned int>(TmpCurFrame) >= animationDescriptionPtr->GetFrameCount())  		{  			// Loop-Point Callbacks -			std::vector<ANIMATION_CALLBACK_DATA>::iterator it = m_LoopPointCallbacks.begin(); +			Common::Array<ANIMATION_CALLBACK_DATA>::iterator it = m_LoopPointCallbacks.begin();  			while (it != m_LoopPointCallbacks.end())  			{  				if (((*it).Callback)((*it).Data) == false) @@ -355,7 +355,7 @@ void BS_Animation::FrameNotification(int TimeElapsed)  			if (animationDescriptionPtr->GetFrame(m_CurrentFrame).Action != "")  			{  				// Action Callbacks -				std::vector<ANIMATION_CALLBACK_DATA>::iterator it = m_ActionCallbacks.begin(); +				Common::Array<ANIMATION_CALLBACK_DATA>::iterator it = m_ActionCallbacks.begin();  				while (it != m_ActionCallbacks.end())  				{  					if (((*it).Callback)((*it).Data) == false) @@ -744,13 +744,13 @@ void BS_Animation::RegisterDeleteCallback(ANIMATION_CALLBACK Callback, unsigned  // Persistenz  // ----------------------------------------------------------------------------- -void BS_Animation::PersistCallbackVector(BS_OutputPersistenceBlock & Writer, const std::vector<ANIMATION_CALLBACK_DATA> & Vector) +void BS_Animation::PersistCallbackVector(BS_OutputPersistenceBlock & Writer, const Common::Array<ANIMATION_CALLBACK_DATA> & Vector)  {  	// Anzahl an Callbacks persistieren.  	Writer.Write(Vector.size());  	// Alle Callbacks einzeln persistieren. -	std::vector<ANIMATION_CALLBACK_DATA>::const_iterator It = Vector.begin(); +	Common::Array<ANIMATION_CALLBACK_DATA>::const_iterator It = Vector.begin();  	while (It != Vector.end())  	{  		Writer.Write(BS_CallbackRegistry::GetInstance().ResolveCallbackPointer(It->Callback)); @@ -762,7 +762,7 @@ void BS_Animation::PersistCallbackVector(BS_OutputPersistenceBlock & Writer, con  // ----------------------------------------------------------------------------- -void BS_Animation::UnpersistCallbackVector(BS_InputPersistenceBlock & Reader, std::vector<ANIMATION_CALLBACK_DATA> & Vector) +void BS_Animation::UnpersistCallbackVector(BS_InputPersistenceBlock & Reader, Common::Array<ANIMATION_CALLBACK_DATA> & Vector)  {  	// Callbackvector leeren.  	Vector.resize(0); diff --git a/engines/sword25/gfx/animation.h b/engines/sword25/gfx/animation.h index 606cd9485e..9faf17d7a3 100644 --- a/engines/sword25/gfx/animation.h +++ b/engines/sword25/gfx/animation.h @@ -183,9 +183,9 @@ private:  		ANIMATION_CALLBACK	Callback;  		unsigned int		Data;  	}; -	std::vector<ANIMATION_CALLBACK_DATA> m_LoopPointCallbacks; -	std::vector<ANIMATION_CALLBACK_DATA> m_ActionCallbacks; -	std::vector<ANIMATION_CALLBACK_DATA> m_DeleteCallbacks; +	Common::Array<ANIMATION_CALLBACK_DATA> m_LoopPointCallbacks; +	Common::Array<ANIMATION_CALLBACK_DATA> m_ActionCallbacks; +	Common::Array<ANIMATION_CALLBACK_DATA> m_DeleteCallbacks;  	/**  		@brief Lockt alle Frames. @@ -217,8 +217,8 @@ private:  	int ComputeYModifier() const;  	void InitMembers(); -	void PersistCallbackVector(BS_OutputPersistenceBlock & Writer, const std::vector<ANIMATION_CALLBACK_DATA> & Vector); -	void UnpersistCallbackVector(BS_InputPersistenceBlock & Reader, std::vector<ANIMATION_CALLBACK_DATA> & Vector); +	void PersistCallbackVector(BS_OutputPersistenceBlock & Writer, const Common::Array<ANIMATION_CALLBACK_DATA> & Vector); +	void UnpersistCallbackVector(BS_InputPersistenceBlock & Reader, Common::Array<ANIMATION_CALLBACK_DATA> & Vector);  	BS_AnimationDescription * GetAnimationDescription() const;  	void InitializeAnimationResource(const Common::String &FileName);  }; diff --git a/engines/sword25/gfx/animationresource.cpp b/engines/sword25/gfx/animationresource.cpp index 25c63a74aa..5de3d90ff2 100644 --- a/engines/sword25/gfx/animationresource.cpp +++ b/engines/sword25/gfx/animationresource.cpp @@ -85,13 +85,15 @@ BS_AnimationResource::BS_AnimationResource(const Common::String& FileName) :  			BS_LOG_ERRORLN("Could not read \"%s\".", GetFileName().c_str());  			return;  		} -		std::vector<char> WorkBuffer(FileSize + 1); +		char *WorkBuffer; +		WorkBuffer = (char *)malloc(FileSize + 1);  		memcpy(&WorkBuffer[0], LoadBuffer, FileSize);  		delete LoadBuffer;  		WorkBuffer[FileSize] = '\0';  		// Datei parsen  		Doc.Parse(&WorkBuffer[0]); +		free(WorkBuffer);  		if (Doc.Error())  		{  			BS_LOG_ERRORLN("The following TinyXML-Error occured while parsing \"%s\": %s", GetFileName().c_str(), Doc.ErrorDesc()); @@ -123,10 +125,8 @@ BS_AnimationResource::BS_AnimationResource(const Common::String& FileName) :  	// In das Verzeichnis der Eingabedatei wechseln, da die Dateiverweise innerhalb der XML-Datei relativ zu diesem Verzeichnis sind.  	Common::String OldDirectory = PackagePtr->GetCurrentDirectory(); -	int LastSlash = GetFileName().rfind('/'); -	if (LastSlash != Common::String::npos) -	{ -		Common::String Dir = GetFileName().substr(0, LastSlash); +	if (GetFileName().contains('/')) { +		Common::String Dir = Common::String(GetFileName().c_str(), strrchr(GetFileName().c_str(), '/'));  		PackagePtr->ChangeDirectory(Dir);  	} @@ -214,7 +214,7 @@ bool BS_AnimationResource::ParseAnimationTag(TiXmlElement& AnimationTag, int& FP  // ----------------------------------------------------------------------------- -bool BS_AnimationResource::ParseFrameTag(TiXmlElement& FrameTag, Frame& Frame, BS_PackageManager& PackageManager) +bool BS_AnimationResource::ParseFrameTag(TiXmlElement& FrameTag, Frame& Frame_, BS_PackageManager& PackageManager)  {  	const char* FileString = FrameTag.Attribute("file");  	if (!FileString) @@ -222,8 +222,8 @@ bool BS_AnimationResource::ParseFrameTag(TiXmlElement& FrameTag, Frame& Frame, B  		BS_LOG_ERRORLN("<frame> tag without file attribute occurred in \"%s\".", GetFileName().c_str());  		return false;  	} -	Frame.FileName = PackageManager.GetAbsolutePath(FileString); -	if (Frame.FileName == "") +	Frame_.FileName = PackageManager.GetAbsolutePath(FileString); +	if (Frame_.FileName == "")  	{  		BS_LOG_ERRORLN("Could not create absolute path for file specified in <frame> tag in \"%s\": \"%s\".", GetFileName().c_str(), FileString);  		return false; @@ -231,7 +231,7 @@ bool BS_AnimationResource::ParseFrameTag(TiXmlElement& FrameTag, Frame& Frame, B  	const char* ActionString = FrameTag.Attribute("action");  	if (ActionString) -		Frame.Action = ActionString; +		Frame_.Action = ActionString;  	const char* HotspotxString = FrameTag.Attribute("hotspotx");  	const char* HotspotyString = FrameTag.Attribute("hotspoty"); @@ -242,41 +242,41 @@ bool BS_AnimationResource::ParseFrameTag(TiXmlElement& FrameTag, Frame& Frame, B  						 !HotspotyString ? "hotspoty" : "hotspotx",  						 GetFileName().c_str()); -	Frame.HotspotX = 0; -	if (HotspotxString && !BS_String::ToInt(Common::String(HotspotxString), Frame.HotspotX)) +	Frame_.HotspotX = 0; +	if (HotspotxString && !BS_String::ToInt(Common::String(HotspotxString), Frame_.HotspotX))  		BS_LOG_WARNINGLN("Illegal hotspotx value (\"%s\") in frame tag in \"%s\". Assuming default (\"%s\").", -						 HotspotxString,GetFileName().c_str(), Frame.HotspotX); +						 HotspotxString,GetFileName().c_str(), Frame_.HotspotX); -	Frame.HotspotY = 0; -	if (HotspotyString && !BS_String::ToInt(Common::String(HotspotyString), Frame.HotspotY)) +	Frame_.HotspotY = 0; +	if (HotspotyString && !BS_String::ToInt(Common::String(HotspotyString), Frame_.HotspotY))  		BS_LOG_WARNINGLN("Illegal hotspoty value (\"%s\") in frame tag in \"%s\". Assuming default (\"%s\").", -						 HotspotyString, GetFileName().c_str(), Frame.HotspotY); +						 HotspotyString, GetFileName().c_str(), Frame_.HotspotY);  	const char* FlipVString = FrameTag.Attribute("flipv");  	if (FlipVString)  	{ -	if (!BS_String::ToBool(Common::String(FlipVString), Frame.FlipV)) +	if (!BS_String::ToBool(Common::String(FlipVString), Frame_.FlipV))  		{  			BS_LOG_WARNINGLN("Illegal flipv value (\"%s\") in <frame> tag in \"%s\". Assuming default (\"false\").",  							 FlipVString, GetFileName().c_str()); -			Frame.FlipV = false; +			Frame_.FlipV = false;  		}  	}  	else -		Frame.FlipV = false; +		Frame_.FlipV = false;  	const char* FlipHString = FrameTag.Attribute("fliph");  	if (FlipHString)  	{ -	if (!BS_String::ToBool(FlipHString, Frame.FlipH)) +	if (!BS_String::ToBool(FlipHString, Frame_.FlipH))  		{  			BS_LOG_WARNINGLN("Illegal fliph value (\"%s\") in <frame> tag in \"%s\". Assuming default (\"false\").",  							 FlipHString, GetFileName().c_str()); -			Frame.FlipH = false; +			Frame_.FlipH = false;  		}  	}  	else -		Frame.FlipH = false; +		Frame_.FlipH = false;  	return true;  } @@ -291,7 +291,7 @@ BS_AnimationResource::~BS_AnimationResource()  bool BS_AnimationResource::PrecacheAllFrames() const  { -	std::vector<Frame>::const_iterator Iter = m_Frames.begin(); +	Common::Array<Frame>::const_iterator Iter = m_Frames.begin();  	for (; Iter != m_Frames.end(); ++Iter)  	{  		if (!BS_Kernel::GetInstance()->GetResourceManager()->PrecacheResource((*Iter).FileName)) @@ -316,7 +316,7 @@ bool BS_AnimationResource::ComputeFeatures()  	m_ColorModulationAllowed = true;  	// Alle Frame durchgehen und alle Features deaktivieren, die auch nur von einem Frame nicht unterstützt werden. -	std::vector<Frame>::const_iterator Iter = m_Frames.begin(); +	Common::Array<Frame>::const_iterator Iter = m_Frames.begin();  	for (; Iter != m_Frames.end(); ++Iter)  	{  		BS_BitmapResource* pBitmap; diff --git a/engines/sword25/gfx/animationresource.h b/engines/sword25/gfx/animationresource.h index f37931b9d9..1eff3edcc8 100644 --- a/engines/sword25/gfx/animationresource.h +++ b/engines/sword25/gfx/animationresource.h @@ -48,6 +48,8 @@  #include <vector>  #include "sword25/kernel/memlog_on.h" +class TiXmlElement; +  namespace Sword25 {  // ----------------------------------------------------------------------------- @@ -56,7 +58,6 @@ namespace Sword25 {  class BS_Kernel;  class BS_PackageManager; -class TiXmlElement;  // -----------------------------------------------------------------------------  // Class Definition @@ -83,7 +84,7 @@ public:  private:  	bool							m_Valid; -	std::vector<Frame>				m_Frames; +	Common::Array<Frame>				m_Frames;  	//@{  	/** @name Dokument-Parser Methoden */ diff --git a/engines/sword25/gfx/animationtemplate.cpp b/engines/sword25/gfx/animationtemplate.cpp index 4ed604467b..03afec36b7 100644 --- a/engines/sword25/gfx/animationtemplate.cpp +++ b/engines/sword25/gfx/animationtemplate.cpp @@ -253,7 +253,7 @@ bool BS_AnimationTemplate::Persist(BS_OutputPersistenceBlock & Writer)  	Writer.Write(m_Frames.size());  	// Frames einzeln persistieren. -	std::vector<const Frame>::const_iterator Iter = m_Frames.begin(); +	Common::Array<const Frame>::const_iterator Iter = m_Frames.begin();  	while (Iter != m_Frames.end())  	{  		Writer.Write(Iter->HotspotX); diff --git a/engines/sword25/gfx/animationtemplate.h b/engines/sword25/gfx/animationtemplate.h index a39d0b9788..389353431e 100644 --- a/engines/sword25/gfx/animationtemplate.h +++ b/engines/sword25/gfx/animationtemplate.h @@ -113,7 +113,7 @@ public:  	virtual bool Unpersist(BS_InputPersistenceBlock & Reader);  private: -	std::vector<const Frame>	m_Frames; +	Common::Array<const Frame>	m_Frames;  	BS_AnimationResource *		m_SourceAnimationPtr;  	bool						m_Valid; diff --git a/engines/sword25/gfx/animationtemplateregistry.cpp b/engines/sword25/gfx/animationtemplateregistry.cpp index fa8257aaf2..1913a7cf8b 100644 --- a/engines/sword25/gfx/animationtemplateregistry.cpp +++ b/engines/sword25/gfx/animationtemplateregistry.cpp @@ -32,8 +32,6 @@   *   */ -namespace Sword25 { -  // -----------------------------------------------------------------------------  // Logging  // ----------------------------------------------------------------------------- @@ -49,6 +47,8 @@ namespace Sword25 {  #include "sword25/gfx/animationtemplateregistry.h"  #include "sword25/gfx/animationtemplate.h" +namespace Sword25 { +  // -----------------------------------------------------------------------------  // Implementation  // ----------------------------------------------------------------------------- diff --git a/engines/sword25/gfx/bitmap.h b/engines/sword25/gfx/bitmap.h index 82d223e080..c0e490ee47 100644 --- a/engines/sword25/gfx/bitmap.h +++ b/engines/sword25/gfx/bitmap.h @@ -161,7 +161,7 @@ public:  		@return Gibt false zurück, falls der Aufruf fehlgeschlagen ist.  		@remark Ein Aufruf dieser Methode ist nur erlaubt, wenn IsSetContentAllowed() true zurückgibt.  	*/ -	virtual bool	SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset = 0, unsigned int Stride = 0) = 0; +	virtual bool	SetContent(const byte *Pixeldata, unsigned int Offset = 0, unsigned int Stride = 0) = 0;  	virtual bool	IsScalingAllowed() const = 0;  	virtual bool	IsAlphaAllowed() const = 0; diff --git a/engines/sword25/gfx/dynamicbitmap.cpp b/engines/sword25/gfx/dynamicbitmap.cpp index 1797f742f8..9e5f2bb2f9 100644 --- a/engines/sword25/gfx/dynamicbitmap.cpp +++ b/engines/sword25/gfx/dynamicbitmap.cpp @@ -132,7 +132,7 @@ bool BS_DynamicBitmap::DoRender()  // ----------------------------------------------------------------------------- -bool BS_DynamicBitmap::SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset, unsigned int Stride) +bool BS_DynamicBitmap::SetContent(const byte *Pixeldata, unsigned int Offset, unsigned int Stride)  {  	return m_Image->SetContent(Pixeldata, Offset, Stride);  } @@ -199,8 +199,9 @@ bool BS_DynamicBitmap::Unpersist(BS_InputPersistenceBlock & Reader)  	BS_LOG_WARNINGLN("Unpersisting a BS_DynamicBitmap. Bitmap contents are missing.");  	// Bild mit durchsichtigen Bilddaten initialisieren. -	std::vector<unsigned char> TransparentImageData(m_Width * m_Height * 4); +	byte *TransparentImageData = (byte *)calloc(m_Width * m_Height * 4, 1);  	m_Image->SetContent(TransparentImageData); +	free(TransparentImageData);  	Result &= BS_RenderObject::UnpersistChildren(Reader); diff --git a/engines/sword25/gfx/dynamicbitmap.h b/engines/sword25/gfx/dynamicbitmap.h index 565ddf3e6f..0449f9984d 100644 --- a/engines/sword25/gfx/dynamicbitmap.h +++ b/engines/sword25/gfx/dynamicbitmap.h @@ -63,7 +63,7 @@ public:  	virtual unsigned int GetPixel(int X, int Y) const; -	virtual bool	SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset, unsigned int Stride); +	virtual bool	SetContent(const byte *Pixeldata, unsigned int Offset, unsigned int Stride);  	virtual bool	IsScalingAllowed() const;  	virtual bool	IsAlphaAllowed() const; diff --git a/engines/sword25/gfx/fontresource.cpp b/engines/sword25/gfx/fontresource.cpp index 3ba3765b91..9dbb0a0646 100644 --- a/engines/sword25/gfx/fontresource.cpp +++ b/engines/sword25/gfx/fontresource.cpp @@ -166,7 +166,8 @@ bool BS_FontResource::_ParseXMLDocument(const Common::String & FileName, TiXmlDo  	}  	// Daten kopieren und NULL-terminieren -	std::vector<char> WorkBuffer(FileSize + 1); +	char *WorkBuffer; +	WorkBuffer = (char *)malloc(FileSize + 1);  	memcpy(&WorkBuffer[0], LoadBuffer, FileSize);  	delete LoadBuffer;  	WorkBuffer[FileSize] = '\0'; @@ -174,6 +175,8 @@ bool BS_FontResource::_ParseXMLDocument(const Common::String & FileName, TiXmlDo  	// Daten parsen  	Doc.Parse(&WorkBuffer[0]); +	free(WorkBuffer); +  	return !Doc.Error();  } @@ -224,37 +227,40 @@ bool BS_FontResource::_ParseCharacterTag(TiXmlElement & Tag, int & Code, BS_Rect  		return false;  	} +	int tmp; +  	// Left Attribut auslesen -	const char * LeftString = Tag.Attribute("left"); -	if (!LeftString || !BS_String::ToInt(Common::String(LeftString), Rect.left) || Rect.left < 0) -	{ +	const char *LeftString = Tag.Attribute("left"); +	if (!LeftString || !BS_String::ToInt(Common::String(LeftString), tmp) || tmp < 0) {  		BS_LOG_ERRORLN("Illegal or missing left attribute in <character> tag in \"%s\".", GetFileName().c_str());  		return false;  	} +	Rect.left = tmp;  	// Right Attribut auslesen  	const char * RightString = Tag.Attribute("right"); -	if (!RightString || !BS_String::ToInt(RightString, Rect.right) || Rect.right < 0) -	{ +	if (!RightString || !BS_String::ToInt(RightString, tmp) || tmp < 0) {  		BS_LOG_ERRORLN("Illegal or missing right attribute in <character> tag in \"%s\".", GetFileName().c_str());  		return false;  	} +	Rect.right = tmp;  	// Top Attribut auslesen  	const char * TopString = Tag.Attribute("top"); -	if (!TopString || !BS_String::ToInt(TopString, Rect.top) || Rect.top < 0) -	{ +	if (!TopString || !BS_String::ToInt(TopString, tmp) || tmp < 0) {  		BS_LOG_ERRORLN("Illegal or missing top attribute in <character> tag in \"%s\".", GetFileName().c_str());  		return false;  	} +	Rect.top = tmp;  	// Bottom Attribut auslesen  	const char * BottomString = Tag.Attribute("bottom"); -	if (!BottomString || !BS_String::ToInt(BottomString, Rect.bottom) || Rect.bottom < 0) +	if (!BottomString || !BS_String::ToInt(BottomString, tmp) || tmp < 0)  	{  		BS_LOG_ERRORLN("Illegal or missing bottom attribute in <character> tag in \"%s\".", GetFileName().c_str());  		return false;  	} +	Rect.bottom = tmp;  	return true;  } diff --git a/engines/sword25/gfx/fontresource.h b/engines/sword25/gfx/fontresource.h index dff0cee085..fbaa368170 100644 --- a/engines/sword25/gfx/fontresource.h +++ b/engines/sword25/gfx/fontresource.h @@ -43,6 +43,9 @@  #include "sword25/kernel/resource.h"  #include "sword25/math/rect.h" +class TiXmlDocument; +class TiXmlElement; +  namespace Sword25 {  // ----------------------------------------------------------------------------- @@ -50,8 +53,6 @@ namespace Sword25 {  // -----------------------------------------------------------------------------  class BS_Kernel; -class TiXmlDocument; -class TiXmlElement;  // -----------------------------------------------------------------------------  // Klassendefinition diff --git a/engines/sword25/gfx/graphicengine.cpp b/engines/sword25/gfx/graphicengine.cpp index f8a3a1a44a..c35fba4159 100644 --- a/engines/sword25/gfx/graphicengine.cpp +++ b/engines/sword25/gfx/graphicengine.cpp @@ -42,43 +42,39 @@  #include "sword25/kernel/memlog_on.h"  #include "sword25/kernel/inputpersistenceblock.h"  #include "sword25/kernel/outputpersistenceblock.h" +#include "sword25/gfx/graphicengine.h" +namespace Lua {  extern "C"  {  #include "sword25/util/lua/lua.h"  #include "sword25/util/lua/lauxlib.h"  } +} +  namespace Sword25 {  using namespace std; - -// ----------------------------------------------------------------------------- -// Constants -// ----------------------------------------------------------------------------- +using namespace Lua;  static const unsigned int FRAMETIME_SAMPLE_COUNT = 5;		// Anzahl der Framezeiten über die, die Framezeit gemittelt wird -// Includes -// ----------------------------------------------------------------------------- - -#include "sword25/gfx/graphicengine.h" - -// ----------------------------------------------------------------------------- -  BS_GraphicEngine::BS_GraphicEngine(BS_Kernel * pKernel) :   	m_Width(0),  	m_Height(0),  	m_BitDepth(0),  	m_Windowed(0), -	m_LastTimeStamp(9223372036854775807), // max. BS_INT64 um beim ersten Aufruf von _UpdateLastFrameDuration() einen Reset zu erzwingen +	m_LastTimeStamp((uint64)-1), // max. BS_INT64 um beim ersten Aufruf von _UpdateLastFrameDuration() einen Reset zu erzwingen  	m_LastFrameDuration(0),  	m_TimerActive(true), -	m_FrameTimeSamples(FRAMETIME_SAMPLE_COUNT, 0),  	m_FrameTimeSampleSlot(0),  	m_RepaintedPixels(0),  	BS_ResourceService(pKernel)  { +	for (int i = 0; i < FRAMETIME_SAMPLE_COUNT; i++) +		m_FrameTimeSamples[i] = 0; +  	if (!RegisterScriptBindings())  		BS_LOG_ERRORLN("Script bindings could not be registered.");  	else @@ -99,7 +95,7 @@ void  BS_GraphicEngine::UpdateLastFrameDuration()  	m_FrameTimeSampleSlot = (m_FrameTimeSampleSlot + 1) % FRAMETIME_SAMPLE_COUNT;  	// Die Framezeit wird über mehrere Frames gemittelt um Ausreisser zu eliminieren -	std::vector<unsigned int>::const_iterator it = m_FrameTimeSamples.begin(); +	Common::Array<unsigned int>::const_iterator it = m_FrameTimeSamples.begin();  	unsigned int Sum = *it;  	for (it++; it != m_FrameTimeSamples.end(); it++) Sum += *it;  	m_LastFrameDuration = Sum / FRAMETIME_SAMPLE_COUNT; @@ -116,7 +112,7 @@ namespace  	{  		unsigned int Width;  		unsigned int Height; -		vector<unsigned int> Data; +		Common::Array<unsigned int> Data;  		if (!GraphicEngine.GetScreenshot(Width, Height, Data))  		{  			BS_LOG_ERRORLN("Call to GetScreenshot() failed. Cannot save screenshot."); diff --git a/engines/sword25/gfx/graphicengine_script.cpp b/engines/sword25/gfx/graphicengine_script.cpp index 3ce41f34e7..74a008d1fc 100644 --- a/engines/sword25/gfx/graphicengine_script.cpp +++ b/engines/sword25/gfx/graphicengine_script.cpp @@ -96,9 +96,9 @@ namespace  	{  		CallbackfunctionRegisterer()  		{ -			BS_CallbackRegistry::GetInstance().RegisterCallbackFunction("LuaLoopPointCB", AnimationLoopPointCallback); -			BS_CallbackRegistry::GetInstance().RegisterCallbackFunction("LuaActionCB", AnimationActionCallback); -			BS_CallbackRegistry::GetInstance().RegisterCallbackFunction("LuaDeleteCB", AnimationDeleteCallback); +			BS_CallbackRegistry::GetInstance().RegisterCallbackFunction("LuaLoopPointCB", (void (*)(int))AnimationLoopPointCallback); +			BS_CallbackRegistry::GetInstance().RegisterCallbackFunction("LuaActionCB", (void (*)(int))AnimationActionCallback); +			BS_CallbackRegistry::GetInstance().RegisterCallbackFunction("LuaDeleteCB", (void (*)(int))AnimationDeleteCallback);  		}  	};  	static CallbackfunctionRegisterer Instance; @@ -275,12 +275,12 @@ static int AT_Finalize(lua_State * L)  static const luaL_reg ANIMATION_TEMPLATE_METHODS[] =  { -	"AddFrame", AT_AddFrame, -	"SetFrame", AT_SetFrame, -	"SetAnimationType", AT_SetAnimationType, -	"SetFPS", AT_SetFPS, -	"__gc", AT_Finalize, -	0, 0, +	{"AddFrame", AT_AddFrame}, +	{"SetFrame", AT_SetFrame}, +	{"SetAnimationType", AT_SetAnimationType}, +	{"SetFPS", AT_SetFPS}, +	{"__gc", AT_Finalize}, +	{0, 0}  };  // ----------------------------------------------------------------------------- @@ -546,26 +546,26 @@ static int GetRepaintedPixels(lua_State * L)  static const luaL_reg GFX_FUNCTIONS[] =  { -	"Init", Init, -	"StartFrame", StartFrame, -	"EndFrame", EndFrame, -	"DrawDebugLine", DrawDebugLine, -	"SetVsync", SetVsync, -	"GetDisplayWidth", GetDisplayWidth, -	"GetDisplayHeight", GetDisplayHeight, -	"GetBitDepth", GetBitDepth, -	"IsVsync", IsVsync, -	"IsWindowed", IsWindowed, -	"GetFPSCount", GetFPSCount, -	"GetLastFrameDuration", GetLastFrameDuration, -	"StopMainTimer", StopMainTimer, -	"ResumeMainTimer", ResumeMainTimer, -	"GetSecondaryFrameDuration", GetSecondaryFrameDuration, -	"SaveScreenshot", SaveScreenshot, -	"NewAnimationTemplate", NewAnimationTemplate, -	"GetRepaintedPixels", GetRepaintedPixels, -	"SaveThumbnailScreenshot", SaveThumbnailScreenshot, -	0, 0,	 +	{"Init", Init}, +	{"StartFrame", StartFrame}, +	{"EndFrame", EndFrame}, +	{"DrawDebugLine", DrawDebugLine}, +	{"SetVsync", SetVsync}, +	{"GetDisplayWidth", GetDisplayWidth}, +	{"GetDisplayHeight", GetDisplayHeight}, +	{"GetBitDepth", GetBitDepth}, +	{"IsVsync", IsVsync}, +	{"IsWindowed", IsWindowed}, +	{"GetFPSCount", GetFPSCount}, +	{"GetLastFrameDuration", GetLastFrameDuration}, +	{"StopMainTimer", StopMainTimer}, +	{"ResumeMainTimer", ResumeMainTimer}, +	{"GetSecondaryFrameDuration", GetSecondaryFrameDuration}, +	{"SaveScreenshot", SaveScreenshot}, +	{"NewAnimationTemplate", NewAnimationTemplate}, +	{"GetRepaintedPixels", GetRepaintedPixels}, +	{"SaveThumbnailScreenshot", SaveThumbnailScreenshot}, +	{0, 0}  };  // ----------------------------------------------------------------------------- @@ -850,24 +850,24 @@ static int RO_Remove(lua_State * L)  static const luaL_reg RENDEROBJECT_METHODS[] =  { -	"AddAnimation", RO_AddAnimation, -	"AddText", RO_AddText, -	"AddBitmap", RO_AddBitmap, -	"AddPanel", RO_AddPanel, -	"SetPos", RO_SetPos, -	"SetX", RO_SetX, -	"SetY", RO_SetY, -	"SetZ", RO_SetZ, -	"SetVisible", RO_SetVisible, -	"GetX", RO_GetX, -	"GetY", RO_GetY, -	"GetZ", RO_GetZ, -	"GetAbsoluteX", RO_GetAbsoluteX, -	"GetAbsoluteY", RO_GetAbsoluteY, -	"GetWidth", RO_GetWidth, -	"GetHeight", RO_GetHeight, -	"IsVisible", RO_IsVisible, -	0, 0, +	{"AddAnimation", RO_AddAnimation}, +	{"AddText", RO_AddText}, +	{"AddBitmap", RO_AddBitmap}, +	{"AddPanel", RO_AddPanel}, +	{"SetPos", RO_SetPos}, +	{"SetX", RO_SetX}, +	{"SetY", RO_SetY}, +	{"SetZ", RO_SetZ}, +	{"SetVisible", RO_SetVisible}, +	{"GetX", RO_GetX}, +	{"GetY", RO_GetY}, +	{"GetZ", RO_GetZ}, +	{"GetAbsoluteX", RO_GetAbsoluteX}, +	{"GetAbsoluteY", RO_GetAbsoluteY}, +	{"GetWidth", RO_GetWidth}, +	{"GetHeight", RO_GetHeight}, +	{"IsVisible", RO_IsVisible}, +	{0, 0}  };  // ----------------------------------------------------------------------------- @@ -929,10 +929,10 @@ static int P_Remove(lua_State * L)  static const luaL_reg PANEL_METHODS[] =  { -	"GetColor", P_GetColor, -	"SetColor", P_SetColor, -	"Remove", P_Remove, -	0, 0, +	{"GetColor", P_GetColor}, +	{"SetColor", P_SetColor}, +	{"Remove", P_Remove}, +	{0, 0}  };  // ----------------------------------------------------------------------------- @@ -1144,25 +1144,25 @@ static int B_Remove(lua_State * L)  static const luaL_reg BITMAP_METHODS[] =  { -	"SetAlpha", B_SetAlpha, -	"SetTintColor", B_SetTintColor, -	"SetScaleFactor", B_SetScaleFactor, -	"SetScaleFactorX", B_SetScaleFactorX, -	"SetScaleFactorY", B_SetScaleFactorY, -	"SetFlipH", B_SetFlipH, -	"SetFlipV", B_SetFlipV, -	"GetAlpha", B_GetAlpha, -	"GetTintColor", B_GetTintColor, -	"GetScaleFactorX", B_GetScaleFactorX, -	"GetScaleFactorY", B_GetScaleFactorY, -	"IsFlipH", B_IsFlipH, -	"IsFlipV", B_IsFlipV, -	"GetPixel", B_GetPixel, -	"IsScalingAllowed", B_IsScalingAllowed, -	"IsAlphaAllowed", B_IsAlphaAllowed, -	"IsTintingAllowed", B_IsTintingAllowed, -	"Remove", B_Remove, -	0, 0, +	{"SetAlpha", B_SetAlpha}, +	{"SetTintColor", B_SetTintColor}, +	{"SetScaleFactor", B_SetScaleFactor}, +	{"SetScaleFactorX", B_SetScaleFactorX}, +	{"SetScaleFactorY", B_SetScaleFactorY}, +	{"SetFlipH", B_SetFlipH}, +	{"SetFlipV", B_SetFlipV}, +	{"GetAlpha", B_GetAlpha}, +	{"GetTintColor", B_GetTintColor}, +	{"GetScaleFactorX", B_GetScaleFactorX}, +	{"GetScaleFactorY", B_GetScaleFactorY}, +	{"IsFlipH", B_IsFlipH}, +	{"IsFlipV", B_IsFlipV}, +	{"GetPixel", B_GetPixel}, +	{"IsScalingAllowed", B_IsScalingAllowed}, +	{"IsAlphaAllowed", B_IsAlphaAllowed}, +	{"IsTintingAllowed", B_IsTintingAllowed}, +	{"Remove", B_Remove}, +	{0, 0}  };  // ----------------------------------------------------------------------------- @@ -1507,32 +1507,32 @@ static int A_Remove(lua_State * L)  static const luaL_reg ANIMATION_METHODS[] =  { -	"Play", A_Play, -	"Pause", A_Pause, -	"Stop", A_Stop, -	"SetFrame", A_SetFrame, -	"SetAlpha", A_SetAlpha, -	"SetTintColor", A_SetTintColor, -	"SetScaleFactor", A_SetScaleFactor, -	"SetScaleFactorX", A_SetScaleFactorX, -	"SetScaleFactorY", A_SetScaleFactorY, -	"GetScaleFactorX", A_GetScaleFactorX, -	"GetScaleFactorY", A_GetScaleFactorY, -	"GetAnimationType", A_GetAnimationType, -	"GetFPS", A_GetFPS, -	"GetFrameCount", A_GetFrameCount, -	"IsScalingAllowed", A_IsScalingAllowed, -	"IsAlphaAllowed", A_IsAlphaAllowed, -	"IsTintingAllowed", A_IsTintingAllowed, -	"GetCurrentFrame", A_GetCurrentFrame, -	"GetCurrentAction", A_GetCurrentAction, -	"IsPlaying", A_IsPlaying, -	"RegisterLoopPointCallback", A_RegisterLoopPointCallback, -	"UnregisterLoopPointCallback", A_UnregisterLoopPointCallback, -	"RegisterActionCallback", A_RegisterActionCallback, -	"UnregisterActionCallback", A_UnregisterActionCallback, -	"Remove", A_Remove, -	0, 0, +	{"Play", A_Play}, +	{"Pause", A_Pause}, +	{"Stop", A_Stop}, +	{"SetFrame", A_SetFrame}, +	{"SetAlpha", A_SetAlpha}, +	{"SetTintColor", A_SetTintColor}, +	{"SetScaleFactor", A_SetScaleFactor}, +	{"SetScaleFactorX", A_SetScaleFactorX}, +	{"SetScaleFactorY", A_SetScaleFactorY}, +	{"GetScaleFactorX", A_GetScaleFactorX}, +	{"GetScaleFactorY", A_GetScaleFactorY}, +	{"GetAnimationType", A_GetAnimationType}, +	{"GetFPS", A_GetFPS}, +	{"GetFrameCount", A_GetFrameCount}, +	{"IsScalingAllowed", A_IsScalingAllowed}, +	{"IsAlphaAllowed", A_IsAlphaAllowed}, +	{"IsTintingAllowed", A_IsTintingAllowed}, +	{"GetCurrentFrame", A_GetCurrentFrame}, +	{"GetCurrentAction", A_GetCurrentAction}, +	{"IsPlaying", A_IsPlaying}, +	{"RegisterLoopPointCallback", A_RegisterLoopPointCallback}, +	{"UnregisterLoopPointCallback", A_UnregisterLoopPointCallback}, +	{"RegisterActionCallback", A_RegisterActionCallback}, +	{"UnregisterActionCallback", A_UnregisterActionCallback}, +	{"Remove", A_Remove}, +	{0, 0}  };  // ----------------------------------------------------------------------------- @@ -1691,20 +1691,20 @@ static int T_Remove(lua_State * L)  static const luaL_reg TEXT_METHODS[] =  { -	"SetFont", T_SetFont, -	"SetText", T_SetText, -	"SetAlpha", T_SetAlpha, -	"SetColor", T_SetColor, -	"SetAutoWrap", T_SetAutoWrap, -	"SetAutoWrapThreshold", T_SetAutoWrapThreshold, -	"GetText", T_GetText, -	"GetFont", T_GetFont, -	"GetAlpha", T_GetAlpha, -	"GetColor", T_GetColor, -	"IsAutoWrap", T_IsAutoWrap, -	"GetAutoWrapThreshold", T_GetAutoWrapThreshold, -	"Remove", T_Remove, -	0, 0, +	{"SetFont", T_SetFont}, +	{"SetText", T_SetText}, +	{"SetAlpha", T_SetAlpha}, +	{"SetColor", T_SetColor}, +	{"SetAutoWrap", T_SetAutoWrap}, +	{"SetAutoWrapThreshold", T_SetAutoWrapThreshold}, +	{"GetText", T_GetText}, +	{"GetFont", T_GetFont}, +	{"GetAlpha", T_GetAlpha}, +	{"GetColor", T_GetColor}, +	{"IsAutoWrap", T_IsAutoWrap}, +	{"GetAutoWrapThreshold", T_GetAutoWrapThreshold}, +	{"Remove", T_Remove}, +	{0, 0}  };  // ----------------------------------------------------------------------------- diff --git a/engines/sword25/gfx/image/image.h b/engines/sword25/gfx/image/image.h index 8c5d750b6a..2f9d49f695 100644 --- a/engines/sword25/gfx/image/image.h +++ b/engines/sword25/gfx/image/image.h @@ -167,7 +167,7 @@ public:  		@return Gibt false zurück, falls der Aufruf fehlgeschlagen ist.  		@remark Ein Aufruf dieser Methode ist nur erlaubt, wenn IsSetContentAllowed() true zurückgibt.  	*/ -	virtual bool SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset, unsigned int Stride) = 0; +	virtual bool SetContent(const byte *Pixeldata, unsigned int Offset, unsigned int Stride) = 0;  	/**  		@brief Liest einen Pixel des Bildes. diff --git a/engines/sword25/gfx/image/vectorimage.cpp b/engines/sword25/gfx/image/vectorimage.cpp index 6d0c046fcd..5c7a5231a8 100644 --- a/engines/sword25/gfx/image/vectorimage.cpp +++ b/engines/sword25/gfx/image/vectorimage.cpp @@ -581,7 +581,7 @@ unsigned int BS_VectorImage::GetPixel(int X, int Y)  // ----------------------------------------------------------------------------- -bool BS_VectorImage::SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset, unsigned int Stride) +bool BS_VectorImage::SetContent(const byte *Pixeldata, unsigned int Offset, unsigned int Stride)  {  	BS_LOG_ERRORLN("SetContent() is not supported.");  	return 0; diff --git a/engines/sword25/gfx/image/vectorimage.h b/engines/sword25/gfx/image/vectorimage.h index 778422f295..85685121f2 100644 --- a/engines/sword25/gfx/image/vectorimage.h +++ b/engines/sword25/gfx/image/vectorimage.h @@ -123,9 +123,9 @@ private:  	};  	agg::path_storage				m_Paths; -	std::vector<BS_VectorPathInfo>	m_PathInfos; -	std::vector<LineStyleType>		m_LineStyles; -	std::vector<agg::rgba8>			m_FillStyles; +	Common::Array<BS_VectorPathInfo>	m_PathInfos; +	Common::Array<LineStyleType>		m_LineStyles; +	Common::Array<agg::rgba8>			m_FillStyles;  	BS_Rect							m_BoundingBox;  }; @@ -164,7 +164,7 @@ public:  	virtual bool IsAlphaAllowed() const { return true; }  	virtual bool IsColorModulationAllowed() const { return true; }  	virtual bool IsSetContentAllowed() const { return false; } -	virtual bool SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset, unsigned int Stride); +	virtual bool SetContent(const byte *Pixeldata, unsigned int Offset, unsigned int Stride);  	virtual bool Blit(int PosX = 0, int PosY = 0,  					  int Flipping = FLIP_NONE,  					  BS_Rect* pPartRect = NULL, @@ -177,7 +177,7 @@ private:  	bool ParseDefineShape(unsigned int ShapeType, SWFBitStream & bs);  	bool ParseStyles(unsigned int ShapeType, SWFBitStream & bs, unsigned int & NumFillBits, unsigned int & NumLineBits); -	std::vector<BS_VectorImageElement>	m_Elements; +	Common::Array<BS_VectorImageElement>	m_Elements;  	BS_Rect								m_BoundingBox;  }; diff --git a/engines/sword25/gfx/image/vectorimagerenderer.cpp b/engines/sword25/gfx/image/vectorimagerenderer.cpp index 7206551586..fa776578e3 100644 --- a/engines/sword25/gfx/image/vectorimagerenderer.cpp +++ b/engines/sword25/gfx/image/vectorimagerenderer.cpp @@ -132,7 +132,7 @@ BS_VectorImageRenderer::BS_VectorImageRenderer() :  bool BS_VectorImageRenderer::Render(const BS_VectorImage & VectorImage,  									float ScaleFactorX, float ScaleFactorY,  									unsigned int & Width, unsigned int & Height, -									std::vector<char> & ImageData, +									Common::Array<char> & ImageData,  									float LineScaleFactor,  									bool NoAlphaShapes)  { diff --git a/engines/sword25/gfx/image/vectorimagerenderer.h b/engines/sword25/gfx/image/vectorimagerenderer.h index b104374054..2712728b1f 100644 --- a/engines/sword25/gfx/image/vectorimagerenderer.h +++ b/engines/sword25/gfx/image/vectorimagerenderer.h @@ -69,7 +69,7 @@ public:  	bool Render(const BS_VectorImage & VectorImage,  				float ScaleFactorX, float ScaleFactorY,   				unsigned int & Width, unsigned int & Height, -				std::vector<char> & ImageData, +				Common::Array<char> & ImageData,  				float LineScaleFactor = 1.0f,  				bool NoAlphaShapes = false); diff --git a/engines/sword25/gfx/opengl/glimage.cpp b/engines/sword25/gfx/opengl/glimage.cpp index 80a822adcc..54d660aa7f 100644 --- a/engines/sword25/gfx/opengl/glimage.cpp +++ b/engines/sword25/gfx/opengl/glimage.cpp @@ -50,7 +50,7 @@ namespace Sword25 {  // CONSTRUCTION / DESTRUCTION  // ----------------------------------------------------------------------------- -BS_GLImage::BS_GLImage(const std::string & Filename, bool & Result) : +BS_GLImage::BS_GLImage(const Common::String & Filename, bool & Result) :  	m_Sprite(0),  	m_Width(0),  	m_Height(0) @@ -148,7 +148,7 @@ bool BS_GLImage::Fill(const BS_Rect* pFillRect, unsigned int Color)  // ----------------------------------------------------------------------------- -bool BS_GLImage::SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset, unsigned int Stride) +bool BS_GLImage::SetContent(const byte *Pixeldata, unsigned int Offset, unsigned int Stride)  {  	// Überprüfen, ob PixelData ausreichend viele Pixel enthält um ein Bild der Größe Width * Height zu erzeugen  	if (Pixeldata.size() < static_cast<unsigned int>(m_Width * m_Height * 4)) diff --git a/engines/sword25/gfx/opengl/glimage.h b/engines/sword25/gfx/opengl/glimage.h index 62f84ef3cf..ae94473778 100644 --- a/engines/sword25/gfx/opengl/glimage.h +++ b/engines/sword25/gfx/opengl/glimage.h @@ -60,7 +60,7 @@ typedef void * GLS_Sprite;  class BS_GLImage : public BS_Image  {  public: -	BS_GLImage(const std::string & Filename, bool & Result); +	BS_GLImage(const Common::String & Filename, bool & Result);  	/**  		@brief Erzeugt ein leeres BS_GLImage @@ -83,7 +83,7 @@ public:  					  unsigned int Color = BS_ARGB(255, 255, 255, 255),  					  int Width = -1, int Height = -1);  	virtual bool Fill(const BS_Rect* pFillRect, unsigned int Color); -	virtual bool SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset = 0, unsigned int Stride = 0); +	virtual bool SetContent(const byte *Pixeldata, unsigned int Offset = 0, unsigned int Stride = 0);  	virtual unsigned int GetPixel(int X, int Y);  	virtual bool IsBlitSource() const				{ return true; } diff --git a/engines/sword25/gfx/opengl/openglgfx.cpp b/engines/sword25/gfx/opengl/openglgfx.cpp index fc8ecad261..7d97828213 100644 --- a/engines/sword25/gfx/opengl/openglgfx.cpp +++ b/engines/sword25/gfx/opengl/openglgfx.cpp @@ -72,12 +72,12 @@ namespace  {  	const unsigned int BIT_DEPTH = 32;  	const unsigned int BACKBUFFER_COUNT = 1; -	const std::string PNG_EXTENSION(".png"); -	const std::string PNG_S_EXTENSION("_s.png"); -	const std::string ANI_EXTENSION("_ani.xml"); -	const std::string FNT_EXTENSION("_fnt.xml"); -	const std::string SWF_EXTENSION(".swf"); -	const std::string B25S_EXTENSION(".b25s"); +	const Common::String PNG_EXTENSION(".png"); +	const Common::String PNG_S_EXTENSION("_s.png"); +	const Common::String ANI_EXTENSION("_ani.xml"); +	const Common::String FNT_EXTENSION("_fnt.xml"); +	const Common::String SWF_EXTENSION(".swf"); +	const Common::String B25S_EXTENSION(".b25s");  } @@ -195,7 +195,7 @@ bool BS_OpenGLGfx::EndFrame()  		glEnable(GL_LINE_SMOOTH);  		glBegin(GL_LINES); -		std::vector<DebugLine>::const_iterator iter = m_DebugLines.begin(); +		Common::Array<DebugLine>::const_iterator iter = m_DebugLines.begin();  		for (; iter != m_DebugLines.end(); ++iter)  		{  			const unsigned int & Color = (*iter).Color; @@ -303,7 +303,7 @@ bool BS_OpenGLGfx::GetScreenshot(unsigned int & Width, unsigned int & Height, ve  // ----------------------------------------------------------------------------- -bool BS_OpenGLGfx::ReadFramebufferContents(unsigned int Width, unsigned int Height, std::vector<unsigned int> & Data) +bool BS_OpenGLGfx::ReadFramebufferContents(unsigned int Width, unsigned int Height, Common::Array<unsigned int> & Data)  {  	Data.resize(Width * Height);  	glReadPixels(0, 0, Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, &Data[0]); @@ -350,17 +350,17 @@ void BS_OpenGLGfx::FlipImagedataVertical(unsigned int Width, unsigned int Height  // RESOURCE MANAGING  // ----------------------------------------------------------------------------- -static bool DoesStringEndWith(const std::string & String, const std::string & OtherString) +static bool DoesStringEndWith(const Common::String & String, const std::string & OtherString)  { -	std::string::size_type StringPos = String.rfind(OtherString); -	if (StringPos == std::string::npos) return false; +	Common::String::size_type StringPos = String.rfind(OtherString); +	if (StringPos == Common::String::npos) return false;  	return StringPos + OtherString.size() == String.size();  }  // ----------------------------------------------------------------------------- -BS_Resource * BS_OpenGLGfx::LoadResource(const std::string& FileName) +BS_Resource * BS_OpenGLGfx::LoadResource(const Common::String& FileName)  {  	BS_ASSERT(CanLoadResource(FileName)); @@ -476,7 +476,7 @@ BS_Resource * BS_OpenGLGfx::LoadResource(const std::string& FileName)  // ----------------------------------------------------------------------------- -bool BS_OpenGLGfx::CanLoadResource(const std::string& FileName) +bool BS_OpenGLGfx::CanLoadResource(const Common::String& FileName)  {  	return DoesStringEndWith(FileName, PNG_EXTENSION) ||  		   DoesStringEndWith(FileName, ANI_EXTENSION) || diff --git a/engines/sword25/gfx/opengl/openglgfx.h b/engines/sword25/gfx/opengl/openglgfx.h index c1b6143827..df0d81cb04 100644 --- a/engines/sword25/gfx/opengl/openglgfx.h +++ b/engines/sword25/gfx/opengl/openglgfx.h @@ -85,12 +85,12 @@ public:  	virtual bool		GetVsync() const;  	virtual bool		Fill(const BS_Rect* FillRectPtr = 0, unsigned int Color = BS_RGB(0, 0, 0)); -	virtual bool		GetScreenshot(unsigned int & Width, unsigned int & Height, std::vector<unsigned int> & Data); +	virtual bool		GetScreenshot(unsigned int & Width, unsigned int & Height, Common::Array<unsigned int> & Data);  	// Resource-Managing Methoden  	// -------------------------- -	virtual BS_Resource*	LoadResource(const std::string& FileName); -	virtual bool			CanLoadResource(const std::string& FileName); +	virtual BS_Resource*	LoadResource(const Common::String& FileName); +	virtual bool			CanLoadResource(const Common::String& FileName);  	// Debugging Methoden  	// ------------------ @@ -121,11 +121,11 @@ private:  		unsigned int	Color;  	}; -	std::vector<DebugLine> m_DebugLines; +	Common::Array<DebugLine> m_DebugLines; -	static bool ReadFramebufferContents(unsigned int Width, unsigned int Height, std::vector<unsigned int> & Data); -	static void ReverseRGBAComponentOrder(std::vector<unsigned int> & Data); -	static void FlipImagedataVertical(unsigned int Width, unsigned int Height, std::vector<unsigned int> & Data); +	static bool ReadFramebufferContents(unsigned int Width, unsigned int Height, Common::Array<unsigned int> & Data); +	static void ReverseRGBAComponentOrder(Common::Array<unsigned int> & Data); +	static void FlipImagedataVertical(unsigned int Width, unsigned int Height, Common::Array<unsigned int> & Data);  };  } // End of namespace Sword25 diff --git a/engines/sword25/gfx/opengl/swimage.cpp b/engines/sword25/gfx/opengl/swimage.cpp index c8efd357a4..1429572767 100644 --- a/engines/sword25/gfx/opengl/swimage.cpp +++ b/engines/sword25/gfx/opengl/swimage.cpp @@ -50,7 +50,7 @@ namespace Sword25 {  // CONSTRUCTION / DESTRUCTION  // ----------------------------------------------------------------------------- -BS_SWImage::BS_SWImage(const std::string & Filename, bool & Result) : +BS_SWImage::BS_SWImage(const Common::String & Filename, bool & Result) :  	_ImageDataPtr(0),  	m_Width(0),  	m_Height(0) @@ -125,7 +125,7 @@ bool BS_SWImage::Fill(const BS_Rect* pFillRect, unsigned int Color)  // ----------------------------------------------------------------------------- -bool BS_SWImage::SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset, unsigned int Stride) +bool BS_SWImage::SetContent(const byte *Pixeldata, unsigned int Offset, unsigned int Stride)  {  	BS_LOG_ERRORLN("SetContent() is not supported.");  	return false; diff --git a/engines/sword25/gfx/opengl/swimage.h b/engines/sword25/gfx/opengl/swimage.h index cb27a089a1..bbab7c3833 100644 --- a/engines/sword25/gfx/opengl/swimage.h +++ b/engines/sword25/gfx/opengl/swimage.h @@ -53,7 +53,7 @@ namespace Sword25 {  class BS_SWImage : public BS_Image  {  public: -	BS_SWImage(const std::string & Filename, bool & Result); +	BS_SWImage(const Common::String & Filename, bool & Result);  	virtual ~BS_SWImage();  	virtual int GetWidth() const { return m_Width; } @@ -66,7 +66,7 @@ public:  					  unsigned int Color = BS_ARGB(255, 255, 255, 255),  					  int Width = -1, int Height = -1);  	virtual bool Fill(const BS_Rect* FillRectPtr, unsigned int Color); -	virtual bool SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset, unsigned int Stride); +	virtual bool SetContent(const byte *Pixeldata, unsigned int Offset, unsigned int Stride);  	virtual unsigned int GetPixel(int X, int Y);  	virtual bool IsBlitSource() const				{ return false; } diff --git a/engines/sword25/gfx/renderobjectmanager.h b/engines/sword25/gfx/renderobjectmanager.h index 31b5a56d28..f7ba5a71b5 100644 --- a/engines/sword25/gfx/renderobjectmanager.h +++ b/engines/sword25/gfx/renderobjectmanager.h @@ -119,7 +119,7 @@ public:  private:  	bool m_FrameStarted; -	typedef std::vector<BS_RenderObjectPtr<BS_TimedRenderObject> > RenderObjectList; +	typedef Common::Array<BS_RenderObjectPtr<BS_TimedRenderObject> > RenderObjectList;  	RenderObjectList m_TimedRenderObjects;  	// RenderObject-Tree Variablen diff --git a/engines/sword25/gfx/screenshot.h b/engines/sword25/gfx/screenshot.h index f1e8bbde10..9e9fef422b 100644 --- a/engines/sword25/gfx/screenshot.h +++ b/engines/sword25/gfx/screenshot.h @@ -54,8 +54,8 @@ namespace Sword25 {  class BS_Screenshot  {  public: -	static bool SaveToFile(unsigned int Width, unsigned int Height, const std::vector<unsigned int> & Data, const Common::String & Filename); -	static bool SaveThumbnailToFile(unsigned int Width, unsigned int Height, const std::vector<unsigned int> & Data, const Common::String & Filename); +	static bool SaveToFile(unsigned int Width, unsigned int Height, const Common::Array<unsigned int> & Data, const Common::String & Filename); +	static bool SaveThumbnailToFile(unsigned int Width, unsigned int Height, const Common::Array<unsigned int> & Data, const Common::String & Filename);  };  } // End of namespace Sword25 diff --git a/engines/sword25/gfx/staticbitmap.cpp b/engines/sword25/gfx/staticbitmap.cpp index 21544b8b3c..161d8f8f8f 100644 --- a/engines/sword25/gfx/staticbitmap.cpp +++ b/engines/sword25/gfx/staticbitmap.cpp @@ -163,7 +163,7 @@ unsigned int BS_StaticBitmap::GetPixel(int X, int Y) const  // ----------------------------------------------------------------------------- -bool BS_StaticBitmap::SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset, unsigned int Stride) +bool BS_StaticBitmap::SetContent(const byte *Pixeldata, unsigned int Offset, unsigned int Stride)  {  	BS_LOG_ERRORLN("SetContent() ist not supported with this object.");  	return false; diff --git a/engines/sword25/gfx/staticbitmap.h b/engines/sword25/gfx/staticbitmap.h index 51e51f843b..c204d8fb9d 100644 --- a/engines/sword25/gfx/staticbitmap.h +++ b/engines/sword25/gfx/staticbitmap.h @@ -64,7 +64,7 @@ public:  	virtual unsigned int GetPixel(int X, int Y) const; -	virtual bool	SetContent(const std::vector<unsigned char> & Pixeldata, unsigned int Offset, unsigned int Stride); +	virtual bool	SetContent(const byte *Pixeldata, unsigned int Offset, unsigned int Stride);  	virtual bool	IsScalingAllowed() const;  	virtual bool	IsAlphaAllowed() const; diff --git a/engines/sword25/gfx/text.cpp b/engines/sword25/gfx/text.cpp index a469a929d5..b1bf673fa5 100644 --- a/engines/sword25/gfx/text.cpp +++ b/engines/sword25/gfx/text.cpp @@ -192,7 +192,7 @@ bool BS_Text::DoRender()  	BS_ASSERT(GfxPtr);  	bool Result = true; -	std::vector<LINE>::iterator Iter = m_Lines.begin(); +	Common::Array<LINE>::iterator Iter = m_Lines.begin();  	for (; Iter != m_Lines.end(); ++Iter)  	{  		// Feststellen, ob überhaupt Buchstaben der aktuellen Zeile vom Update betroffen sind. @@ -328,7 +328,7 @@ void BS_Text::UpdateFormat()  		// Bounding-Box der einzelnen Zeilen relativ zur ersten festlegen (vor allem zentrieren).  		m_Height = 0; -		std::vector<LINE>::iterator Iter = m_Lines.begin(); +		Common::Array<LINE>::iterator Iter = m_Lines.begin();  		for (; Iter != m_Lines.end(); ++Iter)  		{  			BS_Rect & BBox = (*Iter).BBox; diff --git a/engines/sword25/gfx/text.h b/engines/sword25/gfx/text.h index 4f4d76c72c..597eb00839 100644 --- a/engines/sword25/gfx/text.h +++ b/engines/sword25/gfx/text.h @@ -162,7 +162,7 @@ private:  		Common::String	Text;  	}; -	std::vector<LINE>	m_Lines; +	Common::Array<LINE>	m_Lines;  	void UpdateFormat();  	void UpdateMetrics(BS_FontResource & FontResource); diff --git a/engines/sword25/module.mk b/engines/sword25/module.mk index 48666617b7..ab5d8cd9f8 100644 --- a/engines/sword25/module.mk +++ b/engines/sword25/module.mk @@ -18,15 +18,6 @@ MODULE_OBJS := \  	gfx/framecounter.o \  	gfx/graphicengine.o \  	gfx/graphicengine_script.o \ -	gfx/image/b25sloader.o \ -	gfx/image/imageloader.o \ -	gfx/image/pngloader.o \ -	gfx/image/vectorimage.o \ -	gfx/image/vectorimagerenderer.o \ -	gfx/opengl/glimage.o \ -	gfx/opengl/glvectorimageblit.o \ -	gfx/opengl/openglgfx.o \ -	gfx/opengl/swimage.o \  	gfx/panel.o \  	gfx/renderobject.o \  	gfx/renderobjectmanager.o \ @@ -36,6 +27,15 @@ MODULE_OBJS := \  	gfx/staticbitmap.o \  	gfx/text.o \  	gfx/timedrenderobject.o \ +	gfx/image/b25sloader.o \ +	gfx/image/imageloader.o \ +	gfx/image/pngloader.o \ +	gfx/image/vectorimage.o \ +	gfx/image/vectorimagerenderer.o \ +	gfx/opengl/glimage.o \ +	gfx/opengl/glvectorimageblit.o \ +	gfx/opengl/openglgfx.o \ +	gfx/opengl/swimage.o \  	input/inputengine.o \  	input/inputengine_script.o \  	input/stdwininput.o \ | 
