File:  [Isaki's NoNo m68k/m88k emulator] / nono / wx / wxtvrammonitor.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Wed Apr 29 17:05:48 2026 UTC (2 months, 3 weeks ago) by root
Branches: MAIN, Isaki
CVS tags: v027, v026, v025, HEAD
nono 1.5.0

//
// nono
// Copyright (C) 2020 nono project
// Licensed under nono-license.txt
//

//
// TVRAM モニタ (LUNA ではビットマップモニタ)
//

#pragma once

#include "wxscreenmonitor.h"
#include <array>

class BT45xDevice;
class PlaneVRAMDevice;
class VideoCtlrDevice;

// テキスト画面パネル
class WXTVRAMPanel : public WXScreenPanel
{
	using inherited = WXScreenPanel;

 public:
	explicit WXTVRAMPanel(wxWindow *parent);
	~WXTVRAMPanel() override;

	void EnablePlane(int plane, bool value);
	void EnablePalette(bool value);

 private:
	void Draw() override;

	void OnPaletteChanged(wxCommandEvent& event);
	void GenPalette();

	std::array<Color, 256> pal {};
	uint32 planemask {};
	bool apply_palette {};

	BT45xDevice *bt45x {};
	PlaneVRAMDevice *planevram {};
	VideoCtlrDevice *videoctlr {};
};

// テキスト画面ウィンドウ
class WXTVRAMWindow : public WXScreenWindow
{
	using inherited = WXScreenWindow;

 public:
	WXTVRAMWindow(wxWindow *parent, const wxString& name);
	~WXTVRAMWindow() override;

 private:
	void UpdateInfo(TextScreen&, int px, int py) override;

	void OnPlane(wxCommandEvent&);
	void DoPlane(int plane, bool value);
	void OnApplyPalette(wxCommandEvent&);
	void DoApplyPalette(bool value);

	PlaneVRAMDevice *planevram {};

	// イベントテーブル
	wxDECLARE_EVENT_TABLE();
};

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.