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,
20 var imageDir = "./images/";
24 //var dali = require('../build/Release/dali')( options );
27 var dali = require('dali')( options );
31 daliApp.createMeshActor = function() {
35 "attribute mediump vec2 aPosition;\
36 attribute highp vec2 aTexCoord;\
37 varying mediump vec2 vTexCoord;\
38 uniform mediump mat4 uMvpMatrix;\
39 uniform mediump vec3 uSize;\
40 uniform lowp vec4 uFadeColor;\
43 mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\
44 vertexPosition.xyz *= uSize;\
45 vertexPosition = uMvpMatrix * vertexPosition;\
46 vTexCoord = aTexCoord;\
47 gl_Position = vertexPosition;\
51 "varying mediump vec2 vTexCoord;\
52 uniform lowp vec4 uColor;\
53 uniform sampler2D sTexture;\
54 uniform lowp vec4 uFadeColor;\
57 gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor * uFadeColor;\
61 vertexShader : vertShader,
62 fragmentShader: fragShader
65 var shader = new dali.Shader(shaderOptions);
67 var material = new dali.Material( shader );
68 var image = new dali.ResourceImage( {url: imageDir + "image-1.jpg"} );
69 material.addTexture(image, "sTexture");
71 var material2 = new dali.Material( shader );
72 var image2 = new dali.ResourceImage( {url: imageDir + "image-2.jpg"} );
73 material2.addTexture(image2, "sTexture");
75 // Create vertex buffer
76 var texturedQuadVertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2,
77 "aTexCoord" : dali.PROPERTY_VECTOR2 };
79 var halfQuadSize = 0.5;
80 var texturedQuadVertexData = [ -halfQuadSize, -halfQuadSize, 0.0, 0.0,
81 halfQuadSize, -halfQuadSize, 1.0, 0.0,
82 -halfQuadSize, halfQuadSize, 0.0, 1.0,
83 halfQuadSize, halfQuadSize, 1.0, 1.0 ];
85 var texturedQuadVertexDataArray = new Float32Array(texturedQuadVertexData.length);
86 texturedQuadVertexDataArray.set(texturedQuadVertexData, 0);
87 var texturedQuadVertices = new dali.PropertyBuffer(texturedQuadVertexFormat);
88 texturedQuadVertices.setData(texturedQuadVertexDataArray, 4);
90 var indexFormat ={ "indices" : dali.PROPERTY_INTEGER };
92 var indexData = [0, 3, 1, 0, 2, 3];
94 var indexDataArray = new Uint32Array(indexData.length);
95 indexDataArray.set(indexData, 0);
96 var indices = new dali.PropertyBuffer(indexFormat);
97 indices.setData(indexDataArray, 6);
100 var geometry = new dali.Geometry();
101 geometry.addVertexBuffer( texturedQuadVertices );
102 geometry.setIndexBuffer( indices );
104 var renderer = new dali.Renderer(geometry, material);
105 renderer.depthIndex = 0;
107 var meshActor = new dali.Actor();
108 meshActor.addRenderer( renderer );
109 meshActor.size = [530, 530, 0];
110 meshActor.parentOrigin = dali.TOP_CENTER;
111 meshActor.anchorPoint = dali.TOP_CENTER;
112 meshActor.registerAnimatableProperty("uFadeColor", [1.0, 0.0, 1.0, 1.0]);
114 dali.stage.add( meshActor );
116 var renderer2 = new dali.Renderer(geometry, material2);
117 renderer2.depthIndex = 0;
119 var meshActor2 = new dali.Actor();
120 meshActor2.addRenderer( renderer2 );
121 meshActor2.size = [530, 530, 0];
122 meshActor2.parentOrigin = dali.BOTTOM_CENTER;
123 meshActor2.anchorPoint = dali.BOTTOM_CENTER;
124 meshActor2.registerAnimatableProperty("uFadeColor", [0.0, 0.0, 1.0, 1.0]);
126 dali.stage.add( meshActor2 );
128 // Animate the mesh actors
129 var animation = new dali.Animation(5);
131 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]}];
132 var animOptions = { alpha:dali.ALPHA_FUNCTION_SIN, delay:0, duration:5};
134 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]}];
135 var animOptions2 = { alpha:dali.ALPHA_FUNCTION_SIN, delay:0, duration:5};
137 animation.animateBetween( meshActor, "uFadeColor", keyFramesIndex, animOptions );
138 animation.animateBetween( meshActor2, "uFadeColor", keyFramesIndex2, animOptions2 );
139 animation.setLooping(true);
148 daliApp.init = function()
150 daliApp.createMeshActor();