UNPKG

neft

Version:

Universal Platform

44 lines (35 loc) 1.25 kB
'use strict' utils = require 'src/utils' assert = require 'src/assert' nativeActions = require 'src/native/actions' nativeBridge = require 'src/native/bridge' _neft.renderer = {} module.exports = (impl) -> Types: {} bridge: do -> itemsById = new Array 20000 # 20k lastId = 0 vsync = -> requestAnimationFrame vsync nativeBridge.sendData() return 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 -1 return pushBoolean: nativeBridge.pushBoolean pushInteger: nativeBridge.pushInteger pushFloat: nativeBridge.pushFloat pushString: nativeBridge.pushString