Currently I am trying to convert browser based client side volume rendering code to server side pure javascript based rendering.
I use node-webgl at server side. My main goal is to send the canvas content of server to client, later this image data is displayed on the client.
But before this I need to check whether the rendering is proper. So I used canvas.toDataURL() to extract canvas data and want to display it on a separate window. But I am facing the error.
Below is my code:
Entry point javascript code:
var nodejs=true,
WebGL = require('./node_modules/node-webgl/index'),
document = WebGL.document();
document.setTitle("Lesson02");
requestAnimationFrame = document.requestAnimationFrame;
alert=console.error;
//Read and eval library
fs=require('fs');
eval(fs.readFileSync(__dirname+ '/sylvester.js','utf8'));
eval(fs.readFileSync(__dirname+ '/glUtils.js','utf8'));
eval(fs.readFileSync(__dirname+ '/glAux.js','utf8'));
eval(fs.readFileSync(__dirname+ '/volumercserver.js','utf8'));
volumerc_main('./raycast-color.frag','./aorta-high512.jpg','./tfold.png');
volumetricserver.js
excerpt:
var canvas = document.createElement("canvas");canvas.id = 'canvas_win';canvas.width= 512;canvas.height= 512;var gl;
var canvas1 = document.createElement("canvas");canvas1.width= 512;canvas1.height= 512;var ctx = canvas1.getContext('2d');
try { gl = canvas.getContext("webgl", {premultipliedAlpha: false}) || canvas.getContext("experimental-webgl",{premultipliedAlpha: false});} catch (e) {}if (!gl) { alert("Could not initialise WebGL, sorry :-(");}
// All computations take place here//................//..................//.............
var dataURLstring = canvas.toDataURL();
var img1 = new Image; img1.src = dataURLstring; // img1.onload = function(){ ctx.drawImage(img1,0,0); // Or at whatever offset you like // };
Error:
C:\Users\z003npra\Desktop\node>node exp.js
Please let me the issue. Is toDataURL not supported in node-WebGL? any alternative?
Regards,
Prajwal