OLD | NEW |
1 GIFEncoder = require './GIFEncoder.js' | 1 GIFEncoder = require './GIFEncoder.js' |
2 | 2 |
3 renderFrame = (frame) -> | 3 renderFrame = (frame) -> |
4 encoder = new GIFEncoder frame.width, frame.height | 4 encoder = new GIFEncoder frame.width, frame.height |
5 | 5 |
6 if frame.index is 0 | 6 if frame.index is 0 |
7 encoder.writeHeader() | 7 encoder.writeHeader() |
8 else | 8 else |
9 encoder.firstFrame = false | 9 encoder.firstFrame = false |
10 | 10 |
11 encoder.setTransparent frame.transparent | 11 encoder.setTransparent frame.transparent |
12 encoder.setRepeat frame.repeat | 12 encoder.setRepeat frame.repeat |
13 encoder.setDelay frame.delay | 13 encoder.setDelay frame.delay |
14 encoder.setQuality frame.quality | 14 encoder.setQuality frame.quality |
15 encoder.addFrame frame.data | 15 encoder.addFrame frame.data |
16 encoder.finish() if frame.last | 16 encoder.finish() if frame.last |
17 | 17 |
18 stream = encoder.stream() | 18 stream = encoder.stream() |
19 frame.data = stream.pages | 19 frame.data = stream.pages |
20 frame.cursor = stream.cursor | 20 frame.cursor = stream.cursor |
21 frame.pageSize = stream.constructor.pageSize | 21 frame.pageSize = stream.constructor.pageSize |
22 | 22 |
23 if frame.canTransfer | 23 if frame.canTransfer |
24 transfer = (page.buffer for page in frame.data) | 24 transfer = (page.buffer for page in frame.data) |
25 self.postMessage frame, transfer | 25 self.postMessage frame, transfer |
26 else | 26 else |
27 self.postMessage frame | 27 self.postMessage frame |
28 | 28 |
29 self.onmessage = (event) -> renderFrame event.data | 29 self.onmessage = (event) -> renderFrame event.data |
OLD | NEW |