aboutsummaryrefslogtreecommitdiff
path: root/AmpelJonas/cRender.h
diff options
context:
space:
mode:
Diffstat (limited to 'AmpelJonas/cRender.h')
-rw-r--r--AmpelJonas/cRender.h86
1 files changed, 86 insertions, 0 deletions
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 <string>
+#include <Windows.h>
+#include <math.h>
+#include <iostream>
+
+
+//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