Advertisement
PsichiX

Canvas.Fx rendering example

Sep 30th, 2014
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // create shader processing unit.
  2. var fx = new Canvas.Fx();
  3. fx.shaderProcessingUnitRoot = '../src/';
  4.  
  5. // define shader code.
  6. var vertexShader = '\
  7. fxMove( fxOutput[ 0 ], fxAttribute0 );\
  8. ';
  9. var fragmentShader = '\
  10. fxMove( fxColor, fxUniform0 );\
  11. ';
  12.  
  13. function main() {
  14.     // start Canvas.Fx service.
  15.     fx.start();
  16.  
  17.     // create and setup target texture buffer.
  18.     fx.createFragmentBuffer( 'buff' );
  19.     fx.updateTextureEmpty( 'buff', 2, 2 );
  20.  
  21.     // create and setup positions vertex buffer.
  22.     fx.createVertexBuffer( 'position' );
  23.     var bytes = new Float32Array( 24 );
  24.     bytes.set( [
  25.         -0.5,   -0.5,   0.0,    1.0,
  26.         0.5,    -0.5,   0.0,    1.0,
  27.         0.5,    0.5,    0.0,    1.0,
  28.  
  29.         0.5,    0.5,    0.0,    1.0,
  30.         -0.5,   0.5,    0.0,    1.0,
  31.         -0.5,   -0.5,   0.0,    1.0,
  32.     ] );
  33.     fx.updateVerticesFromBytes( 'position', bytes );
  34.  
  35.     // create and compile test shader.
  36.     fx.createVertexShader( 'vs' );
  37.     fx.compileVertexShader( 'vs', vertexShader );
  38.     fx.createFragmentShader( 'fs' );
  39.     fx.compileFragmentShader( 'fs', fragmentShader );
  40.  
  41.     // run frame rendering every 1 second.
  42.     //setInterval( function() { update(); }, 1000 );
  43.     update();
  44. }
  45.  
  46. function update() {
  47.     // setup rendering state.
  48.     fx.setTargetBuffer( "buff" );
  49.     fx.setVertexShader( "vs" );
  50.     fx.setFragmentShader( "fs" );
  51.     fx.setFragmentUniform( 0, 255, 0, 0, 255 ); // Uint8 vector type.
  52.     fx.render( 2, [ 'position' ] );
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement