From 2c12d19204aa198bf8537bcdb137b40f0c7317e9 Mon Sep 17 00:00:00 2001 From: Jonas Gunz Date: Sun, 25 Sep 2016 18:38:34 +0200 Subject: Initial --- AmpelJonas/cRender.h | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 AmpelJonas/cRender.h (limited to 'AmpelJonas/cRender.h') diff --git a/AmpelJonas/cRender.h b/AmpelJonas/cRender.h new file mode 100644 index 0000000..dadae40 --- /dev/null +++ b/AmpelJonas/cRender.h @@ -0,0 +1,86 @@ +#pragma once + +#include +#include +#include +#include + + +//errors +#define _OK_ 0 +#define _ERR_ 1 +#define _ERR_COORDINATES_INVALID_ 2 +#define _ERR_RENDER_BLOCKED_BY_CHILD_ 3 + +#define _COLLISION_ 255 + +//Colors +#define _COL_BLACK 0x00 +#define _COL_BLUE 0x01 +#define _COL_GREEN 0x02 +#define _COL_YELLOW 0x0E +#define _COL_RED 0x04 +#define _COL_WHITE 0x0F +#define _COL_DARK_WHITE 0x07 +#define _COL_INTENSITY 0x08 +#define _COL_DEFAULT 0xFF + +using namespace std; + +struct sPos +{ + int x; + int y; +}; + +class cRender +{ +public: + cRender(char _backound, WORD _color, int _sx, int _sy); + //Constructor + //sets cBackround[][] to _backround & wColor[][] to _color + //Resizes console window + + ~cRender(); + //frees allocated memory + + int drawPoint(char _c, sPos _pos, bool _overrideCollision, WORD _color); + //Draws _c @ _pos + //Returns _COLLOSION_ if _pos is already set to !cBackround && _overrideCollision isnt set + + int drawLine(char _c, sPos _pos1, sPos _pos2, bool _overrideCollision, WORD _color); + //x Value of pos1 MUSTNT exceed the x value of pos2! + + int drawText(string _s, sPos _pos, WORD _color); + //Draws Text _s @ _pos + //First char is @ _pos + + int drawRectangle(char _border, char _fill, sPos _pos1, sPos _pos2, WORD _borderColor, WORD _fillColor); + //x Value of pos1 MUSTNT exceed the x value of pos2! + + int render(void); + //Prints cScreen + + int clear(void); + //clears cScreen + wColor + + +protected: + cRender(); //Empty Constructor for being inheritable + + bool bBlockRender; //Used by children to block render function + + char **cScreen; //Pixel Map + WORD **wColor; //Color Map + + char cBackound; //Default backround + WORD wBackColor; + int sizeX, sizeY; + + HANDLE hstdout; + CONSOLE_SCREEN_BUFFER_INFO csbi; + WORD wDefColor; //Default Color +private: + int SetConsoleWindowSize(int x, int y); + //Slightly adapted from: http://www.cplusplus.com/forum/windows/121444/ +}; \ No newline at end of file -- cgit v1.2.3