X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Ftangram.c;h=e05a80438e88b046d14471056a848de8c7585bdd;hb=6afd6db0ae9396cd7ff897ade597cd5483f49b0e;hp=a7af6428f88954da8d13a1398381524ab908cdda;hpb=f8cf5ac7b2f53510f80a0eaf286a25298be17bfe;p=xscreensaver diff --git a/hacks/glx/tangram.c b/hacks/glx/tangram.c index a7af6428..e05a8043 100644 --- a/hacks/glx/tangram.c +++ b/hacks/glx/tangram.c @@ -24,7 +24,6 @@ # define refresh_tangram 0 # define release_tangram 0 -# define tangram_handle_event 0 #undef countof #define countof(x) (sizeof((x))/sizeof((*x))) @@ -98,14 +97,7 @@ typedef struct { XColor *colors; int ccolor; -# ifdef HAVE_GLBITMAP - XFontStruct *xfont1; - XFontStruct *xfont2; - XFontStruct *xfont3; - GLuint font1_dlist, font2_dlist, font3_dlist; -# else - texture_font_data *font1_data, *font2_data, *font3_data; -# endif + texture_font_data *font1_data, *font2_data, *font3_data; GLuint name_list; @@ -744,15 +736,9 @@ static void draw_tangram_shape(tangram_shape ts) static void load_fonts(ModeInfo * mi) { tangram_configuration *tp = &tps[MI_SCREEN(mi)]; -# ifdef HAVE_GLBITMAP - load_font(mi->dpy, "titleFont", &tp->xfont1, &tp->font1_dlist); - load_font(mi->dpy, "titleFont2", &tp->xfont2, &tp->font2_dlist); - load_font(mi->dpy, "titleFont3", &tp->xfont3, &tp->font3_dlist); -# else /* !HAVE_GLBITMAP */ tp->font1_data = load_texture_font (mi->dpy, "titleFont"); tp->font2_data = load_texture_font (mi->dpy, "titleFont2"); tp->font3_data = load_texture_font (mi->dpy, "titleFont3"); -# endif /* !HAVE_GLBITMAP */ } static void draw_shapes(ModeInfo * mi) @@ -840,13 +826,13 @@ static void init_shapes(ModeInfo * mi) &tp->tlg2, &tp->sq, &tp->rh); get_solved_puzzle(mi, &tp->n_tsm1, &tp->n_tsm2, &tp->n_tm, &tp->n_tlg1, &tp->n_tlg2, &tp->n_sq, &tp->n_rh); - tp->tsm1.dl = get_sm_tri_dl(wire); - tp->tsm2.dl = get_sm_tri_dl(wire); - tp->tm.dl = get_md_tri_dl(wire); - tp->tlg1.dl = get_lg_tri_dl(wire); - tp->tlg2.dl = get_lg_tri_dl(wire); - tp->sq.dl = get_square_dl(wire); - tp->rh.dl = get_rhomboid_dl(wire); + tp->tsm1.dl = tangram_get_sm_tri_dl(wire); + tp->tsm2.dl = tangram_get_sm_tri_dl(wire); + tp->tm.dl = tangram_get_md_tri_dl(wire); + tp->tlg1.dl = tangram_get_lg_tri_dl(wire); + tp->tlg2.dl = tangram_get_lg_tri_dl(wire); + tp->sq.dl = tangram_get_square_dl(wire); + tp->rh.dl = tangram_get_rhomboid_dl(wire); } static void gl_init(ModeInfo * mi) @@ -899,6 +885,8 @@ ENTRYPOINT void init_tangram(ModeInfo * mi) gl_init(mi); } + reshape_tangram (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); + wire = MI_IS_WIREFRAME(mi); tp->name_list = glGenLists(1); @@ -1042,37 +1030,17 @@ ENTRYPOINT void draw_tangram(ModeInfo * mi) glLoadIdentity(); if (do_labels) { -# ifdef HAVE_GLBITMAP - XFontStruct *f; - GLuint fl; -# else /* !HAVE_GLBITMAP */ texture_font_data *f; -# endif /* !HAVE_GLBITMAP */ if (MI_WIDTH(mi) >= 500 && MI_HEIGHT(mi) >= 375) -# ifdef HAVE_GLBITMAP - f = tp->xfont1, fl = tp->font1_dlist; -# else /* !HAVE_GLBITMAP */ f = tp->font1_data; -# endif /* !HAVE_GLBITMAP */ else if (MI_WIDTH(mi) >= 350 && MI_HEIGHT(mi) >= 260) -# ifdef HAVE_GLBITMAP - f = tp->xfont2, fl = tp->font2_dlist; -# else /* !HAVE_GLBITMAP */ f = tp->font2_data; -# endif /* !HAVE_GLBITMAP */ else -# ifdef HAVE_GLBITMAP - f = tp->xfont3, fl = tp->font3_dlist; -# else /* !HAVE_GLBITMAP */ f = tp->font3_data; -# endif /* !HAVE_GLBITMAP */ glNewList(tp->name_list, GL_COMPILE); glColor3f(0.8, 0.8, 0); print_gl_string(mi->dpy, f, -# ifdef HAVE_GLBITMAP - fl, -# endif /* !HAVE_GLBITMAP */ mi->xgwa.width, mi->xgwa.height, 10, mi->xgwa.height - 10, tp->pn, False); glEndList(); @@ -1090,6 +1058,22 @@ ENTRYPOINT void draw_tangram(ModeInfo * mi) glXSwapBuffers(dpy, window); } +ENTRYPOINT Bool +tangram_handle_event (ModeInfo *mi, XEvent *event) +{ + tangram_configuration *tp = &tps[MI_SCREEN(mi)]; + + if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) + { + tp->display_counter = 0; + return True; + } + + return False; +} + + + XSCREENSAVER_MODULE ("Tangram", tangram) #endif /* USE_GL */