X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=example.c;fp=example.c;h=0000000000000000000000000000000000000000;hb=492a32903dd07d3736bb878e81eb95f351556bac;hp=4ff5bdcba7c5c96eee835731dcbfaada4946081a;hpb=526fc352816f21f1cbfa8110262a58224c14d208;p=windtk diff --git a/example.c b/example.c deleted file mode 100644 index 4ff5bdc..0000000 --- a/example.c +++ /dev/null @@ -1,125 +0,0 @@ -#include -#include -#include -#include "windtk.h" - -static void display(void); -static void reshape(int x, int y); -static void keypress(unsigned char key, int x, int y); -static void keyrelease(unsigned char key, int x, int y); -static void mouse(int bn, int st, int x, int y); -static void motion(int x, int y); - -static int gfx_newcol(int r, int g, int b); -static void gfx_color(int c); -static void gfx_fillrect(struct wt_rect *r); -static void gfx_line(int x0, int y0, int x1, int y1); - -static struct wt_graphics gfx = { - gfx_newcol, gfx_color, - gfx_fillrect, - gfx_line -}; - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - glutInitWindowSize(800, 600); - glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); - glutCreateWindow("windtk example"); - - glutDisplayFunc(display); - glutReshapeFunc(reshape); - glutKeyboardFunc(keypress); - glutKeyboardUpFunc(keyrelease); - glutMouseFunc(mouse); - glutMotionFunc(motion); - glutPassiveMotionFunc(motion); - - glClearColor(0.6, 0.6, 0.6, 1); - - if(wt_init(800, 600, &gfx)) { - return 1; - } - wt_window(0, "foo", WT_WS_DEFAULT, 100, 100, 200, 200); - - glutMainLoop(); - return 0; -} - -static void display(void) -{ - glClear(GL_COLOR_BUFFER_BIT); - - wt_draw(); - - glutSwapBuffers(); -} - -static void reshape(int x, int y) -{ - glViewport(0, 0, x, y); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(0, x, y, 0, -1, 1); - - wt_viewport(0, 0, x, y); -} - -static void keypress(unsigned char key, int x, int y) -{ - if(key == 27) exit(0); - - wt_inp_key(key, 1); -} - -static void keyrelease(unsigned char key, int x, int y) -{ - wt_inp_key(key, 0); -} - -static void mouse(int bn, int st, int x, int y) -{ - wt_inp_mouse(bn - GLUT_LEFT_BUTTON, st == GLUT_DOWN, x, y); -} - -static void motion(int x, int y) -{ - wt_inp_motion(x, y); -} - -/* ------ graphics callbacks -------- */ -static float colors[32][3]; -static int maxcol; - -static int gfx_newcol(int r, int g, int b) -{ - if(maxcol >= 32) return -1; - colors[maxcol][0] = r / 255.0f; - colors[maxcol][1] = g / 255.0f; - colors[maxcol][2] = b / 255.0f; - return maxcol++; -} - -static void gfx_color(int c) -{ - glColor3fv(colors[c]); -} - -static void gfx_fillrect(struct wt_rect *r) -{ - glBegin(GL_QUADS); - glVertex2f(r->x, r->y); - glVertex2f(r->x + r->width, r->y); - glVertex2f(r->x + r->width, r->y + r->height); - glVertex2f(r->x, r->y + r->height); - glEnd(); -} - -static void gfx_line(int x0, int y0, int x1, int y1) -{ - glBegin(GL_LINES); - glVertex2f(x0, y0); - glVertex2f(x1, y1); - glEnd(); -}