|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2021 nono project
4: // Licensed under nono-license.txt
5: //
6:
7: #include "wxbmp.h"
8:
9: // コンストラクタ
10: WXBitmap::WXBitmap()
11: {
12: }
13:
14: // デストラクタ
15: WXBitmap::~WXBitmap()
16: {
17: bitmap.reset();
18: image.reset();
19: buf.reset();
20: }
21:
22: // ビットマップ作成
23: void
24: WXBitmap::Create(int width, int height)
25: {
26: // ビットマップがすでにあってサイズが同じなら何もしない
27: if ((bool)bitmap && (*bitmap).GetSize() == wxSize(width, height)) {
28: // XXX 塗り直しくらいはしてもいいかもしれんけど
29: return;
30: }
31:
32: // 持っていればまず逆順に解放
33: bitmap.reset();
34: image.reset();
35:
36: // 正しく描かれなかった時に分かりやすいよう初期値は濃いグレーにしておく
37: int buflen = width * height * 3;
38: buf.reset(new uint8 [buflen]);
39: memset(&buf[0], 0x70, buflen);
40: image.reset(new wxImage(width, height, buf.get(), true));
41: bitmap.reset(new wxBitmap(*image));
42: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.