Saturday 15 August 2015

javascript - Parse json with raw webgl -



javascript - Parse json with raw webgl -

i'm next tutorial on webgl.

https://github.com/emoller/webgl101

i'm stuck on lesson 7, where, xhr, you've got load mesh. i'm fascinated way of thinking, since uses needed obtain final result. can't replicate code (of course of study i'm running local webserver python -m http.server) copying , pasting source code live example. http://emoller.github.io/webgl101/07-xhr-mesh.html

firefox , chrome give error

> http://localhost:8000/webgl-utils.js(10): uncaught error: 0:?": syntax > error

but code same. here is. (web-utils.js)

window.onerror = function(msg, url, lineno) { alert(url + '(' + lineno + '): ' + msg); } function createshader(str, type) { var shader = gl.createshader(type); gl.shadersource(shader, str); gl.compileshader(shader); if (!gl.getshaderparameter(shader, gl.compile_status)) { throw gl.getshaderinfolog(shader); } homecoming shader; } function createprogram(vstr, fstr) { var programme = gl.createprogram(); var vshader = createshader(vstr, gl.vertex_shader); var fshader = createshader(fstr, gl.fragment_shader); gl.attachshader(program, vshader); gl.attachshader(program, fshader); gl.linkprogram(program); if (!gl.getprogramparameter(program,gl.link_status)) { throw gl.getprograminfolog(program); } homecoming program; } function screenquad() { var vertexposbuffer = gl.createbuffer(); gl.bindbuffer(gl.array_buffer,vertexposbuffer); var vertices = [-1, -1, 1, -1, -1, 1, 1, 1]; gl.bufferdata(gl.array_buffer, new float32array(vertices), gl.static_draw); vertexposbuffer.itemsize = 2; vertexposbuffer.numitems = 4; homecoming vertexposbuffer; } function linkprogram(program) { var vshader = createshader(program.vshadersource, gl.vertex_shader); var fshader = createshader(program.fshadersource, gl.fragment_shader); gl.attachshader(program, vshader); gl.attachshader(program, fshader); gl.linkprogram(program); if (!gl.getprogramparameter(program, gl.link_status)) { throw gl.getprograminfolog(program); } } function loadfile(file, callback, nocache, isjson) { var request = new xmlhttprequest (); request.onreadystatechange = function() { if (request.readystate == 1) { if (isjson){ request.overridemimetype('application/json'); } request.send(); } else if (request.readystate == 4) { if (request.status == 200) { callback(request.responsetext); } else if (request.status == 404) { throw 'file "' + file + '" not exist.'; } else { throw 'xhr error' + request.status + '.'; } } }; var url = file; if (nocache) { url += '?' + (new date()).gettime(); } request.open('get', file, true); } function loadprogram(vs, fs, callback) { var programme = gl.createprogram(); function vshaderloaded(str) { program.vshadersource = str; if (program.fshadersource) { linkprogram(program); callback(program); } } function fshaderloaded(str) { program.fshadersource = str; if (program.vshadersource) { linkprogram(program); callback(program); } } loadfile(vs,vshaderloaded,true); loadfile(fs,fshaderloaded,true); homecoming program; }

other files are: main.html, set canvas, torus.json(the mesh beingness loaded) , mesh.js(parsing json mesh).

javascript json webgl

No comments:

Post a Comment