X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Ftangram.c;h=c084af588b586fcab6af76f1972cbd11db9ee14d;hb=aa75c7476aeaa84cf3abc192b376a8b03c325213;hp=e05a80438e88b046d14471056a848de8c7585bdd;hpb=6afd6db0ae9396cd7ff897ade597cd5483f49b0e;p=xscreensaver diff --git a/hacks/glx/tangram.c b/hacks/glx/tangram.c index e05a8043..c084af58 100644 --- a/hacks/glx/tangram.c +++ b/hacks/glx/tangram.c @@ -1,4 +1,4 @@ -/* tangram, Copyright (c) 2005 Jeremy English +/* tangram, Copyright (c) 2005-2014 Jeremy English * * Permission to use, copy, modify, distribute, and sell this software * and its documentation for any purpose is hereby granted without @@ -18,9 +18,9 @@ #define DEFAULTS "*delay: 10000 \n" \ "*wireframe: False \n" \ - "*titleFont: -*-helvetica-medium-r-normal-*-180-*\n" \ - "*titleFont2: -*-helvetica-medium-r-normal-*-120-*\n" \ - "*titleFont3: -*-helvetica-medium-r-normal-*-80-*\n" \ + "*titleFont: -*-helvetica-medium-r-normal-*-*-180-*-*-*-*-*-*\n" \ + "*titleFont2: -*-helvetica-medium-r-normal-*-*-120-*-*-*-*-*-*\n" \ + "*titleFont3: -*-helvetica-medium-r-normal-*-*-80-*-*-*-*-*-*\n" \ # define refresh_tangram 0 # define release_tangram 0 @@ -37,7 +37,7 @@ #include #include #include "tangram_shapes.h" -#include "glxfonts.h" +#include "texfont.h" typedef struct { GLubyte r; @@ -98,9 +98,6 @@ typedef struct { int ccolor; texture_font_data *font1_data, *font2_data, *font3_data; - - GLuint name_list; - GLfloat theta[3]; Bool going_down[3]; @@ -745,6 +742,15 @@ static void draw_shapes(ModeInfo * mi) { tangram_configuration *tp = &tps[MI_SCREEN(mi)]; +# ifdef HAVE_MOBILE /* Keep it the same relative size when rotated. */ + { + GLfloat h = MI_HEIGHT(mi) / (GLfloat) MI_WIDTH(mi); + int o = (int) current_device_rotation(); + if (o != 0 && o != 180 && o != -180) + glScalef (h, 1/h, 1); + } +# endif + draw_tangram_shape(tp->tsm1); draw_tangram_shape(tp->tsm2); @@ -753,26 +759,27 @@ static void draw_shapes(ModeInfo * mi) draw_tangram_shape(tp->tlg2); draw_tangram_shape(tp->sq); draw_tangram_shape(tp->rh); - if (do_labels) glCallList(tp->name_list); -} -static void set_perspective(void) -{ - glPushMatrix(); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(60, -1, 0.1, 50); - gluLookAt(0, 5, -5, 0, 0, 0, 0, -1, 0); - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); + if (do_labels) + { + texture_font_data *f; + if (MI_WIDTH(mi) >= 500 && MI_HEIGHT(mi) >= 375) + f = tp->font1_data; + else if (MI_WIDTH(mi) >= 350 && MI_HEIGHT(mi) >= 260) + f = tp->font2_data; + else + f = tp->font3_data; + glColor3f(0.8, 0.8, 0); + print_texture_label (mi->dpy, f, + mi->xgwa.width, mi->xgwa.height, + 1, tp->pn); + } } ENTRYPOINT void reshape_tangram(ModeInfo * mi, int w, int h) { glViewport(0, 0, w, h); - set_perspective(); - glLoadIdentity(); } static void set_camera(tangram_configuration *tp) @@ -889,8 +896,6 @@ ENTRYPOINT void init_tangram(ModeInfo * mi) wire = MI_IS_WIREFRAME(mi); - tp->name_list = glGenLists(1); - load_fonts(mi); init_shapes(mi); @@ -1028,23 +1033,6 @@ ENTRYPOINT void draw_tangram(ModeInfo * mi) glPushMatrix(); glLoadIdentity(); - if (do_labels) - { - texture_font_data *f; - if (MI_WIDTH(mi) >= 500 && MI_HEIGHT(mi) >= 375) - f = tp->font1_data; - else if (MI_WIDTH(mi) >= 350 && MI_HEIGHT(mi) >= 260) - f = tp->font2_data; - else - f = tp->font3_data; - - glNewList(tp->name_list, GL_COMPILE); - glColor3f(0.8, 0.8, 0); - print_gl_string(mi->dpy, f, - mi->xgwa.width, mi->xgwa.height, - 10, mi->xgwa.height - 10, tp->pn, False); - glEndList(); - } glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 128);