creating jit.matrix in javascript...


    Jan 16 2008 | 11:12 pm
    I am trying to create a jit.matrix in javascript and
    then connect it to a jit.gl.render. It looks like I
    am creating everything but my matrix does not show up
    in my jit.window. I think the problem is that I am not
    connecting my matrix to my jit.gl.render. How exactly
    do I do this from javascript?
    my javascript, plasma.js...
    // create our window
    var window = new JitterObject("jit.window","testwindow");
    window.depthbuffer = 1;
    window.idlemouse = 1;
    // create our render object for our window
    var render = new JitterObject("jit.gl.render","testwindow");
    //render.ortho = 2; //2d mode
    // create our matrix
    var draw_matrix = new JitterObject("jit.matrix", 4, "float32", 256, 256);
    draw_matrix.exprfill("hypot(norm[0]-0.5,norm[1]-0.5)");
    var mousedown = 0;
    // create our listener object for our window
    var mylistener = new JitterListener("testwindow",callbackfun);
    function callbackfun(event)
    {
    var x,y,button;
    if (event.eventname=="mouse")
    {
    // arguments are (x,y,button,cmd,shift,capslock,option,ctrl)
    x = event.args[0];
    y = event.args[1];
    button = event.args[2];
    mousedown = button;
    }
    else if (event.eventname=="mouseidle")
    {
    x = event.args[0];
    y = event.args[1];
    }
    //post("callback: " + event.subjectname + " sent "+ event.eventname + " with (" + event.args + ")n");
    }
    callbackfun.local = 1;
    function bang()
    {
    if (mousedown)
    render.depth_clear(); // note that
    else
    render.erase();
    draw_matrix.bang;
    render.drawclients();
    render.swap();
    }
    my patch...

    • Jan 17 2008 | 4:50 am
      If I understand you correctly, you're trying to display the contents
      of matrix in a window. I think there are (at least) two ways to do
      this.
      1) Using jit.render.draw_pixels method
      //jit.window
      var windowTitle = "Window Title";
      var window = new JitterObject("jit.window", windowTitle);
      //jit.gl.render
      var renderer = new JitterObject("jit.gl.render", windowTitle);
      //create a matrix
      var matrix1 = new JitterMatrix(4, "char", 10, 10); //for draw_pixels,
      must be 4-plane char (I think)
      //create noise to fill matrix
      var noise = new JitterObject("jit.noise");
      noise.dim = [10, 10];
      noise.planecount = 4;
      noise.type = "char";
      //fill matrix with random values
      noise.matrixcalc(matrix1, matrix1);
      function bang() {
      //drawing call
      renderer.erase();
      renderer.draw_pixels(matrix1.name);
      renderer.swap();
      }
      2) Use jit.gl.videoplane
      //jit.window
      var windowTitle = "Window Title";
      var window = new JitterObject("jit.window", windowTitle);
      //jit.gl.render
      var renderer = new JitterObject("jit.gl.render", windowTitle);
      //create a matrix
      var matrix1 = new JitterMatrix(1, "float32", 10, 10); //for
      videoplane, can be any kind
      //create noise to fill matrix
      var noise = new JitterObject("jit.noise");
      noise.dim = [10, 10];
      noise.planecount = 1;
      noise.type = "float32";
      //fill matrix with random values
      noise.matrixcalc(matrix1, matrix1);
      //create jit.gl.videoplane
      var videoplane = JitterObject("jit.gl.videoplane", windowTitle);
      videoplane.interp = 0; //or else you get interp, default = 1
      function bang() {
      videoplane.jit_matrix(matrix1.name);
      //drawing call
      renderer.erase();
      renderer.drawclients();
      renderer.swap();
      }
      Hope this helps.
      jp
      On Jan 16, 2008, at 4:12 PM, Anthony Palomba wrote:
      >
      > I am trying to create a jit.matrix in javascript and
      > then connect it to a jit.gl.render. It looks like I
      > am creating everything but my matrix does not show up
      > in my jit.window. I think the problem is that I am not
      > connecting my matrix to my jit.gl.render. How exactly
      > do I do this from javascript?
      >
      >
      > my javascript, plasma.js...
      >
      > // create our window
      > var window = new JitterObject("jit.window","testwindow");
      > window.depthbuffer = 1;
      > window.idlemouse = 1;
      >
      > // create our render object for our window
      > var render = new JitterObject("jit.gl.render","testwindow");
      > //render.ortho = 2; //2d mode
      >
      > // create our matrix
      > var draw_matrix = new JitterObject("jit.matrix", 4, "float32", 256,
      > 256);
      > draw_matrix.exprfill("hypot(norm[0]-0.5,norm[1]-0.5)");
      >
      >
      > var mousedown = 0;
      >
      > // create our listener object for our window
      > var mylistener = new JitterListener("testwindow",callbackfun);
      >
      > function callbackfun(event)
      > {
      > var x,y,button;
      >
      > if (event.eventname=="mouse")
      > {
      > // arguments are (x,y,button,cmd,shift,capslock,option,ctrl)
      > x = event.args[0];
      > y = event.args[1];
      > button = event.args[2];
      > mousedown = button;
      > }
      > else if (event.eventname=="mouseidle")
      > {
      > x = event.args[0];
      > y = event.args[1];
      > }
      > //post("callback: " + event.subjectname + " sent "+ event.eventname
      > + " with (" + event.args + ")
      > ");
      > }
      > callbackfun.local = 1;
      >
      > function bang()
      > {
      > if (mousedown)
      > render.depth_clear(); // note that
      > else
      > render.erase();
      >
      > draw_matrix.bang;
      > render.drawclients();
      > render.swap();
      > }
      >
      >
      >
      >
      > my patch...
      >
      > #P window setfont "Sans Serif" 9.;
      > #P window linecount 1;
      > #P message 102 133 40 9109513 compile;
      > #P number 87 82 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
      > #P toggle 42 81 15 0;
      > #P newex 42 106 55 9109513 qmetro 20;
      > #P newex 42 161 58 9109513 js plasma.js;
      > #P comment 156 166 234 9109513 example of listening to a window for
      > window events;
      > #P connect 4 0 2 1;
      > #P connect 2 0 1 0;
      > #P connect 5 0 1 0;
      > #P connect 3 0 2 0;
      > #P window clipboard copycount 6;
      >
      >
      >
      >
    • Jan 18 2008 | 4:32 pm
      That worked! Thanks.