|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2019 [email protected] ! 4: // ! 5: ! 6: #pragma once ! 7: ! 8: #include "object.h" ! 9: #include "wxsubwindow.h" ! 10: ! 11: // ! 12: // LUNA ビットマップパネル ! 13: // ! 14: class WXLunaBitmapPanel : public wxScrolledWindow ! 15: { ! 16: typedef wxScrolledWindow inherited; ! 17: public: ! 18: WXLunaBitmapPanel(wxWindow *parent); ! 19: virtual ~WXLunaBitmapPanel(); ! 20: ! 21: private: ! 22: void OnSize(wxSizeEvent& event); ! 23: void OnPaint(wxPaintEvent& event); ! 24: void OnScrollWin(wxScrollWinEvent& event); ! 25: void Draw(); ! 26: ! 27: const uint8 *src = NULL; // Bitmap デバイス内のバッファを指す ! 28: uint8 *bmpbuf = NULL; // 裏バッファ ! 29: ! 30: int view_x = 0; // ビューの表示開始 X 座標 ! 31: int view_y = 0; // ビューの表示開始 Y 座標 ! 32: int view_width = 0; // ビュー幅 ! 33: int view_height = 0; // ビュー高さ ! 34: ! 35: // 縦は1ドットずつ処理出来るので特筆することはない。 ! 36: // 横は少なくともバイト(8ドット)単位に制限したほうが実装が楽。 ! 37: // 今はロングワード単位で描画しているため 32ドット単位としている。 ! 38: static const int virtual_width = 2048; // 仮想画面幅 [pixel] ! 39: static const int virtual_height = 1024; // 仮想画面高さ [pixel] ! 40: static const int width_per_unit = 32; // 横スクロール単位 [pixel] ! 41: static const int height_per_unit = 1; // 縦スクロール単位 [pixel] ! 42: static_assert(virtual_width % width_per_unit == 0, ""); ! 43: static_assert(virtual_height % height_per_unit == 0, ""); ! 44: ! 45: // イベントテーブル ! 46: wxDECLARE_EVENT_TABLE(); ! 47: }; ! 48: ! 49: // ! 50: // LUNA ビットマップウィンドウ ! 51: // ! 52: class WXLunaBitmapWindow : public WXSubWindow ! 53: { ! 54: typedef WXSubWindow inherited; ! 55: public: ! 56: WXLunaBitmapWindow(wxWindow *parent, wxWindowID id, const wxString& name); ! 57: virtual ~WXLunaBitmapWindow(); ! 58: ! 59: private: ! 60: // タイマーイベント ! 61: void OnTimer(wxTimerEvent& event); ! 62: ! 63: // グラフィックパネル ! 64: WXLunaBitmapPanel *panel = NULL; ! 65: ! 66: // タイマー ! 67: wxTimer timer; ! 68: ! 69: // イベントテーブル ! 70: wxDECLARE_EVENT_TABLE(); ! 71: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.