Dali 3D User Interface Engine
utc-Dali-FrameBufferImage.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 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 #include <iostream>
19 #include <algorithm>
20 
21 #include <stdlib.h>
23 #include <dali-test-suite-utils.h>
24 #include <test-native-image.h>
26 
27 using std::max;
28 using namespace Dali;
29 
31 {
33 }
34 
36 {
38 }
39 
41 {
42  TestApplication application;
43 
44  tet_infoline("UtcDaliFrameBufferImageNew01 - FrameBufferImage::New(unsigned int, unsigned int, Pixel::Format)");
45 
46  // invoke default handle constructor
47  FrameBufferImage image;
48  Vector2 stageSize = Stage::GetCurrent().GetSize();
49 
50  // initialise handle
51  image = FrameBufferImage::New(); // create framebuffer with the same dimensions as the stage
52  ImageActor actor=ImageActor::New(image);
53  Stage::GetCurrent().Add(actor);
54 
55  application.SendNotification();
56  application.Render();
57  application.Render();
58  application.SendNotification();
59 
60  DALI_TEST_CHECK( image );
61  DALI_TEST_EQUALS((float)image.GetWidth(), stageSize.width, TEST_LOCATION);
62  DALI_TEST_EQUALS((float)image.GetHeight(), stageSize.height, TEST_LOCATION);
63 
64  image = FrameBufferImage::New(16, 16); // create framebuffer with dimensions of 16x16
65  actor.SetImage(image);
66 
67  application.SendNotification();
68  application.Render();
69  application.Render();
70  application.SendNotification();
71 
72  DALI_TEST_CHECK( image );
73  DALI_TEST_EQUALS(image.GetWidth(), 16u, TEST_LOCATION);
74  DALI_TEST_EQUALS(image.GetHeight(), 16u, TEST_LOCATION);
75  END_TEST;
76 }
77 
79 {
80  TestApplication application;
81 
82  tet_infoline("UtcDaliFrameBufferImageNew02 - FrameBufferImage::New(NativeImageInterface&)");
83 
84  // invoke default handle constructor
85  FrameBufferImage image;
86  TestNativeImagePointer nativeImage = TestNativeImage::New(16, 16);
87 
88  DALI_TEST_CHECK( !image );
89 
90  // initialise handle
91  image = FrameBufferImage::New(*(nativeImage.Get()));
92 
93  DALI_TEST_CHECK( image );
94  END_TEST;
95 }
96 
98 {
99  TestApplication application;
100 
101  tet_infoline("UtcDaliFrameBufferImageNew03 - FrameBufferImage::New(NativeImageInterface&, ReleasePolicy)");
102 
103  // invoke default handle constructor
104  FrameBufferImage image;
105  TestNativeImagePointer nativeImage = TestNativeImage::New(16, 16);
106 
107  DALI_TEST_CHECK( !image );
108 
109  // initialise handle with UNUSED release policy
110  image = FrameBufferImage::New(*(nativeImage.Get()), Image::UNUSED);
111 
112  DALI_TEST_CHECK( image );
113 
114  // ReleasePolicy is deprecated. Only set, but not used internally.
116 
117  // initialise handle with NEVER release policy
118  image.Reset();
119  DALI_TEST_CHECK( !image );
120 
121  image = FrameBufferImage::New(*(nativeImage.Get()), Image::NEVER);
122 
123  DALI_TEST_CHECK( image );
124 
125  // ReleasePolicy is deprecated. Only set, but not used internally.
127 
128  END_TEST;
129 }
130 
132 {
133  TestApplication application;
134 
135  tet_infoline("UtcDaliFrameBufferImageAttachments01 - FrameBufferImage::New(unsigned int, unsigned int, Pixel::Format, RenderBuffer::Format)");
136 
137  // invoke default handle constructor
138  FrameBufferImage image;
139 
140  // initialise handle
141  image = FrameBufferImage::New(64, 64, Pixel::RGBA8888, RenderBuffer::COLOR); // create framebuffer with Color buffer
142  ImageActor actor=ImageActor::New(image);
143  Stage::GetCurrent().Add(actor);
144 
145  application.SendNotification();
146  application.Render();
147  application.Render();
148  application.SendNotification();
149 
153 
154  END_TEST;
155 }
156 
158 {
159  TestApplication application;
160 
161  tet_infoline("UtcDaliFrameBufferImageAttachments02 - FrameBufferImage::New(unsigned int, unsigned int, Pixel::Format, RenderBuffer::Format)");
162 
163  // invoke default handle constructor
164  FrameBufferImage image;
165 
166  // initialise handle
167  image = FrameBufferImage::New(64, 64, Pixel::RGBA8888, RenderBuffer::COLOR_DEPTH); // create framebuffer with Color and Depth buffer
168  ImageActor actor=ImageActor::New(image);
169  Stage::GetCurrent().Add(actor);
170 
171  application.SendNotification();
172  application.Render();
173  application.Render();
174  application.SendNotification();
175 
179 
180  END_TEST;
181 }
182 
184 {
185  TestApplication application;
186 
187  tet_infoline("UtcDaliFrameBufferImageAttachments03 - FrameBufferImage::New(unsigned int, unsigned int, Pixel::Format, RenderBuffer::Format)");
188 
189  // invoke default handle constructor
190  FrameBufferImage image;
191 
192  // initialise handle
193  image = FrameBufferImage::New(64, 64, Pixel::RGBA8888, RenderBuffer::COLOR_STENCIL); // create framebuffer with Color and Stencil
194  ImageActor actor=ImageActor::New(image);
195  Stage::GetCurrent().Add(actor);
196 
197  application.SendNotification();
198  application.Render();
199  application.Render();
200  application.SendNotification();
201 
205 
206  END_TEST;
207 }
208 
210 {
211  TestApplication application;
212 
213  tet_infoline("UtcDaliFrameBufferImageAttachments04 - FrameBufferImage::New(unsigned int, unsigned int, Pixel::Format, RenderBuffer::Format)");
214 
215  // invoke default handle constructor
216  FrameBufferImage image;
217 
218  // initialise handle
219  image = FrameBufferImage::New(64, 64, Pixel::RGBA8888, RenderBuffer::COLOR_DEPTH_STENCIL); // create framebuffer with Color, Depth and Stencil buffers
220  ImageActor actor=ImageActor::New(image);
221  Stage::GetCurrent().Add(actor);
222 
223  application.SendNotification();
224  application.Render();
225  application.Render();
226  application.SendNotification();
227 
231 
232  END_TEST;
233 }
234 
236 {
237  TestApplication application;
238  tet_infoline("Testing Dali::FrameBufferImage::DownCast()");
239 
241 
242  BaseHandle object(image);
243 
245  DALI_TEST_CHECK(image2);
246 
247  FrameBufferImage image3 = DownCast< FrameBufferImage >(object);
248  DALI_TEST_CHECK(image3);
249 
250  BaseHandle unInitializedObject;
251  FrameBufferImage image4 = FrameBufferImage::DownCast(unInitializedObject);
252  DALI_TEST_CHECK(!image4);
253 
254  FrameBufferImage image5 = DownCast< FrameBufferImage >(unInitializedObject);
255  DALI_TEST_CHECK(!image5);
256 
257  Image image6 = FrameBufferImage::New();
259  DALI_TEST_CHECK(image7);
260  END_TEST;
261 }
Dali Docs Home
Read more about Dali