neft
Version:
Universal Platform
41 lines (33 loc) • 1.21 kB
text/coffeescript
'use strict'
assert = require 'src/assert'
nativeActions = require 'src/native/actions'
nativeBridge = require 'src/native/bridge'
module.exports = (impl) ->
Types: {}
bridge: do ->
itemsById = new Array 20000 # 20k
itemsById.push null
lastId = 0
vsync = ->
requestAnimationFrame vsync
nativeBridge.sendData()
requestAnimationFrame vsync
inActions: nativeActions.in
outActions: nativeActions.out
listen: nativeBridge.addActionListener
getId: (item) ->
assert.instanceOf item, impl.Renderer.Item
itemsById[++lastId] = item
lastId
getItemFromReader: (reader) ->
itemsById[reader.integers[reader.integersIndex++]]
pushAction: nativeBridge.pushAction
pushItem: (val) ->
if val isnt null
assert.instanceOf val, impl.Renderer.Item
nativeBridge.pushInteger if val isnt null then val._impl.id else 0
return
pushBoolean: nativeBridge.pushBoolean
pushInteger: nativeBridge.pushInteger
pushFloat: nativeBridge.pushFloat
pushString: nativeBridge.pushString