fixes & doc errors

This commit is contained in:
James Turk 2003-10-11 16:21:49 +00:00
parent a6c5e376b4
commit 61d8512793
3 changed files with 36 additions and 66 deletions

View File

@ -13,7 +13,7 @@
\brief Central source file for ZEngine. \brief Central source file for ZEngine.
Actual implementation of ZEngine singleton class, the core of ZEngine. Actual implementation of ZEngine singleton class, the core of ZEngine.
<br>$Id: ZE_ZEngine.cpp,v 1.61 2003/10/05 19:31:03 cozman Exp $<br> <br>$Id: ZE_ZEngine.cpp,v 1.62 2003/10/11 16:21:49 cozman Exp $<br>
\author James Turk \author James Turk
**/ **/
@ -252,10 +252,6 @@ void ZEngine::CloseDisplay()
Mix_CloseAudio(); Mix_CloseAudio();
#endif #endif
#ifdef USE_PHYSFS
PHYSFS_deinit();
#endif
SDL_Quit(); SDL_Quit();
if(mErrlog != stderr && mErrlog != stdin) if(mErrlog != stderr && mErrlog != stdin)
@ -320,7 +316,7 @@ void ZEngine::Clear(Uint8 red, Uint8 green, Uint8 blue, Uint8 alpha)
{ {
GLclampf r = red/255.0f, g = green/255.0f, b = blue/255.0f, a = alpha/255.0f; GLclampf r = red/255.0f, g = green/255.0f, b = blue/255.0f, a = alpha/255.0f;
glClearColor(r,g,b,a); glClearColor(r,g,b,a);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity(); glLoadIdentity();
} }
@ -366,7 +362,7 @@ void ZEngine::Delay(Uint32 milliseconds)
Uint32 ZEngine::GetTime() Uint32 ZEngine::GetTime()
{ {
if(mPaused) //when paused time hasn't been added to mPausedTime if(mPaused) //when paused time hasn't been added to mPausedTime yet
return SDL_GetTicks() - (mPausedTime + (SDL_GetTicks() - mLastPause)); return SDL_GetTicks() - (mPausedTime + (SDL_GetTicks() - mLastPause));
else else
return SDL_GetTicks() - mPausedTime; return SDL_GetTicks() - mPausedTime;
@ -385,7 +381,7 @@ void ZEngine::UnpauseTimer()
{ {
if(mPaused) if(mPaused)
{ {
//mPaused time accumulates total time engine has been paused in all pauses //mPaused time accumulates total time engine has been paused
mPausedTime += (SDL_GetTicks() - mLastPause); mPausedTime += (SDL_GetTicks() - mLastPause);
mPaused = false; mPaused = false;
} }
@ -495,7 +491,7 @@ bool ZEngine::MButtonPressed()
bool ZEngine::MouseInRect(SDL_Rect *rect) bool ZEngine::MouseInRect(SDL_Rect *rect)
{ {
//useful function, needed so much it made it in //useful function, needed so much it made it into ZEngine
return (mMouseX >= rect->x && mMouseX <= rect->x+rect->w && return (mMouseX >= rect->x && mMouseX <= rect->x+rect->w &&
mMouseY >= rect->y && mMouseY <= rect->y+rect->h); mMouseY >= rect->y && mMouseY <= rect->y+rect->h);
} }
@ -572,27 +568,6 @@ void ZEngine::SetEventFilter(SDL_EventFilter filter)
mEventFilter = filter; mEventFilter = filter;
} }
#ifdef USE_PHYSFS
void ZEngine::InitPhysFS(std::string argv)
{
std::string::size_type pos;
PHYSFS_init(argv.c_str());
//example c:/home/games/agame/bin/agame.exe rfind finds the slash before the exe
//and the substr returns the root dir: c:/home/games/agame/bin/
pos = argv.rfind(PHYSFS_getDirSeparator()); //find last slash
if(pos != std::string::npos)
AddPhysFSDir(argv.substr(0,pos)); //everything up to last slash
}
void ZEngine::AddPhysFSDir(std::string dir)
{
PHYSFS_addToSearchPath(dir.c_str(),0);
}
#endif //USE_PHYSFS
void ZEngine::SetErrorLog(bool logAll, std::string logFile) void ZEngine::SetErrorLog(bool logAll, std::string logFile)
{ {
mLogAllErrors = logAll; mLogAllErrors = logAll;

View File

@ -13,7 +13,7 @@
\brief Source file for ZImage. \brief Source file for ZImage.
Implementation of ZImage, the Image class for ZEngine. Implementation of ZImage, the Image class for ZEngine.
<br>$Id: ZE_ZImage.cpp,v 1.47 2003/09/24 02:03:18 cozman Exp $<br> <br>$Id: ZE_ZImage.cpp,v 1.48 2003/10/11 16:21:50 cozman Exp $<br>
\author James Turk \author James Turk
**/ **/
@ -157,21 +157,19 @@ void ZImage::Attach(SDL_Surface *surface)
Release(); //avoid most user inflicted memory leaks associated with ZImage Release(); //avoid most user inflicted memory leaks associated with ZImage
//surface conversion//
SDL_Surface *temp = surface;
surface = SDL_DisplayFormatAlpha(temp); //TTF_RenderTextBlended relys on this
if(surface) if(surface)
{ {
FreeImage(temp); SDL_Surface *temp = SDL_DisplayFormatAlpha(surface); //TTF_RenderTextBlended relys on this
} if(temp) //if conversion succeeds, free old surface
else //can't convert
{ {
rEngine->ReportError(ZERR_SDL_INTERNAL,FormatStr("SDL_DisplayFormatAlpha failed in ZImage::Attach: %s",SDL_GetError())); FreeImage(surface);
surface = temp; surface = temp;
} }
else //can't convert, leave surface as is
if(surface)
{ {
rEngine->ReportError(ZERR_SDL_INTERNAL,FormatStr("SDL_DisplayFormatAlpha failed in ZImage::Attach: %s",SDL_GetError()));
}
rWidth = static_cast<float>(surface->w); rWidth = static_cast<float>(surface->w);
rHeight = static_cast<float>(surface->h); rHeight = static_cast<float>(surface->h);
rTexID = SDL_GL_LoadTexture(surface,coord); //major helper, not written by me, from libsdl.org rTexID = SDL_GL_LoadTexture(surface,coord); //major helper, not written by me, from libsdl.org
@ -211,10 +209,11 @@ void ZImage::SetAlpha(Uint8 alpha)
void ZImage::SetColorKey(Uint8 red, Uint8 green, Uint8 blue) void ZImage::SetColorKey(Uint8 red, Uint8 green, Uint8 blue)
{ {
Uint32 color = SDL_MapRGB(rImage->format,red,green,blue); Uint32 color;
if(rImage) if(rImage)
{ {
color = SDL_MapRGB(rImage->format,red,green,blue);
if(SDL_SetColorKey(rImage, SDL_SRCCOLORKEY, color) < 0) if(SDL_SetColorKey(rImage, SDL_SRCCOLORKEY, color) < 0)
rEngine->ReportError(ZERR_SDL_INTERNAL,FormatStr("SDL_SetColorKey failed in ZImage::SetColorKey: %s",SDL_GetError())); rEngine->ReportError(ZERR_SDL_INTERNAL,FormatStr("SDL_SetColorKey failed in ZImage::SetColorKey: %s",SDL_GetError()));
else else
@ -344,10 +343,7 @@ void ZImage::DrawClipped(float x, float y, ZRect clipRect) const
glEnd(); glEnd();
glColor4ub(255,255,255,255); //be responsible, return to standard color state glColor4ub(255,255,255,255); //be responsible, return to standard color state
} }
else //doesn't contain nor intersect //otherwise it doesn't contain nor intersect, so nothing should be drawn
{
//draw nothing
}
} }
void ZImage::DrawClipped(float x, float y, ZRect clipRect, Uint8 vc[]) const void ZImage::DrawClipped(float x, float y, ZRect clipRect, Uint8 vc[]) const
@ -435,21 +431,21 @@ void ZImage::Attach(SDL_Surface *surface)
{ {
Release(); Release();
//surface conversion//
SDL_Surface *temp = surface;
surface = SDL_DisplayFormatAlpha(temp); //TTF_RenderTextBlended relys on this
if(surface) if(surface)
{ {
FreeImage(temp); SDL_Surface *temp = SDL_DisplayFormatAlpha(surface); //TTF_RenderTextBlended relys on this
} if(temp) //if conversion succeeds, free old surface
else //can't convert
{ {
rEngine->ReportError(ZERR_SDL_INTERNAL,FormatStr("SDL_DisplayFormatAlpha failed in ZImage::Attach: %s",SDL_GetError())); FreeImage(surface);
surface = temp; surface = temp;
} }
else //can't convert, leave surface as is
{
rEngine->ReportError(ZERR_SDL_INTERNAL,FormatStr("SDL_DisplayFormatAlpha failed in ZImage::Attach: %s",SDL_GetError()));
}
if(surface)
rImage = surface; rImage = surface;
}
else else
rEngine->ReportError(ZERR_NOIMAGE,"Attach"); rEngine->ReportError(ZERR_NOIMAGE,"Attach");
} }
@ -478,10 +474,11 @@ void ZImage::SetAlpha(Uint8 alpha)
void ZImage::SetColorKey(Uint8 red, Uint8 green, Uint8 blue) void ZImage::SetColorKey(Uint8 red, Uint8 green, Uint8 blue)
{ {
Uint32 color = SDL_MapRGBA(rImage->format,red,green,blue,255); Uint32 color;
if(rImage) if(rImage)
{ {
color = SDL_MapRGBA(rImage->format,red,green,blue,255);
if(SDL_SetColorKey(rImage, SDL_RLEACCEL|SDL_SRCCOLORKEY, color) < 0) if(SDL_SetColorKey(rImage, SDL_RLEACCEL|SDL_SRCCOLORKEY, color) < 0)
rEngine->ReportError(ZERR_SDL_INTERNAL,FormatStr("SDL_SetColorKey failed in ZImage::SetColorKey: %s",SDL_GetError())); rEngine->ReportError(ZERR_SDL_INTERNAL,FormatStr("SDL_SetColorKey failed in ZImage::SetColorKey: %s",SDL_GetError()));
//surface conversion// //surface conversion//
@ -514,13 +511,11 @@ void ZImage::DrawClipped(int x, int y, ZRect clipRect) const
ZRect img(static_cast<Sint16>(x),static_cast<Sint16>(y),static_cast<Sint16>(rImage->w),static_cast<Sint16>(rImage->h)); ZRect img(static_cast<Sint16>(x),static_cast<Sint16>(y),static_cast<Sint16>(rImage->w),static_cast<Sint16>(rImage->h));
SDL_Rect inRect,imgRect; SDL_Rect inRect,imgRect;
imgRect = inRect = clipRect.Intersection(img).SDLrect(); imgRect = inRect = clipRect.Intersection(img).SDLrect();
inRect.x -= x; inRect.x -= x;
inRect.y -= y; inRect.y -= y;
SDL_BlitSurface(rImage, &inRect, rEngine->Display(), &imgRect); SDL_BlitSurface(rImage, &inRect, rEngine->Display(), &imgRect);
//SDL_FillRect(rEngine->Display(), &inRect, SDL_MapRGB(rEngine->Display()->format,0,255,0));
} }
bool ZImage::IsLoaded() const bool ZImage::IsLoaded() const

View File

@ -1,4 +1,4 @@
/*This code comes from testgl.c which is part of the SDL source distribution. /*This code derived from testgl.c which is part of the SDL source distribution.
Available at http://libsdl.org/ Available at http://libsdl.org/
*/ */
@ -73,7 +73,7 @@ GLuint SDL_GL_LoadTexture(SDL_Surface *surface, GLfloat *texcoord)
} }
/* Create an OpenGL texture for the image */ /* Create an OpenGL texture for the image */
glGenTextures(1, &texture); //sometimes this returns a used ID?.. related to bug 723910 - ZImage Draws Wrong Image glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture); glBindTexture(GL_TEXTURE_2D, texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);