# HG changeset patch # User Drew Perttula # Date 1491977854 0 # Node ID 7480e26c75ed7556b9b2eb1104cac0e4a4956676 # Parent 3bb58b74c9c1606027173dd91dcf051491f27f5b better throttling of adjuster redraws Ignore-this: 4820a88e2ac6325945efb62906d2e7eb diff -r 3bb58b74c9c1 -r 7480e26c75ed light9/web/timeline/timeline.coffee --- 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'