// // Created by my on 2019/11/16. // #ifndef TEXTRENDERER_TEXTRENDERER_H #define TEXTRENDERER_TEXTRENDERER_H #define BOLD 0b001 #define ITALICS 0b010 #define UNDERLINE 0b100 #include #include #include #include #include "Font.h" /** * @author: Yajie Qi, Shaohua Tong * @since: v0.0.0 * @brief: gets a string from the Shared Memory and converts the text into a bitmap-array. */ class TextRenderer { public: TextRenderer(int windowWidth, int windowHeight, vkvm::Color defaultBackgroundColor, vkvm::Color fontColor, Font font); void update(std::string text); void setOldText(std::string text); std::vector> getCharacter(unsigned char character, Font font); void setLeftMargin(int margin); void setBottomMargin(int margin); void clear(); private: std::string oldText; vkvm::Color backgroundColor; vkvm::Color fontColor; Font font; int left_margin = 1; int bottom_margin = 1; int type; int windowWidth; int windowHeight; int fontWidth; int fontHeight; bool isBold(); bool isItalics(); bool isUnderline(); void fontProcessing(std::vector> characterBitmap); void translateToSharedMemory(std::vector> characterBitmap, int startX, int startY); }; #endif //TEXTRENDERER_TEXTRENDERER_H