#include "GUIDraw.h" #include #include "renderer.h" namespace GUIDraw { void DrawLine(const Vector2& a, const Vector2& b, const Color& color) { Renderer::SetState(RENDER_BLEND); glColor4ub(color.r, color.g, color.b, color.a); glBegin(GL_LINES); glVertex2i(a.x, a.y); glVertex2i(b.x, b.y); glEnd(); } void DrawRect(const Vector4& rect, const Color& color) { Renderer::SetState(RENDER_BLEND); glColor4ub(color.r, color.g, color.b, color.a); glBegin(GL_LINE_LOOP); glVertex2i(rect.x, rect.y); glVertex2i(rect.x, rect.y+rect.w); glVertex2i(rect.x+rect.z, rect.y+rect.w); glVertex2i(rect.x+rect.z, rect.y); glEnd(); } void DrawRect(const Vector4& rect, const Color* colors) { Renderer::SetState(RENDER_BLEND); glBegin(GL_LINES); glColor4ub(colors[0].r, colors[0].g, colors[0].b, colors[0].a); glVertex2i(rect.x, rect.y); glVertex2i(rect.x, rect.y+rect.w); glColor4ub(colors[1].r, colors[1].g, colors[1].b, colors[1].a); glVertex2i(rect.x, rect.y+rect.w); glVertex2i(rect.x+rect.z, rect.y+rect.w); glColor4ub(colors[2].r, colors[2].g, colors[2].b, colors[2].a); glVertex2i(rect.x+rect.z, rect.y+rect.w); glVertex2i(rect.x+rect.z, rect.y); glColor4ub(colors[3].r, colors[3].g, colors[3].b, colors[3].a); glVertex2i(rect.x+rect.z, rect.y); glVertex2i(rect.x, rect.y); glEnd(); } void FillRect(const Vector4& rect, const Color& color) { Renderer::SetState(RENDER_BLEND | RENDER_FILL); glColor4ub(color.r, color.g, color.b, color.a); glBegin(GL_QUADS); glVertex2i(rect.x, rect.y); glVertex2i(rect.x, rect.y+rect.w); glVertex2i(rect.x+rect.z, rect.y+rect.w); glVertex2i(rect.x+rect.z, rect.y); glEnd(); } void FillRect(const Vector4& rect, const Color* colors) { Renderer::SetState(RENDER_BLEND | RENDER_FILL); glBegin(GL_QUADS); glColor4ub(colors[0].r, colors[0].g, colors[0].b, colors[0].a); glVertex2i(rect.x, rect.y); glColor4ub(colors[1].r, colors[1].g, colors[1].b, colors[1].a); glVertex2i(rect.x, rect.y+rect.w); glColor4ub(colors[2].r, colors[2].g, colors[2].b, colors[2].a); glVertex2i(rect.x+rect.z, rect.y+rect.w); glColor4ub(colors[3].r, colors[3].g, colors[3].b, colors[3].a); glVertex2i(rect.x+rect.z, rect.y); glEnd(); } }