11 'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced,
12 'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm)
17 'view-mode': viewMode,
22 var dali = require('./build/Release/dali')( options );
26 daliApp.createMeshActor = function() {
30 "attribute mediump vec2 aPosition;\
31 attribute highp float aHue;\
32 varying mediump vec2 vTexCoord;\
33 uniform mediump mat4 uMvpMatrix;\
34 uniform mediump vec3 uSize;\
35 uniform mediump float uPointSize;\
36 uniform lowp vec4 uFadeColor;\
37 varying mediump vec3 vVertexColor;\
38 varying mediump float vHue;\
41 vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\
42 vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\
43 return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\
47 mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\
48 vertexPosition.xyz *= (uSize-uPointSize);\
49 vertexPosition = uMvpMatrix * vertexPosition;\
50 vVertexColor = hsv2rgb( vec3( aHue, 0.7, 1.0 ) );\
52 gl_PointSize = uPointSize;\
53 gl_Position = vertexPosition;\
57 "varying mediump vec3 vVertexColor;\
58 varying mediump float vHue;\
59 uniform lowp vec4 uColor;\
60 uniform sampler2D sTexture1;\
61 uniform sampler2D sTexture2;\
62 uniform lowp vec4 uFadeColor;\
65 mediump vec4 texCol1 = texture2D(sTexture1, gl_PointCoord);\
66 mediump vec4 texCol2 = texture2D(sTexture2, gl_PointCoord);\
67 gl_FragColor = vec4(vVertexColor, 1.0) * ((texCol1*vHue) + (texCol2*(1.0-vHue)));\
71 vertexShader : vertShader,
72 fragmentShader: fragShader
75 var shader = new dali.Shader(shaderOptions);
77 var material = new dali.Material( shader );
78 var image = new dali.ResourceImage( {url: imageDir + "image-1.jpg"} );
79 material.addTexture(image, "sTexture");
81 // Create vertex buffer
82 var polyhedraVertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2,
83 "aHue" : dali.PROPERTY_FLOAT };
87 var sectorAngle = 2.0 * Math.PI / numSides;
89 var polyhedraVertexData = [];
90 for(i=0; i<numSides; ++i)
92 var positionX = Math.sin(angle) * 0.5;
93 var positionY = Math.cos(angle) * 0.5;
94 var hue = angle / ( 2.0 * Math.PI);
96 polyhedraVertexData[i*3+0] = positionX;
97 polyhedraVertexData[i*3+1] = positionY;
98 polyhedraVertexData[i*3+2] = hue;
100 angle += sectorAngle;
103 var polyhedraVertexDataArray = new Float32Array(polyhedraVertexData.length);
104 polyhedraVertexDataArray.set(polyhedraVertexData, 0);
105 var polyhedraVertices = new dali.PropertyBuffer(polyhedraVertexFormat, numSides);
106 polyhedraVertices.setData(polyhedraVertexDataArray);
109 var geometry = new dali.Geometry();
110 geometry.addVertexBuffer( polyhedraVertices );
111 geometry.setGeometryType( dali.GEOMETRY_POINTS );
113 var renderer = new dali.Renderer(geometry, material);
114 renderer.registerAnimatableProperty("uFadeColor", [1.0, 0.0, 1.0, 1.0]); // Green
115 renderer.registerAnimatableProperty("uPointSize", 80.0);
116 renderer.depthIndex = 0;
119 var meshActor = new dali.Actor();
120 meshActor.addRenderer( renderer );
121 meshActor.size = [400, 400, 0];
122 meshActor.parentOrigin = dali.CENTER;
123 meshActor.anchorPoint = dali.CENTER;
124 meshActor.registerAnimatableProperty("uFadeColor", [0.0, 1.0, 0.0, 1.0]); // Magenta
126 dali.stage.add( meshActor );
128 // Animate the mesh actor
129 var animation = new dali.Animation(5);
130 var animOptions = { alpha:"linear", delay:0, duration:5};
131 var rotation = new dali.Rotation(360,0,0,1);
132 animation.animateBy( meshActor, "orientation", rotation, animOptions );
133 animation.setLooping(true);
142 daliApp.init = function()
144 daliApp.createMeshActor();