MFMv2.0.10
Movable Feast Machine Simulator 2.0.10
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Data Structures | Public Member Functions | Static Public Member Functions | Data Fields | Protected Types | Protected Member Functions | Protected Attributes
MFM::AbstractGUIDriver< GC > Class Template Reference
Inheritance diagram for MFM::AbstractGUIDriver< GC >:
MFM::AbstractDriver< GC >

Data Structures

class  AbstractGridButton
 
class  AbstractGridCheckbox
 
struct  BGRButton
 
struct  ButtonPanel
 
class  ClearButton
 
class  ClearGridButton
 
struct  GridRenderButton
 
class  GridRunCheckbox
 
class  GridStepCheckbox
 
struct  HeatmapButton
 
class  NukeButton
 
struct  PauseTileButton
 
struct  QuitButton
 
struct  ReloadButton
 
struct  SaveButton
 
class  ScreenshotButton
 
class  StatisticsPanel
 
struct  TileViewButton
 
struct  XRayButton
 

Public Member Functions

void SaveGridWithNextFilename ()
 
void SaveGridWithConstantFilename (const char *filename)
 
virtual void ReinitUs ()
 
virtual void PostReinit (VArguments &args)
 
virtual void PostReinitPhysics ()
 
virtual void HandleResize ()
 
void ToggleTileView ()
 
void RegisterToolboxElement (Element< CC > *element)
 
void AddDriverArguments ()
 
void SetScreenSize (u32 width, u32 height)
 
StatsRenderer< GC > & GetStatsRenderer ()
 
void RunHelper ()
 
- Public Member Functions inherited from MFM::AbstractDriver< GC >
void AutosaveGrid (u32 epochs)
 
void SaveGrid (const char *filename)
 
void LoadFromConfigurationPath ()
 
const char * GetSimDirPathTemporary (const char *format,...) const
 
void ReloadCurrentConfigurationPath ()
 
void Init (u32 argc, const char **argv)
 
VArgumentsGetVArguments ()
 
void RegisterArgument (const char *description, const char *filter, VArgumentHandleValue func, void *handlerArg, bool runFunc)
 
void RegisterSection (const char *sectionLabel)
 
u32 GetHaltAfterAEPS ()
 
double GetAEPS ()
 
double GetAER ()
 
void SetAER (double aer)
 
double GetRecentAER ()
 
void SetRecentAER (double aer)
 
u32 GetAEPSPerFrame ()
 
double GetOverheadPercent ()
 
OurGridGetGrid ()
 
void SetSeed (u32 seed)
 
void Reinit ()
 
void Run ()
 

Static Public Member Functions

static void ConfigStatsOnlyView (const char *not_used, void *driverptr)
 
static void ConfigMinimalView (const char *not_used, void *driverptr)
 
static void SetRecordScreenshotPerAEPSFromArgs (const char *aeps, void *driverptr)
 
static void SetStartPausedFromArgs (const char *not_used, void *driverptr)
 
static void DontShowHelpPanelOnStart (const char *not_used, void *driverptr)
 
static void SetIncreaseTextSizeFlag (const char *not_used, void *driverptr)
 

Data Fields

EditingTool m_selectedTool
 
GridPanel< GC > m_gridPanel
 
ToolboxPanel< CC > m_toolboxPanel
 
MFM::AbstractGUIDriver::StatisticsPanel m_statisticsPanel
 
MFM::AbstractGUIDriver::ButtonPanel m_buttonPanel
 
TextPanel< 120, 100 > m_logPanel
 
TeeByteSink m_logSplitter
 

Protected Types

enum  { W = GC::GRID_WIDTH }
 
enum  { H = GC::GRID_HEIGHT }
 
typedef Super::OurGrid OurGrid
 
typedef Super::CC CC
 
- Protected Types inherited from MFM::AbstractDriver< GC >
enum  { W = GC::GRID_WIDTH }
 
enum  { H = GC::GRID_HEIGHT }
 
enum  { R = P::EVENT_WINDOW_RADIUS }
 
typedef GC::CORE_CONFIG CC
 
typedef CC::PARAM_CONFIG P
 
typedef CC::ATOM_TYPE T
 
typedef ElementRegistry< CCOurElementRegistry
 
typedef StdElements< CCOurStdElements
 
typedef Grid< GC > OurGrid
 
typedef ElementTable< CCOurElementTable
 

Protected Member Functions

void RequestReinit ()
 
GridRendererGetGridRenderer ()
 
virtual void PostUpdate ()
 
virtual void DoEpochEvents (OurGrid &grid, u32 epochs, u32 epochAEPS)
 
virtual void OnceOnly (VArguments &args)
 
- Protected Member Functions inherited from MFM::AbstractDriver< GC >
void NeedElement (Element< CC > *element)
 
void WriteTimeBasedData (FileByteSink &fp, bool exists)
 
void SetIgnoreThreadingProblems (bool value)
 
void WriteTimeBasedData ()
 
void UpdateGrid (OurGrid &grid)
 
void DecrementAEPSPerFrame (u32 amount)
 
void IncrementAEPSPerFrame (u32 amount)
 
virtual void ReinitEden ()=0
 
void ReinitPhysics ()
 
virtual void DefineNeededElements ()=0
 
void SetAEPSPerEpoch (u32 aeps)
 
u32 GetAEPSPerEpoch () const
 

Protected Attributes

bool m_startPaused
 
bool m_thisUpdateIsEpoch
 
bool m_bigText
 
u32 m_thisEpochAEPS
 
bool m_captureScreenshots
 
u32 m_saveStateIndex
 
u32 m_epochSaveStateIndex
 
bool m_keyboardPaused
 
bool m_singleStep
 
bool m_mousePaused
 
bool m_gridPaused
 
bool m_reinitRequested
 
bool m_renderStats
 
u32 m_ticksLastStopped
 
Keyboard m_keyboard
 
Camera camera
 
SDL_Surface * screen
 
Panel m_rootPanel
 
Drawing m_rootDrawing
 
u32 m_screenWidth
 
u32 m_screenHeight
 
MFM::AbstractGUIDriver::ClearButton m_clearButton
 
MFM::AbstractGUIDriver::ClearGridButton m_clearGridButton
 
MFM::AbstractGUIDriver::NukeButton m_nukeButton
 
MFM::AbstractGUIDriver::XRayButton m_xrayButton
 
MFM::AbstractGUIDriver::GridRunCheckbox m_gridRunButton
 
MFM::AbstractGUIDriver::GridRenderButton m_gridRenderButton
 
MFM::AbstractGUIDriver::HeatmapButton m_heatmapButton
 
MFM::AbstractGUIDriver::GridStepCheckbox m_gridStepButton
 
MFM::AbstractGUIDriver::TileViewButton m_tileViewButton
 
MFM::AbstractGUIDriver::SaveButton m_saveButton
 
MFM::AbstractGUIDriver::ScreenshotButton m_screenshotButton
 
MFM::AbstractGUIDriver::QuitButton m_quitButton
 
MFM::AbstractGUIDriver::ReloadButton m_reloadButton
 
MFM::AbstractGUIDriver::PauseTileButton m_pauseTileButton
 
MFM::AbstractGUIDriver::BGRButton m_bgrButton
 
HelpPanel m_helpPanel
 
GridRenderer m_grend
 
StatsRenderer< GC > m_srend
 
- Protected Attributes inherited from MFM::AbstractDriver< GC >
Element< CC > * m_neededElements [MAX_NEEDED_ELEMENTS]
 
u32 m_neededElementCount
 

Additional Inherited Members

- Static Protected Attributes inherited from MFM::AbstractDriver< GC >
static const u32 EVENT_WINDOW_RADIUS = R
 
static const u32 GRID_WIDTH = W
 
static const u32 GRID_HEIGHT = H
 

Member Function Documentation

template<class GC>
void MFM::AbstractGUIDriver< GC >::AddDriverArguments ( )
inlinevirtual

Adds any command-line arguments desired, by calling #RegisterArgument with appropriate arguments. Note: (Sub-)subclasses of AbstractDriver should always override this method, even if they do not wish to add command-line arguments, and begin their overriding method with Super::AddDriverArguments(). Such chaining lets all levels of abstraction define command-line arguments, with the most abstract going first.

Reimplemented from MFM::AbstractDriver< GC >.

template<class GC>
virtual void MFM::AbstractGUIDriver< GC >::DoEpochEvents ( OurGrid grid,
u32  epochs,
u32  epochAEPS 
)
inlineprotectedvirtual

Method to do end-of-epoch processing. Base class recounts the grid and handles –gridImage and –tileImage processing here, so all subclasses should override this method and do Super::DoEpochEvents to ensure all methods are called.

Reimplemented from MFM::AbstractDriver< GC >.

template<class GC>
virtual void MFM::AbstractGUIDriver< GC >::OnceOnly ( VArguments args)
inlineprotectedvirtual

To be run during first initialization, only once. This runs after all standard argument parsing and is available to extend that behavior. Any overrides of this method should be certain to call Super::OnceOnly (probably at the beginning, but in any case, sometime) during their execution, so more abstract levels can do any processing they need to.

Parameters
argsThe VArguments , which should have been gotten from the command line. These allow this method to configure itself properly from the command line arguments.

Mux our screen logger into the LOGing path, before calling parent!

Reimplemented from MFM::AbstractDriver< GC >.

Reimplemented in MFM::MFMSimSBarDemo, MFM::MFMSimQBDemo, MFM::MFMSimDHSDemo, and MFM::MFMSimDHSDemo.

template<class GC>
virtual void MFM::AbstractGUIDriver< GC >::PostReinit ( VArguments args)
inlinevirtual

Called at the end of the Reinit() call. This is for custom initialization behavior.

Parameters
argsThe VArguments , which should have been gotten from the command line, which will be processed again during this call.

Reimplemented from MFM::AbstractDriver< GC >.

template<class GC>
virtual void MFM::AbstractGUIDriver< GC >::PostReinitPhysics ( )
inlinevirtual

Used by GUI Drivers to register Elements in places needed.

Reimplemented from MFM::AbstractDriver< GC >.

template<class GC>
virtual void MFM::AbstractGUIDriver< GC >::PostUpdate ( )
inlineprotectedvirtual

To be run at the end of a frame update.

Reimplemented from MFM::AbstractDriver< GC >.

template<class GC>
void MFM::AbstractGUIDriver< GC >::RunHelper ( )
inlinevirtual

The main loop which runs this simulation.

Reimplemented from MFM::AbstractDriver< GC >.


The documentation for this class was generated from the following file: