added error checking to CreateDisplay, returns bool now
This commit is contained in:
parent
2a9d898464
commit
19db456422
@ -1,7 +1,8 @@
|
|||||||
ZEngine Version Log for Version 0.8.1
|
ZEngine Version Log for Version 0.8.1
|
||||||
$Id: changelog.txt,v 1.21 2003/01/07 05:44:32 cozman Exp $
|
$Id: changelog.txt,v 1.22 2003/01/12 07:09:04 cozman Exp $
|
||||||
|
|
||||||
0.8.2
|
0.8.2
|
||||||
|
-Changed ZEngine::CreateDisplay to return a bool.
|
||||||
-Added \since option to documentation (Everything after 0.8.0 will be labeled with a version.)
|
-Added \since option to documentation (Everything after 0.8.0 will be labeled with a version.)
|
||||||
-Added "desired framerate" code to ZEngine.
|
-Added "desired framerate" code to ZEngine.
|
||||||
-Added "desired framerate" functionality into the test programs.
|
-Added "desired framerate" functionality into the test programs.
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
File: ZE_ZEngine.h <br>
|
File: ZE_ZEngine.h <br>
|
||||||
Description: Header file for ZEngine class, the core of the ZEngine. <br>
|
Description: Header file for ZEngine class, the core of the ZEngine. <br>
|
||||||
Author(s): James Turk <br>
|
Author(s): James Turk <br>
|
||||||
$Id: ZE_ZEngine.h,v 1.9 2003/01/04 05:16:02 cozman Exp $<br>
|
$Id: ZE_ZEngine.h,v 1.10 2003/01/12 07:09:04 cozman Exp $<br>
|
||||||
|
|
||||||
\file ZE_ZEngine.h
|
\file ZE_ZEngine.h
|
||||||
\brief Definition file for core ZEngine class.
|
\brief Definition file for core ZEngine class.
|
||||||
@ -138,12 +138,14 @@ class ZEngine
|
|||||||
\brief Create Display with predefined settings.
|
\brief Create Display with predefined settings.
|
||||||
|
|
||||||
SetupDisplay and SetupSound should be called prior to this to change settings, settings from those do not go into effect
|
SetupDisplay and SetupSound should be called prior to this to change settings, settings from those do not go into effect
|
||||||
until this function is called. Specify no icon file to use default OS icon.
|
until this function is called. Specify no icon file to use default icon. Returns result of setting up ZEngine, and logs
|
||||||
|
error if false is returned (returns bool in versions >= 0.8.2).
|
||||||
|
|
||||||
\param title Window Title.
|
\param title Window Title.
|
||||||
\param icon Path to Icon File.
|
\param icon Path to Icon File.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
void CreateDisplay(string title, string icon="");
|
bool CreateDisplay(string title, string icon="");
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Quit SDL and any Subsystems.
|
\brief Quit SDL and any Subsystems.
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
File: ZE_ZEngine.cpp <br>
|
File: ZE_ZEngine.cpp <br>
|
||||||
Description: Implementation source file for ZEngine library main singleton class. <br>
|
Description: Implementation source file for ZEngine library main singleton class. <br>
|
||||||
Author(s): James Turk <br>
|
Author(s): James Turk <br>
|
||||||
$Id: ZE_ZEngine.cpp,v 1.10 2003/01/04 05:16:01 cozman Exp $<br>
|
$Id: ZE_ZEngine.cpp,v 1.11 2003/01/12 07:09:04 cozman Exp $<br>
|
||||||
|
|
||||||
\file ZE_ZEngine.cpp
|
\file ZE_ZEngine.cpp
|
||||||
\brief Central source file for ZEngine.
|
\brief Central source file for ZEngine.
|
||||||
@ -96,22 +96,29 @@ void ZEngine::SetupSound(int rate, bool stereo)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void ZEngine::CreateDisplay(string title, string icon)
|
bool ZEngine::CreateDisplay(string title, string icon)
|
||||||
{
|
{
|
||||||
Uint32 flags;
|
Uint32 flags=0;
|
||||||
SDL_Surface *iconImg;
|
SDL_Surface *iconImg;
|
||||||
|
#ifdef USE_OPENGL
|
||||||
int rgb_size[3];
|
int rgb_size[3];
|
||||||
|
#endif //USE_OPENGL
|
||||||
|
|
||||||
if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_AUDIO) < 0)
|
if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_AUDIO) < 0)
|
||||||
{
|
{
|
||||||
LogError(FormatStr("SDL could not be Initialized: %s", SDL_GetError()));
|
LogError(FormatStr("SDL could not be initialized: %s", mWidth, mHeight, mBPP, SDL_GetError()));
|
||||||
CloseDisplay();
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_SDL_MIXER
|
#ifdef USE_SDL_MIXER
|
||||||
Mix_OpenAudio(mRate, AUDIO_S16SYS, mStereo?2:1, 4096); //Open Audio Stream (Stereo?2:1 is conditional for number of channels)
|
if(Mix_OpenAudio(mRate, AUDIO_S16SYS, mStereo?2:1, 4096) < 0) //Open Audio (Stereo?2:1 is conditional for number of channels)
|
||||||
#endif
|
{
|
||||||
|
LogError(FormatStr("SDL_mixer could not be initialized: %s", Mix_GetError()));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif //USE_SDL_MIXER
|
||||||
|
|
||||||
|
#ifdef USE_OPENGL
|
||||||
switch (mBPP)
|
switch (mBPP)
|
||||||
{
|
{
|
||||||
case 8:
|
case 8:
|
||||||
@ -131,6 +138,7 @@ void ZEngine::CreateDisplay(string title, string icon)
|
|||||||
rgb_size[2] = 8;
|
rgb_size[2] = 8;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, rgb_size[0]);
|
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, rgb_size[0]);
|
||||||
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, rgb_size[1]);
|
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, rgb_size[1]);
|
||||||
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, rgb_size[2]);
|
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, rgb_size[2]);
|
||||||
@ -143,6 +151,7 @@ void ZEngine::CreateDisplay(string title, string icon)
|
|||||||
SDL_GL_SetAttribute(SDL_GL_ACCUM_ALPHA_SIZE, 0);
|
SDL_GL_SetAttribute(SDL_GL_ACCUM_ALPHA_SIZE, 0);
|
||||||
|
|
||||||
flags = SDL_OPENGL;
|
flags = SDL_OPENGL;
|
||||||
|
#endif //USE_OPENGL
|
||||||
|
|
||||||
//Window Manager settings//
|
//Window Manager settings//
|
||||||
SDL_EnableKeyRepeat(30,30);
|
SDL_EnableKeyRepeat(30,30);
|
||||||
@ -161,26 +170,44 @@ void ZEngine::CreateDisplay(string title, string icon)
|
|||||||
flags |= SDL_FULLSCREEN;
|
flags |= SDL_FULLSCREEN;
|
||||||
mScreen = SDL_SetVideoMode(mWidth, mHeight, mBPP, flags);
|
mScreen = SDL_SetVideoMode(mWidth, mHeight, mBPP, flags);
|
||||||
|
|
||||||
if(!mScreen)
|
if(!mScreen) //try 0 for BPP if supplied bpp failed
|
||||||
{
|
{
|
||||||
LogError(FormatStr("Unable to set video mode %dx%d (%dBpp): %s",mWidth,mHeight,mBPP,SDL_GetError()));
|
LogError(FormatStr("Unable to set video mode %dx%d (%dBpp): %s",mWidth,mHeight,mBPP,SDL_GetError()));
|
||||||
CloseDisplay();
|
mScreen = SDL_SetVideoMode(mWidth, mHeight, 0, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!mScreen) //if safe screen setup fails
|
||||||
|
{
|
||||||
|
#ifdef USE_SDL_MIXER
|
||||||
|
Mix_CloseAudio();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SDL_Quit();
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
mWidth = mScreen->w;
|
mWidth = mScreen->w;
|
||||||
mHeight = mScreen->h;
|
mHeight = mScreen->h;
|
||||||
mBPP = mScreen->format->BitsPerPixel;
|
mBPP = mScreen->format->BitsPerPixel;
|
||||||
|
|
||||||
|
#ifdef USE_OPENGL
|
||||||
SetGL2D();
|
SetGL2D();
|
||||||
|
#endif //USE_OPENGL
|
||||||
|
|
||||||
mKeyIsPressed = SDL_GetKeyState(NULL);
|
mKeyIsPressed = SDL_GetKeyState(NULL);
|
||||||
|
|
||||||
#ifdef USE_SDL_TTF
|
#ifdef USE_SDL_TTF
|
||||||
TTF_Init();
|
if(TTF_Init() < 0)
|
||||||
#endif
|
{
|
||||||
|
LogError(FormatStr("SDL could not be initialized: %s", mWidth, mHeight, mBPP, SDL_GetError()));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif //USE_SDL_TTF
|
||||||
|
|
||||||
mLastTime = mPausedTime = SDL_GetTicks();
|
mLastTime = mPausedTime = SDL_GetTicks();
|
||||||
mActive = true;
|
mActive = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZEngine::CloseDisplay()
|
void ZEngine::CloseDisplay()
|
||||||
|
Loading…
Reference in New Issue
Block a user