simple-draw/src/DrawRender.hpp

49 lines
1.2 KiB
C++

//
// Created by shaohuatong on 21.11.19.
//
#ifndef SIMPLE_DRAW_DRAWRENDER_HPP
#define SIMPLE_DRAW_DRAWRENDER_HPP
#include <string>
#include <Color.hpp>
#include <vkvm.hpp>
#include <iostream>
#include "Font.h"
#include "vector"
#define CIRCLE 0
#define SQUARE 1
#define BRUSH 2
class DrawRender {
public:
DrawRender(int windowWidth, int windowHeight, vkvm::Color defaultBackgroundColor, vkvm::Color penColor, int penWidth);
void setType();
void update(vkvm::Coordinates mousePosition, int type);
void clear();
private:
vkvm::Coordinates mousePosition;
vkvm::Color backgroundColor;
vkvm::Color penColor;
int type;
int penWidth;
int windowWidth;
int windowHeight;
int graphicsHeight;
int graphicsWidth;
int radius;
int startX;
int startY;
bool turnOnBrush;
std::vector<std::vector<bool>> circleAndSquareCreator(vkvm::Coordinates mousePosition, int type);
std::vector<std::vector<bool>> brushCreator(vkvm::Coordinates mousePosition);
int squareOfDistance(vkvm::Coordinates x, vkvm::Coordinates y);
void translateToSharedMemory(std::vector<std::vector<bool>> graphics, int startX, int startY, int Type);
};
#endif //SIMPLE_DRAW_DRAWRENDER_HPP