00001 #ifndef V2Ddraw_cpp 00002 #define V2Ddraw_cpp 00003 00004 #include<math.h> 00005 #include<GL/glew.h> 00006 #include<GL/glut.h> 00007 #include "VTexture.h" 00008 00011 class V2Ddraw { 00012 00013 public: 00014 00017 static void drawBox(int x, int y, int width, int height) { 00018 glBegin(GL_QUADS); 00019 glVertex2f(x,y); 00020 glVertex2f(x+width,y); 00021 glVertex2f(x+width,y+height); 00022 glVertex2f(x,y+height); 00023 glEnd(); 00024 } 00027 static void drawBox(int x, int y, int width, int height, int temp) { 00028 glBegin(GL_QUADS); 00029 glTexCoord2f(0.0f,0.0f); 00030 glVertex2f(x,y); 00031 glTexCoord2f(1.0f,0.0f); 00032 glVertex2f(x+width,y); 00033 glTexCoord2f(1.0f,1.0f); 00034 glVertex2f(x+width,y+height); 00035 glTexCoord2f(0.0f,1.0f); 00036 glVertex2f(x,y+height); 00037 glEnd(); 00038 } 00041 static void drawTexBox(VTexture* tex,int x, int y, int width, int height) { 00042 glEnable(GL_TEXTURE_2D); 00043 glEnable(GL_BLEND); 00044 glBlendFunc(GL_SRC_ALPHA,GL_DST_ALPHA); 00045 tex->bind(); 00046 glBegin(GL_QUADS); 00047 glTexCoord2f(0,0); 00048 glVertex2f(x,y); 00049 glTexCoord2f(1,0); 00050 glVertex2f(x+width,y); 00051 glTexCoord2f(1,1); 00052 glVertex2f(x+width,y+height); 00053 glTexCoord2f(0,1); 00054 glVertex2f(x,y+height); 00055 glEnd(); 00056 glDisable(GL_TEXTURE_2D); 00057 glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 00058 } 00061 static void drawRect(int x, int y, int width, int height) { 00062 glBegin(GL_LINE_LOOP); 00063 glVertex2f(x,y); 00064 glVertex2f(x+width,y); 00065 glVertex2f(x+width,y+height); 00066 glVertex2f(x,y+height); 00067 glEnd(); 00068 } 00071 static void drawCircle(int x, int y, int radius) { 00072 glBegin(GL_LINE_LOOP); 00073 for(float angle = 0; angle < 360; angle+=45) { 00074 glVertex2f(x + sin(angle)*radius, y + cos(angle)*radius); 00075 } 00076 glEnd(); 00077 } 00078 00079 }; 00080 00081 #endif