zoneminder/src/zm_font.h

40 lines
979 B
C
Raw Normal View History

#ifndef ZM_FONT_H
#define ZM_FONT_H
#include <inttypes.h>
#include <string>
struct ZMFONT_BH{
2020-11-29 12:55:06 +08:00
uint16_t charHeight; // Height of every character
uint16_t charWidth; // Width of every character
uint32_t numberofCodePoints; // number of codepoints max 255 for now
uint32_t idx; // idx in data where data for the bitmap starts
uint32_t pad; // padding to round of the size
};
struct ZMFONT {
2020-11-29 12:55:06 +08:00
char MAGIC[6]; // ZMFNT\0
char pad[2];
ZMFONT_BH header[4];
uint64_t *data;
};
class ZmFont {
2020-11-29 12:55:06 +08:00
public:
~ZmFont() { FreeData(); }
2020-11-29 12:55:06 +08:00
int ReadFontFile(const std::string &loc);
ZMFONT *GetFont() { return font; }
void SetFontSize(int _size) { size = _size; }
uint64_t *GetBitmapData();
uint16_t GetCharWidth() { return font->header[size].charWidth; }
uint16_t GetCharHeight() { return font->header[size].charHeight; }
void FreeData();
2020-11-29 12:55:06 +08:00
private:
int size = 0;
size_t datasize = 0;
ZMFONT *font = nullptr;
};
2020-11-29 12:55:06 +08:00
#endif