Modified the FrameBuffer::refresh method to take a boolean value

representing whether a refresh should be done immediately or in the
next frame.

Do an immediate refresh just before taking a snapshot, to make sure
any onscreen messages aren't taken as part of the snapshot.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@362 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2005-02-18 21:26:31 +00:00
parent a626c5bfbb
commit 47f8619ec5
2 changed files with 13 additions and 4 deletions

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: EventHandler.cxx,v 1.29 2004-07-28 23:54:39 stephena Exp $
// $Id: EventHandler.cxx,v 1.30 2005-02-18 21:26:31 stephena Exp $
//============================================================================
#include <algorithm>
@ -427,6 +427,7 @@ void EventHandler::takeSnapshot()
filename = sspath + ".png";
// Now create a Snapshot object and save the PNG
myConsole->frameBuffer().refresh(true);
Snapshot snapshot(myConsole->frameBuffer());
string result = snapshot.savePNG(filename);
myConsole->frameBuffer().showMessage(result);

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: FrameBuffer.hxx,v 1.12 2004-07-28 23:54:39 stephena Exp $
// $Id: FrameBuffer.hxx,v 1.13 2005-02-18 21:26:31 stephena Exp $
//============================================================================
#ifndef FRAMEBUFFER_HXX
@ -35,7 +35,7 @@ class Console;
can be changed.
@author Stephen Anthony
@version $Id: FrameBuffer.hxx,v 1.12 2004-07-28 23:54:39 stephena Exp $
@version $Id: FrameBuffer.hxx,v 1.13 2005-02-18 21:26:31 stephena Exp $
*/
class FrameBuffer
{
@ -124,8 +124,16 @@ class FrameBuffer
/**
Indicates that a redraw should be done, since the window contents
are dirty.
@param now Determine if the refresh should be done right away or in
the next frame
*/
void refresh() { theRedrawEntireFrameIndicator = true; }
void refresh(bool now = false)
{
theRedrawEntireFrameIndicator = true;
if(now)
drawMediaSource();
}
public:
//////////////////////////////////////////////////////////////////////