From 7e1757060eb4b9b22e8dfd9cd36f1e614ab2bda6 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 28 Dec 2012 03:27:51 +0000 Subject: only send draw updates if the diameter or value has changed svn path=/trunk/externals/flatgui/; revision=16780 --- knob.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/knob.c b/knob.c index fdd8a93..818aa17 100644 --- a/knob.c +++ b/knob.c @@ -50,8 +50,10 @@ t_symbol *iemgui_key_sym=0; /* taken from g_all_guis.c */ typedef struct _knob /* taken from Frank's modyfied g_all_guis.h */ { t_iemgui x_gui; + int x_prev_h; int x_pos; int x_val; + int x_prev_val; int x_lin0_log1; int x_steady; double x_min; @@ -63,9 +65,12 @@ typedef struct _knob /* taken from Frank's modyfied g_all_guis.h */ static void knob_draw_update(t_knob *x, t_glist *glist) { - if (glist_isvisible(glist)) + if (glist_isvisible(glist) && + (x->x_gui.x_h != x->x_prev_h || x->x_val != x->x_prev_val)) { /* compute dial:*/ + x->x_prev_h = x->x_gui.x_h; + x->x_prev_val = x->x_val; float radius = 0.5*(float)x->x_gui.x_h; double angle = 7.0/36.0 + 34.0/36.0*2.0*M_PI*( (double)x->x_val*0.01/(double)x->x_gui.x_h ); int start = -80; -- cgit v1.2.1