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/";
25 var dali = require('dali')( options );
29 var dali = require('../build/Release/dali')( options );
34 daliApp.createMeshActor = function() {
38 "attribute mediump vec2 aPosition;\
39 attribute highp vec2 aTexCoord;\
40 varying mediump vec2 vTexCoord;\
41 uniform mediump mat4 uMvpMatrix;\
42 uniform mediump vec3 uSize;\
43 uniform lowp vec4 uFadeColor;\
46 mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\
47 vertexPosition.xyz *= uSize;\
48 vertexPosition = uMvpMatrix * vertexPosition;\
49 vTexCoord = aTexCoord;\
50 gl_Position = vertexPosition;\
54 "varying mediump vec2 vTexCoord;\
55 uniform lowp vec4 uColor;\
56 uniform sampler2D sTexture;\
57 uniform lowp vec4 uFadeColor;\
60 gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor * uFadeColor;\
64 vertexShader : vertShader,
65 fragmentShader: fragShader
68 var shader = new dali.Shader(shaderOptions);
70 var textureSet = new dali.TextureSet;
71 var image = new dali.ResourceImage( {url: imageDir + "image-1.jpg"} );
72 textureSet.setImage(0, image);
74 var textureSet2 = new dali.TextureSet;
75 var image2 = new dali.ResourceImage( {url: imageDir + "image-2.jpg"} );
76 textureSet2.setImage(0, image2);
78 // Create vertex buffer
79 var texturedQuadVertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2,
80 "aTexCoord" : dali.PROPERTY_VECTOR2 };
82 var halfQuadSize = 0.5;
83 var texturedQuadVertexData = [ -halfQuadSize, -halfQuadSize, 0.0, 0.0,
84 halfQuadSize, -halfQuadSize, 1.0, 0.0,
85 -halfQuadSize, halfQuadSize, 0.0, 1.0,
86 halfQuadSize, halfQuadSize, 1.0, 1.0 ];
88 var texturedQuadVertexDataArray = new Float32Array(texturedQuadVertexData.length);
89 texturedQuadVertexDataArray.set(texturedQuadVertexData, 0);
90 var texturedQuadVertices = new dali.PropertyBuffer(texturedQuadVertexFormat);
91 texturedQuadVertices.setData(texturedQuadVertexDataArray, 4);
93 var indexFormat ={ "indices" : dali.PROPERTY_INTEGER };
95 var indexData = [0, 3, 1, 0, 2, 3];
97 var indexDataArray = new Uint32Array(indexData.length);
98 indexDataArray.set(indexData, 0);
101 var geometry = new dali.Geometry();
102 geometry.addVertexBuffer( texturedQuadVertices );
103 geometry.setIndexBuffer( indexDataArray, 6 );
105 var renderer = new dali.Renderer(geometry, shader);
106 renderer.setTextures(textureSet);
107 renderer.depthIndex = 0;
109 var meshActor = new dali.Actor();
110 meshActor.addRenderer( renderer );
111 meshActor.size = [530, 530, 0];
112 meshActor.parentOrigin = dali.TOP_CENTER;
113 meshActor.anchorPoint = dali.TOP_CENTER;
114 meshActor.registerAnimatableProperty("uFadeColor", [1.0, 0.0, 1.0, 1.0]);
116 dali.stage.add( meshActor );
118 var renderer2 = new dali.Renderer(geometry, shader);
119 renderer2.setTextures(textureSet2);
120 renderer2.depthIndex = 0;
122 var meshActor2 = new dali.Actor();
123 meshActor2.addRenderer( renderer2 );
124 meshActor2.size = [530, 530, 0];
125 meshActor2.parentOrigin = dali.BOTTOM_CENTER;
126 meshActor2.anchorPoint = dali.BOTTOM_CENTER;
127 meshActor2.registerAnimatableProperty("uFadeColor", [0.0, 0.0, 1.0, 1.0]);
129 dali.stage.add( meshActor2 );
131 // Animate the mesh actors
132 var animation = new dali.Animation(5);
134 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]}];
135 var animOptions = { alpha:dali.ALPHA_FUNCTION_SIN, delay:0, duration:5};
137 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]}];
138 var animOptions2 = { alpha:dali.ALPHA_FUNCTION_SIN, delay:0, duration:5};
140 animation.animateBetween( meshActor, "uFadeColor", keyFramesIndex, animOptions );
141 animation.animateBetween( meshActor2, "uFadeColor", keyFramesIndex2, animOptions2 );
142 animation.setLooping(true);
151 daliApp.init = function()
153 daliApp.createMeshActor();