changeset 1518:7480e26c75ed

better throttling of adjuster redraws Ignore-this: 4820a88e2ac6325945efb62906d2e7eb
author Drew Perttula <drewp@bigasterisk.com>
date Wed, 12 Apr 2017 06:17:34 +0000
parents 3bb58b74c9c1
children a225c32bd9c8
files light9/web/timeline/timeline.coffee
diffstat 1 files changed, 7 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/light9/web/timeline/timeline.coffee	Wed Apr 12 06:04:18 2017 +0000
+++ b/light9/web/timeline/timeline.coffee	Wed Apr 12 06:17:34 2017 +0000
@@ -619,7 +619,7 @@
       return if isNaN(center.e(1))
       @centerStyle = {x: center.e(1), y: center.e(2)}
       @dia.setAdjusterConnector(@adj.id + '/conn', center, target)
-    @debounce('updateDisplay', go, 1)
+    @debounce('updateDisplay', go)
         
   attached: ->
     drag = d3.drag()
@@ -751,7 +751,6 @@
     @adjs = {}
     @ctx = @$.canvas.getContext('2d')
 
-    @dirty = false
     @redraw()
    
   onDown: (ev) ->
@@ -787,7 +786,7 @@
         @adjs[adjId] = adj
         adj.id = adjId
 
-    @dirty = true 
+    @redraw()
 
     window.debug_adjsCount = Object.keys(@adjs).length
     
@@ -835,11 +834,11 @@
     @$.canvas.height = ev.target.offsetHeight
     @redraw()
 
-  flush: () ->
-    if @dirty
-      @redraw()
-    
   redraw: (adjs) ->
+    @debounce('redraw', @_throttledRedraw.bind(@, adjs))
+
+  _throttledRedraw: (adjs) ->
+    console.time('adj redraw')
     @ctx.clearRect(0, 0, @$.canvas.width, @$.canvas.height)
 
     for adjId, adj of @adjs
@@ -850,7 +849,7 @@
       @drawAdjuster(adj.getDisplayValue(),
                     Math.floor(ctr.e(1)) - 20, Math.floor(ctr.e(2)) - 10,
                     Math.floor(ctr.e(1)) + 20, Math.floor(ctr.e(2)) + 10)
-    @dirty = false
+    console.timeEnd('adj redraw')
 
   drawConnector: (ctr, target) ->
     @ctx.strokeStyle = '#aaa'