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