2 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
23 #include <dali-toolkit-test-suite-utils.h>
24 #include <dali-toolkit/dali-toolkit.h>
25 #include <toolkit-text-utils.h>
28 #include <dali-toolkit/devel-api/text/bitmap-font.h>
29 #include <dali/devel-api/text-abstraction/bitmap-font.h>
30 #include <dali-toolkit/devel-api/text/text-utils-devel.h>
31 #include <devel-api/adaptor-framework/image-loading.h>
37 using namespace Toolkit;
42 const std::string TEST_IMAGE_FILE_NAME1 = TEST_RESOURCE_DIR "/application-icon-20.png";
43 const std::string TEST_IMAGE_FILE_NAME2 = TEST_RESOURCE_DIR "/application-icon-26.png";
45 const std::vector<std::string> embeddedItems = { TEST_IMAGE_FILE_NAME2, TEST_IMAGE_FILE_NAME2, TEST_IMAGE_FILE_NAME2, TEST_IMAGE_FILE_NAME2, TEST_IMAGE_FILE_NAME2 };
47 struct CircularTextData
49 std::string description;
51 DevelText::RendererParameters& textParameters;
52 const std::vector<std::string>& embeddedItems;
57 bool CircularRenderTest( const CircularTextData& data )
61 Dali::Vector<Dali::Toolkit::DevelText::EmbeddedItemInfo> embeddedItemLayout;
63 Devel::PixelBuffer pixelBuffer = Toolkit::DevelText::Render( data.textParameters, embeddedItemLayout );
65 const int dstWidth = static_cast<int>( pixelBuffer.GetWidth() );
66 const int dstHeight = static_cast<int>( pixelBuffer.GetHeight() );
68 unsigned int index = 0u;
69 for( const auto& itemLayout : embeddedItemLayout )
71 int width = static_cast<int>( itemLayout.size.width );
72 int height = static_cast<int>( itemLayout.size.height );
73 int x = static_cast<int>( itemLayout.position.x );
74 int y = static_cast<int>( itemLayout.position.y );
76 Dali::Devel::PixelBuffer itemPixelBuffer = Dali::LoadImageFromFile( data.embeddedItems[index++] );
77 itemPixelBuffer.Resize( width, height );
78 itemPixelBuffer.Rotate( itemLayout.angle );
80 width = static_cast<int>( itemPixelBuffer.GetWidth() );
81 height = static_cast<int>( itemPixelBuffer.GetHeight() );
83 Dali::Pixel::Format itemPixelFormat = itemPixelBuffer.GetPixelFormat();
85 // Check if the item is out of the buffer.
86 if( ( x + width < 0 ) ||
89 ( y - height > dstHeight ) )
91 // The embedded item is completely out of the buffer.
95 // Crop if it exceeds the boundaries of the destination buffer.
100 int newWidth = width;
101 int newHeight = height;
108 cropX = std::abs( x );
116 if( cropX + newWidth > dstWidth )
119 newWidth -= ( ( cropX + newWidth ) - dstWidth );
125 newHeight += layoutY;
126 cropY = std::abs(layoutY);
130 if( cropY + newHeight > dstHeight )
133 newHeight -= ( ( cropY + newHeight ) - dstHeight );
136 uint16_t uiCropX = static_cast<uint16_t>(cropX);
137 uint16_t uiCropY = static_cast<uint16_t>(cropY);
138 uint16_t uiNewWidth = static_cast<uint16_t>(newWidth);
139 uint16_t uiNewHeight = static_cast<uint16_t>(newHeight);
143 itemPixelBuffer.Crop( uiCropX, uiCropY, uiNewWidth, uiNewHeight );
146 // Blend the item pixel buffer with the text's color according its blending mode.
147 if( Dali::TextAbstraction::ColorBlendingMode::MULTIPLY == itemLayout.colorBlendingMode )
149 Dali::Devel::PixelBuffer buffer = Dali::Devel::PixelBuffer::New( uiNewWidth,
153 unsigned char* bufferPtr = buffer.GetBuffer();
154 const unsigned char* itemBufferPtr = itemPixelBuffer.GetBuffer();
155 const unsigned int bytesPerPixel = Dali::Pixel::GetBytesPerPixel(itemPixelFormat);
156 const unsigned int size = uiNewWidth * uiNewHeight * bytesPerPixel;
158 for (unsigned int i = 0u; i < size; i += bytesPerPixel)
160 *(bufferPtr + 0u) = static_cast<unsigned char>( static_cast<float>( *(itemBufferPtr + 0u) ) * data.textParameters.textColor.r );
161 *(bufferPtr + 1u) = static_cast<unsigned char>( static_cast<float>( *(itemBufferPtr + 1u) ) * data.textParameters.textColor.g );
162 *(bufferPtr + 2u) = static_cast<unsigned char>( static_cast<float>( *(itemBufferPtr + 2u) ) * data.textParameters.textColor.b );
163 *(bufferPtr + 3u) = static_cast<unsigned char>( static_cast<float>( *(itemBufferPtr + 3u) ) * data.textParameters.textColor.a );
165 itemBufferPtr += bytesPerPixel;
166 bufferPtr += bytesPerPixel;
169 itemPixelBuffer = buffer;
172 Dali::Toolkit::DevelText::UpdateBuffer(itemPixelBuffer, pixelBuffer, layoutX, layoutY, data.blend);
180 int UtcDaliTextCircularBitmapFont(void)
182 ToolkitTestApplication application;
183 tet_infoline(" UtcDaliTextCircularBitmapFont");
185 Dali::Toolkit::DevelText::BitmapFontDescription description;
186 Dali::Toolkit::DevelText::Glyph glyph;
187 glyph.url = "BitmapFontUrl";
192 glyph.ascender = 1.f;
193 glyph.descender = 1.f;
194 description.glyphs.push_back( glyph );
196 TextAbstraction::BitmapFont bitmapFont;
197 Dali::Toolkit::DevelText::CreateBitmapFont( description, bitmapFont );
199 for( const auto& bitmapGlyph : bitmapFont.glyphs )
201 if( glyph.url != bitmapGlyph.url )
203 std::cout << " different output string : " << bitmapGlyph.url << ", expected : " << glyph.url << " " << std::endl;
204 tet_result(TET_FAIL);
208 tet_result(TET_PASS);
212 int UtcDaliTextCircularShadowText(void)
214 ToolkitTestApplication application;
215 tet_infoline(" UtcDaliTextCircularShadowText");
217 Dali::Toolkit::DevelText::ShadowParameters shadowParameters;
218 Devel::PixelBuffer outPixelBuffer;
219 shadowParameters.input = Devel::PixelBuffer::New( 100, 100, Pixel::RGBA8888 );
220 shadowParameters.textColor = Color::BLACK;
221 shadowParameters.color = Color::BLACK;
222 shadowParameters.offset.x = 10u;
223 shadowParameters.offset.y = 10u;
224 shadowParameters.blendShadow = true;
225 outPixelBuffer = Dali::Toolkit::DevelText::CreateShadow( shadowParameters );
226 DALI_TEST_CHECK( outPixelBuffer );
227 DALI_TEST_EQUALS( outPixelBuffer.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION );
229 shadowParameters.blendShadow = false;
230 outPixelBuffer = Dali::Toolkit::DevelText::CreateShadow( shadowParameters );
231 DALI_TEST_CHECK( outPixelBuffer );
232 DALI_TEST_EQUALS( outPixelBuffer.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION );
234 shadowParameters.input = Devel::PixelBuffer::New( 100, 100, Pixel::A8 );
235 outPixelBuffer = Dali::Toolkit::DevelText::CreateShadow( shadowParameters );
236 DALI_TEST_CHECK( outPixelBuffer );
237 DALI_TEST_EQUALS( outPixelBuffer.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION );
239 tet_result(TET_PASS);
243 int UtcDaliTextCircularPixelBufferText(void)
245 ToolkitTestApplication application;
246 tet_infoline(" UtcDaliTextCircularPixelBufferText");
248 Devel::PixelBuffer pixbuf = Devel::PixelBuffer::New( 10, 10, Pixel::A8 );
250 Devel::PixelBuffer pixelBufferRgba = Dali::Toolkit::DevelText::ConvertToRgba8888( pixbuf, color, true );
251 pixelBufferRgba = Dali::Toolkit::DevelText::ConvertToRgba8888( pixbuf, color, false );
252 DALI_TEST_CHECK( pixelBufferRgba );
253 DALI_TEST_EQUALS( pixelBufferRgba.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION );
255 pixbuf = Devel::PixelBuffer::New( 10, 10, Pixel::RGBA8888 );
256 pixelBufferRgba = Dali::Toolkit::DevelText::ConvertToRgba8888( pixbuf, color, false );
257 DALI_TEST_CHECK( pixelBufferRgba );
258 DALI_TEST_EQUALS( pixelBufferRgba.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION );
260 tet_result(TET_PASS);
264 int UtcDaliTextCircularNoText(void)
266 ToolkitTestApplication application;
267 tet_infoline(" UtcDaliTextCircularNoText");
269 Dali::Toolkit::DevelText::RendererParameters textParameters;
270 textParameters.text = "";
271 textParameters.fontSize = 25.f;
272 textParameters.textWidth = 360u;
273 textParameters.textHeight = 360u;
275 CircularTextData data =
284 if( !CircularRenderTest( data ) )
286 tet_result(TET_FAIL);
289 textParameters.text = "<item 'width'=26 'height'=26/>";
290 textParameters.markupEnabled = true;
291 if( !CircularRenderTest( data ) )
293 tet_result(TET_FAIL);
296 tet_result(TET_PASS);
300 int UtcDaliTextCircularIncrementAngle(void)
303 ToolkitTestApplication application;
304 tet_infoline(" UtcDaliTextCircularIncrementAngle");
306 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
307 const std::string image2 = "<item 'width'=26 'height'=26/>";
309 Dali::Toolkit::DevelText::RendererParameters textParameters;
310 textParameters.text = "Hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
311 textParameters.horizontalAlignment = "center";
312 textParameters.verticalAlignment = "center";
313 textParameters.circularAlignment = "center";
314 textParameters.fontFamily = "SamsungUI";
315 textParameters.fontWeight = "";
316 textParameters.fontWidth = "";
317 textParameters.fontSlant = "";
318 textParameters.layout = "circular";
319 textParameters.textColor = Color::BLACK;
320 textParameters.fontSize = 25.f;
321 textParameters.textWidth = 360u;
322 textParameters.textHeight = 360u;
323 textParameters.radius = 180u;
324 textParameters.beginAngle = 15.f;
325 textParameters.incrementAngle = 0.f;
326 textParameters.ellipsisEnabled = true;
327 textParameters.markupEnabled = true;
330 CircularTextData data =
339 if( !CircularRenderTest( data ) )
341 tet_result(TET_FAIL);
344 tet_result(TET_PASS);
350 int UtcDaliTextCircularMarkup(void)
352 ToolkitTestApplication application;
353 tet_infoline(" UtcDaliTextCircularMarkup");
355 Dali::Toolkit::DevelText::RendererParameters textParameters;
356 textParameters.text = "Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World";
357 textParameters.horizontalAlignment = "center";
358 textParameters.verticalAlignment = "center";
359 textParameters.circularAlignment = "center";
360 textParameters.fontFamily = "SamsungUI";
361 textParameters.fontWeight = "";
362 textParameters.fontWidth = "";
363 textParameters.fontSlant = "";
364 textParameters.layout = "circular";
365 textParameters.textColor = Color::BLACK;
366 textParameters.fontSize = 25.f;
367 textParameters.textWidth = 360u;
368 textParameters.textHeight = 360u;
369 textParameters.radius = 180u;
370 textParameters.beginAngle = 15.f;
371 textParameters.incrementAngle = 360.f;
372 textParameters.ellipsisEnabled = true;
373 textParameters.markupEnabled = false;
375 CircularTextData data =
384 if( !CircularRenderTest( data ) )
386 tet_result(TET_FAIL);
389 tet_result(TET_PASS);
393 int UtcDaliTextCircularFont(void)
395 ToolkitTestApplication application;
396 tet_infoline(" UtcDaliTextCircularFont");
398 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
399 const std::string image2 = "<item 'width'=26 'height'=26/>";
401 Dali::Toolkit::DevelText::RendererParameters textParameters;
402 textParameters.text = "Hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
403 textParameters.horizontalAlignment = "center";
404 textParameters.verticalAlignment = "center";
405 textParameters.circularAlignment = "center";
406 textParameters.fontFamily = "SamsungUI";
407 textParameters.fontWeight = "thin";
408 textParameters.fontWidth = "condensed";
409 textParameters.fontSlant = "normal";
410 textParameters.layout = "circular";
411 textParameters.textColor = Color::BLACK;
412 textParameters.fontSize = 25.f;
413 textParameters.textWidth = 360u;
414 textParameters.textHeight = 360u;
415 textParameters.radius = 180u;
416 textParameters.beginAngle = 15.f;
417 textParameters.incrementAngle = 360.f;
418 textParameters.ellipsisEnabled = true;
419 textParameters.markupEnabled = true;
421 CircularTextData data =
430 if( !CircularRenderTest( data ) )
432 tet_result(TET_FAIL);
435 tet_result(TET_PASS);
439 int UtcDaliTextCircularAlignment(void)
442 ToolkitTestApplication application;
443 tet_infoline(" UtcDaliTextCircularAlignment");
445 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
446 const std::string image2 = "<item 'width'=26 'height'=26/>";
448 Dali::Toolkit::DevelText::RendererParameters textParameters;
449 textParameters.text = "Hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
450 textParameters.horizontalAlignment = "center";
451 textParameters.verticalAlignment = "center";
452 textParameters.circularAlignment = "center";
453 textParameters.fontFamily = "SamsungUI";
454 textParameters.fontWeight = "";
455 textParameters.fontWidth = "";
456 textParameters.fontSlant = "";
457 textParameters.layout = "circular";
458 textParameters.textColor = Color::BLACK;
459 textParameters.fontSize = 25.f;
460 textParameters.textWidth = 360u;
461 textParameters.textHeight = 360u;
462 textParameters.radius = 180u;
463 textParameters.beginAngle = 15.f;
464 textParameters.incrementAngle = 360.f;
465 textParameters.ellipsisEnabled = true;
466 textParameters.markupEnabled = true;
468 CircularTextData data =
477 if( !CircularRenderTest( data ) )
479 tet_result(TET_FAIL);
482 textParameters.horizontalAlignment = "begin";
483 textParameters.verticalAlignment = "top";
484 textParameters.circularAlignment = "begin";
486 if( !CircularRenderTest( data ) )
488 tet_result(TET_FAIL);
491 textParameters.horizontalAlignment = "end";
492 textParameters.verticalAlignment = "bottom";
493 textParameters.circularAlignment = "end";
495 if( !CircularRenderTest( data ) )
497 tet_result(TET_FAIL);
500 tet_result(TET_PASS);
504 int UtcDaliTextCircularRTL(void)
506 ToolkitTestApplication application;
507 tet_infoline(" UtcDaliTextCircularRTL");
509 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
510 const std::string image2 = "<item 'width'=26 'height'=26/>";
512 Dali::Toolkit::DevelText::RendererParameters textParameters;
513 textParameters.text = "مرحبا بالعالم" + image1 + " hello world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
514 textParameters.horizontalAlignment = "center";
515 textParameters.verticalAlignment = "center";
516 textParameters.circularAlignment = "center";
517 textParameters.fontFamily = "SamsungUI";
518 textParameters.fontWeight = "";
519 textParameters.fontWidth = "";
520 textParameters.fontSlant = "";
521 textParameters.layout = "circular";
522 textParameters.textColor = Color::BLACK;
523 textParameters.fontSize = 25.f;
524 textParameters.textWidth = 360u;
525 textParameters.textHeight = 360u;
526 textParameters.radius = 180u;
527 textParameters.beginAngle = 15.f;
528 textParameters.incrementAngle = 360.f;
529 textParameters.ellipsisEnabled = true;
530 textParameters.markupEnabled = true;
532 CircularTextData data =
541 if( !CircularRenderTest( data ) )
543 tet_result(TET_FAIL);
546 textParameters.circularAlignment = "begin";
547 if( !CircularRenderTest( data ) )
549 tet_result(TET_FAIL);
552 textParameters.circularAlignment = "end";
553 if( !CircularRenderTest( data ) )
555 tet_result(TET_FAIL);
558 textParameters.text = "שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم";
559 textParameters.layout = "singleLine";
560 textParameters.horizontalAlignment = "end";
561 textParameters.fontSize = 90.f;
562 if( !CircularRenderTest( data ) )
564 tet_result(TET_FAIL);
567 tet_result(TET_PASS);
571 int UtcDaliTextCircularN(void)
574 ToolkitTestApplication application;
575 tet_infoline(" UtcDaliTextCircularN");
577 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
578 const std::string image2 = "<item 'width'=26 'height'=26/>";
580 Dali::Toolkit::DevelText::RendererParameters textParameters;
581 textParameters.text = "hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
582 textParameters.horizontalAlignment = "center";
583 textParameters.verticalAlignment = "center";
584 textParameters.circularAlignment = "center";
585 textParameters.fontFamily = "SamsungUI";
586 textParameters.fontWeight = "";
587 textParameters.fontWidth = "";
588 textParameters.fontSlant = "";
589 textParameters.layout = "singleLine";
590 textParameters.textColor = Color::BLACK;
591 textParameters.fontSize = 25.f;
592 textParameters.textWidth = 360u;
593 textParameters.textHeight = 360u;
594 textParameters.radius = 180u;
595 textParameters.beginAngle = 15.f;
596 textParameters.incrementAngle = 360.f;
597 textParameters.ellipsisEnabled = true;
598 textParameters.markupEnabled = true;
600 CircularTextData data =
609 if( !CircularRenderTest( data ) )
611 tet_result(TET_FAIL);
614 textParameters.verticalAlignment = "top";
615 if( !CircularRenderTest( data ) )
617 tet_result(TET_FAIL);
620 textParameters.verticalAlignment = "bottom";
621 if( !CircularRenderTest( data ) )
623 tet_result(TET_FAIL);
626 textParameters.textWidth = 90u;
627 if( !CircularRenderTest( data ) )
629 tet_result(TET_FAIL);
632 tet_result(TET_PASS);
636 int UtcDaliTextCircularBlend(void)
638 tet_infoline(" UtcDaliTextCircularN");
640 ToolkitTestApplication application;
641 auto scene = application.GetScene();
642 scene.SetBackgroundColor( Color::WHITE );
643 scene.SetBackgroundColor( Vector4( 0.04f, 0.345f, 0.392f, 1.0f ) );
646 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
647 const std::string image2 = "<item 'width'=26 'height'=26/>";
649 Dali::Toolkit::DevelText::RendererParameters textParameters;
650 textParameters.text = "hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
651 textParameters.horizontalAlignment = "center";
652 textParameters.verticalAlignment = "center";
653 textParameters.circularAlignment = "center";
654 textParameters.fontFamily = "SamsungUI";
655 textParameters.fontWeight = "";
656 textParameters.fontWidth = "";
657 textParameters.fontSlant = "";
658 textParameters.layout = "circular";
659 textParameters.textColor = Color::BLACK;
660 textParameters.fontSize = 25.f;
661 textParameters.textWidth = 360u;
662 textParameters.textHeight = 360u;
663 textParameters.radius = 180u;
664 textParameters.beginAngle = 15.f;
665 textParameters.incrementAngle = 360.f;
666 textParameters.ellipsisEnabled = true;
667 textParameters.markupEnabled = true;
669 CircularTextData data =
678 if( !CircularRenderTest( data ) )
680 tet_result(TET_FAIL);
683 tet_result(TET_PASS);
687 int UtcDaliTextCircularEllipsis(void)
689 tet_infoline(" UtcDaliTextCircularEllipsis");
691 ToolkitTestApplication application;
693 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
694 const std::string image2 = "<item 'width'=26 'height'=26/>";
696 Dali::Toolkit::DevelText::RendererParameters textParameters;
697 textParameters.text = "hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
698 textParameters.horizontalAlignment = "center";
699 textParameters.verticalAlignment = "center";
700 textParameters.circularAlignment = "center";
701 textParameters.fontFamily = "SamsungUI";
702 textParameters.fontWeight = "";
703 textParameters.fontWidth = "";
704 textParameters.fontSlant = "";
705 textParameters.layout = "circular";
706 textParameters.textColor = Color::BLACK;
707 textParameters.fontSize = 25.f;
708 textParameters.textWidth = 360u;
709 textParameters.textHeight = 360u;
710 textParameters.radius = 180u;
711 textParameters.beginAngle = 15.f;
712 textParameters.incrementAngle = 360.f;
713 textParameters.ellipsisEnabled = false;
714 textParameters.markupEnabled = true;
716 CircularTextData data =
725 if( !CircularRenderTest( data ) )
727 tet_result(TET_FAIL);
730 textParameters.layout = "singleLine";
731 textParameters.textHeight = 50u;
732 textParameters.ellipsisEnabled = true;
734 if( !CircularRenderTest( data ) )
736 tet_result(TET_FAIL);
739 tet_result(TET_PASS);
743 int UtcDaliTextCircularEmoji(void)
745 tet_infoline(" UtcDaliTextCircularEmoji");
747 ToolkitTestApplication application;
749 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
750 const std::string image2 = "<item 'width'=26 'height'=26/>";
752 Dali::Toolkit::DevelText::RendererParameters textParameters;
753 textParameters.text = "<font family='BreezeColorEmoji' size='60'>\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\x83 \xF0\x9F\x98\x84</font>";
754 textParameters.horizontalAlignment = "center";
755 textParameters.verticalAlignment = "center";
756 textParameters.circularAlignment = "center";
757 textParameters.fontFamily = "SamsungUI";
758 textParameters.fontWeight = "";
759 textParameters.fontWidth = "";
760 textParameters.fontSlant = "";
761 textParameters.layout = "circular";
762 textParameters.textColor = Color::BLACK;
763 textParameters.fontSize = 25.f;
764 textParameters.textWidth = 360u;
765 textParameters.textHeight = 360u;
766 textParameters.radius = 180u;
767 textParameters.beginAngle = 15.f;
768 textParameters.incrementAngle = 360.f;
769 textParameters.ellipsisEnabled = true;
770 textParameters.markupEnabled = true;
772 CircularTextData data =
781 if( !CircularRenderTest( data ) )
783 tet_result(TET_FAIL);
786 tet_result(TET_PASS);
790 int UtcDaliTextUpdateBufferFormatCheck(void)
792 tet_infoline(" UtcDaliTextUpdateBufferFormatCheck");
793 ToolkitTestApplication application;
795 Devel::PixelBuffer srcBuffer = Devel::PixelBuffer::New( 10, 10, Pixel::RGBA8888 );
796 Devel::PixelBuffer dstBuffer = Devel::PixelBuffer::New( 10, 10, Pixel::A8 );
798 Dali::Toolkit::DevelText::UpdateBuffer(srcBuffer, dstBuffer, 0, 0, true);
800 Devel::PixelBuffer compressedSrcBuffer = Devel::PixelBuffer::New( 10, 10, Pixel::COMPRESSED_R11_EAC );
801 Devel::PixelBuffer compressedDstBuffer = Devel::PixelBuffer::New( 10, 10, Pixel::COMPRESSED_R11_EAC );
802 Dali::Toolkit::DevelText::UpdateBuffer(compressedSrcBuffer, compressedDstBuffer, 0, 0, true);
804 tet_result(TET_PASS);
808 int UtcDaliTextCircularTextColor(void)
810 tet_infoline(" UtcDaliTextCircularTextColor");
812 ToolkitTestApplication application;
814 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
815 const std::string image2 = "<item 'width'=26 'height'=26/>";
817 Dali::Toolkit::DevelText::RendererParameters textParameters;
818 textParameters.text = "hello " + image1 + " <color value='blue'>world</color> " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
819 textParameters.horizontalAlignment = "center";
820 textParameters.verticalAlignment = "center";
821 textParameters.circularAlignment = "center";
822 textParameters.fontFamily = "SamsungUI";
823 textParameters.fontWeight = "";
824 textParameters.fontWidth = "";
825 textParameters.fontSlant = "";
826 textParameters.layout = "circular";
827 textParameters.textColor = Color::BLACK;
828 textParameters.fontSize = 25.f;
829 textParameters.textWidth = 360u;
830 textParameters.textHeight = 360u;
831 textParameters.radius = 180u;
832 textParameters.beginAngle = 15.f;
833 textParameters.incrementAngle = 360.f;
834 textParameters.ellipsisEnabled = true;
835 textParameters.markupEnabled = true;
837 CircularTextData data =
846 if( !CircularRenderTest( data ) )
848 tet_result(TET_FAIL);
851 tet_result(TET_PASS);
855 int UtcDaliTextCircularColorBlend(void)
857 tet_infoline(" UtcDaliTextCircularColorBlend");
859 ToolkitTestApplication application;
861 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "' 'color-blending'=multiply/>";
862 const std::string image2 = "<item 'width'=26 'height'=26/>";
864 Dali::Toolkit::DevelText::RendererParameters textParameters;
865 textParameters.text = "hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
866 textParameters.horizontalAlignment = "center";
867 textParameters.verticalAlignment = "center";
868 textParameters.circularAlignment = "center";
869 textParameters.fontFamily = "SamsungUI";
870 textParameters.fontWeight = "";
871 textParameters.fontWidth = "";
872 textParameters.fontSlant = "";
873 textParameters.layout = "circular";
874 textParameters.textColor = Color::BLACK;
875 textParameters.fontSize = 25.f;
876 textParameters.textWidth = 360u;
877 textParameters.textHeight = 360u;
878 textParameters.radius = 180u;
879 textParameters.beginAngle = 15.f;
880 textParameters.incrementAngle = 360.f;
881 textParameters.ellipsisEnabled = true;
882 textParameters.markupEnabled = true;
884 CircularTextData data =
893 if( !CircularRenderTest( data ) )
895 tet_result(TET_FAIL);
898 tet_result(TET_PASS);