glamtk
annotate src/draw.c @ 6:9b623dc0f296
foo
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 09 Mar 2011 10:12:31 +0200 |
parents | |
children | a115dff39a54 |
rev | line source |
---|---|
nuclear@6 | 1 #ifndef __APPLE__ |
nuclear@6 | 2 #include <GL/gl.h> |
nuclear@6 | 3 #else |
nuclear@6 | 4 #include <OpenGL/gl.h> |
nuclear@6 | 5 #endif |
nuclear@6 | 6 |
nuclear@6 | 7 #include "draw.h" |
nuclear@6 | 8 |
nuclear@6 | 9 struct color { |
nuclear@6 | 10 float r, g, b, a; |
nuclear@6 | 11 }; |
nuclear@6 | 12 |
nuclear@6 | 13 static struct color fgcolor = {0, 0, 0, 1}; |
nuclear@6 | 14 static struct color bgcolor = {0.4, 0.4, 0.4, 1}; |
nuclear@6 | 15 |
nuclear@6 | 16 void imtk_draw_color(float r, float g, float b, float a) |
nuclear@6 | 17 { |
nuclear@6 | 18 fgcolor.r = r; |
nuclear@6 | 19 fgcolor.g = g; |
nuclear@6 | 20 fgcolor.b = b; |
nuclear@6 | 21 fgcolor.a = a; |
nuclear@6 | 22 } |
nuclear@6 | 23 |
nuclear@6 | 24 void imtk_draw_background(float r, float g, float b, float a) |
nuclear@6 | 25 { |
nuclear@6 | 26 bgcolor.r = r; |
nuclear@6 | 27 bgcolor.g = g; |
nuclear@6 | 28 bgcolor.b = b; |
nuclear@6 | 29 bgcolor.a = a; |
nuclear@6 | 30 } |
nuclear@6 | 31 |
nuclear@6 | 32 void imtk_draw_rect(int x, int y, int w, int h, int rad) |
nuclear@6 | 33 { |
nuclear@6 | 34 glBegin(GL_LINE_LOOP); |
nuclear@6 | 35 linestart(x + rad, y); |
nuclear@6 | 36 lineto(x + w - rad, y); |
nuclear@6 | 37 arcto(x + w, y + rad); |
nuclear@6 | 38 lineto(x + w, y + h - rad); |
nuclear@6 | 39 arcto(x + w - rad, y + h); |
nuclear@6 | 40 lineto(x + rad, y + h); |
nuclear@6 | 41 arcto(x, y + h - rad); |
nuclear@6 | 42 lineto(x, y + rad); |
nuclear@6 | 43 arcto(x + rad, y); |
nuclear@6 | 44 glEnd(); |
nuclear@6 | 45 } |
nuclear@6 | 46 |
nuclear@6 | 47 static int px, py; |
nuclear@6 | 48 |
nuclear@6 | 49 static void linestart(int x, int y) |
nuclear@6 | 50 { |
nuclear@6 | 51 px = x; |
nuclear@6 | 52 py = y; |
nuclear@6 | 53 glVertex2i(x, y); |
nuclear@6 | 54 } |
nuclear@6 | 55 |
nuclear@6 | 56 static void lineto(int x, int y) |
nuclear@6 | 57 { |
nuclear@6 | 58 px = x; |
nuclear@6 | 59 py = y; |
nuclear@6 | 60 glVertex2i(x, y); |
nuclear@6 | 61 } |
nuclear@6 | 62 |
nuclear@6 | 63 static void arcto(int x, int y, int rad) |
nuclear@6 | 64 { |
nuclear@6 | 65 } |