diff --git a/src/video/sdl2_v.h b/src/video/sdl2_v.h --- a/src/video/sdl2_v.h +++ b/src/video/sdl2_v.h @@ -15,9 +15,9 @@ #include "video_driver.hpp" /** The SDL video driver. */ -class VideoDriver_SDL : public VideoDriver { +class VideoDriver_SDL_Base : public VideoDriver { public: - VideoDriver_SDL() : sdl_window(nullptr) {} + VideoDriver_SDL_Base() : sdl_window(nullptr) {} const char *Start(const StringList ¶m) override; @@ -59,19 +59,17 @@ protected: void InputLoop() override; bool LockVideoBuffer() override; void UnlockVideoBuffer() override; - void Paint() override; - void PaintThread() override; void CheckPaletteAnim() override; /** Indicate to the driver the client-side might have changed. */ void ClientSizeChanged(int w, int h, bool force); /** (Re-)create the backing store. */ - virtual bool AllocateBackingStore(int w, int h, bool force = false); + virtual bool AllocateBackingStore(int w, int h, bool force = false) = 0; /** Get a pointer to the video buffer. */ - virtual void *GetVideoPointer(); + virtual void *GetVideoPointer() = 0; /** Hand video buffer back to the painting backend. */ - virtual void ReleaseVideoPointer() {} + virtual void ReleaseVideoPointer() = 0; /** Create the main window. */ virtual bool CreateMainWindow(uint w, uint h, uint flags = 0); @@ -81,13 +79,10 @@ private: void MainLoopCleanup(); bool CreateMainSurface(uint w, uint h, bool resize); const char *Initialize(); - bool CreateMainWindow(uint w, uint h); - void UpdatePalette(); - void MakePalette(); #ifdef __EMSCRIPTEN__ /* Convert a constant pointer back to a non-constant pointer to a member function. */ - static void EmscriptenLoop(void *self) { ((VideoDriver_SDL *)self)->LoopOnce(); } + static void EmscriptenLoop(void *self) { ((VideoDriver_SDL_Base *)self)->LoopOnce(); } #endif /** @@ -99,14 +94,7 @@ private: std::thread draw_thread; std::unique_lock draw_lock; - static void PaintThreadThunk(VideoDriver_SDL *drv); -}; - -/** Factory for the SDL video driver. */ -class FVideoDriver_SDL : public DriverFactoryBase { -public: - FVideoDriver_SDL() : DriverFactoryBase(Driver::DT_VIDEO, 5, "sdl", "SDL Video Driver") {} - Driver *CreateInstance() const override { return new VideoDriver_SDL(); } + static void PaintThreadThunk(VideoDriver_SDL_Base *drv); }; #endif /* VIDEO_SDL_H */