Merge "Updates for NativeImageInterface" into devel/master
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Fri, 24 Jul 2020 11:58:48 +0000 (11:58 +0000)
committerGerrit Code Review <gerrit@review>
Fri, 24 Jul 2020 11:58:48 +0000 (11:58 +0000)
24 files changed:
CMakeLists.txt [deleted file]
automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Cursor.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-Text-ViewModel.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-video-player.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-window.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-window.h
automated-tests/src/dali-toolkit/utc-Dali-Control.cpp
automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp
dali-toolkit/devel-api/controls/video-view/video-view-devel.cpp
dali-toolkit/devel-api/controls/video-view/video-view-devel.h
dali-toolkit/devel-api/file.list
dali-toolkit/devel-api/visuals/color-visual-actions-devel.h [new file with mode: 0644]
dali-toolkit/internal/controls/video-view/video-view-impl.cpp
dali-toolkit/internal/controls/video-view/video-view-impl.h
dali-toolkit/internal/text/layouts/layout-engine.cpp
dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.cpp [changed mode: 0644->0755]
dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.h [changed mode: 0644->0755]
dali-toolkit/internal/visuals/color/color-visual.cpp
dali-toolkit/internal/visuals/color/color-visual.h
dali-toolkit/public-api/controls/control-impl.cpp
dali-toolkit/public-api/controls/video-view/video-view.cpp
dali-toolkit/public-api/dali-toolkit-version.cpp
packaging/dali-toolkit.spec

diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100755 (executable)
index 4d45c64..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-cmake_minimum_required(VERSION 3.11)\r
-\r
-PROJECT (dali-toolkit)\r
-\r
-ADD_DEFINITIONS(\r
--DDALI_ENV="../../dali-env"\r
--DDALI_DATA_READ_ONLY_DIR=DALI_ENV"/opt/share/dali"\r
--DDALI_IMAGE_DIR=DALI_ENV"/opt/share/dali/toolkit/images/"\r
--DDALI_STYLE_DIR=DALI_ENV"/opt/share/dali/toolkit/styles/"\r
--DDALI_SOUND_DIR=DALI_ENV"/opt/share/dali/toolkit/sounds/"\r
--DDALI_STYLE_IMAGE_DIR=DALI_ENV"/opt/share/dali/toolkit/styles/images/"\r
--DCURL_STATICLIB=0\r
-/DBUILDING_DALI_TOOLKIT\r
-/vmg\r
-/NODEFAULTLIB:"libcmt.lib"\r
-/FI"../windows-dependencies/ExInclude/PreprocessorDefinitions.h"\r
-/FI"../windows-dependencies/ExInclude/ToolKitPreDefine.h"\r
-/MP\r
-/Gz\r
-)\r
-\r
-#head file path\r
-INCLUDE_DIRECTORIES(\r
-./\r
-../dali-core\r
-../dali-adaptor\r
-../windows-dependencies/ExInclude\r
-../dali-env/opt/include\r
-)\r
-\r
-#devel-api\r
-SET( devel_api_src_dir dali-toolkit/devel-api )\r
-\r
-SET ( SOURCES ${SOURCES}\r
-  ${devel_api_src_dir}/accessibility-manager/accessibility-manager.cpp\r
-  ${devel_api_src_dir}/builder/builder.cpp\r
-  ${devel_api_src_dir}/builder/json-parser.cpp\r
-  ${devel_api_src_dir}/builder/tree-node.cpp\r
-  ${devel_api_src_dir}/controls/control-devel.cpp\r
-  ${devel_api_src_dir}/controls/control-wrapper.cpp\r
-  ${devel_api_src_dir}/controls/control-wrapper-impl.cpp\r
-  ${devel_api_src_dir}/controls/bloom-view/bloom-view.cpp\r
-  ${devel_api_src_dir}/controls/bubble-effect/bubble-emitter.cpp\r
-  ${devel_api_src_dir}/controls/buttons/toggle-button.cpp\r
-  ${devel_api_src_dir}/controls/effects-view/effects-view.cpp\r
-  ${devel_api_src_dir}/controls/magnifier/magnifier.cpp\r
-  ${devel_api_src_dir}/controls/navigation-view/navigation-view.cpp\r
-  ${devel_api_src_dir}/controls/page-turn-view/page-turn-landscape-view.cpp\r
-  ${devel_api_src_dir}/controls/page-turn-view/page-turn-portrait-view.cpp\r
-  ${devel_api_src_dir}/controls/page-turn-view/page-turn-view.cpp\r
-  ${devel_api_src_dir}/controls/popup/confirmation-popup.cpp\r
-  ${devel_api_src_dir}/controls/popup/popup.cpp\r
-  ${devel_api_src_dir}/controls/shadow-view/shadow-view.cpp\r
-  ${devel_api_src_dir}/controls/super-blur-view/super-blur-view.cpp\r
-  ${devel_api_src_dir}/controls/text-controls/text-editor-devel.cpp\r
-  ${devel_api_src_dir}/controls/text-controls/text-field-devel.cpp\r
-  ${devel_api_src_dir}/controls/text-controls/text-selection-popup.cpp\r
-  ${devel_api_src_dir}/controls/text-controls/text-selection-toolbar.cpp\r
-  ${devel_api_src_dir}/controls/tool-bar/tool-bar.cpp\r
-  ${devel_api_src_dir}/focus-manager/keyinput-focus-manager.cpp\r
-  ${devel_api_src_dir}/focus-manager/keyboard-focus-manager-devel.cpp\r
-  ${devel_api_src_dir}/image-loader/async-image-loader-devel.cpp\r
-  ${devel_api_src_dir}/image-loader/atlas-upload-observer.cpp\r
-  ${devel_api_src_dir}/image-loader/image-atlas.cpp\r
-  ${devel_api_src_dir}/image-loader/texture-manager.cpp\r
-  ${devel_api_src_dir}/styling/style-manager-devel.cpp\r
-  ${devel_api_src_dir}/transition-effects/cube-transition-cross-effect.cpp\r
-  ${devel_api_src_dir}/transition-effects/cube-transition-effect.cpp\r
-  ${devel_api_src_dir}/transition-effects/cube-transition-fold-effect.cpp\r
-  ${devel_api_src_dir}/transition-effects/cube-transition-wave-effect.cpp\r
-  ${devel_api_src_dir}/visual-factory/transition-data.cpp\r
-  ${devel_api_src_dir}/visual-factory/visual-factory.cpp\r
-  ${devel_api_src_dir}/visual-factory/visual-base.cpp\r
-  ${devel_api_src_dir}/controls/gaussian-blur-view/gaussian-blur-view.cpp\r
-)\r
-\r
-#internal\r
-SET(internal_src_dir dali-toolkit/internal )\r
-\r
-SET( SOURCES ${SOURCES}\r
-   ${internal_src_dir}/builder/builder-animations.cpp\r
-   ${internal_src_dir}/builder/builder-impl.cpp\r
-   ${internal_src_dir}/builder/builder-impl-debug.cpp\r
-   ${internal_src_dir}/builder/builder-set-property.cpp\r
-   ${internal_src_dir}/builder/builder-signals.cpp\r
-   ${internal_src_dir}/builder/json-parser-state.cpp\r
-   ${internal_src_dir}/builder/json-parser-impl.cpp\r
-   ${internal_src_dir}/builder/style.cpp\r
-   ${internal_src_dir}/builder/tree-node-manipulator.cpp\r
-   ${internal_src_dir}/builder/replacement.cpp\r
-   ${internal_src_dir}/visuals/animated-image/animated-image-visual.cpp\r
-   ${internal_src_dir}/visuals/animated-image/image-cache.cpp\r
-   ${internal_src_dir}/visuals/animated-image/fixed-image-cache.cpp\r
-   ${internal_src_dir}/visuals/animated-image/rolling-image-cache.cpp\r
-   ${internal_src_dir}/visuals/animated-image/rolling-gif-image-cache.cpp\r
-   ${internal_src_dir}/visuals/border/border-visual.cpp\r
-   ${internal_src_dir}/visuals/color/color-visual.cpp\r
-   ${internal_src_dir}/visuals/gradient/gradient-visual.cpp\r
-   ${internal_src_dir}/visuals/gradient/gradient.cpp\r
-   ${internal_src_dir}/visuals/gradient/linear-gradient.cpp\r
-   ${internal_src_dir}/visuals/gradient/radial-gradient.cpp\r
-   ${internal_src_dir}/visuals/animated-gradient/animated-gradient-visual.cpp\r
-   ${internal_src_dir}/visuals/image-atlas-manager.cpp\r
-   ${internal_src_dir}/visuals/image/image-visual.cpp\r
-   ${internal_src_dir}/visuals/mesh/mesh-visual.cpp\r
-   ${internal_src_dir}/visuals/npatch-loader.cpp\r
-   ${internal_src_dir}/visuals/npatch/npatch-visual.cpp\r
-   ${internal_src_dir}/visuals/primitive/primitive-visual.cpp\r
-   ${internal_src_dir}/visuals/svg/svg-rasterize-thread.cpp\r
-   ${internal_src_dir}/visuals/svg/svg-visual.cpp\r
-   ${internal_src_dir}/visuals/text/text-visual.cpp\r
-   ${internal_src_dir}/visuals/transition-data-impl.cpp\r
-   ${internal_src_dir}/visuals/texture-manager-impl.cpp\r
-   ${internal_src_dir}/visuals/texture-upload-observer.cpp\r
-   ${internal_src_dir}/visuals/image-visual-shader-factory.cpp\r
-   ${internal_src_dir}/visuals/visual-base-data-impl.cpp\r
-   ${internal_src_dir}/visuals/visual-base-impl.cpp\r
-   ${internal_src_dir}/visuals/visual-factory-cache.cpp\r
-   ${internal_src_dir}/visuals/visual-factory-impl.cpp\r
-   ${internal_src_dir}/visuals/visual-string-constants.cpp\r
-   ${internal_src_dir}/visuals/visual-url.cpp\r
-   ${internal_src_dir}/visuals/wireframe/wireframe-visual.cpp\r
-   ${internal_src_dir}/controls/alignment/alignment-impl.cpp\r
-   ${internal_src_dir}/controls/bloom-view/bloom-view-impl.cpp\r
-   ${internal_src_dir}/controls/bubble-effect/bubble-emitter-impl.cpp\r
-   ${internal_src_dir}/controls/bubble-effect/bubble-renderer.cpp\r
-   ${internal_src_dir}/controls/buttons/button-impl.cpp\r
-   ${internal_src_dir}/controls/buttons/check-box-button-impl.cpp\r
-   ${internal_src_dir}/controls/buttons/push-button-impl.cpp\r
-   ${internal_src_dir}/controls/buttons/radio-button-impl.cpp\r
-   ${internal_src_dir}/controls/buttons/toggle-button-impl.cpp\r
-   ${internal_src_dir}/controls/control/control-data-impl.cpp\r
-   ${internal_src_dir}/controls/control/control-debug.cpp\r
-   ${internal_src_dir}/controls/effects-view/effects-view-impl.cpp\r
-   ${internal_src_dir}/controls/flex-container/flex-container-impl.cpp\r
-   ${internal_src_dir}/controls/gaussian-blur-view/gaussian-blur-view-impl.cpp\r
-   ${internal_src_dir}/controls/image-view/image-view-impl.cpp\r
-   ${internal_src_dir}/controls/magnifier/magnifier-impl.cpp\r
-   ${internal_src_dir}/controls/navigation-view/navigation-view-impl.cpp\r
-   ${internal_src_dir}/controls/popup/confirmation-popup-impl.cpp\r
-   ${internal_src_dir}/controls/model3d-view/model3d-view-impl.cpp\r
-   ${internal_src_dir}/controls/model3d-view/obj-loader.cpp\r
-   ${internal_src_dir}/controls/popup/popup-impl.cpp\r
-   ${internal_src_dir}/controls/page-turn-view/page-turn-portrait-view-impl.cpp\r
-   ${internal_src_dir}/controls/page-turn-view/page-turn-effect.cpp\r
-   ${internal_src_dir}/controls/page-turn-view/page-turn-landscape-view-impl.cpp\r
-   ${internal_src_dir}/controls/page-turn-view/page-turn-view-impl.cpp\r
-   ${internal_src_dir}/controls/progress-bar/progress-bar-impl.cpp\r
-   ${internal_src_dir}/controls/scroll-bar/scroll-bar-impl.cpp\r
-   ${internal_src_dir}/controls/scrollable/bouncing-effect-actor.cpp\r
-   ${internal_src_dir}/controls/scrollable/item-view/depth-layout.cpp\r
-   ${internal_src_dir}/controls/scrollable/item-view/grid-layout.cpp\r
-   ${internal_src_dir}/controls/scrollable/item-view/item-view-impl.cpp\r
-   ${internal_src_dir}/controls/scrollable/item-view/spiral-layout.cpp\r
-   ${internal_src_dir}/controls/scrollable/scrollable-impl.cpp\r
-   ${internal_src_dir}/controls/scrollable/scroll-view/scroll-base-impl.cpp\r
-   ${internal_src_dir}/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.cpp\r
-   ${internal_src_dir}/controls/scrollable/scroll-view/scroll-view-effect-impl.cpp\r
-   ${internal_src_dir}/controls/scrollable/scroll-view/scroll-view-impl.cpp\r
-   ${internal_src_dir}/controls/scrollable/scroll-view/scroll-view-page-path-effect-impl.cpp\r
-   ${internal_src_dir}/controls/shadow-view/shadow-view-impl.cpp\r
-   ${internal_src_dir}/controls/slider/slider-impl.cpp\r
-   ${internal_src_dir}/controls/super-blur-view/super-blur-view-impl.cpp\r
-   ${internal_src_dir}/controls/table-view/table-view-impl.cpp\r
-   ${internal_src_dir}/controls/text-controls/text-editor-impl.cpp\r
-   ${internal_src_dir}/controls/text-controls/text-field-impl.cpp\r
-   ${internal_src_dir}/controls/text-controls/text-label-impl.cpp\r
-   ${internal_src_dir}/controls/text-controls/text-selection-popup-impl.cpp\r
-   ${internal_src_dir}/controls/text-controls/text-selection-toolbar-impl.cpp\r
-   ${internal_src_dir}/controls/tool-bar/tool-bar-impl.cpp\r
-   ${internal_src_dir}/controls/tooltip/tooltip.cpp\r
-   ${internal_src_dir}/controls/video-view/video-view-impl.cpp\r
-   ${internal_src_dir}/accessibility-manager/accessibility-manager-impl.cpp\r
-   ${internal_src_dir}/feedback/feedback-style.cpp\r
-   ${internal_src_dir}/focus-manager/keyboard-focus-manager-impl.cpp\r
-   ${internal_src_dir}/focus-manager/keyinput-focus-manager-impl.cpp\r
-   ${internal_src_dir}/helpers/color-conversion.cpp\r
-   ${internal_src_dir}/helpers/property-helper.cpp\r
-   ${internal_src_dir}/filters/blur-two-pass-filter.cpp\r
-   ${internal_src_dir}/filters/emboss-filter.cpp\r
-   ${internal_src_dir}/filters/image-filter.cpp\r
-   ${internal_src_dir}/filters/spread-filter.cpp\r
-   ${internal_src_dir}/image-loader/async-image-loader-impl.cpp\r
-   ${internal_src_dir}/image-loader/atlas-packer.cpp\r
-   ${internal_src_dir}/image-loader/image-atlas-impl.cpp\r
-   ${internal_src_dir}/image-loader/image-load-thread.cpp\r
-   ${internal_src_dir}/styling/style-manager-impl.cpp\r
-   ${internal_src_dir}/text/bidirectional-support.cpp\r
-   ${internal_src_dir}/text/character-set-conversion.cpp\r
-   ${internal_src_dir}/text/color-segmentation.cpp\r
-   ${internal_src_dir}/text/cursor-helper-functions.cpp\r
-   ${internal_src_dir}/text/glyph-metrics-helper.cpp\r
-   ${internal_src_dir}/text/logical-model-impl.cpp\r
-   ${internal_src_dir}/text/markup-processor.cpp\r
-   ${internal_src_dir}/text/markup-processor-color.cpp\r
-   ${internal_src_dir}/text/markup-processor-font.cpp\r
-   ${internal_src_dir}/text/markup-processor-helper-functions.cpp\r
-   ${internal_src_dir}/text/multi-language-support.cpp\r
-   ${internal_src_dir}/text/hidden-text.cpp\r
-   ${internal_src_dir}/text/property-string-parser.cpp\r
-   ${internal_src_dir}/text/segmentation.cpp\r
-   ${internal_src_dir}/text/shaper.cpp\r
-   ${internal_src_dir}/text/text-enumerations-impl.cpp\r
-   ${internal_src_dir}/text/text-controller.cpp\r
-   ${internal_src_dir}/text/text-controller-impl.cpp\r
-   ${internal_src_dir}/text/text-effects-style.cpp\r
-   ${internal_src_dir}/text/text-font-style.cpp\r
-   ${internal_src_dir}/text/text-io.cpp\r
-   ${internal_src_dir}/text/text-model.cpp\r
-   ${internal_src_dir}/text/text-scroller.cpp\r
-   ${internal_src_dir}/text/text-vertical-scroller.cpp\r
-   ${internal_src_dir}/text/text-view.cpp\r
-   ${internal_src_dir}/text/text-view-interface.cpp\r
-   ${internal_src_dir}/text/visual-model-impl.cpp\r
-   ${internal_src_dir}/text/decorator/text-decorator.cpp\r
-   ${internal_src_dir}/text/layouts/layout-engine.cpp\r
-   ${internal_src_dir}/text/multi-language-helper-functions.cpp\r
-   ${internal_src_dir}/text/multi-language-support-impl.cpp\r
-   ${internal_src_dir}/text/rendering/text-backend.cpp\r
-   ${internal_src_dir}/text/rendering/text-renderer.cpp\r
-   ${internal_src_dir}/text/rendering/atlas/text-atlas-renderer.cpp\r
-   ${internal_src_dir}/text/rendering/atlas/atlas-glyph-manager.cpp\r
-   ${internal_src_dir}/text/rendering/atlas/atlas-glyph-manager-impl.cpp\r
-   ${internal_src_dir}/text/rendering/atlas/atlas-manager.cpp\r
-   ${internal_src_dir}/text/rendering/atlas/atlas-manager-impl.cpp\r
-   ${internal_src_dir}/text/rendering/atlas/atlas-mesh-factory.cpp\r
-   ${internal_src_dir}/text/rendering/text-backend-impl.cpp\r
-   ${internal_src_dir}/text/rendering/text-typesetter.cpp\r
-   ${internal_src_dir}/text/rendering/view-model.cpp\r
-   ${internal_src_dir}/transition-effects/cube-transition-effect-impl.cpp\r
-   ${internal_src_dir}/transition-effects/cube-transition-cross-effect-impl.cpp\r
-   ${internal_src_dir}/transition-effects/cube-transition-fold-effect-impl.cpp\r
-   ${internal_src_dir}/transition-effects/cube-transition-wave-effect-impl.cpp\r
-   ${internal_src_dir}/text/xhtml-entities.cpp\r
-)\r
-\r
-#public-api\r
-SET( public_api_src_dir dali-toolkit/public-api )\r
-\r
-SET( SOURCES ${SOURCES}\r
-  ${public_api_src_dir}/controls/control-impl.cpp\r
-  ${public_api_src_dir}/controls/control.cpp\r
-  ${public_api_src_dir}/controls/alignment/alignment.cpp\r
-  ${public_api_src_dir}/controls/buttons/button.cpp\r
-  ${public_api_src_dir}/controls/buttons/check-box-button.cpp\r
-  ${public_api_src_dir}/controls/buttons/push-button.cpp\r
-  ${public_api_src_dir}/controls/buttons/radio-button.cpp\r
-  ${public_api_src_dir}/controls/flex-container/flex-container.cpp\r
-  ${public_api_src_dir}/controls/image-view/image-view.cpp\r
-  ${public_api_src_dir}/controls/model3d-view/model3d-view.cpp\r
-  ${public_api_src_dir}/controls/progress-bar/progress-bar.cpp\r
-  ${public_api_src_dir}/controls/scroll-bar/scroll-bar.cpp\r
-  ${public_api_src_dir}/controls/scrollable/item-view/default-item-layout.cpp\r
-  ${public_api_src_dir}/controls/scrollable/item-view/item-layout.cpp\r
-  ${public_api_src_dir}/controls/scrollable/item-view/item-view.cpp\r
-  ${public_api_src_dir}/controls/scrollable/scroll-view/scroll-view-constraints.cpp\r
-  ${public_api_src_dir}/controls/scrollable/scroll-view/scroll-view-effect.cpp\r
-  ${public_api_src_dir}/controls/scrollable/scroll-view/scroll-view-page-path-effect.cpp\r
-  ${public_api_src_dir}/controls/scrollable/scroll-view/scroll-view.cpp\r
-  ${public_api_src_dir}/controls/scrollable/scrollable.cpp\r
-  ${public_api_src_dir}/controls/slider/slider.cpp\r
-  ${public_api_src_dir}/controls/table-view/table-view.cpp\r
-  ${public_api_src_dir}/controls/text-controls/text-editor.cpp\r
-  ${public_api_src_dir}/controls/text-controls/text-label.cpp\r
-  ${public_api_src_dir}/controls/text-controls/text-field.cpp\r
-  ${public_api_src_dir}/controls/video-view/video-view.cpp\r
-  ${public_api_src_dir}/image-loader/async-image-loader.cpp\r
-  ${public_api_src_dir}/image-loader/sync-image-loader.cpp\r
-  ${public_api_src_dir}/styling/style-manager.cpp\r
-  ${public_api_src_dir}/focus-manager/keyboard-focus-manager.cpp\r
-  ${public_api_src_dir}/dali-toolkit-version.cpp\r
-  ${public_api_src_dir}/enums.cpp\r
-)\r
-\r
-link_directories(\r
-../windows-dependencies/ExLib\r
-../bin\r
-)\r
-\r
-SET( SOURCES ${SOURCES}\r
-  dali-toolkit/third-party/nanosvg/nanosvg.cc\r
-  dali-toolkit/third-party/nanosvg/nanosvgrast.cc\r
-  dali-toolkit/third-party/yoga/Yoga.cpp\r
-  dali-toolkit/third-party/yoga/YGStyle.cpp\r
-  dali-toolkit/third-party/yoga/YGNodePrint.cpp\r
-  dali-toolkit/third-party/yoga/YGNode.cpp\r
-  dali-toolkit/third-party/yoga/YGLayout.cpp\r
-  dali-toolkit/third-party/yoga/YGFloatOptional.cpp\r
-  dali-toolkit/third-party/yoga/YGEnums.cpp\r
-  dali-toolkit/third-party/yoga/YGConfig.cpp\r
-  dali-toolkit/third-party/yoga/Utils.cpp\r
-)\r
-set(LIBRARY_OUTPUT_PATH ../../../bin)\r
-\r
-ADD_LIBRARY(dali-toolkit SHARED ${SOURCES})\r
-\r
-target_link_libraries(dali-toolkit dali-core.lib)\r
-target_link_libraries(dali-toolkit dali-adaptor.lib)\r
-target_link_libraries(dali-toolkit dlfcn.lib)\r
-target_link_libraries(dali-toolkit WindowsPlatform.lib)\r
-\r
-add_dependencies(dali-toolkit dali-core)\r
-add_dependencies(dali-toolkit dali-adaptor)\r
-\r
-#add link library\r
-#TARGET_LINK_LIBRARIES(${FS_BUILD_BINARY_PREFIX}sqrt ${LIBRARIES})\r
index 647b9e8..2ab84e7 100755 (executable)
@@ -414,7 +414,7 @@ int UtcDaliGetClosestCursorIndex(void)
                                       CharacterHitTest::TAP, CharacterHitTest::TAP, CharacterHitTest::TAP, CharacterHitTest::TAP, CharacterHitTest::TAP, CharacterHitTest::TAP, CharacterHitTest::TAP };
   CharacterIndex logicalIndex04[] = {    0,  5u,  6u, 11u, 11u,
                                        12u, 16u, 17u, 21u, 21u,
-                                       22u, 25u, 30u, 32u, 35u, 33u, 40u,
+                                       22u, 25u, 31u, 32u, 35u, 34u, 40u,
                                        41u };
   bool isCharacterHit04[] = { false, true, true, true, false,
                               false, true, true, true, false,
@@ -453,7 +453,7 @@ int UtcDaliGetClosestCursorIndex(void)
                                       CharacterHitTest::TAP, CharacterHitTest::TAP, CharacterHitTest::TAP, CharacterHitTest::TAP, CharacterHitTest::TAP };
   CharacterIndex logicalIndex05[] = {    0,  10u,  19u,  28u,  39u,  44u,
                                        45u,  49u,  59u,  66u,  78u,  87u,
-                                       89u,  96u, 107u, 115u, 124u, 133u,
+                                       89u,  96u, 106u, 115u, 124u, 133u,
                                       134u, 145u, 154u, 162u, 171u, 179u,
                                       180u, 184u, 191u, 203u, 212u,
                                       221u, 222u, 233u, 240u, 251u, 265u };
index 763a5ac..05226d4 100755 (executable)
@@ -199,7 +199,7 @@ bool LayoutTextTest( const LayoutTextData& data )
   {
     const Vector2& position = *( glyphPositions.Begin() + index );
 
-    if( fabsf( position.x - *( data.positions + 2u * index ) ) > Math::MACHINE_EPSILON_1000 )
+    if( fabsf( std::round( position.x ) - *( data.positions + 2u * index ) ) > Math::MACHINE_EPSILON_1000 )
     {
       std::cout << "  Different position for glyph " << index << " x : " << position.x << ", expected : " << *( data.positions + 2u * index ) << std::endl;
       return false;
index 07779ea..f243f08 100755 (executable)
@@ -583,13 +583,13 @@ int UtcDaliTextViewModelElideText02(void)
   Size textSize00( 100.f, 100.f );
 
   Size textSize01( 80.f, 100.f );
-  float positions01[] = { 0.f, 8.f, 17.f, 27.f, 35.f, 43.f, 47.f, 58.f, 64.0f };
+  float positions01[] = { 0.f, 8.f, 16.f, 26.f, 34.f, 43.f, 47.f, 58.f, 64.0f };
 
   Size textSize02( 80.f, 100.f );
-  float positions02[] = { 69.f, 63.f, 58.f, 49.f, 45.f, 41.f, 32.f, 23.f, 8.f };
+  float positions02[] = { 69.f, 63.f, 58.f, 50.f, 45.f, 41.f, 32.f, 23.f, 9.f };
 
   Size textSize03( 80.f, 100.f );
-  float positions03[] = { 55.f, 48.f, 44.f, 42.f, 36.f, 29.f, 26.f, 20.f, 13.f, 8.f, 4.f, 6.f };
+  float positions03[] = { 54.f, 47.f, 44.f, 41.f, 36.f, 29.f, 25.f, 20.f, 13.f, 8.f, 4.f, 6.f };
 
   Size textSize04( 80.f, 10.f );
   float positions04[] = { 2.f };
index 957681e..4a5e76c 100755 (executable)
@@ -16,6 +16,7 @@
  */
 
 #include <dali/devel-api/adaptor-framework/video-player.h>
+#include <dali/devel-api/adaptor-framework/video-sync-mode.h>
 #include <dali/public-api/object/any.h>
 #include <dali/public-api/object/base-object.h>
 #include <toolkit-application.h>
@@ -98,6 +99,15 @@ public:
     return NULL;
   }
 
+  void StartSynchronization()
+  {
+
+  }
+
+  void FinishSynchronization()
+  {
+
+  }
 
 public:
 
@@ -157,6 +167,13 @@ VideoPlayer VideoPlayer::New()
   return VideoPlayer( player );
 }
 
+VideoPlayer VideoPlayer::New( Dali::Actor actor, Dali::VideoSyncMode syncMode )
+{
+  Internal::Adaptor::VideoPlayer* player = new Internal::Adaptor::VideoPlayer();
+
+  return VideoPlayer( player );
+}
+
 VideoPlayer::VideoPlayer( const VideoPlayer& player )
 : BaseHandle( player )
 {
@@ -298,5 +315,15 @@ Any VideoPlayer::GetMediaPlayer()
   return Internal::Adaptor::GetImplementation( *this ).GetMediaPlayer();
 }
 
+void VideoPlayer::StartSynchronization()
+{
+  Internal::Adaptor::GetImplementation( *this ).StartSynchronization();
+}
+
+void VideoPlayer::FinishSynchronization()
+{
+  Internal::Adaptor::GetImplementation( *this ).FinishSynchronization();
+}
+
 } // namespace Dali;
 
index 72cbe65..3c01e99 100644 (file)
@@ -198,6 +198,16 @@ Window DownCast( BaseHandle handle )
   return Dali::Window( windowImpl );
 }
 
+void AddFrameRenderedCallback( Window window, std::unique_ptr< CallbackBase > callback, int32_t frameId )
+{
+  CallbackBase::Execute( *callback, frameId );
+}
+
+void AddFramePresentedCallback( Window window, std::unique_ptr< CallbackBase > callback, int32_t frameId )
+{
+  CallbackBase::Execute( *callback, frameId );
+}
+
 EventProcessingFinishedSignalType& EventProcessingFinishedSignal( Window window )
 {
   return GetImplementation( window ).GetScene().EventProcessingFinishedSignal();
index 2ff4370..000923a 100644 (file)
@@ -91,6 +91,8 @@ typedef Signal< void ( Window, bool ) > VisibilityChangedSignalType;
 
 Dali::Window Get( Actor actor );
 Dali::Window DownCast(  BaseHandle handle );
+void AddFrameRenderedCallback( Window window, std::unique_ptr< CallbackBase > callback, int32_t frameId );
+void AddFramePresentedCallback( Window window, std::unique_ptr< CallbackBase > callback, int32_t frameId );
 
 EventProcessingFinishedSignalType& EventProcessingFinishedSignal( Window window );
 KeyEventGeneratedSignalType& KeyEventGeneratedSignal( Dali::Window window );
index c08e360..1f1b2bc 100644 (file)
@@ -512,6 +512,18 @@ int UtcDaliControlBackgroundColorRendererCount(void)
   DALI_TEST_EQUALS( control.GetRendererCount(), 1u, TEST_LOCATION );
   DALI_TEST_EQUALS( GetControlBackgroundColor( control ), semiTransparent, TEST_LOCATION );
 
+  Renderer renderer = control.GetRendererAt( 0 );
+  DALI_TEST_CHECK( renderer );
+
+  tet_infoline( "Set semi transparent alpha with positive RGB values, renderer should not be changed" );
+  const Vector4 newColor( 1.0f, 1.0f, 0.5f, 0.5f );
+  control.SetBackgroundColor( newColor );
+  application.SendNotification();
+  application.Render();
+  DALI_TEST_EQUALS( control.GetRendererCount(), 1u, TEST_LOCATION );
+  DALI_TEST_EQUALS( GetControlBackgroundColor( control ), newColor, TEST_LOCATION );
+  DALI_TEST_EQUALS( renderer, control.GetRendererAt( 0 ), TEST_LOCATION );
+
   tet_infoline( "Set transparent, ensure no renderers are created" );
   control.SetBackgroundColor( Color::TRANSPARENT );
   application.SendNotification();
index e15a99a..24651f6 100644 (file)
@@ -21,6 +21,7 @@
 #include <dali-toolkit/dali-toolkit.h>
 #include <dali-toolkit/public-api/controls/video-view/video-view.h>
 #include <dali-toolkit/devel-api/controls/video-view/video-view-devel.h>
+#include <dali/devel-api/adaptor-framework/video-sync-mode.h>
 
 using namespace Dali;
 using namespace Dali::Toolkit;
@@ -31,6 +32,7 @@ const char* const TEST_FILE( "test.mp4" );
 const char* const VOLUME_LEFT( "volumeLeft" );
 const char* const VOLUME_RIGHT( "volumeRight" );
 const char* const RENDERING_TYPE( "renderingTarget" );
+const char* const DUMMY_STRING( "dummy string" );
 
 const char* VERTEX_SHADER = DALI_COMPOSE_SHADER(
   attribute mediump vec2 aPosition;\n
@@ -106,7 +108,8 @@ int UtcDaliVideoViewNew(void)
   Toolkit::VideoView view = Toolkit::VideoView::New();
   DALI_TEST_CHECK( view );
 
-  Toolkit::VideoView view2 = Toolkit::VideoView::New( "" );
+  const std::string url( DUMMY_STRING );
+  Toolkit::VideoView view2 = Toolkit::VideoView::New( url );
   DALI_TEST_CHECK( view2 );
   END_TEST;
 }
@@ -546,7 +549,7 @@ int UtcDaliVideoViewCustomShader(void)
   ToolkitTestApplication application;
   tet_infoline( "VideoView with custom shader" );
 
-  VideoView view = VideoView::New();
+  VideoView view = VideoView::New( false );
   DALI_TEST_CHECK( view );
 
   ToolkitApplication::DECODED_IMAGES_SUPPORTED = true;
@@ -597,3 +600,149 @@ int UtcDaliVideoViewCustomShader(void)
 
   END_TEST;
 }
+
+// Functor to test whether a Finish signal is emitted
+struct AnimationFinishCheck
+{
+  AnimationFinishCheck(bool& signalReceived)
+  : mSignalReceived(signalReceived)
+  {
+  }
+
+  void operator()(Animation& animation)
+  {
+    mSignalReceived = true;
+  }
+
+  void Reset()
+  {
+    mSignalReceived = false;
+  }
+
+  void CheckSignalReceived()
+  {
+    if (!mSignalReceived)
+    {
+      tet_printf("Expected Finish signal was not received\n");
+      tet_result(TET_FAIL);
+    }
+    else
+    {
+      tet_result(TET_PASS);
+    }
+  }
+
+  void CheckSignalNotReceived()
+  {
+    if (mSignalReceived)
+    {
+      tet_printf("Unexpected Finish signal was received\n");
+      tet_result(TET_FAIL);
+    }
+    else
+    {
+      tet_result(TET_PASS);
+    }
+  }
+
+  bool& mSignalReceived; // owned by individual tests
+};
+
+int UtcDaliVideoViewSyncAniamtionForCoverage(void)
+{
+  ToolkitTestApplication application;
+
+  VideoView videoView = DevelVideoView::New( Dali::VideoSyncMode::ENABLED );
+  DALI_TEST_CHECK( videoView );
+
+  // Build the animation
+  float durationSeconds(1.0f);
+  Animation animation = Animation::New(durationSeconds);
+
+  // Start the animation
+  Vector3 targetPosition(10.0f, 10.0f, 10.0f);
+  animation.AnimateTo(Property(videoView, Actor::Property::POSITION), targetPosition, AlphaFunction::LINEAR);
+  DevelVideoView::PlayAnimation( videoView, animation );
+
+  bool signalReceived(false);
+  AnimationFinishCheck finishCheck(signalReceived);
+  animation.FinishedSignal().Connect(&application, finishCheck);
+
+  application.SendNotification();
+  application.Render(static_cast<unsigned int>(durationSeconds*1000.0f) - 1u/*just less than the animation duration*/);
+
+  // We didn't expect the animation to finish yet
+  application.SendNotification();
+  finishCheck.CheckSignalNotReceived();
+
+  application.Render(2u/*just beyond the animation duration*/);
+
+  // We did expect the animation to finish
+  application.SendNotification();
+  finishCheck.CheckSignalReceived();
+  DALI_TEST_EQUALS( targetPosition, videoView.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), TEST_LOCATION );
+
+  // Restart the animation, with a different duration
+  finishCheck.Reset();
+
+  END_TEST;
+}
+
+int UtcDaliVideoViewASyncAniamtionForCoverage(void)
+{
+  ToolkitTestApplication application;
+
+  VideoView videoView = DevelVideoView::New( Dali::VideoSyncMode::DISABLED );
+  DALI_TEST_CHECK( videoView );
+
+  // Build the animation
+  float durationSeconds(1.0f);
+  Animation animation = Animation::New(durationSeconds);
+
+  // Start the animation
+  Vector3 targetPosition(10.0f, 10.0f, 10.0f);
+  animation.AnimateTo(Property(videoView, Actor::Property::POSITION), targetPosition, AlphaFunction::LINEAR);
+  DevelVideoView::PlayAnimation( videoView, animation );
+
+  bool signalReceived(false);
+  AnimationFinishCheck finishCheck(signalReceived);
+  animation.FinishedSignal().Connect(&application, finishCheck);
+
+  application.SendNotification();
+  application.Render(static_cast<unsigned int>(durationSeconds*1000.0f) - 1u/*just less than the animation duration*/);
+
+  // We didn't expect the animation to finish yet
+  application.SendNotification();
+  finishCheck.CheckSignalNotReceived();
+
+  application.Render(2u/*just beyond the animation duration*/);
+
+  // We did expect the animation to finish
+  application.SendNotification();
+  finishCheck.CheckSignalReceived();
+  DALI_TEST_EQUALS( targetPosition, videoView.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), TEST_LOCATION );
+
+  // Restart the animation, with a different duration
+  finishCheck.Reset();
+
+  END_TEST;
+}
+
+int UtcDaliVideoViewResizeWithSynchronization(void)
+{
+  ToolkitTestApplication application;
+  VideoView videoView = DevelVideoView::New( Dali::VideoSyncMode::ENABLED );
+  DALI_TEST_CHECK( videoView );
+
+  application.GetScene().Add( videoView );
+
+  Vector3 vector(50.0f, 200.0f, 0.0f);
+  videoView.SetProperty( Actor::Property::SIZE, vector );
+
+  application.SendNotification();
+  application.Render();
+
+  DALI_TEST_CHECK(vector == videoView.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ));
+
+  END_TEST;
+}
index 317d34d..41c6a30 100755 (executable)
@@ -33,6 +33,16 @@ Any GetMediaPlayer( VideoView videoView )
   return Dali::Toolkit::GetImpl( videoView ).GetMediaPlayer();\r
 }\r
 \r
+VideoView New( VideoSyncMode syncMode )\r
+{\r
+  VideoView videoView = Internal::VideoView::New( syncMode );\r
+  return videoView;\r
+}\r
+\r
+void PlayAnimation( VideoView videoView, Animation animation )\r
+{\r
+  Dali::Toolkit::GetImpl( videoView ).PlayAnimation( animation );\r
+}\r
 \r
 } // namespace DevelVideoView\r
 \r
index b121506..78edb3b 100755 (executable)
  *\r
  */\r
 \r
+// EXTERNAL INCLUDES\r
+#include <dali/devel-api/adaptor-framework/video-sync-mode.h>\r
+\r
 // INTERNAL INCLUDES\r
+#include <dali/public-api/animation/animation.h>\r
 #include <dali-toolkit/public-api/controls/video-view/video-view.h>\r
 #include <dali/public-api/object/any.h>\r
 \r
@@ -31,7 +35,6 @@ namespace Toolkit
 namespace DevelVideoView\r
 {\r
 \r
-\r
 /**\r
  * @brief Returns the internal media player.\r
  * @param[in] videoView The current VideoView\r
@@ -39,6 +42,26 @@ namespace DevelVideoView
  */\r
 DALI_TOOLKIT_API Any GetMediaPlayer( VideoView videoView );\r
 \r
+/**\r
+ * @brief Creates an initialized VideoView with synchronization mode.\r
+ *\r
+ * The syncMode is for synchronization between UI(transparent hole) and underlay video.\r
+ *\r
+ * @param[in] syncMode The synchronization mode between the UI (transparent hole) and VideoPlayer\r
+ * @return A handle to a newly allocated Dali VideoView\r
+ */\r
+DALI_TOOLKIT_API VideoView New( VideoSyncMode syncMode );\r
+\r
+/**\r
+ * @brief Play the resize or move animation with synchronization between UI(transparent hole) and video player\r
+ *\r
+ * The resize and move animation's play() function is called.\r
+ * If the animation is played, UI and video player will work synchronization.\r
+ *\r
+ * @param[in] videoView The current VideoView\r
+ * @param[in] animation The animation for video view's resize or move.\r
+ */\r
+DALI_TOOLKIT_API void PlayAnimation( VideoView videoView, Animation animation );\r
 \r
 } // namespace DevelVideoView\r
 \r
index 4df34bb..7315172 100755 (executable)
@@ -154,6 +154,7 @@ SET( devel_api_visuals_header_files
   ${devel_api_src_dir}/visuals/animated-vector-image-visual-signals-devel.h
   ${devel_api_src_dir}/visuals/arc-visual-actions-devel.h
   ${devel_api_src_dir}/visuals/arc-visual-properties-devel.h
+  ${devel_api_src_dir}/visuals/color-visual-actions-devel.h
   ${devel_api_src_dir}/visuals/color-visual-properties-devel.h
   ${devel_api_src_dir}/visuals/image-visual-properties-devel.h
   ${devel_api_src_dir}/visuals/image-visual-actions-devel.h
diff --git a/dali-toolkit/devel-api/visuals/color-visual-actions-devel.h b/dali-toolkit/devel-api/visuals/color-visual-actions-devel.h
new file mode 100644 (file)
index 0000000..daffa3b
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef DALI_TOOLKIT_DEVEL_API_VISUALS_COLOR_VISUAL_ACTIONS_DEVEL_H
+#define DALI_TOOLKIT_DEVEL_API_VISUALS_COLOR_VISUAL_ACTIONS_DEVEL_H
+
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace DevelColorVisual
+{
+
+/**
+ * @brief Actions that the color visual can perform. These actions are called through the Visual::Base::DoAction API.
+ */
+namespace Action
+{
+/**
+ * @brief The available actions for this visual
+ */
+enum Type
+{
+  /**
+   * @brief Update the properties of the visual.
+   */
+  UPDATE_PROPERTY = 0
+};
+
+} // namespace Actions
+
+} // namespace DevelVisual
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // DALI_TOOLKIT_DEVEL_API_VISUALS_COLOR_VISUAL_ACTIONS_DEVEL_H
index a0a696a..2e34f27 100644 (file)
@@ -23,6 +23,7 @@
 #include <dali/public-api/object/type-registry.h>
 #include <dali/public-api/object/type-registry-helper.h>
 #include <dali/devel-api/scripting/scripting.h>
+#include <dali/devel-api/adaptor-framework/window-devel.h>
 #include <dali/public-api/adaptor-framework/native-image-source.h>
 #include <dali/integration-api/debug.h>
 #include <dali/public-api/animation/constraint.h>
@@ -130,26 +131,27 @@ const char* FRAGMENT_SHADER_TEXTURE = DALI_COMPOSE_SHADER(
 
 } // anonymous namepsace
 
-VideoView::VideoView()
+VideoView::VideoView( Dali::VideoSyncMode syncMode )
 : Control( ControlBehaviour( ACTOR_BEHAVIOUR_DEFAULT | DISABLE_STYLE_CHANGE_SIGNALS ) ),
   mCurrentVideoPlayPosition( 0 ),
+  mFrameID( 0 ),
   mIsPlay( false ),
-  mIsUnderlay( true )
+  mIsUnderlay( true ),
+  mSyncMode( syncMode )
 {
-  mVideoPlayer = Dali::VideoPlayer::New();
 }
 
 VideoView::~VideoView()
 {
 }
 
-Toolkit::VideoView VideoView::New()
+Toolkit::VideoView VideoView::New( VideoSyncMode syncMode )
 {
-  VideoView* impl = new VideoView();
+  VideoView* impl = new VideoView( syncMode );
   Toolkit::VideoView handle = Toolkit::VideoView( *impl );
 
+  impl->mVideoPlayer = Dali::VideoPlayer::New( impl->Self(), syncMode );
   impl->Initialize();
-
   return handle;
 }
 
@@ -565,6 +567,16 @@ void VideoView::OnStageDisconnection()
   Control::OnStageDisconnection();
 }
 
+void VideoView::OnSizeSet( const Vector3& targetSize )
+{
+  if( mIsUnderlay && mSyncMode == Dali::VideoSyncMode::ENABLED )
+  {
+    SetFrameRenderCallback();
+    mVideoPlayer.StartSynchronization();
+  }
+  Control::OnSizeSet( targetSize );
+}
+
 Vector3 VideoView::GetNaturalSize()
 {
   Vector3 size;
@@ -728,7 +740,9 @@ void VideoView::SetNativeImageTarget()
 
 void VideoView::UpdateDisplayArea( Dali::PropertyNotification& source )
 {
-  if( !mIsUnderlay )
+  // If mSyncMode is enabled, Video player's size and poistion is updated in Video player's constraint.
+  // Because video view and player should be work syncronization.
+  if( !mIsUnderlay || mSyncMode == Dali::VideoSyncMode::ENABLED )
   {
     return;
   }
@@ -812,6 +826,22 @@ Any VideoView::GetMediaPlayer()
   return mVideoPlayer.GetMediaPlayer();
 }
 
+void VideoView::OnAnimationFinished( Animation& animation )
+{
+  // send desync
+  SetFrameRenderCallback();
+}
+
+void VideoView::PlayAnimation( Dali::Animation animation )
+{
+  if( mIsUnderlay && mSyncMode == Dali::VideoSyncMode::ENABLED )
+  {
+    mVideoPlayer.StartSynchronization();
+    animation.FinishedSignal().Connect( this, &VideoView::OnAnimationFinished );
+  }
+  animation.Play();
+}
+
 Dali::Shader VideoView::CreateShader()
 {
   std::string fragmentShader = "#extension GL_OES_EGL_image_external:require\n";
@@ -881,6 +911,23 @@ void VideoView::ApplyBackupProperties()
   }
 }
 
+void VideoView::FrameRenderCallback( int frameID )
+{
+  // send desync
+  if( frameID == mFrameID )
+  {
+    mVideoPlayer.FinishSynchronization();
+    mFrameID = 0;
+  }
+}
+
+void VideoView::SetFrameRenderCallback()
+{
+  mFrameID++;
+  DevelWindow::AddFrameRenderedCallback( DevelWindow::Get( Self() ),
+                                         std::unique_ptr< CallbackBase >( MakeCallback( this, &VideoView::FrameRenderCallback ) ), mFrameID );
+}
+
 } // namespace Internal
 
 } // namespace toolkit
index 200ab10..f10c1c0 100755 (executable)
@@ -27,6 +27,7 @@
 #include <dali/public-api/rendering/texture.h>
 #include <dali/devel-api/adaptor-framework/video-player.h>
 #include <dali/integration-api/adaptor-framework/trigger-event-factory.h>
+#include <dali/devel-api/adaptor-framework/video-sync-mode.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/controls/control-impl.h>
@@ -47,16 +48,16 @@ class VideoView: public Control
 {
 protected:
 
-  VideoView();
+  VideoView( Dali::VideoSyncMode syncMode );
 
   virtual ~VideoView();
 
 public:
 
   /**
-   * @copydoc Toolkit::VideoView::New()
+   * @copydoc Toolkit::DevelVideoView::New()
    */
-  static Toolkit::VideoView New();
+  static Toolkit::VideoView New( VideoSyncMode syncMode );
 
   /**
    * @brief Sets a video url to play.
@@ -255,6 +256,17 @@ public:
    */
   Any GetMediaPlayer();
 
+  /**
+   * @brief Play the resize or move animation with synchronization between UI(transparent hole) and video player
+   *
+   * The resize and move animation's play() function is called.
+   * If the animation is played, UI and video player will work synchronization.
+   *
+   * @param[in] videoView The current VideoView
+   * @param[in] animation The animation for video view's resize or move.
+   */
+  void PlayAnimation( Dali::Animation animation );
+
 private: // From Control
 
   /**
@@ -273,6 +285,11 @@ private: // From Control
   virtual void OnStageDisconnection();
 
   /**
+   * @copydoc Toolkit::Control::OnSizeSet()
+   */
+  virtual void OnSizeSet( const Vector3& targetSize );
+
+  /**
    * @copydoc Toolkit::Control::GetNaturalSize
    */
   virtual Vector3 GetNaturalSize();
@@ -330,6 +347,32 @@ private:
    */
   void ApplyBackupProperties();
 
+  /*
+   * @brief FrameRender's callback function
+   *
+   * This function means the resize/move animation is finished,
+   * so Ui and video player's synchronization can be finished.
+   *
+   */
+  void FrameRenderCallback( int frameID );
+
+  /*
+   * @brief Set frameRender Callback function
+   *
+   * This function is added for listenr the resize/move animation is finished,
+   *
+   */
+  void SetFrameRenderCallback();
+
+
+  /*
+   * @brief resize/move animation finished callback function
+   *
+   * This function is called the resize/move animation is finished,
+   *
+   */
+  void OnAnimationFinished( Dali::Animation& animation );
+
 private:
 
   Dali::VideoPlayer mVideoPlayer;
@@ -348,8 +391,12 @@ private:
   Dali::Property::Map mPropertyBackup;
 
   int mCurrentVideoPlayPosition;
+  int mFrameID;
+
   bool mIsPlay;
   bool mIsUnderlay;
+
+  Dali::VideoSyncMode mSyncMode;
 };
 
 } // namespace Internal
index fb63d96..e13c842 100755 (executable)
@@ -670,7 +670,7 @@ struct Engine::Impl
       const GlyphInfo& glyph = *( glyphsBuffer + i );
       Vector2& position = *( glyphPositionsBuffer + i );
 
-      position.x = std::roundf( penX + glyph.xBearing );
+      position.x = penX + glyph.xBearing;
       position.y = -glyph.yBearing;
 
       penX += ( glyph.advance + interGlyphExtraAdvance );
@@ -732,7 +732,7 @@ struct Engine::Impl
         const GlyphInfo& glyph = *( glyphsBuffer + glyphIndex );
         Vector2& position = *( glyphPositionsBuffer + glyphIndex - layoutParameters.startGlyphIndex );
 
-        position.x = std::round( penX + glyph.xBearing );
+        position.x = penX + glyph.xBearing;
         position.y = -glyph.yBearing;
 
        penX += ( glyph.advance + layoutParameters.interGlyphExtraAdvance );
old mode 100644 (file)
new mode 100755 (executable)
index 3fd324d..a972810
@@ -41,6 +41,8 @@ namespace Internal
 AtlasGlyphManager::AtlasGlyphManager()
 {
   mAtlasManager = Dali::Toolkit::AtlasManager::New();
+  mSampler = Sampler::New();
+  mSampler.SetFilterMode( FilterMode::NEAREST, FilterMode::NEAREST );
 }
 
 void AtlasGlyphManager::Add( const Text::GlyphInfo& glyph,
@@ -58,6 +60,7 @@ void AtlasGlyphManager::Add( const Text::GlyphInfo& glyph,
     Dali::Texture atlas = mAtlasManager.GetAtlasContainer( slot.mAtlasId );
     TextureSet textureSet = TextureSet::New();
     textureSet.SetTexture( 0u, atlas );
+    textureSet.SetSampler( 0u, mSampler);
     mAtlasManager.SetTextures( slot.mAtlasId, textureSet );
   }
 
old mode 100644 (file)
new mode 100755 (executable)
index 3d2613e..e78b095
@@ -134,6 +134,7 @@ private:
   Dali::Toolkit::AtlasManager mAtlasManager;          ///> Atlas Manager created by GlyphManager
   std::vector< FontGlyphRecord > mFontGlyphRecords;
   Toolkit::AtlasGlyphManager::Metrics mMetrics;       ///> Metrics to pass back on GlyphManager status
+  Sampler mSampler;
 };
 
 } // namespace Internal
index 74ad4d2..86fa121 100644 (file)
@@ -26,6 +26,7 @@
 #include <dali-toolkit/public-api/visuals/color-visual-properties.h>
 #include <dali-toolkit/public-api/visuals/visual-properties.h>
 #include <dali-toolkit/devel-api/visuals/color-visual-properties-devel.h>
+#include <dali-toolkit/devel-api/visuals/color-visual-actions-devel.h>
 #include <dali-toolkit/internal/visuals/visual-factory-impl.h>
 #include <dali-toolkit/internal/visuals/visual-factory-cache.h>
 #include <dali-toolkit/internal/visuals/visual-string-constants.h>
@@ -282,6 +283,23 @@ void ColorVisual::OnSetTransform()
   }
 }
 
+void ColorVisual::OnDoAction( const Property::Index actionId, const Property::Value& attributes )
+{
+  // Check if action is valid for this visual type and perform action if possible
+  switch( actionId )
+  {
+    case DevelColorVisual::Action::UPDATE_PROPERTY:
+    {
+      Property::Map* map = attributes.GetMap();
+      if( map )
+      {
+        DoSetProperties( *map );
+      }
+      break;
+    }
+  }
+}
+
 void ColorVisual::InitializeRenderer()
 {
   Geometry geometry = mFactoryCache.GetGeometry( VisualFactoryCache::QUAD_GEOMETRY );
index 05c8ba9..16c65a7 100644 (file)
@@ -99,6 +99,11 @@ protected:
    */
   void OnSetTransform() override;
 
+  /**
+   * @copydoc Visual::Base::OnDoAction
+   */
+  void OnDoAction( const Property::Index actionId, const Property::Value& attributes ) override;
+
 private:
   /**
    * @brief Initialize the renderer with the geometry and shader from the cache, if not available, create and save to the cache for sharing.
index f17092f..3afa397 100755 (executable)
@@ -40,6 +40,7 @@
 #include <dali-toolkit/devel-api/controls/control-devel.h>
 #include <dali-toolkit/devel-api/focus-manager/keyinput-focus-manager.h>
 #include <dali-toolkit/devel-api/visuals/color-visual-properties-devel.h>
+#include <dali-toolkit/devel-api/visuals/color-visual-actions-devel.h>
 #include <dali-toolkit/internal/styling/style-manager-impl.h>
 #include <dali-toolkit/internal/visuals/color/color-visual.h>
 #include <dali-toolkit/internal/visuals/visual-string-constants.h>
@@ -71,17 +72,14 @@ void ChangeBackgroundColorVisual( Control& controlImpl, bool renderIfTransparent
   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( controlImpl );
 
   Toolkit::Visual::Base backgroundVisual = controlDataImpl.GetVisual( Toolkit::Control::Property::BACKGROUND );
-  if( backgroundVisual )
+  if( backgroundVisual && backgroundVisual.GetType() == Toolkit::Visual::COLOR )
   {
     Property::Map map;
     backgroundVisual.CreatePropertyMap( map );
-    Property::Value* typeValue = map.Find( Toolkit::Visual::Property::TYPE );
-    if( typeValue && typeValue->Get< int >() == Toolkit::Visual::COLOR )
-    {
-      // Only change it if it's a color visual
-      map[ Toolkit::DevelColorVisual::Property::RENDER_IF_TRANSPARENT ] = renderIfTransparent;
-      controlImpl.SetBackground( map );
-    }
+
+    // Only change it if it's a color visual
+    map[ Toolkit::DevelColorVisual::Property::RENDER_IF_TRANSPARENT ] = renderIfTransparent;
+    controlImpl.SetBackground( map );
   }
 }
 
@@ -170,16 +168,39 @@ const std::string& Control::GetStyleName() const
 void Control::SetBackgroundColor( const Vector4& color )
 {
   mImpl->mBackgroundColor = color;
+
   Property::Map map;
   map[ Toolkit::Visual::Property::TYPE ] = Toolkit::Visual::COLOR;
   map[ Toolkit::ColorVisual::Property::MIX_COLOR ] = color;
 
+  bool renderIfTransparent = false;
   int clippingMode = ClippingMode::DISABLED;
   if( ( Self().GetProperty( Actor::Property::CLIPPING_MODE ).Get( clippingMode ) ) &&
       ( clippingMode == ClippingMode::CLIP_CHILDREN ) )
   {
     // If clipping-mode is set to CLIP_CHILDREN, then force visual to add the render even if transparent
     map[ Toolkit::DevelColorVisual::Property::RENDER_IF_TRANSPARENT ] = true;
+    renderIfTransparent = true;
+  }
+
+  Toolkit::Visual::Base visual = mImpl->GetVisual( Toolkit::Control::Property::BACKGROUND );
+  if( visual && visual.GetType() == Toolkit::Visual::COLOR )
+  {
+    Property::Map visualMap;
+    visual.CreatePropertyMap( visualMap );
+
+    Property::Value* renderValue = visualMap.Find( Toolkit::DevelColorVisual::Property::RENDER_IF_TRANSPARENT );
+    Property::Value* colorValue = visualMap.Find( Toolkit::ColorVisual::Property::MIX_COLOR );
+    if( renderValue && colorValue )
+    {
+      if( ( renderValue->Get< bool >() == true || colorValue->Get< Vector4 >().a > 0.0f )
+          && ( renderIfTransparent || color.a > 0.0f ) )
+      {
+        // Update background color only
+        mImpl->DoAction( Toolkit::Control::Property::BACKGROUND, DevelColorVisual::Action::UPDATE_PROPERTY, map );
+        return;
+      }
+    }
   }
 
   SetBackground( map );
index e709a58..ef478ff 100644 (file)
@@ -20,6 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/public-api/object/property-map.h>
+#include <dali/devel-api/adaptor-framework/video-sync-mode.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/internal/controls/video-view/video-view-impl.h>
@@ -55,26 +56,26 @@ VideoView::~VideoView()
 
 VideoView VideoView::New()
 {
-  return Internal::VideoView::New();
+  return Internal::VideoView::New( Dali::VideoSyncMode::DISABLED );
 }
 
 VideoView VideoView::New( const std::string& url )
 {
-  VideoView videoView = Internal::VideoView::New();
+  VideoView videoView = Internal::VideoView::New( Dali::VideoSyncMode::DISABLED );
   Dali::Toolkit::GetImpl( videoView ).SetUrl( url );
   return videoView;
 }
 
 VideoView VideoView::New( bool swCodec )
 {
-  VideoView videoView = Internal::VideoView::New();
+  VideoView videoView = Internal::VideoView::New( Dali::VideoSyncMode::DISABLED );
   Dali::Toolkit::GetImpl( videoView ).SetSWCodec( swCodec );
   return videoView;
 }
 
 VideoView VideoView::New( const std::string& url, bool swCodec )
 {
-  VideoView videoView = Internal::VideoView::New();
+  VideoView videoView = Internal::VideoView::New( Dali::VideoSyncMode::DISABLED );
   Dali::Toolkit::GetImpl( videoView ).SetUrl( url );
   Dali::Toolkit::GetImpl( videoView ).SetSWCodec( swCodec );
   return videoView;
index 3a5f10a..581818c 100644 (file)
@@ -31,7 +31,7 @@ namespace Toolkit
 
 const unsigned int TOOLKIT_MAJOR_VERSION = 1;
 const unsigned int TOOLKIT_MINOR_VERSION = 9;
-const unsigned int TOOLKIT_MICRO_VERSION = 21;
+const unsigned int TOOLKIT_MICRO_VERSION = 22;
 const char * const TOOLKIT_BUILD_DATE    = __DATE__ " " __TIME__;
 
 #ifdef DEBUG_ENABLED
index 4796ce5..463e63b 100644 (file)
@@ -1,6 +1,6 @@
 Name:       dali2-toolkit
 Summary:    Dali 3D engine Toolkit
-Version:    1.9.21
+Version:    1.9.22
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0 and BSD-3-Clause and MIT