AppleWin/source/frontends/sa2/emulator.h
Andrea Odetti a121981e5a sa2: Add support for --headless and --fixed-speed.
Headless will skip the video refresh (and the vsync).
Fixed-Speed will avoid adaptive speed.

Used together, the emulator will go at maximum speed skipping video refresh (useful for profiling).
2020-11-21 15:07:31 +00:00

38 lines
873 B
C++

#pragma once
#include <SDL.h>
#include <memory>
#include "frontends/common2/speed.h"
class Emulator
{
public:
Emulator(
const std::shared_ptr<SDL_Window> & window,
const std::shared_ptr<SDL_Renderer> & renderer,
const std::shared_ptr<SDL_Texture> & texture,
const bool fixedSpeed
);
void execute(const size_t milliseconds);
void refreshVideo();
SDL_Rect updateTexture();
void refreshVideo(const SDL_Rect & rect);
void processEvents(bool & quit);
private:
void processKeyDown(const SDL_KeyboardEvent & key, bool & quit);
void processKeyUp(const SDL_KeyboardEvent & key);
void processText(const SDL_TextInputEvent & text);
const std::shared_ptr<SDL_Window> myWindow;
const std::shared_ptr<SDL_Renderer> myRenderer;
const std::shared_ptr<SDL_Texture> myTexture;
int myMultiplier;
bool myFullscreen;
Speed mySpeed;
};