mirror of https://github.com/stella-emu/stella.git
Fix crash when FrameBuffer message surfaces haven't been created.
The next task is to move all FrameBuffer message-related functionality into its own class.
This commit is contained in:
parent
bf5a9e5749
commit
9f74a780ed
|
@ -67,10 +67,6 @@ FrameBuffer::FrameBuffer(OSystem& osystem)
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
FrameBuffer::~FrameBuffer()
|
FrameBuffer::~FrameBuffer()
|
||||||
{
|
{
|
||||||
// Make sure to free surfaces/textures before destroying the backend itself
|
|
||||||
// Most platforms are fine with doing this in either order, but it seems
|
|
||||||
// that OpenBSD in particular crashes when attempting to destroy textures
|
|
||||||
// *after* the renderer is already destroyed
|
|
||||||
cerr << "~FrameBuffer()" << endl << endl;
|
cerr << "~FrameBuffer()" << endl << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -256,21 +252,7 @@ FBInitStatus FrameBuffer::createDisplay(const string& title, BufferType type,
|
||||||
return FBInitStatus::FailTooLarge;
|
return FBInitStatus::FailTooLarge;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Initialize video mode handler, so it can know what video modes are
|
#ifdef GUI_SUPPORT // TODO: put message stuff in its own class
|
||||||
// appropriate for the requested image size
|
|
||||||
myVidModeHandler.setImageSize(size);
|
|
||||||
|
|
||||||
// Always save, maybe only the mode of the window has changed
|
|
||||||
saveCurrentWindowPosition();
|
|
||||||
myBufferType = type;
|
|
||||||
|
|
||||||
// Initialize video subsystem
|
|
||||||
string pre_about = myBackend->about();
|
|
||||||
FBInitStatus status = applyVideoMode();
|
|
||||||
if(status != FBInitStatus::Success)
|
|
||||||
return status;
|
|
||||||
|
|
||||||
#ifdef GUI_SUPPORT
|
|
||||||
// Erase any messages from a previous run
|
// Erase any messages from a previous run
|
||||||
myMsg.enabled = false;
|
myMsg.enabled = false;
|
||||||
|
|
||||||
|
@ -297,6 +279,20 @@ FBInitStatus FrameBuffer::createDisplay(const string& title, BufferType type,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Initialize video mode handler, so it can know what video modes are
|
||||||
|
// appropriate for the requested image size
|
||||||
|
myVidModeHandler.setImageSize(size);
|
||||||
|
|
||||||
|
// Always save, maybe only the mode of the window has changed
|
||||||
|
saveCurrentWindowPosition();
|
||||||
|
myBufferType = type;
|
||||||
|
|
||||||
|
// Initialize video subsystem
|
||||||
|
string pre_about = myBackend->about();
|
||||||
|
FBInitStatus status = applyVideoMode();
|
||||||
|
if(status != FBInitStatus::Success)
|
||||||
|
return status;
|
||||||
|
|
||||||
// Print initial usage message, but only print it later if the status has changed
|
// Print initial usage message, but only print it later if the status has changed
|
||||||
if(myInitializedCount == 1)
|
if(myInitializedCount == 1)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue