From 26c7fa69c45800699d8ccd28f4fc81422a936f98 Mon Sep 17 00:00:00 2001 From: Julian Hinxlage Date: Tue, 19 Nov 2019 13:28:48 +0100 Subject: [PATCH] added profont-IIx font --- main/main.cpp | 4 ++-- res/profont-IIx.bmp | Bin 0 -> 955622 bytes res/profont-IIx.toml | 12 ++++++++++++ src/Font.cpp | 8 +++++++- src/Font.h | 2 ++ 5 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 res/profont-IIx.bmp create mode 100644 res/profont-IIx.toml diff --git a/main/main.cpp b/main/main.cpp index e7b311b..a9a229c 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1,4 +1,3 @@ -#include "add.h" #include "Bitmap.h" #include "Font.h" @@ -12,7 +11,8 @@ * Currently only to test. */ int main() { - Font font("../res/font2.bmp","../res/font2.toml"); + Font font("../res/profont-IIx.bmp","../res/profont-IIx.toml"); + //Font font("../res/font2.bmp","../res/font2.toml"); std::string str; std::cout << "string to draw: "; diff --git a/res/profont-IIx.bmp b/res/profont-IIx.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c7eb8ecf87eb83d5791922156af2a7a787d316f6 GIT binary patch literal 955622 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
;Bef3v9Z)@`Y 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 zget_as("firstChar").value_or(0); pixelSize = config->get_as("pixelSize").value_or(0); gap = config->get_as("gap").value_or(-1); + invertedColors = config->get_as("invertedColors").value_or(0); } int Font::width() { @@ -69,6 +70,11 @@ bool Font::getPixel(char character, int x, int y) { int xPos = xIndex * (xSize + xOffset) + xStart; int yPos = yIndex * (ySize + yOffset) + yStart; - return bitmap.getPixel((xPos + x) * pixelSize, (yPos + y) * pixelSize) == fillValue; + bool value = bitmap.getPixel((xPos + x) * pixelSize, (yPos + y) * pixelSize) == fillValue; + if(invertedColors){ + return !value; + }else{ + return value; + } } diff --git a/src/Font.h b/src/Font.h index 30789d5..e4c45d5 100644 --- a/src/Font.h +++ b/src/Font.h @@ -38,6 +38,8 @@ public: int pixelSize; int gap; + bool invertedColors; + Font(); explicit Font(const std::string &file, const std::string &configFile); void load(const std::string &file, const std::string &configFile);