interactive-shader-format-for-modv
Version:
Rendering engine for Interactive Shader Format effects and generators
41 lines (34 loc) • 1.19 kB
JavaScript
var test = require('tape')
var fs = require('fs')
var ISFUpgrader = require('../src/ISFUpgrader')
var Parser = require('../src/ISFParser')
function assetLoad(name) {
return fs.readFileSync('./tests/assets/' + name).toString()
}
test('Upgrade fragment shader to v2', (t) => {
var old = assetLoad('version1.fs')
var upgraded = ISFUpgrader.convertFragment(old)
t.equal(upgraded, assetLoad('version1.upgraded.fs'), "upgraded correctly")
t.end()
})
test('Upgrade vertex shader to v2', (t) => {
var old = assetLoad('version1.vs')
var upgraded = ISFUpgrader.convertVertex(old)
t.equal(upgraded, assetLoad('version1.upgraded.vs'), "upgraded correctly")
t.end()
})
test('Infer ISF Versioning', function(t) {
var v1 = assetLoad('version1.fs')
var parser = new Parser()
parser.parse(v1)
t.equal(parser.isfVersion, 1, "Properly detect v1 with PERSISTENT_BUFFERS")
var v1 = assetLoad('version1_basic.fs')
var parser = new Parser()
parser.parse(v1)
t.equal(parser.isfVersion, 1, "Properly detect v1 without PERSISTENT_BUFFERS")
var v2 = assetLoad('version1.upgraded.fs')
parser = new Parser()
parser.parse(v2)
t.equal(parser.isfVersion, 2, "Properly detect v2")
t.end()
})