- __syscall1: (n, a) => console.log(n),
- __syscall3: (n, a, b, c) => console.log(n),
- __syscall5: (n, a, b, c, d, e) => console.log(n)
+ glCreateShader: shaderType => {
+ const id = createShaderId()
+ const shader = gl.createShader(shaderType)
+ shaderMap.set(id, shader)
+ return id
+ },
+ glShaderSource: (id, numSrcs, srcs, lens) => {
+ const shader = shaderMap.get(id)
+ var totalSource = ''
+ for (let i = 0; i < numSrcs; i++) {
+ const addr = srcs + i * 4
+ const src = readUint32(memory.buffer, addr)
+ const len = readUint32(memory.buffer, lens + i * 4)
+ totalSource += decoder.decode(memory.buffer.slice(src, src + len))
+ }
+ gl.shaderSource(shader, totalSource)
+ },
+ glCompileShader: a => gl.compileShader(shaderMap.get(a))