Mercurial > code > home > repos > light9
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'