mirror of
https://github.com/openstf/stf
synced 2025-10-05 02:29:26 +02:00
Support variable bit depths. Fix color issues.
This commit is contained in:
parent
9d20484dcb
commit
977b8c198e
3 changed files with 41 additions and 10 deletions
|
@ -1,5 +1,6 @@
|
|||
var net = require('net')
|
||||
var util = require('util')
|
||||
var os = require('os')
|
||||
|
||||
var syrup = require('stf-syrup')
|
||||
var Promise = require('bluebird')
|
||||
|
@ -65,6 +66,9 @@ module.exports = syrup.serial()
|
|||
, frameHeight: 0
|
||||
, sentFrameTime: null
|
||||
, updateRequests: 0
|
||||
, frameConfig: {
|
||||
format: jpeg.FORMAT_RGB
|
||||
}
|
||||
}
|
||||
|
||||
var pointerTranslator = new PointerTranslator()
|
||||
|
@ -115,7 +119,9 @@ module.exports = syrup.serial()
|
|||
return
|
||||
}
|
||||
|
||||
var decoded = jpeg.decompressSync(connState.lastFrame)
|
||||
var decoded = jpeg.decompressSync(
|
||||
connState.lastFrame, connState.frameConfig)
|
||||
|
||||
conn.writeFramebufferUpdate([
|
||||
{ xPosition: 0
|
||||
, yPosition: 0
|
||||
|
@ -150,6 +156,35 @@ module.exports = syrup.serial()
|
|||
maybeSendFrame()
|
||||
})
|
||||
|
||||
conn.on('formatchange', function(format) {
|
||||
var same = os.endianness() == 'BE' == format.bigEndianFlag
|
||||
switch (format.bitsPerPixel) {
|
||||
case 8:
|
||||
connState.frameConfig = {
|
||||
format: jpeg.FORMAT_GRAY
|
||||
}
|
||||
break
|
||||
case 24:
|
||||
connState.frameConfig = {
|
||||
format: ((format.redShift > format.blueShift) === same)
|
||||
? jpeg.FORMAT_BGR
|
||||
: jpeg.FORMAT_RGB
|
||||
}
|
||||
break
|
||||
case 32:
|
||||
connState.frameConfig = {
|
||||
format: ((format.redShift > format.blueShift) === same)
|
||||
? (format.blueShift === 0
|
||||
? jpeg.FORMAT_BGRX
|
||||
: jpeg.FORMAT_XBGR)
|
||||
: (format.redShift === 0
|
||||
? jpeg.FORMAT_RGBX
|
||||
: jpeg.FORMAT_XRGB)
|
||||
}
|
||||
break
|
||||
}
|
||||
})
|
||||
|
||||
conn.on('pointer', function(event) {
|
||||
pointerTranslator.push(event)
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue