Annotation of nono/wx/wxvideomonitor.h, revision 1.1.1.3

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

unix.superglobalmegacorp.com

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