QMKhost/src/utility/bitmap.hpp
2022-06-24 21:07:30 -07:00

51 lines
713 B
C++

#pragma once
#include <iostream>
#include <cstdint>
#include <vector>
#include <tuple>
class Bitmap {
public:
Bitmap(size_t w, size_t h);
void clear();
void setpixel(
size_t row,
size_t col,
uint8_t r,
uint8_t g,
uint8_t b
);
void save(const char *filename) const;
size_t get_width() const;
size_t get_height() const;
private:
size_t width;
size_t height;
// Pixel data.
// First is a vector of rows,
// Second is a vector of pixels.
// RGB format.
std::vector<
std::vector<
std::tuple<
uint8_t,
uint8_t,
uint8_t
>>
> data;
static void dump_int_to_bytes(
uint64_t a,
uint8_t* bytes,
size_t index,
size_t num_bytes
);
};