18e60449fe0289a9c39ec4e429760fe014a03622
[platform/core/csapi/nui.git] / NUISamples / NUISamples.TizenTV / examples / visual-view-test.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 using System;
19 using System.Runtime.InteropServices;
20 using Tizen.NUI;
21
22 namespace VisualViewTest
23 {
24     // An example of Visual View control.
25     class Example : NUIApplication
26     {
27         private VisualView _visualView = null;
28         private const string resources = "/home/owner/apps_rw/NUISamples.TizenTV/res";
29
30         public Example() : base()
31         {
32         }
33
34         public Example(string stylesheet) : base(stylesheet)
35         {
36         }
37
38         public Example(string stylesheet, WindowMode windowMode) : base(stylesheet, windowMode)
39         {
40         }
41
42         protected override void OnCreate()
43         {
44             base.OnCreate();
45             Initialize();
46         }
47
48         public void Initialize()
49         {
50             Stage stage = Stage.Instance;
51
52             /* Create a visual view. */
53             _visualView = new VisualView();
54             _visualView.ParentOrigin = ParentOrigin.TopLeft;
55             _visualView.AnchorPoint = AnchorPoint.TopLeft;
56             _visualView.Size = new Size(stage.Size.Width, stage.Size.Height, 0.0f);
57
58             /* color visual */
59             ColorVisualMap colorVisualMap1 = new ColorVisualMap();
60             colorVisualMap1.MixColor = Color.Green;
61             _visualView.Background = colorVisualMap1.OutputVisualMap;
62             stage.GetDefaultLayer().Add(_visualView);
63
64             /* image visual 1. */
65             ImageVisualMap imageVisualMap1 = new ImageVisualMap();
66             imageVisualMap1.URL = resources + "/images/image-1.jpg";
67             imageVisualMap1.VisualSize = new Vector2(200.0f, 200.0f);
68             imageVisualMap1.Offset = new Vector2(10.0f, 10.0f);
69             imageVisualMap1.OffsetPolicy = new Vector2(1, 1);
70             imageVisualMap1.SizePolicy = new Vector2(1, 1);
71             imageVisualMap1.Origin = AlignType.TOP_BEGIN;
72             imageVisualMap1.AnchorPoint = AlignType.TOP_BEGIN;
73             _visualView.AddVisual("imageVisual1", imageVisualMap1);
74
75             /* image visual 2. */
76             ImageVisualMap imageVisualMap2 = new ImageVisualMap();
77             imageVisualMap2.URL = resources + "/images/image-2.jpg";
78             imageVisualMap2.VisualSize = new Vector2(250.0f, 200.0f);
79             imageVisualMap2.Offset = new Vector2(220.0f, 10.0f);
80             imageVisualMap2.OffsetPolicy = new Vector2(1, 1);
81             imageVisualMap2.SizePolicy = new Vector2(1, 1);
82             imageVisualMap2.Origin = AlignType.TOP_BEGIN;
83             imageVisualMap2.AnchorPoint = AlignType.TOP_BEGIN;
84             _visualView.AddVisual("imageVisual2", imageVisualMap2);
85
86             /* Modify imageVisual2, we just need do this. */
87             //imageVisualMap2.URL = "./examples/images/image-3.jpg";
88             //_visualView.AddVisual("imageVisual2", imageVisualMap2); //update a visual with same visual name.
89
90             //_visualView.RemoveVisual( "imageVisual1" );
91             //_visualView.RemoveVisual( imageVisualMap1 );
92
93             //_visualView.RemoveAll(); //Delete all visuals of visual view.
94
95             /* text visual. */
96             TextVisualMap textVisualMap1 = new TextVisualMap();
97             textVisualMap1.Text = "Hello Goodbye";
98             textVisualMap1.PointSize = 20.0f;
99
100             textVisualMap1.VisualSize = new Vector2(900.0f, 250.0f);
101             textVisualMap1.Offset = new Vector2(10.0f, 220.0f);
102             textVisualMap1.OffsetPolicy = new Vector2(1, 1);
103             textVisualMap1.SizePolicy = new Vector2(1, 1);
104             textVisualMap1.Origin = AlignType.TOP_BEGIN;
105             textVisualMap1.AnchorPoint = AlignType.TOP_BEGIN;
106             _visualView.AddVisual("textVisual1", textVisualMap1);
107
108             /* border visual */
109             BorderVisualMap borderVisualMap1 = new BorderVisualMap();
110             borderVisualMap1.Color = Color.Red;
111             borderVisualMap1.Size = 5.0f;
112
113             borderVisualMap1.VisualSize = new Vector2(100.0f, 100.0f);
114             borderVisualMap1.Offset = new Vector2(10.0f, 380.0f);
115             borderVisualMap1.OffsetPolicy = new Vector2(1, 1);
116             borderVisualMap1.SizePolicy = new Vector2(1, 1);
117             borderVisualMap1.Origin = AlignType.TOP_BEGIN;
118             borderVisualMap1.AnchorPoint = AlignType.TOP_BEGIN;
119             _visualView.AddVisual( "borderVisual1", borderVisualMap1);
120
121             /* gradient visual */
122             GradientVisualMap gradientVisualMap1 = new GradientVisualMap();
123             PropertyArray stopOffset = new PropertyArray();
124             stopOffset.Add(new PropertyValue(0.0f));
125             stopOffset.Add(new PropertyValue(0.3f));
126             stopOffset.Add(new PropertyValue(0.6f));
127             stopOffset.Add(new PropertyValue(0.8f));
128             stopOffset.Add(new PropertyValue(1.0f));
129             gradientVisualMap1.StopOffset = stopOffset;
130             PropertyArray stopColor = new PropertyArray();
131             stopColor.Add(new PropertyValue(new Vector4( 129.0f, 198.0f, 193.0f, 255.0f )/255.0f));
132             stopColor.Add(new PropertyValue(new Vector4( 196.0f, 198.0f, 71.0f, 122.0f )/255.0f));
133             stopColor.Add(new PropertyValue(new Vector4( 214.0f, 37.0f, 139.0f, 191.0f )/255.0f));
134             stopColor.Add(new PropertyValue(new Vector4( 129.0f, 198.0f, 193.0f, 150.0f )/255.0f));
135             stopColor.Add(new PropertyValue(Color.Yellow));
136             gradientVisualMap1.StopColor = stopColor;
137             gradientVisualMap1.StartPosition = new Vector2(  0.5f,  0.5f );
138             gradientVisualMap1.EndPosition = new Vector2( -0.5f, -0.5f );
139             gradientVisualMap1.Center = new Vector2( 0.5f, 0.5f);
140             gradientVisualMap1.Radius = 1.414f;
141
142             gradientVisualMap1.VisualSize = new Vector2(100.0f, 100.0f);
143             gradientVisualMap1.Offset = new Vector2(120.0f, 380.0f);
144             gradientVisualMap1.OffsetPolicy = new Vector2(1, 1);
145             gradientVisualMap1.SizePolicy = new Vector2(1, 1);
146             gradientVisualMap1.Origin = AlignType.TOP_BEGIN;
147             gradientVisualMap1.AnchorPoint = AlignType.TOP_BEGIN;
148             _visualView.AddVisual( "gradientVisual1", gradientVisualMap1);
149
150             /* primitive visual: Cone */
151             PrimitiveVisualMap primitiveVisualMap1 = new PrimitiveVisualMap();
152             primitiveVisualMap1.Shape = PrimitiveVisualShapeType.Cone;
153             primitiveVisualMap1.BevelPercentage = 0.3f;
154             primitiveVisualMap1.BevelSmoothness = 0.0f;
155             primitiveVisualMap1.ScaleDimensions = new Vector3(1.0f,1.0f,0.3f);
156             primitiveVisualMap1.MixColor = new Vector4((245.0f/255.0f), (188.0f/255.0f), (73.0f/255.0f), 1.0f);
157
158             primitiveVisualMap1.VisualSize = new Vector2(100.0f, 100.0f);
159             primitiveVisualMap1.Offset = new Vector2(230.0f, 380.0f);
160             primitiveVisualMap1.OffsetPolicy = new Vector2(1, 1);
161             primitiveVisualMap1.SizePolicy = new Vector2(1, 1);
162             primitiveVisualMap1.Origin = AlignType.TOP_BEGIN;
163             primitiveVisualMap1.AnchorPoint = AlignType.TOP_BEGIN;
164             _visualView.AddVisual( "primitiveVisual1", primitiveVisualMap1);
165
166             /* primitive visual: Sphere */
167             PrimitiveVisualMap primitiveVisualMap2 = new PrimitiveVisualMap();
168             primitiveVisualMap2.Shape = PrimitiveVisualShapeType.Sphere;
169             primitiveVisualMap2.BevelPercentage = 0.3f;
170             primitiveVisualMap2.BevelSmoothness = 0.0f;
171             primitiveVisualMap2.ScaleDimensions = new Vector3(1.0f,1.0f,0.3f);
172             primitiveVisualMap2.MixColor = new Vector4((245.0f/255.0f), (188.0f/255.0f), (73.0f/255.0f), 1.0f);
173
174             primitiveVisualMap2.VisualSize = new Vector2(100.0f, 100.0f);
175             primitiveVisualMap2.Offset = new Vector2(340.0f, 380.0f);
176             primitiveVisualMap2.OffsetPolicy = new Vector2(1, 1);
177             primitiveVisualMap2.SizePolicy = new Vector2(1, 1);
178             primitiveVisualMap2.Origin = AlignType.TOP_BEGIN;
179             primitiveVisualMap2.AnchorPoint = AlignType.TOP_BEGIN;
180             _visualView.AddVisual( "primitiveVisual2", primitiveVisualMap2);
181
182             /* primitive visual: Cylinder */
183             PrimitiveVisualMap primitiveVisualMap3 = new PrimitiveVisualMap();
184             primitiveVisualMap3.Shape = PrimitiveVisualShapeType.Cylinder;
185             primitiveVisualMap3.BevelPercentage = 0.3f;
186             primitiveVisualMap3.BevelSmoothness = 0.0f;
187             primitiveVisualMap3.ScaleDimensions = new Vector3(1.0f,1.0f,0.3f);
188             primitiveVisualMap3.MixColor = new Vector4((245.0f/255.0f), (188.0f/255.0f), (73.0f/255.0f), 1.0f);
189
190             primitiveVisualMap3.VisualSize = new Vector2(100.0f, 100.0f);
191             primitiveVisualMap3.Offset = new Vector2(10.0f, 490.0f);
192             primitiveVisualMap3.OffsetPolicy = new Vector2(1, 1);
193             primitiveVisualMap3.SizePolicy = new Vector2(1, 1);
194             primitiveVisualMap3.Origin = AlignType.TOP_BEGIN;
195             primitiveVisualMap3.AnchorPoint = AlignType.TOP_BEGIN;
196             _visualView.AddVisual( "primitiveVisual3", primitiveVisualMap3);
197
198             /* primitive visual: ConicalFrustrum */
199             PrimitiveVisualMap primitiveVisualMap4 = new PrimitiveVisualMap();
200             primitiveVisualMap4.Shape = PrimitiveVisualShapeType.ConicalFrustrum;
201             primitiveVisualMap4.BevelPercentage = 0.3f;
202             primitiveVisualMap4.BevelSmoothness = 0.0f;
203             primitiveVisualMap4.ScaleDimensions = new Vector3(1.0f,1.0f,0.3f);
204             primitiveVisualMap4.MixColor = new Vector4((245.0f/255.0f), (188.0f/255.0f), (73.0f/255.0f), 1.0f);
205
206             primitiveVisualMap4.VisualSize = new Vector2(100.0f, 100.0f);
207             primitiveVisualMap4.Offset = new Vector2(120.0f, 490.0f);
208             primitiveVisualMap4.OffsetPolicy = new Vector2(1, 1);
209             primitiveVisualMap4.SizePolicy = new Vector2(1, 1);
210             primitiveVisualMap4.Origin = AlignType.TOP_BEGIN;
211             primitiveVisualMap4.AnchorPoint = AlignType.TOP_BEGIN;
212             _visualView.AddVisual( "primitiveVisual4", primitiveVisualMap4);
213
214             /* primitive visual: Cube */
215             PrimitiveVisualMap primitiveVisualMap5 = new PrimitiveVisualMap();
216             primitiveVisualMap5.Shape = PrimitiveVisualShapeType.Cube;
217             primitiveVisualMap5.BevelPercentage = 0.3f;
218             primitiveVisualMap5.BevelSmoothness = 0.0f;
219             primitiveVisualMap5.ScaleDimensions = new Vector3(1.0f,1.0f,0.3f);
220             primitiveVisualMap5.MixColor = new Vector4((245.0f/255.0f), (188.0f/255.0f), (73.0f/255.0f), 1.0f);
221
222             primitiveVisualMap5.VisualSize = new Vector2(100.0f, 100.0f);
223             primitiveVisualMap5.Offset = new Vector2(230.0f, 490.0f);
224             primitiveVisualMap5.OffsetPolicy = new Vector2(1, 1);
225             primitiveVisualMap5.SizePolicy = new Vector2(1, 1);
226             primitiveVisualMap5.Origin = AlignType.TOP_BEGIN;
227             primitiveVisualMap5.AnchorPoint = AlignType.TOP_BEGIN;
228             _visualView.AddVisual( "primitiveVisual5", primitiveVisualMap5);
229
230             /* mesh visual nothing show. */
231             MeshVisualMap meshVisualMap1 = new MeshVisualMap();
232             meshVisualMap1.ObjectURL = resources + "/models/Dino.obj";
233             meshVisualMap1.MaterialtURL = resources + "/models/Dino.mtl";
234             meshVisualMap1.TexturesPath = resources + "/images/";
235             meshVisualMap1.ShadingMode = MeshVisualShadingModeValue.TexturedWithSpecularLighting;
236
237             meshVisualMap1.VisualSize = new Vector2(200.0f, 200.0f);
238             meshVisualMap1.Offset = new Vector2(10.0f, 600.0f);
239             meshVisualMap1.OffsetPolicy = new Vector2(1, 1);
240             meshVisualMap1.SizePolicy = new Vector2(1, 1);
241             meshVisualMap1.Origin = AlignType.TOP_BEGIN;
242             meshVisualMap1.AnchorPoint = AlignType.TOP_BEGIN;
243             _visualView.AddVisual( "meshVisual1", meshVisualMap1);
244         }
245
246         [STAThread]
247         static void Main(string[] args)
248         {
249             Example example = new Example();
250             example.Run(args);
251         }
252     }
253 }