blob: 8191393631b9880936ba5f49fd61c1b679c73ccf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#ifndef IMAGE_HH
#define IMAGE_HH
#include "size.hh"
#include <cstddef>
#include <cstdint>
#include <memory>
class Image {
public:
enum class Format : uint8_t {
RGBA_8888,
ARGB_8888,
BGRA_8888,
ABGR_8888,
};
[[nodiscard]]
Size const& size() const {
return size_;
}
[[nodiscard]]
uint32_t width() const {
return size_.width;
}
[[nodiscard]]
uint32_t height() const {
return size_.height;
}
[[nodiscard]]
Format format() const {
return format_;
}
[[nodiscard]]
size_t scanline() const {
return scanline_;
}
[[nodiscard]]
uint8_t const* data() const {
return pixels_.get();
}
Image(Format format, Size size, size_t scanline,
std::unique_ptr<uint8_t[]> pixels);
private:
Image(Image const&) = delete;
Image& operator=(Image const&) = delete;
Format const format_;
Size const size_;
size_t const scanline_;
std::unique_ptr<uint8_t[]> pixels_;
};
#endif // IMAGE_HH
|