Fix UTC prevent issue
[platform/core/uifw/dali-toolkit.git] / node-addon / texture-mesh.js
1  var window= {
2            x:0,
3            y:0,
4            width:1920,
5            height: 1080,
6            transparent: false,
7            name:'texture-mesh-app'
8  };
9
10  var viewMode={
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)
13  };
14
15  var options= {
16     'window': window,
17     'view-mode': viewMode,
18  }
19
20 var imageDir = "./";
21
22 var dali = require('./build/Release/dali')( options );
23
24 var daliApp = {};
25
26 daliApp.createMeshActor = function() {
27
28       // Create shader
29       var vertShader =
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;\
36                 void main()\
37                 {\
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;\
43                 }";
44
45       var fragShader =
46                "varying mediump vec2  vTexCoord;\
47                 uniform lowp    vec4  uColor;\
48                 uniform sampler2D     sTexture;\
49                 uniform lowp    vec4  uFadeColor;\
50                 void main()\
51                 {\
52                   gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor * uFadeColor;\
53                 }";
54
55       var shaderOptions = {
56               vertexShader : vertShader,
57               fragmentShader: fragShader
58           };
59
60       var shader = new dali.Shader(shaderOptions);
61
62       var material = new dali.Material( shader );
63       var image = new dali.ResourceImage( {url: imageDir + "image-1.jpg"} );
64       material.addTexture(image, "sTexture");
65
66       var material2 = new dali.Material( shader );
67       var image2 = new dali.ResourceImage( {url: imageDir + "image-2.jpg"} );
68       material2.addTexture(image2, "sTexture");
69
70       // Create vertex buffer
71       var texturedQuadVertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2,
72                                         "aTexCoord" : dali.PROPERTY_VECTOR2 };
73
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 ];
79
80       var texturedQuadVertexDataArray = new Float32Array(texturedQuadVertexData.length);
81       texturedQuadVertexDataArray.set(texturedQuadVertexData, 0);
82       var texturedQuadVertices = new dali.PropertyBuffer(texturedQuadVertexFormat, 4);
83       texturedQuadVertices.setData(texturedQuadVertexDataArray);
84
85       var indexFormat ={ "indices" : dali.PROPERTY_INTEGER };
86
87       var indexData = [0, 3, 1, 0, 2, 3];
88
89       var indexDataArray = new Uint32Array(indexData.length);
90       indexDataArray.set(indexData, 0);
91       var indices = new dali.PropertyBuffer(indexFormat, 6);
92       indices.setData(indexDataArray);
93
94       // Create geometry
95       var geometry = new dali.Geometry();
96       geometry.addVertexBuffer( texturedQuadVertices );
97       geometry.setIndexBuffer( indices );
98
99       var renderer = new dali.Renderer(geometry, material);
100       renderer.depthIndex = 0;
101
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]);
108
109       dali.stage.add( meshActor );
110
111       var renderer2 = new dali.Renderer(geometry, material2);
112       renderer2.depthIndex = 0;
113
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]);
120
121       dali.stage.add( meshActor2 );
122
123       // Animate the mesh actors
124       var animation = new dali.Animation(5);
125
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};
128
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};
131
132       animation.animateBetween( meshActor, "uFadeColor", keyFramesIndex, animOptions );
133       animation.animateBetween( meshActor2, "uFadeColor", keyFramesIndex2, animOptions2 );
134       animation.setLooping(true);
135       animation.play();
136 }
137
138 function startup()
139 {
140   daliApp.init();
141 }
142
143 daliApp.init = function()
144 {
145   daliApp.createMeshActor();
146 }
147
148
149 startup();
150