76 void resetVideoSystem();
79 int signalEvent(
const Event& event)
override;
82 void executeRT()
override;
87 void checkRendererSwitch();
88 void doRendererSwitch();
89 void doRendererSwitch2();
93 [[nodiscard]] Layers::iterator baseLayer();
96 void updateZ(
Layer& layer)
noexcept override;
100 std::unique_ptr<VideoSystem> videoSystem;
102 std::vector<VideoSystemChangeListener*> listeners;
105 static constexpr unsigned NUM_FRAME_DURATIONS = 50;
107 uint64_t frameDurationSum;
108 uint64_t prevTimeStamp;
110 struct ScreenShotCmd final :
Command {
112 void execute(std::span<const TclObject> tokens,
TclObject& result)
override;
113 [[nodiscard]] std::string help(std::span<const TclObject> tokens)
const override;
114 void tabCompletion(std::vector<std::string>& tokens)
const override;
117 struct FpsInfoTopic final : InfoTopic {
118 explicit FpsInfoTopic(InfoCommand& openMSXInfoCommand);
119 void execute(std::span<const TclObject> tokens,
120 TclObject& result)
const override;
121 [[nodiscard]] std::string help(std::span<const TclObject> tokens)
const override;
127 RenderSettings renderSettings;
132 bool renderFrozen =
false;
133 bool switchInProgress =
false;
std::variant< KeyUpEvent, KeyDownEvent, MouseMotionEvent, MouseButtonUpEvent, MouseButtonDownEvent, MouseWheelEvent, JoystickAxisMotionEvent, JoystickHatEvent, JoystickButtonUpEvent, JoystickButtonDownEvent, OsdControlReleaseEvent, OsdControlPressEvent, WindowEvent, TextEvent, FileDropEvent, QuitEvent, FinishFrameEvent, CliCommandEvent, GroupEvent, BootEvent, FrameDrawnEvent, BreakEvent, SwitchRendererEvent, TakeReverseSnapshotEvent, AfterTimedEvent, MachineLoadedEvent, MachineActivatedEvent, MachineDeactivatedEvent, MidiInReaderEvent, MidiInWindowsEvent, MidiInCoreMidiEvent, MidiInCoreMidiVirtualEvent, MidiInALSAEvent, Rs232TesterEvent, Rs232NetEvent, ImGuiDelayedActionEvent, ImGuiActiveEvent > Event