00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #pragma once
00029 #ifndef GRAPHICS_H
00030 #define GRAPHICS_H
00031
00032
00033 #include ".\Config.h"
00034 #include ".\Pointers.h"
00035 #include ".\util\Color.h"
00036 #include ".\util\Paint.h"
00037
00038 namespace ui
00039 {
00045 class Graphics
00046 {
00047 public:
00052 Graphics();
00053
00058 ~Graphics();
00059
00063 void translate(int x, int y);
00064
00068 void pushMatrix();
00069
00073 void popMatrix();
00074
00080 void setDepth(float newDepth);
00081
00085 float getDepth();
00086
00091 void setPaint(const util::Paint* paint);
00092
00097 void drawRect(int x, int y, int width, int height);
00098
00103 void fillRect(int x, int y, int width, int height);
00104
00108 void drawImage(int textureId, int x, int y, int width, int height);
00109
00113 void drawLine(int x1, int y1, int x2, int y2);
00114
00115
00116
00117
00118 void setFont(Font* f);
00119
00123 void drawString(int x, int y, std::string str);
00124
00128 void fillCircle(int x, int y, int radius);
00129
00135 void setLineWidth(int width);
00136
00140 bool pushDepth(float d);
00141
00145 void popDepth(float d);
00146
00165 void enableScissor(int x, int y, int width, int height);
00166
00170 void disableScissor();
00171
00175 void enableBlending();
00176
00180 void disableBlending();
00181
00187 void paintUniqueColoredRect(int index, int x, int y, int width, int height);
00188
00192 void rotate(float degrees);
00193
00194 bool pushTransparency(float f);
00195 void popTransparency();
00196
00197 void setTransparency(float f);
00198 float getTransparency();
00199 private:
00203 void applyCurrentColor();
00204
00205 float getCurrentTransparency();
00206 float depth, transparency;
00207 FloatStack depthStack, transparencyStack;
00208
00209 int currentFont;
00210
00211 const util::Paint *currentPaint;
00212 };
00213 }
00214 #endif