Annotation of nono/wx/wxbmp.h, revision 1.1.1.1

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2021 nono project
                      4: // Licensed under nono-license.txt
                      5: //
                      6: 
                      7: #pragma once
                      8: 
                      9: #include "wxheader.h"
                     10: 
                     11: // wxBitmap を便利に使うためのクラス。
                     12: // wxBitmap を使うためには実体の wxImage とその下のバッファの3つを
                     13: // 毎回管理しないといけないが、全部定型文なので。
                     14: class WXBitmap
                     15: {
                     16:  public:
                     17:        WXBitmap();
                     18:        ~WXBitmap();
                     19: 
                     20:        // ビットマップを(再)構成。
                     21:        // すでに同じ縦横サイズのビットマップなら何もしない。
                     22:        void Create(const wxSize& size) {
                     23:                Create(size.x, size.y);
                     24:        }
                     25:        void Create(int width, int height);
                     26: 
                     27:        // ビットマップが有効なら true を返す
                     28:        bool Valid() const { return (*bitmap).IsOk(); }
                     29: 
                     30:        // wxBitmap を取得
                     31:        wxBitmap& GetBitmap() const { return *(bitmap.get()); }
                     32: 
                     33:        // 直接評価すると wxBitmap を返す
                     34:        operator wxBitmap&() const {
                     35:                return GetBitmap();
                     36:        }
                     37: 
                     38:        // サイズを取得
                     39:        wxSize GetSize() const {
                     40:                if ((bool)bitmap && (*bitmap).IsOk()) {
                     41:                        return (*bitmap).GetSize();
                     42:                } else {
                     43:                        return wxSize(0, 0);
                     44:                }
                     45:        }
                     46: 
                     47:  private:
                     48:        std::unique_ptr<uint8[]> buf {};
                     49:        std::unique_ptr<wxImage> image {};
                     50:        std::unique_ptr<wxBitmap> bitmap {};
                     51: };

unix.superglobalmegacorp.com

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