20 static inline u32
bytepos(u32 index) {
return index >> 3; }
21 static inline u8
bitpos(u32 index) {
return index & 7; }
23 template<
bool set,
bool toggle,
bool clear>
27 u8 mask = 1 <<
bitpos(index);
33 else if constexpr (clear)
64 std::fill(
data.begin(),
data.end(), value ? 0xff : 0);
67 inline bool get(u32
x, u32
y)
const
78 inline bool all()
const
81 return (assert(0),
true);
82 for (u32 i = 0; i <
data.size() - 1; i++) {
86 u8 last_byte =
data.back();
88 u8 leftover_mask = (1 << leftover_bits) - 1;
89 return (last_byte & leftover_mask) == leftover_mask;
96 return (assert(0),
true);
97 for (u32 i = 0; i <
data.size() - 1; i++) {
101 u8 last_byte =
data.back();
103 u8 leftover_mask = (1 << leftover_bits) - 1;
104 return (last_byte & leftover_mask) == 0;
void set(u32 x, u32 y)
Definition bitmap.h:73
void reset(bool value)
Definition bitmap.h:62
u32 lines
Definition bitmap.h:15
void unset(u32 x, u32 y)
Definition bitmap.h:74
static u8 bitpos(u32 index)
Definition bitmap.h:21
bool all() const
Returns true if all bits in the bitmap are set.
Definition bitmap.h:78
bool none() const
Returns true if no bits in the bitmap are set.
Definition bitmap.h:93
u32 width() const
Definition bitmap.h:49
bool get(u32 x, u32 y) const
Definition bitmap.h:67
u32 linesize
Definition bitmap.h:15
u32 height() const
Definition bitmap.h:50
bool toggle(u32 x, u32 y)
Definition bitmap.h:75
Bitmap(u32 width, u32 height)
Create a new zero-filled bitmap.
Definition bitmap.h:44
Bitmap()
Create an empty bitmap.
Definition bitmap.h:41
static u32 bytepos(u32 index)
Definition bitmap.h:20
bool modify_(u32 x, u32 y)
Definition bitmap.h:24
void resize(u32 width, u32 height, bool initial_value=false)
Definition bitmap.h:52
std::vector< u8 > data
Definition bitmap.h:16
constexpr v3f x
Definition test_irr_matrix4.cpp:18
constexpr v3f y
Definition test_irr_matrix4.cpp:19