--- nono/vm/renderer.h 2026/04/29 17:05:42 1.1.1.13 +++ nono/vm/renderer.h 2026/04/29 17:06:00 1.1.1.16 @@ -5,7 +5,7 @@ // // -// レンダラ +// ビデオレンダラ // #pragma once @@ -18,11 +18,11 @@ class ConsoleDevice; class PlaneVRAMDevice; -class Scheduler; class Syncer; +class UIMessage; class VideoCtlrDevice; -class Renderer : public ThreadDevice +class VideoRenderer : public ThreadDevice { using inherited = ThreadDevice; public: @@ -33,8 +33,8 @@ class Renderer : public ThreadDevice static const uint REQ_POST = 0x10; // UI への通知指示 public: - Renderer(); - ~Renderer() override; + VideoRenderer(); + ~VideoRenderer() override; bool Init() override; void ResetHard(bool poweron) override; @@ -63,7 +63,7 @@ class Renderer : public ThreadDevice uint GetHeight() const { return height; } // 描画更新(通知)間隔を設定 (GUI から呼ばれる) - void SetRefreshInterval(uint64 t); + void SetRefreshInterval(uint64 msec); protected: // レンダリングスレッド @@ -75,7 +75,9 @@ class Renderer : public ThreadDevice // 画面合成。更新があれば true を返す。(派生クラス側で用意) virtual bool RenderMD() = 0; - DECLARE_MONITOR_CALLBACK(MonitorUpdate); + void PrintPerf(); + + DECLARE_MONITOR_SCREEN(MonitorScreen); // ウィンドウとして表示される画面はオプションや設定などで縮尺を変える // ことが出来るが (こっちを実画面とする)、ここで扱う仮想画面とはそれに @@ -129,6 +131,7 @@ class Renderer : public ThreadDevice FixedQueue ma_output_span {}; // 出力通知間隔 Syncer *syncer {}; + UIMessage *uimessage {}; Monitor *monitor {}; @@ -140,12 +143,12 @@ class Renderer : public ThreadDevice // // X68030 レンダラ // -class X68030Renderer : public Renderer +class X68030VideoRenderer : public VideoRenderer { - using inherited = Renderer; + using inherited = VideoRenderer; public: - X68030Renderer(); - ~X68030Renderer() override; + X68030VideoRenderer(); + ~X68030VideoRenderer() override; bool Init() override; bool RenderMD() override; @@ -157,12 +160,12 @@ class X68030Renderer : public Renderer // // LUNA レンダラ // -class LunaRenderer : public Renderer +class LunaVideoRenderer : public VideoRenderer { - using inherited = Renderer; + using inherited = VideoRenderer; public: - LunaRenderer(); - ~LunaRenderer() override; + LunaVideoRenderer(); + ~LunaVideoRenderer() override; bool Init() override; bool RenderMD() override; @@ -174,9 +177,9 @@ class LunaRenderer : public Renderer // // コンソールレンダラ // -class ConsoleRenderer : public Renderer +class ConsoleRenderer : public VideoRenderer { - using inherited = Renderer; + using inherited = VideoRenderer; public: // フチ [pixel] @@ -193,6 +196,6 @@ class ConsoleRenderer : public Renderer ConsoleDevice *console {}; }; -static inline Renderer *GetRenderer() { - return Object::GetObject(OBJ_RENDERER); +inline VideoRenderer *GetVideoRenderer() { + return Object::GetObject(OBJ_VIDEO_RENDERER); }