From 7d86e0dba1ef2642fc1edc056f59dfb08954126b Mon Sep 17 00:00:00 2001 From: terencehill Date: Wed, 31 Dec 2014 17:23:11 +0100 Subject: [PATCH] Optimize ModalController_draw code --- qcsrc/menu/item/modalcontroller.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/qcsrc/menu/item/modalcontroller.c b/qcsrc/menu/item/modalcontroller.c index 8a025cb33..cfa3af852 100644 --- a/qcsrc/menu/item/modalcontroller.c +++ b/qcsrc/menu/item/modalcontroller.c @@ -208,9 +208,17 @@ void ModalController_draw(entity me) } else { - e.Container_origin = e.Container_origin * prevFactor + targetOrigin * targetFactor; - e.Container_size = e.Container_size * prevFactor + targetSize * targetFactor; - me.setAlphaOf(me, e, e.Container_alpha * prevFactor + targetAlpha * targetFactor); + if(!e.ModalController_state) // optimize code and avoid precision errors + me.setAlphaOf(me, e, e.Container_alpha * prevFactor); + else + { + if(e.ModalController_state == 1) + { + e.Container_origin = e.Container_origin * prevFactor + targetOrigin * targetFactor; + e.Container_size = e.Container_size * prevFactor + targetSize * targetFactor; + } + me.setAlphaOf(me, e, e.Container_alpha * prevFactor + targetAlpha * targetFactor); + } } // assume: o == to * f_prev + X * (1 - f_prev) // make: o' = to * f + X * (1 - f) @@ -220,9 +228,12 @@ void ModalController_draw(entity me) // --> (maxima) // o' = (to * (f - f_prev) + o * (1 - f)) / (1 - f_prev) - fs = globalToBoxSize(e.Container_size, e.ModalController_initialSize); - e.Container_fontscale_x = fs_x * e.ModalController_initialFontScale_x; - e.Container_fontscale_y = fs_y * e.ModalController_initialFontScale_y; + if(e.ModalController_state == 1) + { + fs = globalToBoxSize(e.Container_size, e.ModalController_initialSize); + e.Container_fontscale_x = fs_x * e.ModalController_initialFontScale_x; + e.Container_fontscale_y = fs_y * e.ModalController_initialFontScale_y; + } } if(animating || !me.focused) me.setFocus(me, NULL); -- 2.39.2