7 name:'texture-mesh-app'
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 vec2 aTexCoord;\
32 varying mediump vec2 vTexCoord;\
33 uniform mediump mat4 uMvpMatrix;\
34 uniform mediump vec3 uSize;\
35 uniform lowp vec4 uFadeColor;\
38 mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\
39 vertexPosition.xyz *= uSize;\
40 vertexPosition = uMvpMatrix * vertexPosition;\
41 vTexCoord = aTexCoord;\
42 gl_Position = vertexPosition;\
46 "varying mediump vec2 vTexCoord;\
47 uniform lowp vec4 uColor;\
48 uniform sampler2D sTexture;\
49 uniform lowp vec4 uFadeColor;\
52 gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor * uFadeColor;\
56 vertexShader : vertShader,
57 fragmentShader: fragShader
60 var shader = new dali.Shader(shaderOptions);
62 var material = new dali.Material( shader );
63 var image = new dali.ResourceImage( {url: imageDir + "image-1.jpg"} );
64 material.addTexture(image, "sTexture");
66 var material2 = new dali.Material( shader );
67 var image2 = new dali.ResourceImage( {url: imageDir + "image-2.jpg"} );
68 material2.addTexture(image2, "sTexture");
70 // Create vertex buffer
71 var texturedQuadVertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2,
72 "aTexCoord" : dali.PROPERTY_VECTOR2 };
74 var halfQuadSize = 0.5;
75 var texturedQuadVertexData = [ -halfQuadSize, -halfQuadSize, 0.0, 0.0,
76 halfQuadSize, -halfQuadSize, 1.0, 0.0,
77 -halfQuadSize, halfQuadSize, 0.0, 1.0,
78 halfQuadSize, halfQuadSize, 1.0, 1.0 ];
80 var texturedQuadVertexDataArray = new Float32Array(texturedQuadVertexData.length);
81 texturedQuadVertexDataArray.set(texturedQuadVertexData, 0);
82 var texturedQuadVertices = new dali.PropertyBuffer(texturedQuadVertexFormat, 4);
83 texturedQuadVertices.setData(texturedQuadVertexDataArray);
85 var indexFormat ={ "indices" : dali.PROPERTY_INTEGER };
87 var indexData = [0, 3, 1, 0, 2, 3];
89 var indexDataArray = new Uint32Array(indexData.length);
90 indexDataArray.set(indexData, 0);
91 var indices = new dali.PropertyBuffer(indexFormat, 6);
92 indices.setData(indexDataArray);
95 var geometry = new dali.Geometry();
96 geometry.addVertexBuffer( texturedQuadVertices );
97 geometry.setIndexBuffer( indices );
99 var renderer = new dali.Renderer(geometry, material);
100 renderer.depthIndex = 0;
102 var meshActor = new dali.Actor();
103 meshActor.addRenderer( renderer );
104 meshActor.size = [530, 530, 0];
105 meshActor.parentOrigin = dali.TOP_CENTER;
106 meshActor.anchorPoint = dali.TOP_CENTER;
107 meshActor.registerAnimatableProperty("uFadeColor", [1.0, 0.0, 1.0, 1.0]);
109 dali.stage.add( meshActor );
111 var renderer2 = new dali.Renderer(geometry, material2);
112 renderer2.depthIndex = 0;
114 var meshActor2 = new dali.Actor();
115 meshActor2.addRenderer( renderer2 );
116 meshActor2.size = [530, 530, 0];
117 meshActor2.parentOrigin = dali.BOTTOM_CENTER;
118 meshActor2.anchorPoint = dali.BOTTOM_CENTER;
119 meshActor2.registerAnimatableProperty("uFadeColor", [0.0, 0.0, 1.0, 1.0]);
121 dali.stage.add( meshActor2 );
123 // Animate the mesh actors
124 var animation = new dali.Animation(5);
126 var keyFramesIndex = [{progress:0.0, value: [0.0, 0.0, 0.0, 0.0]}, {progress:1.0, value:[0.0, 1.0, 0.0, 1.0]}];
127 var animOptions = { alpha:"sin", delay:0, duration:5};
129 var keyFramesIndex2 = [{progress:0.0, value: [0.0, 0.0, 0.0, 0.0]}, {progress:1.0, value:[1.0, 0.0, 1.0, 1.0]}];
130 var animOptions2 = { alpha:"sin", delay:0, duration:5};
132 animation.animateBetween( meshActor, "uFadeColor", keyFramesIndex, animOptions );
133 animation.animateBetween( meshActor2, "uFadeColor", keyFramesIndex2, animOptions2 );
134 animation.setLooping(true);
143 daliApp.init = function()
145 daliApp.createMeshActor();