Text-Renderer/src/TextRenderer.h

55 lines
1.3 KiB
C++

//
// 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 <string>
#include <Color.hpp>
#include <vkvm.hpp>
#include <iostream>
#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<std::vector<bool>> 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<std::vector<bool>> characterBitmap);
void translateToSharedMemory(std::vector<std::vector<bool>> characterBitmap, int startX, int startY);
};
#endif //TEXTRENDERER_TEXTRENDERER_H