Merge branch 'devel/master' into devel/vulkan
authorDavid Steele <david.steele@samsung.com>
Thu, 7 Feb 2019 16:05:00 +0000 (16:05 +0000)
committerDavid Steele <david.steele@samsung.com>
Thu, 7 Feb 2019 16:05:13 +0000 (16:05 +0000)
Change-Id: Iad7e59c0105d9135f4ccd12b4a29de139726ffa5

132 files changed:
1  2 
automated-tests/src/dali/utc-Dali-Actor.cpp
automated-tests/src/dali/utc-Dali-Animation.cpp
automated-tests/src/dali/utc-Dali-CameraActor.cpp
automated-tests/src/dali/utc-Dali-Constrainer.cpp
automated-tests/src/dali/utc-Dali-CustomActor.cpp
automated-tests/src/dali/utc-Dali-FrameBuffer.cpp
automated-tests/src/dali/utc-Dali-GestureDetector.cpp
automated-tests/src/dali/utc-Dali-Handle.cpp
automated-tests/src/dali/utc-Dali-KeyEvent.cpp
automated-tests/src/dali/utc-Dali-Layer.cpp
automated-tests/src/dali/utc-Dali-PanGesture.cpp
automated-tests/src/dali/utc-Dali-Path.cpp
automated-tests/src/dali/utc-Dali-Renderer.cpp
automated-tests/src/dali/utc-Dali-Scripting.cpp
automated-tests/src/dali/utc-Dali-Shader.cpp
automated-tests/src/dali/utc-Dali-Stage.cpp
build/scripts/dali_env
dali/devel-api/actors/actor-devel.h
dali/devel-api/rendering/renderer-devel.h
dali/devel-api/scripting/enum-helper.h
dali/integration-api/events/key-event-integ.cpp
dali/integration-api/events/key-event-integ.h
dali/integration-api/render-task-list-integ.cpp
dali/internal/common/type-abstraction-enums.h
dali/internal/event/actors/actor-impl.cpp
dali/internal/event/actors/actor-impl.h
dali/internal/event/actors/camera-actor-impl.cpp
dali/internal/event/actors/camera-actor-impl.h
dali/internal/event/actors/custom-actor-internal.h
dali/internal/event/actors/layer-impl.cpp
dali/internal/event/animation/animator-connector-base.h
dali/internal/event/animation/animator-connector.h
dali/internal/event/animation/constrainer.cpp
dali/internal/event/animation/constrainer.h
dali/internal/event/animation/constraint-base.cpp
dali/internal/event/animation/constraint-base.h
dali/internal/event/animation/constraint-impl.h
dali/internal/event/animation/linear-constrainer-impl.cpp
dali/internal/event/animation/path-constrainer-impl.cpp
dali/internal/event/animation/path-impl.cpp
dali/internal/event/animation/path-impl.h
dali/internal/event/animation/property-constraint.h
dali/internal/event/animation/property-input-accessor.h
dali/internal/event/common/object-impl.cpp
dali/internal/event/common/object-impl.h
dali/internal/event/common/property-metadata.cpp
dali/internal/event/common/property-metadata.h
dali/internal/event/common/property-notification-impl.cpp
dali/internal/event/common/stage-impl.cpp
dali/internal/event/common/type-info-impl.cpp
dali/internal/event/common/type-info-impl.h
dali/internal/event/common/type-registry-impl.cpp
dali/internal/event/common/type-registry-impl.h
dali/internal/event/events/gesture-detector-impl.cpp
dali/internal/event/events/gesture-detector-impl.h
dali/internal/event/events/gesture-event-processor.cpp
dali/internal/event/events/gesture-event-processor.h
dali/internal/event/events/hit-test-algorithm-impl.cpp
dali/internal/event/events/hit-test-algorithm-impl.h
dali/internal/event/events/hover-event-processor.cpp
dali/internal/event/events/hover-event-processor.h
dali/internal/event/events/key-event-impl.cpp
dali/internal/event/events/key-event-impl.h
dali/internal/event/events/key-event-processor.cpp
dali/internal/event/events/long-press-gesture-processor.cpp
dali/internal/event/events/long-press-gesture-processor.h
dali/internal/event/events/pan-gesture-detector-impl.cpp
dali/internal/event/events/pan-gesture-detector-impl.h
dali/internal/event/events/pan-gesture-processor.cpp
dali/internal/event/events/pan-gesture-processor.h
dali/internal/event/events/pinch-gesture-processor.cpp
dali/internal/event/events/pinch-gesture-processor.h
dali/internal/event/events/touch-event-processor.cpp
dali/internal/event/events/touch-event-processor.h
dali/internal/event/images/buffer-image-impl.cpp
dali/internal/event/images/frame-buffer-image-impl.cpp
dali/internal/event/render-tasks/render-task-impl.cpp
dali/internal/event/render-tasks/render-task-impl.h
dali/internal/event/render-tasks/render-task-list-impl.cpp
dali/internal/event/render-tasks/render-task-list-impl.h
dali/internal/event/rendering/frame-buffer-impl.cpp
dali/internal/event/rendering/frame-buffer-impl.h
dali/internal/event/rendering/geometry-impl.cpp
dali/internal/event/rendering/geometry-impl.h
dali/internal/event/rendering/renderer-impl.cpp
dali/internal/event/rendering/renderer-impl.h
dali/internal/event/rendering/shader-impl.cpp
dali/internal/event/rendering/shader-impl.h
dali/internal/file.list
dali/internal/update/animation/property-accessor.h
dali/internal/update/animation/property-component-accessor.h
dali/internal/update/animation/scene-graph-animation.cpp
dali/internal/update/animation/scene-graph-animation.h
dali/internal/update/animation/scene-graph-animator.h
dali/internal/update/animation/scene-graph-constraint.h
dali/internal/update/manager/render-task-processor.cpp
dali/internal/update/manager/render-task-processor.h
dali/internal/update/manager/update-manager.cpp
dali/internal/update/manager/update-manager.h
dali/internal/update/nodes/node.cpp
dali/internal/update/nodes/node.h
dali/internal/update/nodes/scene-graph-layer.cpp
dali/internal/update/queue/update-message-queue.cpp
dali/internal/update/queue/update-message-queue.h
dali/internal/update/render-tasks/scene-graph-render-task.cpp
dali/internal/update/render-tasks/scene-graph-render-task.h
dali/internal/update/rendering/scene-graph-frame-buffer.cpp
dali/internal/update/rendering/scene-graph-renderer.cpp
dali/internal/update/rendering/scene-graph-renderer.h
dali/public-api/actors/actor-enumerations.h
dali/public-api/actors/actor.cpp
dali/public-api/actors/actor.h
dali/public-api/actors/custom-actor-impl.h
dali/public-api/actors/draw-mode.h
dali/public-api/actors/layer.h
dali/public-api/animation/path.cpp
dali/public-api/common/view-mode.h
dali/public-api/events/pan-gesture-detector.cpp
dali/public-api/math/math-utils.h
dali/public-api/math/matrix.cpp
dali/public-api/math/matrix3.cpp
dali/public-api/object/handle.cpp
dali/public-api/object/type-info.cpp
dali/public-api/object/type-info.h
dali/public-api/object/type-registry.cpp
dali/public-api/render-tasks/render-task-list.cpp
dali/public-api/render-tasks/render-task.cpp
dali/public-api/rendering/frame-buffer.h
dali/public-api/rendering/geometry.cpp
dali/public-api/rendering/renderer.cpp
dali/public-api/rendering/shader.h
packaging/dali.spec

index 2fede1b73d12cf7787fb51d2baf5c1d4d2e9fbf9,fad466a56da642f68f5193e51414ef9fb86b6278..f2ce3ebfef700852b5376fc60a8cfdffc10b9589
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index a261ab2f2c5c8a64c39d02b791fb35a1e05ad2d9,254c8629221225548f73903e23db1ff6ab2641de..615d2f9871e73d716c86b1144240c7abc5c3d30d
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 85451ae3d5ea95dc3484c31e21386f098c9ec959,415f6cfd8fd07b5a24eb6083b75561d02ac6ec27..1437653720081ef76df0124bb3c7d270801f59e4
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 9bea015d7d13cbe40c93dff542b739f1c3553732,30a006aad3c3a2bceb71fd12939f4ada687c70d2..2024a82295ea837e9c4085378231b4415e541dc8
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 57bcba41416960c58044096a68955425e3c25980,ce6d317ef10500465da14fd0577c9b6333062a21..c3138e760d078779c63181fcfbb9ebd7db12b869
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index b96b82f166e88e1b5875cee865161f219aea9842,e19a7f8847a9ef1521acdb38b1e45934c30e459c..340bca98b1cec188b1e3cf31de1e266671db40a8
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2017 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2016 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 2cbbcf1029e9a8e47e9d9af2ac59af28b5762ca1,1c81dc0c30a03bbae4e703f3b3f8590c54427bc8..316e7769f8311eb51db4f89f3035498c9fcfe0ed
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 24b39fa93c1ad080a437264ae10e87d369a6e449,6c6c607396d99886eab9bd31afca127128b091a4..c413f05606ddde13accebb41141c3f954eef9d82
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 96e74ffbab8b453e4a5317816d922ed9a5114b60,e2de6e56e9039f06cb18b1baa6e4756d83f67483..e34e7523c40925d72deef169447fec67de594b84
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index b61dd46664aafe808cd1179ddbb5f0c2773b666d,9b3e5a47f4370bc6ec1ce8cce527578f2d18d761..7af993eb7474cec7584099525971cf6ca323c1ad
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index b830f9da8a47f714956671b1c6d82b08f130138a,b35ec9791d469808d65eea52dc89a33bfae55c72..745d3ea1d0aa8de3c70066ce2a52bc74add175ab
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index c3be5fbc2cc4ce083197834775f609678c4630e7,be13ee8216a3186bd01798d588a38232518b28c6..d9c56cf2cf5dfbb61dcb906578383b0f082f2ede
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2017 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 4f64bb88e3f5c77e070aab3e1d7aaf1fc8dde8ff,744eb58e8e69f4c817d07504d4998bb77433190f..fc0485391f2cc817eaae1d47d3cfc0ac50ea71f6
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 336de3d428076d37ad84c9be07f434cd4f048a34,793a5bac4e2f6cdc3ec081399a269e6bc5cbf310..0a73ca8f766e91d6d159f71c2ceb73ecef071bb3
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 3dc4237824ae16b0dbc67a4ac4e5a58ebc194328,5923a4647afae175e045a7ec96bd97975c593a29..531d77ddc8e62c0e2b684432b13f9138b81d7404
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 5115340554eaf238088f60e21bc066d84fa6c5b7,954957f7aaf1a6c010ac71f6318d4f79e3ce9876..fd35ab60871580fb3ce57dcd9370668bf09b9eeb
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
Simple merge
index 5a030a958ff6b01a433e65721b83891257cb2e5c,0378efd0228d6cf57bbcee61679ee27acbadf9dd..6b6ff23829b40b8e75cbd5b848af3077660da8df
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_ACTOR_DEVEL_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 8b4013c3c6410252dc530b81846c6c547967a636,02292ab034cc2920cc81c9163a8782162f9eac4c..74605958fe602a3d8d372923d934022fa302d8a2
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_RENDERER_DEVEL_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 13327d398a418b0f9256eb0ebf3aafe86300b073,0cbe3206f3dd891b0b87950bdd7d97cc8a31fcf3..64e94cd07a9a5aba2c28feccec30dea771350897
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_ENUM_HELPER_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 5b58a660e95c572c758c8858c8ebbd8096fcdca0,db7e1bce26f101982f50fbeba1bf47682ec7be37..fef2e66c09ae9ebf2b2bfa57e643f70a66f684fa
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index cf74794ebd2a735754a4f08a8e4f4a94d810bf01,52055e45705ecc5448e188c5c1dd8a5eb58d14a1..d2b5484bc64317b68537a33e143b44b3eb70570b
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTEGRATION_KEY_EVENT_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index b37cdac2cc7f7183a33d45bb9ccf32ed88168c31,d23b749294b0f0f6db84b508fb45b1027b6f1d11..22c21406905ed697c9d92f9fbd5fa703876057e4
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 87a8e62b7679ba3986d6016586848c12f6c29b3d,bcf13c2667d5787ba3f9ccbe4f4e0c004e5c516c..f1de44769838a5666ca211a4cff9b9872256424b
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_TYPE_ABSTRACTION_ENUMS_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 147184669babae60666f43b3c10260bd94f91756,d2b33c9fa471ef350d690d2dc4d845cf3d93e84a..7988e58ee4a78f7300c22e0455f6e596fda340ca
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 0a78f085c5e8a53b1588e8077b734202a876400e,c98701adf570a81ebc3b3bab8509e8f0f37ce5fd..ad7a42a6b37bc09f244ea889d945d3ebdd32fe5d
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_ACTOR_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index e1273d35bf2d19857e7e48b39109308cf7da99e5,3d2138389d9f0a5e915e1d87beb1078f0ec4bd39..08de6bd4488b6244a1d277769a5ba162fe2339e2
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index fe26f139516ba8de6f5588d167f425d874d447ab,dc017f80abdc9777f7a35941c620ce1562e96ac8..2e2d06cfb778525e786a9e414abac0abef86333a
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_CAMERA_ACTOR_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 60d33598d8071ca0f398748bd97d946322ba3e25,34b1a1bd639331d0e44533152687a0fc91c049ff..11f17d283369e274893711188a59edf912e364ed
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_CUSTOM_ACTOR_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index a6bcc71e2cd8470d929982499fb12fc4ef663226,11f835a12cc4fe5fc4d1f597794df7e5042c7f0f..bdda64516a88ebcac4bd7ae82015dfe91550d614
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 15cee6f71d4542b7d490b29951db812c7fe1ed68,bcb383fce28bdd2d0f581ee7636ce3292f6e7d4a..6a482693c8de1fc513cae654e19278c69aeec836
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_ANIMATOR_CONNECTOR_BASE_H__
  
  /*
-  * Copyright (c) 2017 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 8119063402813103658cc775c4ef529767f39c17,df347412285a8f2da7b0f74cf0a335bfa607cc35..923f6e6e12cef531d1ed47103d77af0c8feaee7b
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_ANIMATOR_CONNECTOR_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 109c7d9d56c3f1e7f7df75d9bf1837017705521e,1abd371a361c02706573eaa611176307ee6ba66b..756cc9f7dd0f9cacc65d82eaa016e7af69b7b972
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 0e13a8f64f8bcfc3a777cbd0460af8142a04738e,e7042b89ae63cf178e05c939e3d5500bbbb72d36..52ad22e8a03fef57b9d4d694ddda3e6ab6261aad
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_CONSTRAINER_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 3a1e96766c635d0542c3f1465a5d796a7236dfe1,8ebbd6e09e39995359033af62a78c4cd75a2a0f0..f2f94f1ffa5b90bc39fa2b7b410df306eed4dba9
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index b3823835ef87244c591272a64403dab40879b60d,8b9caa92f21c11bc81a0035d73ca65d2785e284e..e120ce753ac097481ffd2b89d8bb563849381dd9
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_ACTIVE_CONSTRAINT_BASE_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 0fc820db8c7cb57b0a6319ce5d74ed77061856cc,eb3327d55d33d385b33a1233de0d355f8219d0bc..e5007f94e15709f890d2d0fd18d29e0f2179796f
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_ACTIVE_CONSTRAINT_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 0613adb8f33fb318264f1614fb8b88e94ccbada8,b346519967e2b31d7a10c7247e0c436a167c63b5..0efb00e0634c4d419aa0ac1a3d8a7a310d0c12d3
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index bcb998e27e924e065cddaa33d9e976bfc1f242a6,877a9388a4ba0f1c35eda22138b5af693094c97a..de2766ac92f5f2728ae575c690a816cab5857e66
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 2ae92b63218cb9290edc50b1514d93644c795660,c5455a40717624e99a02a78753e72a97796d37e9..ad659dc0e2f6ca6db5a3314acbcffa358920c48a
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 5fb1252dd08eee8ab60692033ca54c70c56d6233,62346c0e404e23bcf4fd17d818631238c4249736..f70644d69ca7c9e0bab48a951b10725ec58f3024
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_PATH_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index b6c00f06697a6ec80ea8d6ecfa3dbf405bde12b5,f08c7d2c101aa6f3b17d1e4a63f874da7e786205..dce4bc2b7685aaa5616492e0009b6c45fb798859
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_PROPERTY_CONSTRAINT_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index aca460bf71b612deba8350eab0cfd38a626a3e2b,40893f798ae37b5bc34ef9e170e5c778a25f6b60..a972f004719853b40b5397a4a652d4eb11ab99a4
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_PROPERTY_INPUT_ACCESSOR_H__
  
  /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 5e68a6ed1945971a0ad8125605dd628a71d9f685,09e48c0b3bbe45866aeed26bd4046533d91dc78d..b160f13e88735dddd4088b4c609fa913adc24058
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 889d5899b23308f300d851817dbc4a37d5e94487,ac62d3704ea2a8108e9f8293e68e480988bfd53c..2b8ab6e38443ea6db22adf26aee842b2d277b48c
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_OBJECT_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 230524518af503be9cc0a7fcf012f95aac35125f,aa4d607d62f46a4187c3db6b8d3fa9abaaaa716e..3647a1098c41734669e72362813355007e8a4c94
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 09b62ab2d189cd53105ef5fe1f0b30ca119a52b5,a058ed735ae48ff807a9928ecbcab60d58078e34..3a158abf3af97e8d5d22ffbc4e6480bf20b69743
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_PROPERTY_METADATA_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index f119eda006103d7ed72b4427e43a5265540b5fc0,a261fa29ebf9bc76231e00770723024056a649b5..96d290101c7c7bfeff7ab3140aa5f3f641ed5ad2
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2017 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 46127c83a6463a5c3bca8d5657026dde25e38481,b7d649625452aef0d1b2fbaea26e7f99a5abf4ca..a79fcb78d1a8b2019b913f775d001fb563f4e534
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index fe1fd2032ad6ff82667dd23f8894ac7660420304,72e470dab4c83d31b893cb813dd067ba678b19af..bbb43da0f5da82aab90f6a1d97f3613e84a374c3
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 54cfe2248a254259a033e88b7ba3105a5689aa4c,d7040405e104380d50f8b231c0f9d964d246c2cd..f691c4d0bc3f5ab8c7ff865669874180a89bd9cc
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_TYPE_INFO_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index d380f83945534025108d867c6ff8165e8e7533ef,2495d5f47d72013282d6405b79617f01d5584897..595f54466d8f0bcff4f474a92b2ddcd9b6d22ac2
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 8f72dd0c1ff86cc83668cbbfc90e73d93d30b4da,1da2c194fc68ea051b0697803f55f66ea15ebd78..f1f6eece65e46dcec41fda86dce32fe6488a8962
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_TYPE_REGISTRY_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 6b17c94a2fd677b7629a685fc35c0b9efeaa5ea6,f1cd4e7b7a8b261500a74ba0006ff65f4b7b1b68..c7c4f7151e1f1c83cae07978e3f98bcb935ef298
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 4851d3d6396e17dcdec2cba52776147d38d834c8,f3fc8d5deb28fe576fb12a8e6a4cd234252674a2..1f433f38877732380f78146b7a35fd5f2863f522
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_GESTURE_DETECTOR_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 0a43ae3756b075eeb0a7a94016244aea9c5b6e73,6ad09d95cd7403d82155acbb3b2004f9f7074267..9712abd2358d50fe705f6fef0809df53e241f222
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 75b1c48388b096759e449c523ef87dbb6418053c,78c252f6a7fb868e54643d0d69e9ee7c5f50f4ea..127f9cad55872c63e4b40ea1e8fb86830139a16f
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_GESTURE_EVENT_PROCESSOR_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 6c8c8af2b9e936e1c391dbab811f244a57f4aca8,d05d16be4876e0f7d4eb71f3e27f668bb4368679..23614400381382f091234c536bc92e4462197c47
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index bfe9cb007ff750faf808cd15eac8791b9004ddbf,a160bc90af29ae999dd029afa9565132ac9f3c1d..0074a33a3c1f5f79b74db9dc97ce81d65215249f
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_HIT_TEST_ALGORITHM_H
  
  /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index a19da0f49e7ec969a4f9f01ae730b1de441b537a,2ddd84a4151b43e846971e57bdba77f17f89d74a..d72a2ee6c4f95d6bf8bb65321e88efe02d66b618
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2017 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index d28989eaa17f431474272b502eb1d21bd922446e,5cd0308fc4ac7e57bded55379548baf4a8180763..94d7aac949e6275006599fc8217ec0692ceca324
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_HOVER_EVENT_PROCESSOR_H__
  
  /*
-  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 73ee65c09c1ed4163b56df8fd0fa8d98e40c167b,8f0c84f956bcb5fe72445ee88fb2800c6cfd1de5..1337008705a9837380b8a33dd35b4b8916fbbc4f
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 5ab032d7251606274826040ab0741c66f1d827a1,1f581dc2efa615929cc79d5049da1da07082d427..c16ac2bc4b21a1cfb80473667c22d861ca9a9db9
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_KEY_EVENT_H__
  
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index a18f7741c63ff02a0f90c8226dd04a0156b071bf,750654b5a04f1575e542ebd41e24060d390ea044..4f827ab12bb135fe6ab7e7d8a5cc12524b3f7b21
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index d2d2e2e01f4644447c28b060383749b9c4d437a9,37be013e589890779cad0ec8269918bef1077e1b..1202d1326d0f55c5a54c088eb989a4736dd02a4f
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index d34f246b84cdf01e60c7c1c2331b7be8ebe84c3f,e71e4e51cb7f68a7e35d682e54e44a8d67360909..8b97a4722d1e171f1f4fc50762c62d2408242d93
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_LONG_PRESS_GESTURE_EVENT_PROCESSOR_H__
  
  /*
-  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 136d9d6598a21ccacc1c2183329f7c24215530ea,c5c0057441848f0b0d824dc8213c21ce0da527b2..b8dfd897e4940fa7441bb622e0d4b20da8cc8157
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index abc631ead2800f796161cd523d36158d1c4f8dbf,0adab6de3806e49afd1c0f3261d94e71c66a4de0..9eb094096e5c2cef2d83b19b7d081a3cfae401e2
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_PAN_GESTURE_DETECTOR_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 1762821611ea8af75e9a7abb16c074c70813e577,d95fe0f394c032a794a5b1c98982479149af84ae..919c043a33738b6a0a4daa71ed1d75bc796ed541
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 45d640ddc6d19ba0eba3bb3492f8a1fd732fa8f2,794095195a2a84c8e1615547633c4b0311f6fd7f..e9504c52852a0ab856279f9b69703a866429d181
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_PAN_GESTURE_EVENT_PROCESSOR_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 6fc7c7c9af733ae5e4ec532a0f97afe70d8f1312,d893726fadb3f032f7e898b1e35087f2c06fb2c8..a3d93b1fb19dc325ed7a7fca9452945415ebd21c
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index c76259cae20e09395841157119cc93676a272625,9c1928c46e821d384d4879a1b9ed2ae1929c708f..ff8a34d0d81212496c066440bf65982ec681b1f3
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_PINCH_GESTURE_EVENT_PROCESSOR_H__
  
  /*
-  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 871d851212ae3ddac45d80204658a55ad2a43eb5,90f75ca0d271c7d4d85725871b1569bae366678c..c47ff918ad73c0cca9ed9ef7aaee41377b4bfa93
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2017 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index e0c38b7feedb0ee82429e4c5e068527e33bc461e,9ffa7f2ca50918423b140bfe0cb3d04a8914c878..f619116825ab29944bcb405fa76330652ad09b1b
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_TOUCH_EVENT_PROCESSOR_H__
  
  /*
-  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 4ad6df774aa7d0e3f19ad3172719d7678d2f14ea,68c002782f9c3b5647042f3ab138aac5be1f1e89..ca659c1fc9784f5cd979fbba587611163eb81a3a
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2016 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 559cb6ffc4038d597553baf0217810c118b121fe,b5a4439c41cdf6146a2f66c5f1c6325ed47150a3..4a9daa28211eac6877c7dcbdc9f52ac3a307938b
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2015 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 6e7dd34f47263746d4548855490ea58e98b61ae2,14bc16b062e3a59153ed978c1618644038252e8a..b96ae9aff1b1905b860f4e3f63e0197f02507be5
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
@@@ -168,15 -184,7 +184,15 @@@ void RenderTask::SetFrameBuffer( FrameB
      renderFrameBufferPtr = mFrameBuffer->GetRenderObject();
    }
  
-   SetFrameBufferMessage( GetEventThreadServices(), *mSceneObject, renderFrameBufferPtr );
+   SetFrameBufferMessage( GetEventThreadServices(), GetRenderTaskSceneObject(), renderFrameBufferPtr );
 +
 +  if( frameBuffer != nullptr &&
 +      EqualsZero( mViewportSize.x ) &&
 +      EqualsZero( mViewportSize.y ) )
 +  {
 +    // No viewport size has been set. Change it to the size of the framebuffer
 +    SetViewportSize( Vector2( float(frameBuffer->GetWidth()), float(frameBuffer->GetHeight()) ));
 +  }
  }
  
  FrameBuffer* RenderTask::GetFrameBuffer() const
index 8b9f8aafdcbfafaf200b19f7e1d4c95f43bcf344,de111d01030484650e5ebb1bd049d335eda48949..044e873f652276b38d60bc505b7b3d36b234354b
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_RENDER_TASK_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 3c4fe79bb43a0045889f01c3f21069f9f5141f8a,c3a40d6dc08ff91b07bd8047e0f876f243b7ea91..ef41381243ca526b67573ab59ee7a4e37d052a31
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index b02938b2512f309240df925a52ea587f3dbb18e2,55e37e83c955c698db671ea6aaaae890f1bbab33..d06d97a883f40166eaf3e7bf1a1243f8d04399a5
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_RENDER_TASK_LIST_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 0708095fef0336564abb2089ca4ff4ba61c1e12d,ccfc8d051123d93e71385878920d10b087ce02fd..17ad9030e22b05b54c048743de62c02a599d01b8
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
@@@ -53,12 -53,11 +53,12 @@@ FrameBuffer::FrameBuffer( uint32_t widt
  
  void FrameBuffer::Initialize()
  {
 -  mRenderObject = new Render::FrameBuffer( mWidth, mHeight, mAttachments );
 -  AddFrameBuffer( mEventThreadServices.GetUpdateManager(), *mRenderObject );
 +  mRenderObject = new SceneGraph::FrameBuffer( mWidth, mHeight, mAttachments );
 +  OwnerPointer< SceneGraph::FrameBuffer > transferOwnership( mRenderObject );
 +  AddFrameBufferMessage( mEventThreadServices.GetUpdateManager(), transferOwnership );
  }
  
- void FrameBuffer::AttachColorTexture( TexturePtr texture, unsigned int mipmapLevel, unsigned int layer )
+ void FrameBuffer::AttachColorTexture( TexturePtr texture, uint32_t mipmapLevel, uint32_t layer )
  {
    if( ( texture->GetWidth() / ( 1u << mipmapLevel ) == mWidth ) &&
        ( texture->GetHeight() / ( 1u << mipmapLevel ) == mHeight ) )
index a514d2cf6466373e864cc66a7daf80f1a9bee911,938919300bd5fd446f6e0fdda13bf298c343d269..1452eab9d57544d874e9bc117fdbfde4fc46278f
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_FRAME_BUFFER_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
@@@ -107,13 -101,14 +111,13 @@@ private: // unimplemented method
  
  private: // data
  
 -  Internal::EventThreadServices& mEventThreadServices; ///< Used to send messages to the render thread via update thread
 -  Internal::Render::FrameBuffer* mRenderObject;        ///< The Render::Texture associated to this texture
 +  EventThreadServices& mEventThreadServices; ///< Used to send messages to the render thread via update thread
 +  SceneGraph::FrameBuffer* mRenderObject;        ///< The Render::Framebuffer associated with this framebuffer
  
    TexturePtr mColor;
-   unsigned int mWidth;
-   unsigned int mHeight;
-   unsigned int mAttachments; ///< Bit-mask of type FrameBuffer::Attachment::Mask
+   uint32_t mWidth;
+   uint32_t mHeight;
+   Mask mAttachments;                           ///< Bit-mask of type FrameBuffer::Attachment::Mask
 -
  };
  
  } // namespace Internal
index 350afbcb4aca4f2ba682ae8334fb9dab07d3f1c8,0897c08cb442c1febcc47563c909f5e6537a763e..991341d39ad2d09ab26143556f92f3d8be186651
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
@@@ -35,22 -35,22 +35,22 @@@ GeometryPtr Geometry::New(
    return geometry;
  }
  
std::size_t Geometry::AddVertexBuffer( PropertyBuffer& vertexBuffer )
uint32_t Geometry::AddVertexBuffer( PropertyBuffer& vertexBuffer )
  {
    mVertexBuffers.push_back( &vertexBuffer );
 -  SceneGraph::AttachVertexBufferMessage( mEventThreadServices.GetUpdateManager(), *mRenderObject, *vertexBuffer.GetRenderObject() );
 +  SceneGraph::AttachVertexBufferMessage( mEventThreadServices, *mRenderObject, *vertexBuffer.GetRenderObject() );
-   return mVertexBuffers.size() - 1u;
+   return static_cast<uint32_t>( mVertexBuffers.size() - 1u );
  }
  
std::size_t Geometry::GetNumberOfVertexBuffers() const
uint32_t Geometry::GetNumberOfVertexBuffers() const
  {
-   return mVertexBuffers.size();
+   return static_cast<uint32_t>( mVertexBuffers.size() );
  }
  
- void Geometry::RemoveVertexBuffer( std::size_t index )
+ void Geometry::RemoveVertexBuffer( uint32_t index )
  {
 -  const Render::PropertyBuffer& renderPropertyBuffer = static_cast<const Render::PropertyBuffer&>( *(mVertexBuffers[index]->GetRenderObject()) );
 -  SceneGraph::RemoveVertexBufferMessage( mEventThreadServices.GetUpdateManager(), *mRenderObject, renderPropertyBuffer );
 +  const SceneGraph::PropertyBuffer& renderPropertyBuffer = static_cast<const SceneGraph::PropertyBuffer&>( *(mVertexBuffers[index]->GetRenderObject()) );
 +  SceneGraph::RemoveVertexBufferMessage( mEventThreadServices, *mRenderObject, renderPropertyBuffer );
  
    mVertexBuffers.erase( mVertexBuffers.begin() + index );
  }
index 02ecf756252c68a5ed0196e3ccf1d7c445a5432b,018fea454712731569936afb785152a517e54ba4..c9e9dd07c64750954d0b72079a478f8b782bd9ea
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_GEOMETRY_H
  
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2016 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 9bc8ef195b30979971a5978e8c2be6e6fbf83e0b,7071a675f6671e178a8ace6d7c05890e52918a1a..8d8566d93d838d26da2ed82388a9f51ef67ce85d
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
  
  // INTERNAL INCLUDES
  #include <dali/devel-api/scripting/scripting.h>
- #include <dali/devel-api/rendering/renderer-devel.h>
  #include <dali/public-api/object/type-registry.h>
- #include <dali/internal/event/common/object-impl-helper.h> // Dali::Internal::ObjectHelper
 +#include <dali/integration-api/debug.h>
  #include <dali/internal/event/common/property-helper.h>    // DALI_PROPERTY_TABLE_BEGIN, DALI_PROPERTY, DALI_PROPERTY_TABLE_END
  #include <dali/internal/event/common/property-input-impl.h>
 -#include <dali/internal/render/renderers/render-geometry.h>
 +#include <dali/internal/update/rendering/stencil-parameters.h>
 +#include <dali/internal/update/rendering/scene-graph-geometry.h>
  #include <dali/internal/update/manager/update-manager.h>
  #include <dali/internal/update/rendering/scene-graph-renderer.h>
  
@@@ -186,13 -193,13 +199,13 @@@ void Renderer::SetGeometry( Geometry& g
  {
    mGeometry = &geometry;
  
 -  const Render::Geometry* geometrySceneObject = geometry.GetRenderObject();
 +  const SceneGraph::Geometry* geometrySceneObject = geometry.GetRenderObject();
-   SetGeometryMessage( GetEventThreadServices(), *mSceneObject, *geometrySceneObject );
+   SetGeometryMessage( GetEventThreadServices(), GetRendererSceneObject(), *geometrySceneObject );
  }
  
- Geometry* Renderer::GetGeometry() const
+ GeometryPtr Renderer::GetGeometry() const
  {
-   return mGeometry.Get();
+   return mGeometry;
  }
  
  void Renderer::SetTextures( TextureSet& textureSet )
@@@ -239,9 -246,7 +252,9 @@@ void Renderer::SetBlendMode( BlendMode:
    {
      mBlendMode = mode;
  
-     SetBlendModeMessage( GetEventThreadServices(), *mSceneObject, mBlendMode );
 +    DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Renderer::SetBlendMode( %s )\n", Scripting::GetEnumerationName<BlendMode::Type>( mBlendMode, BLEND_MODE_TABLE, BLEND_MODE_TABLE_COUNT ) );
 +
+     SetBlendModeMessage( GetEventThreadServices(), GetRendererSceneObject(), mBlendMode );
    }
  }
  
@@@ -1034,49 -1028,49 +1018,49 @@@ bool Renderer::GetCurrentPropertyValue
      }
      case Dali::Renderer::Property::STENCIL_FUNCTION:
      {
-       SceneGraph::StencilParameters stencilParameters = mSceneObject->GetStencilParameters();
 -      Render::Renderer::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
++      SceneGraph::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
        value = stencilParameters.stencilFunction;
        break;
      }
      case Dali::Renderer::Property::STENCIL_FUNCTION_MASK:
      {
-       SceneGraph::StencilParameters stencilParameters = mSceneObject->GetStencilParameters();
 -      Render::Renderer::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
++      SceneGraph::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
        value = stencilParameters.stencilFunctionMask;
        break;
      }
      case Dali::Renderer::Property::STENCIL_FUNCTION_REFERENCE:
      {
-       SceneGraph::StencilParameters stencilParameters = mSceneObject->GetStencilParameters();
 -      Render::Renderer::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
++      SceneGraph::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
        value = stencilParameters.stencilFunctionReference;
        break;
      }
      case Dali::Renderer::Property::STENCIL_MASK:
      {
-       SceneGraph::StencilParameters stencilParameters = mSceneObject->GetStencilParameters();
 -      Render::Renderer::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
++      SceneGraph::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
        value = stencilParameters.stencilMask;
        break;
      }
      case Dali::Renderer::Property::RENDER_MODE:
      {
-       SceneGraph::StencilParameters stencilParameters = mSceneObject->GetStencilParameters();
 -      Render::Renderer::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
++      SceneGraph::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
        value = stencilParameters.renderMode;
        break;
      }
      case Dali::Renderer::Property::STENCIL_OPERATION_ON_FAIL:
      {
-       SceneGraph::StencilParameters stencilParameters = mSceneObject->GetStencilParameters();
 -      Render::Renderer::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
++      SceneGraph::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
        value = stencilParameters.stencilOperationOnFail;
        break;
      }
      case Dali::Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL:
      {
-       SceneGraph::StencilParameters stencilParameters = mSceneObject->GetStencilParameters();
 -      Render::Renderer::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
++      SceneGraph::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
        value = stencilParameters.stencilOperationOnZFail;
        break;
      }
      case Dali::Renderer::Property::STENCIL_OPERATION_ON_Z_PASS:
      {
-       SceneGraph::StencilParameters stencilParameters = mSceneObject->GetStencilParameters();
 -      Render::Renderer::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
++      SceneGraph::StencilParameters stencilParameters = sceneObject.GetStencilParameters();
        value = stencilParameters.stencilOperationOnZPass;
        break;
      }
index 004a44d2154576d7657396584c277e5393e12013,3817bd441bf39cb45f0d05f407f20298ebb44f61..a9a13e561064fe35cf07e6e7f9ce12040912fea9
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_RENDERER_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
   */
  
  // INTERNAL INCLUDES
 -#include <dali/public-api/common/dali-common.h> // DALI_ASSERT_ALWAYS
 -#include <dali/public-api/common/intrusive-ptr.h> // Dali::IntrusivePtr
 -#include <dali/public-api/rendering/renderer.h> // Dali::Renderer
 +#include <dali/public-api/common/dali-common.h>
 +#include <dali/public-api/common/intrusive-ptr.h>
 +#include <dali/public-api/rendering/renderer.h>
+ #include <dali/devel-api/rendering/renderer-devel.h>
  #include <dali/internal/common/blending-options.h>
 -#include <dali/internal/event/common/object-connector.h> // Dali::Internal::ObjectConnector
 -#include <dali/internal/event/common/object-impl.h> // Dali::Internal::Object
 -#include <dali/internal/event/rendering/texture-set-impl.h> // Dali::Internal::TextureSet
 -#include <dali/internal/event/rendering/geometry-impl.h> // Dali::Internal::Geometry
 -#include <dali/internal/render/renderers/render-renderer.h> // Dali::Render::Renderer::StencilParameters
 +#include <dali/internal/event/common/object-connector.h>
 +#include <dali/internal/event/common/object-impl.h>
 +#include <dali/internal/event/rendering/texture-set-impl.h>
 +#include <dali/internal/event/rendering/geometry-impl.h>
 +#include <dali/internal/update/rendering/stencil-parameters.h>
  
  namespace Dali
  {
@@@ -270,26 -248,27 +248,27 @@@ private: // unimplemented method
    Renderer& operator=( const Renderer& );
  
  private: // data
-   SceneGraph::Renderer*               mSceneObject;
-   GeometryPtr                         mGeometry;                     ///< Connector that holds the geometry used by this renderer
-   TextureSetPtr                       mTextureSet;                   ///< Connector that holds the texture set used by this renderer
-   ShaderPtr                           mShader;                       ///< Connector that holds the shader used by this renderer
  
-   int                                 mDepthIndex;
+   GeometryPtr                         mGeometry;                   ///< Intrusive pointer to the geometry used by this renderer
+   TextureSetPtr                       mTextureSet;                 ///< Intrusive pointer to the texture set used by this renderer
+   ShaderPtr                           mShader;                     ///< Intrusive pointer to the shader used by this renderer
+   int32_t                             mDepthIndex;
  
-   uint32_t                              mIndexedDrawFirstElement;      ///< Offset of first element to draw from bound index buffer
-   uint32_t                              mIndexedDrawElementCount;      ///< Number of elements to draw
+   uint32_t                            mIndexedDrawFirstElement;    ///< Offset of first element to draw from bound index buffer
+   uint32_t                            mIndexedDrawElementCount;    ///< Number of elements to draw
  
 -  Render::Renderer::StencilParameters mStencilParameters;          ///< Struct containing all stencil related options
 +  SceneGraph::StencilParameters       mStencilParameters;            ///< Struct containing all stencil related options
-   BlendingOptions                     mBlendingOptions;              ///< Local copy of blending options bitmask
-   float                               mOpacity;                      ///< Local copy of the opacity
-   DepthFunction::Type                 mDepthFunction:4;              ///< Local copy of the depth function
-   FaceCullingMode::Type               mFaceCullingMode:3;            ///< Local copy of the mode of face culling
-   BlendMode::Type                     mBlendMode:3;                  ///< Local copy of the mode of blending
-   DepthWriteMode::Type                mDepthWriteMode:3;             ///< Local copy of the depth write mode
-   DepthTestMode::Type                 mDepthTestMode:3;              ///< Local copy of the depth test mode
-   bool                                mPremultipledAlphaEnabled:1;   ///< Flag indicating whether the Pre-multiplied Alpha Blending is required
+   BlendingOptions                     mBlendingOptions;            ///< Local copy of blending options bitmask
+   float                               mOpacity;                    ///< Local copy of the opacity
+   DepthFunction::Type                 mDepthFunction:4;            ///< Local copy of the depth function
+   FaceCullingMode::Type               mFaceCullingMode:3;          ///< Local copy of the mode of face culling
+   BlendMode::Type                     mBlendMode:3;                ///< Local copy of the mode of blending
+   DepthWriteMode::Type                mDepthWriteMode:3;           ///< Local copy of the depth write mode
+   DepthTestMode::Type                 mDepthTestMode:3;            ///< Local copy of the depth test mode
+   DevelRenderer::Rendering::Type      mRenderingBehavior:2;        ///< The rendering behavior
+   bool                                mPremultipledAlphaEnabled:1; ///< Flag indicating whether the Pre-multiplied Alpha Blending is required
  };
  
  } // namespace Internal
index a10684b39848330c2425f43aad7f79008e0e6306,1a7f11fa918f70ebb01b3ca05483362051f2605e..4f71690a5f80c744e571c34d6037d9790ee10497
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
@@@ -21,8 -21,6 +21,7 @@@
  // INTERNAL INCLUDES
  #include <dali/public-api/object/type-registry.h>
  #include <dali/devel-api/scripting/scripting.h>
- #include <dali/internal/event/common/object-impl-helper.h> // Dali::Internal::ObjectHelper
 +#include <dali/devel-api/rendering/shader-devel.h>
  #include <dali/internal/event/common/property-helper.h> // DALI_PROPERTY_TABLE_BEGIN, DALI_PROPERTY, DALI_PROPERTY_TABLE_END
  #include <dali/internal/event/common/thread-local-storage.h>
  #include <dali/internal/event/effects/shader-factory.h>
@@@ -98,34 -95,28 +96,48 @@@ ShaderPtr Shader::New( const std::strin
                         const std::string& fragmentShader,
                         Dali::Shader::Hint::Value hints )
  {
-   ShaderPtr shader( new Shader() );
-   shader->Initialize( vertexShader, fragmentShader, hints );
+   // create scene object first so it's guaranteed to exist for the event side
+   auto sceneObject = new SceneGraph::Shader( hints );
+   OwnerPointer< SceneGraph::Shader > transferOwnership( sceneObject );
+   // pass the pointer to base for message passing
+   ShaderPtr shader( new Shader( sceneObject ) );
+   // transfer scene object ownership to update manager
+   auto&& services = shader->GetEventThreadServices();
+   SceneGraph::UpdateManager& updateManager = services.GetUpdateManager();
+   AddShaderMessage( updateManager, transferOwnership );
+   services.RegisterObject( shader.Get() );
+   shader->SetShader( vertexShader, fragmentShader, hints );
 +  return shader;
 +}
  
-   ShaderPtr shader( new Shader() );
-   shader->Initialize(vertexShader, fragmentShader, language, specializationConstants, hints );
-   return shader;
- }
 +ShaderPtr Shader::New( std::vector<char>& vertexShader,
 +                       std::vector<char>& fragmentShader,
 +                       DevelShader::ShaderLanguage language,
 +                       const Property::Map& specializationConstants,
 +                       Dali::Shader::Hint::Value hints )
 +{
- const SceneGraph::Shader* Shader::GetShaderSceneObject() const
- {
-   return mSceneObject;
++  // create scene object first so it's guaranteed to exist for the event side
++  auto sceneObject = new SceneGraph::Shader( hints );
++  OwnerPointer< SceneGraph::Shader > transferOwnership( sceneObject );
++  // pass the pointer to base for message passing
++  ShaderPtr shader( new Shader( sceneObject ) );
++  // transfer scene object ownership to update manager
++  auto&& services = shader->GetEventThreadServices();
++  SceneGraph::UpdateManager& updateManager = services.GetUpdateManager();
++  AddShaderMessage( updateManager, transferOwnership );
 +
++  services.RegisterObject( shader.Get() );
++  shader->SetShader(vertexShader, fragmentShader, language, specializationConstants, hints );
+   return shader;
  }
  
- SceneGraph::Shader* Shader::GetShaderSceneObject()
+ const SceneGraph::Shader& Shader::GetShaderSceneObject() const
  {
-   return mSceneObject;
+   return static_cast<const SceneGraph::Shader&>( GetSceneObject() );
  }
  
- void Shader::SetDefaultProperty( Property::Index index,
-                                  const Property::Value& propertyValue )
+ void Shader::SetDefaultProperty( Property::Index index, const Property::Value& propertyValue )
  {
    switch(index)
    {
@@@ -281,32 -205,10 +226,22 @@@ void Shader::SetShader( const std::stri
    size_t shaderHash;
    mShaderData = shaderFactory.Load( vertexSource, fragmentSource, hints, shaderHash );
  
--  // Add shader program to scene-object using a message to the UpdateManager
-   SetShaderProgramMessage( eventThreadServices, *mSceneObject, mShaderData, (hints & Dali::Shader::Hint::MODIFIES_GEOMETRY) != 0x0 );
-   eventThreadServices.RegisterObject( this );
+   EventThreadServices& eventThreadServices = GetEventThreadServices();
 -  SceneGraph::UpdateManager& updateManager = eventThreadServices.GetUpdateManager();
 -  SetShaderProgramMessage( updateManager, GetShaderSceneObject(), mShaderData, (hints & Dali::Shader::Hint::MODIFIES_GEOMETRY) != 0x0 );
++  SetShaderProgramMessage( eventThreadServices, *const_cast<SceneGraph::Shader*>(&GetShaderSceneObject()), mShaderData, (hints & Dali::Shader::Hint::MODIFIES_GEOMETRY) != 0x0 );
 +}
 +
- void Shader::Initialize( std::vector<char>& vertexShader,
-                          std::vector<char>& fragmentShader,
-                          DevelShader::ShaderLanguage language,
-                          const Property::Map& specializationConstants,
-                          Dali::Shader::Hint::Value hints )
++
++void Shader::SetShader( std::vector<char>& vertexShader,
++                        std::vector<char>& fragmentShader,
++                        DevelShader::ShaderLanguage language,
++                        const Property::Map& specializationConstants,
++                        Dali::Shader::Hint::Value hints )
 +{
 +  EventThreadServices& eventThreadServices = GetEventThreadServices();
-   SceneGraph::UpdateManager& updateManager = eventThreadServices.GetUpdateManager();
-   mSceneObject = new SceneGraph::Shader( hints );
-   OwnerPointer< SceneGraph::Shader > transferOwnership( mSceneObject );
-   AddShaderMessage( updateManager, transferOwnership );
 +
 +  mShaderData = new ShaderData( vertexShader, fragmentShader, hints );
++  SetShaderProgramMessage( eventThreadServices, *const_cast<SceneGraph::Shader*>(&GetShaderSceneObject()), mShaderData, (hints & Dali::Shader::Hint::MODIFIES_GEOMETRY) != 0x0 );
 +
-   // Add shader program to scene-object using a message to the UpdateManager
-   bool shaderModifiesGeometry = (hints & Dali::Shader::Hint::MODIFIES_GEOMETRY) != 0x00;
-   SetShaderProgramMessage( eventThreadServices, *mSceneObject, mShaderData, shaderModifiesGeometry );
-   eventThreadServices.RegisterObject( this );
  }
  
  Shader::~Shader()
index f2fc7704d8212ed2f23cd6ca6a351e859c9e5257,1e2f9f5d9201f6b86000703afdccca723e66a739..0218b3daed0252911278d7708e052b44a9519ae1
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_SHADER_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
@@@ -54,29 -53,6 +54,22 @@@ public
                          const std::string& fragmentShader,
                          Dali::Shader::Hint::Value hints );
  
-   /**
-    * @brief Get the shader scene object
-    *
-    * @return the shader scene object
-    */
-   const SceneGraph::Shader* GetShaderSceneObject() const;
 +  /**
 +   * Create a new shader object
 +   *
 +   * @param[in] vertexShader
 +   * @param[in] fragmentShader
 +   * @param[in] language
 +   * @param[in] specializationConstants
 +   * @param[in] hints Hints to define the geometry of the rendered object
 +   * @return
 +   */
 +  static ShaderPtr New( std::vector<char>& vertexShader,
 +                        std::vector<char>& fragmentShader,
 +                        DevelShader::ShaderLanguage language,
 +                        const Property::Map& specializationConstants,
 +                        Dali::Shader::Hint::Value hints );
 +
    /**
     * Retrieve the scene-graph shader added by this object.
     * @return A pointer to the shader.
@@@ -136,25 -88,8 +105,25 @@@ private: // implementatio
    /**
     * Second stage initialization
     */
-   void Initialize( const std::string& vertexShader, const std::string& fragmentShader, Dali::Shader::Hint::Value hints );
+   void SetShader( const std::string& vertexShader, const std::string& fragmentShader, Dali::Shader::Hint::Value hints );
  
-   void Initialize( std::vector<char>& vertexShader,
 +  /**
 +   *
 +   * Second stage initialization, devel initialiser
 +   *
 +   *
 +   * @param vertexShader
 +   * @param fragmentShader
 +   * @param language
 +   * @param specializationConstants
 +   * @param[in] hints Hints to define the geometry of the rendered object
 +   */
++  void SetShader( std::vector<char>& vertexShader,
 +                   std::vector<char>& fragmentShader,
 +                   DevelShader::ShaderLanguage language,
 +                   const Property::Map& specializationConstants,
 +                   Dali::Shader::Hint::Value hints );
 +
  protected:
    /**
     * A reference counted object may only be deleted by calling Unreference()
Simple merge
index d26ad90cbcee99a69f6a21b7d4172649493fb2c8,cf37c1f8b59abbcfb6df5e4d9f84cb2d00d647c3..fc00ca3123abc3a1aef2ea64667ea75e374d8876
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_SCENE_GRAPH_PROPERTY_ACCESSOR_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index e1e596b2aba28c1588eda22110cc63cf0dc411fa,4faf6824b7251503b7f4e2ab6a0c263c5ca52cf7..44c2e1bffbb245f1ad0b5b7a03dfec6a81f6f93e
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_SCENE_GRAPH_PROPERTY_COMPONENT_ACCESSOR_H__
  
  /*
-  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index d4138fcb075e61f4dc0136f21121fef43c590be6,ad3abd407919badeab67e7f366db06cca1459e96..b1d607d723b583afd40816e7014c224965e18e7c
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index c2b0278a8ba2934b3722e239fdb173992297e6e9,426d6940968b00ea41029bf69c0f32c94bba01d2..5b0b7948b2889a9563202c5b0a51fec0f12e8c24
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_SCENE_GRAPH_ANIMATION_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index ce7b1c0b798781845f86fa71ec554e292972b879,13c4d07947de6d0a9a6874349f8d2c2114f64e88..11b851a3bc5cf5cb14f5d3b741d4bfeec7e51901
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_SCENE_GRAPH_ANIMATOR_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 406883ce7a7575320892dd83d631beabdd741808,349ab20f53d9c4c6f41bdda48cf2043e9a5f043d..95f7ed01ac9c36954be790a55cddcf435addad8a
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_SCENE_GRAPH_CONSTRAINT_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 493b429f4bccd2f1bd1cb0820453e405f2cd93d1,1e12967ea7d2a97e085426b92f14ba60ea774716..7e756d03b9c15c1d02019fae7f5f3b1ce7a52532
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
  #include <dali/internal/update/render-tasks/scene-graph-render-task.h>
  #include <dali/internal/update/render-tasks/scene-graph-render-task-list.h>
  #include <dali/internal/update/nodes/scene-graph-layer.h>
 -#include <dali/internal/render/common/render-item.h>
 -#include <dali/internal/render/common/render-tracker.h>
 -#include <dali/internal/render/common/render-instruction.h>
 -#include <dali/internal/render/common/render-instruction-container.h>
 -#include <dali/internal/render/renderers/render-renderer.h>
 +#include <dali/internal/update/rendering/render-item.h>
 +#include <dali/internal/update/rendering/render-tracker.h>
 +#include <dali/internal/update/rendering/render-instruction.h>
 +#include <dali/internal/update/rendering/render-instruction-container.h>
++#include <dali/internal/update/rendering/scene-graph-renderer.h>
  #include <dali/integration-api/debug.h>
  
  #if defined(DEBUG_ENABLED)
index 5d2bdbb0cf91c3a5068966f7efd726d51f2b198c,7d7774f5453609d36f376a34e9f2d2bb7da337dd..2c919a0e62d03607994fd823d795ac6ee20b1863
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_SCENE_GRAPH_RENDER_TASK_PROCESSOR_H
  
  /*
-- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 107ebe246aa03225834866096a43ce51f5a2ea75,15244e1c5b8d65fad17e3b65f007b3f588f39bbd..aeac548b3e71e9befc147c0e265b8950f7d64c69
@@@ -107,26 -104,6 +107,10 @@@ namespace SceneGrap
  
  namespace
  {
- /**
-  * Helper to reset animate-able objects to base values
-  * @param container to iterate over
-  * @param updateBufferIndex to use
-  */
- template< class T >
- inline void ResetToBaseValues( OwnerContainer<T*>& container, BufferIndex updateBufferIndex )
- {
-   // Reset animatable properties to base values
-   // use reference to avoid extra copies of the iterator
-   for( auto&& iter : container )
-   {
-     iter->ResetToBaseValues( updateBufferIndex );
-   }
- }
 +#if defined(DEBUG_ENABLED)
 +Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, false, "LOG_UPDATE" );
 +#endif
 +
  /**
   * Helper to Erase an object from OwnerContainer using discard queue
   * @param container to remove from
@@@ -800,16 -788,17 +783,17 @@@ uint32_t UpdateManager::Update( float e
  
    //Process Touches & Gestures
    const bool gestureUpdated = ProcessGestures( bufferIndex, lastVSyncTimeMilliseconds, nextVSyncTimeMilliseconds );
 +  const bool resumed = mImpl->graphicsController.IsDrawOnResumeRequired();
  
 -  bool updateScene = // The scene-graph requires an update if..
 -      (mImpl->nodeDirtyFlags & RenderableUpdateFlags) ||    // ..nodes were dirty in previous frame OR
 -      IsAnimationRunning()                            ||    // ..at least one animation is running OR
 -      mImpl->messageQueue.IsSceneUpdateRequired()     ||    // ..a message that modifies the scene graph node tree is queued OR
 -      gestureUpdated;                                       // ..a gesture property was updated
 +  bool updateScene =                                   // The scene-graph requires an update if..
 +    (mImpl->nodeDirtyFlags & RenderableUpdateFlags) || // ..nodes were dirty in previous frame OR
 +    IsAnimationRunning()                            || // ..at least one animation is running OR
 +    mImpl->messageQueue.IsSceneUpdateRequired()     || // ..a message that modifies the scene graph node tree is queued OR
-     gestureUpdated;                                    // ..a gesture property was updated OR
++    gestureUpdated;                                    // ..a gesture property was updated
  
 -
 -  // Although the scene-graph may not require an update, we still need to synchronize double-buffered
 -  // values if the scene was updated in the previous frame.
+   bool keepRendererRendering = false;
 +  // Although the scene-graph may not require an update, we still need to synchronize
 +  // double-buffered values if the scene was updated in the previous frame.
    if( updateScene || mImpl->previousUpdateScene )
    {
      //Reset properties from the previous update
    // Check whether further updates are required
    uint32_t keepUpdating = KeepUpdatingCheck( elapsedSeconds );
  
 +  // we need new flag to rerun update on idle and execute potential idle code
 +  if( updateScene )
 +  {
 +    keepUpdating |= KeepUpdating::DISCARD_RESOURCES;
 +  }
 +
++
+   if( keepRendererRendering )
+   {
+     keepUpdating |= KeepUpdating::STAGE_KEEP_RENDERING;
+   }
    // tell the update manager that we're done so the queue can be given to event thread
    mImpl->notificationManager.UpdateCompleted();
  
index 0b7368d7af30071a6c520ca4c365df4bfbff0ed0,7e899449063900b96876a341e41460189b599259..56e967b83aeae24048c0a56e7d30d3476707958a
@@@ -838,7 -960,8 +838,7 @@@ inline void AddShaderMessage( UpdateMan
    new (slot) LocalType( &manager, &UpdateManager::AddShader, shader );
  }
  
- inline void RemoveShaderMessage( UpdateManager& manager, Shader& shader )
 -// The render thread can safely change the Shader
+ inline void RemoveShaderMessage( UpdateManager& manager, const Shader* shader )
  {
    typedef MessageValue1< UpdateManager, Shader* > LocalType;
  
    uint32_t* slot = manager.ReserveMessageSlot( sizeof( LocalType ) );
  
    // Construct message in the message queue memory; note that delete should not be called on the return value
-   new (slot) LocalType( &manager, &UpdateManager::RemoveShader, &shader );
+   new (slot) LocalType( &manager, &UpdateManager::RemoveShader, const_cast<Shader*>( shader ) );
  }
  
 -inline void SetShaderProgramMessage( UpdateManager& manager,
 -                                     const Shader& shader,
 -                                     Internal::ShaderDataPtr shaderData,
 -                                     bool modifiesGeometry )
 -{
 -  typedef MessageValue3< UpdateManager, Shader*, Internal::ShaderDataPtr, bool > LocalType;
 -
 -  // Reserve some memory inside the message queue
 -  uint32_t* slot = manager.ReserveMessageSlot( sizeof( LocalType ) );
 -
 -  // Construct message in the message queue memory; note that delete should not be called on the return value
 -  new (slot) LocalType( &manager, &UpdateManager::SetShaderProgram, const_cast<Shader*>( &shader ), shaderData, modifiesGeometry );
 -}
 -
  inline void SetBackgroundColorMessage( UpdateManager& manager, const Vector4& color )
  {
    typedef MessageValue1< UpdateManager, Vector4 > LocalType;
index 37045eddf7e702552aa78b299f6f13391f1e8fe3,d80d7c45fbfd455128c423c2c05a85d04f02761e..c89e2cfc506ab307d5ab30010b0b5c21f3c72fc7
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 6ac143245d4a7a31267a6170c9889125f7ee286f,5cd607379cb0f3aad78b3e45f76e48a4e5cee400..ff60508ac61eb6c34093b2c94dd8d2f2599d9747
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_SCENE_GRAPH_NODE_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 04aeea89b6c3642d9d1f40931db23f708a86f90e,8f9ff00b78b319318cabf8e5609bc10718f2a84d..d6f381558fbb24b3e576d85c01b8c7ab00fd8341
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 0d83181284fce4df2f298afaff9858a238567c0c,f9f38604fd94ba40f189aa27f22737607070c0db..0609a4c7372fdc7a6309cd92a9d6ca3a001a19ec
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index a8729f428598f6ba3afbc4d4f9c0ea322e51f90e,217e7b979579204fa345d6a8d2c51912132bbdd5..1fc3d611bc9ac39842e533670353ef4379ff220f
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_INTERNAL_UPDATE_MESSAGE_QUEUE_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 03c101a5e32df6da2795afa87969fd1db47e1446,b175fd5ead184abd4e9888b2281fb3d37d157c3e..f3195833d4e448551617da26cc27e4f587ab7bc1
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
@@@ -43,19 -42,27 +43,23 @@@ RenderTask* RenderTask::New(
  
  RenderTask::~RenderTask()
  {
-   // Remove exclusive flag from source node
-   if( mExclusive )
+   if ( mSourceNode )
    {
-     if( mSourceNode && (this == mSourceNode->GetExclusiveRenderTask() ) )
+     mSourceNode->RemoveObserver( *this );
+     if( mExclusive )
      {
-       mSourceNode->SetExclusiveRenderTask( NULL );
+       mSourceNode->SetExclusiveRenderTask( nullptr );
      }
    }
 -  if( mRenderSyncTracker )
 -  {
 -    mRenderMessageDispatcher->RemoveRenderTracker( *mRenderSyncTracker );
 -  }
+   if ( mCameraNode )
+   {
+     mCameraNode->RemoveObserver( *this );
+   }
 +  // @todo remove any hard sync object
  }
  
 -void RenderTask::Initialize( RenderMessageDispatcher& renderMessageDispatcher )
 +void RenderTask::Initialize()
  {
 -  mRenderMessageDispatcher = &renderMessageDispatcher;
  }
  
  void RenderTask::SetSourceNode( Node* node )
@@@ -104,11 -119,22 +116,22 @@@ bool RenderTask::IsExclusive() cons
  
  void RenderTask::SetCamera( Node* cameraNode, Camera* camera )
  {
+   if ( mCameraNode )
+   {
+     mCameraNode->RemoveObserver( *this );
+   }
    mCameraNode = cameraNode;
    mCamera = camera;
+   if ( mCameraNode )
+   {
+     mCameraNode->AddObserver( *this );
+   }
+   SetActiveStatus();
  }
  
 -void RenderTask::SetFrameBuffer( Render::FrameBuffer* frameBuffer )
 +void RenderTask::SetFrameBuffer( SceneGraph::FrameBuffer* frameBuffer )
  {
    mFrameBuffer = frameBuffer;
  }
@@@ -359,19 -361,19 +358,19 @@@ const Matrix& RenderTask::GetProjection
    return mCamera->GetProjectionMatrix( bufferIndex );
  }
  
 -void RenderTask::PrepareRenderInstruction( RenderInstruction& instruction, BufferIndex updateBufferIndex )
 +RenderInstruction& RenderTask::PrepareRenderInstruction( BufferIndex updateBufferIndex )
  {
-   DALI_ASSERT_DEBUG( NULL != mCamera );
+   DALI_ASSERT_DEBUG( nullptr != mCamera );
  
    TASK_LOG(Debug::General);
  
    Viewport viewport;
    bool viewportSet = QueryViewport( updateBufferIndex, viewport );
  
 -  instruction.Reset( mCamera,
 -                     GetFrameBuffer(),
 +  mRenderInstruction[updateBufferIndex].Reset( mCamera,
 +                                               GetFrameBuffer(),
-                                                viewportSet ? &viewport : NULL,
-                                                mClearEnabled ? &GetClearColor( updateBufferIndex ) : NULL );
+                      viewportSet ? &viewport : nullptr,
+                      mClearEnabled ? &GetClearColor( updateBufferIndex ) : nullptr );
  
    if( mRequiresSync &&
        mRefreshRate == Dali::RenderTask::REFRESH_ONCE )
@@@ -445,11 -478,20 +466,19 @@@ RenderTask::RenderTask(
  : mViewportPosition( Vector2::ZERO),
    mViewportSize( Vector2::ZERO),
    mClearColor( Dali::RenderTask::DEFAULT_CLEAR_COLOR ),
 -  mRenderMessageDispatcher( nullptr ),
 -  mRenderSyncTracker( nullptr ),
 +  //mRenderSyncTracker( NULL ),
-   mSourceNode( NULL ),
-   mCameraNode( NULL ),
-   mCamera( NULL ),
+   mSourceNode( nullptr ),
+   mCameraNode( nullptr ),
+   mCamera( nullptr ),
    mFrameBuffer(0),
+   mRefreshRate( Dali::RenderTask::DEFAULT_REFRESH_RATE ),
+   mFrameCounter( 0u ),
+   mRenderedOnceCounter( 0u ),
+   mState( (Dali::RenderTask::DEFAULT_REFRESH_RATE == Dali::RenderTask::REFRESH_ALWAYS)
+           ? RENDER_CONTINUOUSLY
+           : RENDER_ONCE_WAITING_FOR_RESOURCES ),
+   mRequiresSync( false ),
+   mActive( false ),
    mWaitingToRender( false ),
    mNotifyTrigger( false ),
    mExclusive( Dali::RenderTask::DEFAULT_EXCLUSIVE ),
index 32928134b5d10378c2476c60311f24468e7ec751,724681bdc753ed3ff930b70e4fa1acdfa5b3e10a..f95366456852c21d0e5b4cf0857396304e17a99d
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_INTERNAL_SCENE_GRAPH_RENDER_TASK_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
@@@ -319,15 -326,29 +319,34 @@@ public
     */
    void SetSyncRequired( bool requiresSync );
  
 +  RenderInstruction& GetRenderInstruction( BufferIndex updateBufferIndex )
 +  {
 +    return mRenderInstruction[updateBufferIndex];
 +  }
 +
+ private: // from PropertyOwner::Observer
+   /**
+    * @copydoc PropertyOwner::Observer::PropertyOwnerConnected( PropertyOwner& owner )
+    */
+   void PropertyOwnerConnected( PropertyOwner& owner );
+   /**
+    * @copydoc PropertyOwner::Observer::PropertyOwnerDisconnected( BufferIndex updateBufferIndex, PropertyOwner& owner )
+    */
+   void PropertyOwnerDisconnected( BufferIndex updateBufferIndex, PropertyOwner& owner );
+   /**
+    * @copydoc PropertyOwner::Observer::PropertyOwnerDestroyed( PropertyOwner& owner )
+    */
+   void PropertyOwnerDestroyed( PropertyOwner& owner );
  private:
  
+   void SetActiveStatus();
    /**
-    * Protected constructor.
+    * Constructor.
     */
    RenderTask();
  
@@@ -347,29 -365,30 +363,30 @@@ private
    Node* mSourceNode;
    Node* mCameraNode;
    SceneGraph::Camera* mCamera;
 -  Render::FrameBuffer* mFrameBuffer;
 +  SceneGraph::FrameBuffer* mFrameBuffer;
 +
 +  RenderInstruction mRenderInstruction[2]; ///< Owned double buffered render instruction. (Double buffered because this owns render commands for the currently drawn frame)
  
-   bool mWaitingToRender:1; ///< True when an render once to FBO is waiting
-   bool mNotifyTrigger:1; ///< True if a render once render task has finished renderering
-   bool mExclusive: 1; ///< Whether the render task has exclusive access to the source actor (node in the scene graph implementation).
-   bool mClearEnabled: 1; ///< Whether previous results are cleared.
-   bool mCullMode: 1; ///< Whether renderers should be frustum culled
+   uint32_t mRefreshRate;   ///< REFRESH_ONCE, REFRESH_ALWAYS or render every N frames
+   uint32_t mFrameCounter;  ///< counter for rendering every N frames
+   uint32_t mRenderedOnceCounter;///< Incremented whenever state changes to RENDERED_ONCE_AND_NOTIFIED
  
-   State mState;                     ///< Render state.
-   uint32_t mRefreshRate;        ///< REFRESH_ONCE, REFRESH_ALWAYS or render every N frames
-   uint32_t mFrameCounter;       ///< counter for rendering every N frames
+   State mState;           ///< Render state.
  
-   uint32_t mRenderedOnceCounter;  ///< Incremented whenever state changes to RENDERED_ONCE_AND_NOTIFIED
-   bool mRequiresSync;              ///< Whether sync is needed to track the render
+   bool mRequiresSync:1;   ///< Whether sync is needed to track the render
+   bool mActive:1;         ///< True when the task is active, i.e. has valid source and camera
+   bool mWaitingToRender:1;///< True when an render once to FBO is waiting
+   bool mNotifyTrigger:1;  ///< True if a render once render task has finished renderering
+   bool mExclusive:1;      ///< Whether the render task has exclusive access to the source actor (node in the scene graph).
+   bool mClearEnabled:1;   ///< Whether previous results are cleared.
+   bool mCullMode:1;       ///< Whether renderers should be frustum culled
  
  };
  
  // Messages for RenderTask
- inline void SetFrameBufferMessage( EventThreadServices& eventThreadServices, RenderTask& task, SceneGraph::FrameBuffer* frameBuffer )
 -inline void SetFrameBufferMessage( EventThreadServices& eventThreadServices, const RenderTask& task, Render::FrameBuffer* frameBuffer )
++inline void SetFrameBufferMessage( EventThreadServices& eventThreadServices, const RenderTask& task, SceneGraph::FrameBuffer* frameBuffer )
  {
 -  typedef MessageValue1< RenderTask, Render::FrameBuffer*> LocalType;
 +  typedef MessageValue1< RenderTask, SceneGraph::FrameBuffer*> LocalType;
  
    // Reserve some memory inside the message queue
    uint32_t* slot = eventThreadServices.ReserveMessageSlot( sizeof( LocalType ) );
index 0b8e970198f21da59ad0b09ed024eac39c1d21bd,0000000000000000000000000000000000000000..91b35563cca3be67a311011c5be38ea158b82d27
mode 100644,000000..100644
--- /dev/null
@@@ -1,156 -1,0 +1,160 @@@
 +/*
 + * Copyright (c) 2019 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.
 + */
 +
 +// CLASS HEADER
 +#include <dali/internal/update/rendering/scene-graph-frame-buffer.h>
 +
 +// INTERNAL INCLUDES
 +#include <dali/internal/update/rendering/scene-graph-texture.h>
 +#include <dali/graphics-api/graphics-api-texture-details.h>
 +#include <dali/graphics-api/graphics-api-framebuffer.h>
 +#include <dali/graphics-api/graphics-api-framebuffer-factory.h>
 +
 +namespace Dali
 +{
 +namespace Internal
 +{
 +namespace SceneGraph
 +{
 +
 +FrameBuffer::FrameBuffer( unsigned int width, unsigned int height, unsigned int attachments )
 +: mGraphicsController( nullptr ),
 +  mGraphicsFramebuffer( nullptr ),
 +  mWidth( width ),
 +  mHeight( height )
 +{
 +}
 +
 +FrameBuffer::~FrameBuffer() = default;
 +
 +void FrameBuffer::Initialize( Graphics::Controller& graphicsController )
 +{
 +  mGraphicsController = &graphicsController;
 +  // Defer creation of framebuffer until a render instruction uses it
 +}
 +
 +void FrameBuffer::AttachColorTexture( SceneGraph::Texture* texture, unsigned int mipmapLevel, unsigned int layer )
 +{
 +  mColorAttachment.texture = texture;
 +  mColorAttachment.mipmapLevel = mipmapLevel;
 +  mColorAttachment.layer = layer;
 +}
 +
 +void FrameBuffer::AttachDepthStencilTexture( SceneGraph::Texture* texture,
 +                                             Dali::FrameBuffer::Attachment::Mask format,
 +                                             unsigned int mipmapLevel,
 +                                             unsigned int layer )
 +{
 +  mDepthAttachment.texture = texture;
 +  mDepthAttachment.format = format;
 +  mDepthAttachment.mipmapLevel = mipmapLevel;
 +  mDepthAttachment.layer = layer;
 +}
 +
 +unsigned int FrameBuffer::GetWidth() const
 +{
 +  return mWidth;
 +}
 +
 +unsigned int FrameBuffer::GetHeight() const
 +{
 +  return mHeight;
 +}
 +
 +void FrameBuffer::PrepareFramebuffer()
 +{
 +  // @todo Check if the color attachments or depth attachments have changed since the graphics object was created
 +  if( !mGraphicsFramebuffer )
 +  {
 +    auto& factory = mGraphicsController->GetFramebufferFactory();
 +    factory.SetSize( Graphics::Extent2D{ mWidth, mHeight } );
 +
 +    /**
 +     * If the framebuffer has a color attachment without a graphics object, create one
 +     */
 +    if( mColorAttachment.texture != nullptr )
 +    {
 +      auto graphicsTexture = mColorAttachment.texture->GetGfxObject();
 +      //@todo check if the texture has the right creation flags - if it's already been uploaded, it
 +      // needs the layout & usage changing appropriately.
 +      if( !graphicsTexture )
 +      {
 +        mColorAttachment.texture->CreateTexture( Texture::Usage::COLOR_ATTACHMENT );
 +        graphicsTexture = mColorAttachment.texture->GetGfxObject();
 +      }
 +
 +      factory.SetColorAttachment( 0, // index of attachment (could have multiple attachments)
 +                                  *graphicsTexture, mColorAttachment.mipmapLevel, mColorAttachment.layer );
 +    }
 +
 +    if( mDepthAttachment.texture != nullptr )
 +    {
 +      auto graphicsTexture = mDepthAttachment.texture->GetGfxObject();
 +      if( graphicsTexture )
 +      {
 +        auto depthStencilFormat = Graphics::TextureDetails::DepthStencilFlag::NONE;
 +        switch( mDepthAttachment.format )
 +        {
 +          case Dali::FrameBuffer::Attachment::NONE:
++          case Dali::FrameBuffer::Attachment::COLOR:
 +          {
 +            depthStencilFormat = Graphics::TextureDetails::DepthStencilFlag::NONE;
 +            break;
 +          }
++          case Dali::FrameBuffer::Attachment::COLOR_DEPTH:
 +          case Dali::FrameBuffer::Attachment::DEPTH:
 +          {
 +            depthStencilFormat = Graphics::TextureDetails::DepthStencilFlag::DEPTH;
 +            break;
 +          }
++          case Dali::FrameBuffer::Attachment::COLOR_STENCIL:
 +          case Dali::FrameBuffer::Attachment::STENCIL:
 +          {
 +            depthStencilFormat = Graphics::TextureDetails::DepthStencilFlag::STENCIL;
 +            break;
 +          }
++          case Dali::FrameBuffer::Attachment::COLOR_DEPTH_STENCIL:
 +          case Dali::FrameBuffer::Attachment::DEPTH_STENCIL:
 +          {
 +            depthStencilFormat = Graphics::TextureDetails::DepthStencilFlag::DEPTH_STENCIL;
 +            break;
 +          }
 +        }
 +
 +        factory.SetDepthStencilAttachment( *graphicsTexture, mDepthAttachment.mipmapLevel, mDepthAttachment.layer,
 +                                           depthStencilFormat );
 +      }
 +    }
 +
 +    mGraphicsFramebuffer = mGraphicsController->CreateFramebuffer( factory );
 +  }
 +}
 +
 +const Graphics::Framebuffer* FrameBuffer::GetGfxObject() const
 +{
 +  return mGraphicsFramebuffer.get();
 +}
 +
 +void FrameBuffer::DestroyGraphicsObjects()
 +{
 +  mGraphicsFramebuffer.reset();
 +}
 +
 +} //Render
 +
 +} //Internal
 +
 +} //Dali
index 765303fc5ae4aad23d3661bd8fa05962607a1308,169be5c82172fe90d257d7a1d9a0451434811913..23b74b8c7fe9c86d34c91a45ed4b68c9a36937f2
@@@ -136,9 -141,8 +136,10 @@@ Renderer::Renderer(
    mBlendMode( BlendMode::AUTO ),
    mDepthWriteMode( DepthWriteMode::AUTO ),
    mDepthTestMode( DepthTestMode::AUTO ),
+   mRenderingBehavior( DevelRenderer::Rendering::IF_REQUIRED ),
    mPremultipledAlphaEnabled( false ),
 +  mRenderCommands{},
 +  mTextureBindings{},
    mOpacity( 1.0f ),
    mDepthIndex( 0 )
  {
@@@ -742,6 -590,78 +743,17 @@@ float Renderer::GetOpacity( BufferInde
  {
    return mOpacity[updateBufferIndex];
  }
 -
+ void Renderer::SetRenderingBehavior( DevelRenderer::Rendering::Type renderingBehavior )
+ {
+   mRenderingBehavior = renderingBehavior;
+ }
+ DevelRenderer::Rendering::Type Renderer::GetRenderingBehavior() const
+ {
+   return mRenderingBehavior;
+ }
 -//Called when SceneGraph::Renderer is added to update manager ( that happens when an "event-thread renderer" is created )
 -void Renderer::ConnectToSceneGraph( SceneController& sceneController, BufferIndex bufferIndex )
 -{
 -  mRegenerateUniformMap = REGENERATE_UNIFORM_MAP;
 -  mSceneController = &sceneController;
 -
 -  mRenderDataProvider = new RenderDataProvider( mOpacity );
 -  mRenderDataProvider->mUniformMapDataProvider = this;
 -
 -  mRenderer = Render::Renderer::New( mRenderDataProvider, mGeometry, mBlendBitmask, GetBlendColor(), static_cast< FaceCullingMode::Type >( mFaceCullingMode ),
 -                                         mPremultipledAlphaEnabled, mDepthWriteMode, mDepthTestMode, mDepthFunction, mStencilParameters );
 -
 -  OwnerPointer< Render::Renderer > transferOwnership( mRenderer );
 -  mSceneController->GetRenderMessageDispatcher().AddRenderer( transferOwnership );
 -}
 -
 -//Called just before destroying the scene-graph renderer ( when the "event-thread renderer" is no longer referenced )
 -void Renderer::DisconnectFromSceneGraph( SceneController& sceneController, BufferIndex bufferIndex )
 -{
 -  //Remove renderer from RenderManager
 -  if( mRenderer )
 -  {
 -    mSceneController->GetRenderMessageDispatcher().RemoveRenderer( *mRenderer );
 -    mRenderer = NULL;
 -  }
 -  mSceneController = NULL;
 -  mRenderDataProvider = NULL;
 -}
 -
 -void Renderer::UpdateTextureSet()
 -{
 -  if( mRenderDataProvider )
 -  {
 -    if( mTextureSet )
 -    {
 -      uint32_t textureCount = mTextureSet->GetTextureCount();
 -      mRenderDataProvider->mTextures.resize( textureCount );
 -      mRenderDataProvider->mSamplers.resize( textureCount );
 -      for( uint32_t i = 0; i<textureCount; ++i )
 -      {
 -        mRenderDataProvider->mTextures[i] = mTextureSet->GetTexture(i);
 -        mRenderDataProvider->mSamplers[i] = mTextureSet->GetTextureSampler(i);
 -      }
 -    }
 -    else
 -    {
 -      mRenderDataProvider->mTextures.clear();
 -      mRenderDataProvider->mSamplers.clear();
 -    }
 -  }
 -}
 -
 -Render::Renderer& Renderer::GetRenderer()
 -{
 -  return *mRenderer;
 -}
 -const CollectedUniformMap& Renderer::GetUniformMap( BufferIndex bufferIndex ) const
 -{
 -  return mCollectedUniformMap[bufferIndex];
 -}
  
  Renderer::OpacityType Renderer::GetOpacityType( BufferIndex updateBufferIndex, const Node& node ) const
  {
index fb62d7a38eb8b47c8cf93f118ed909119373ed8a,7051e4437a9a1dda0fd873a621a8871455e642b0..3507b51588eb41b02373bba076b5e87398f243f6
@@@ -341,13 -322,18 +342,25 @@@ public
     * @return The opacity
     */
    float GetOpacity( BufferIndex updateBufferIndex ) const;
--
++  
 +  /**
 +   * Helper function to update the uniform map.
 +   * @param[in] bufferIndex The buffer to read from.
 +   * @param[in] node NodeDataProvider to get uniform map
 +   */
 +  void UpdateUniformMap( BufferIndex bufferIndex, Node& node );
++  
+   /**
+    * Sets the rendering behavior
+    * @param[in] renderingBehavior The rendering behavior required.
+    */
+   void SetRenderingBehavior( DevelRenderer::Rendering::Type renderingBehavior );
+   /**
+    * Gets the rendering behavior
+    * @return The rendering behavior
+    */
+   DevelRenderer::Rendering::Type GetRenderingBehavior() const;
  
    /**
     * Prepare the object for rendering.
@@@ -503,24 -464,21 +516,25 @@@ private
    uint32_t                     mRegenerateUniformMap;             ///< 2 if the map should be regenerated, 1 if it should be copied.
    uint32_t                     mResendFlag;                       ///< Indicate whether data should be resent to the renderer
  
 +  BlendingOptions              mBlendOptions;                     ///< The blending options
 +
    DepthFunction::Type          mDepthFunction:4;                  ///< Local copy of the depth function
    FaceCullingMode::Type        mFaceCullingMode:3;                ///< Local copy of the mode of face culling
 +
    BlendMode::Type              mBlendMode:3;                      ///< Local copy of the mode of blending
 +
    DepthWriteMode::Type         mDepthWriteMode:3;                 ///< Local copy of the depth write mode
    DepthTestMode::Type          mDepthTestMode:3;                  ///< Local copy of the depth test mode
+   DevelRenderer::Rendering::Type mRenderingBehavior:2;            ///< The rendering behavior
  
 -  bool                         mUniformMapChanged[2];             ///< Records if the uniform map has been altered this frame
    bool                         mPremultipledAlphaEnabled:1;       ///< Flag indicating whether the Pre-multiplied Alpha Blending is required
  
 -public:
 +  RenderCommandContainer       mRenderCommands;
 +  std::vector<Graphics::RenderCommand::TextureBinding> mTextureBindings;
  
 +public:
    AnimatableProperty< float >  mOpacity;                          ///< The opacity value
-   int                          mDepthIndex;                       ///< Used only in PrepareRenderInstructions
+   int32_t                      mDepthIndex;                       ///< Used only in PrepareRenderInstructions
 -
  };
  
  
@@@ -544,10 -502,10 +558,10 @@@ inline void SetGeometryMessage( EventTh
    uint32_t* slot = eventThreadServices.ReserveMessageSlot( sizeof( LocalType ) );
  
    // Construct message in the message queue memory; note that delete should not be called on the return value
 -  new (slot) LocalType( &renderer, &Renderer::SetGeometry, const_cast<Render::Geometry*>(&geometry) );
 +  new (slot) LocalType( &renderer, &Renderer::SetGeometry, const_cast<SceneGraph::Geometry*>(&geometry) );
  }
  
- inline void SetShaderMessage( EventThreadServices& eventThreadServices, const Renderer& renderer, Shader& shader )
+ inline void SetShaderMessage( EventThreadServices& eventThreadServices, const Renderer& renderer, const Shader& shader )
  {
    typedef MessageValue1< Renderer, Shader* > LocalType;
  
index 3d15ba026447e622ef09efd9cca59b69162d819e,7b82148d876470a59092212d4d264357a9caf806..829b7915adde3a3caaf33f2f54f68fddd521c0c8
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_ACTOR_ENUMERATIONS_H
  
  /*
-- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 4255d6e45a3fe19fdc267cae8211f912998f95e1,88a1cd96bc0ebc19d311000593bc8aaea4150baa..4357059d8994f544100679b916d72ba8e65e0062
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2017 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index adb5a779e21b3f76c4d1c4a4e7243f59a5f9ee64,cd70260dc4846311ea1735bfd199beb9c3ebba4e..69319482a086968dfcdce12a7ffbdf2a26c1e28f
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_ACTOR_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index f4cc9fef5c2a833637292f588b6ce118433c1a54,6fc6240501fe1b1ce402c7035f19393f193ee5b3..baf3a7d779db6b3d118db74091a8d2fd95c76a8f
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_CUSTOM_ACTOR_IMPL_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 68190d94013fd56085510f13910e70a66941033f,33fb9ff90a16bc8e6a842321eb5abe8c08f85344..dfbecaf770deae7457d22c4eccde0da552176d5e
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_DRAW_MODE_H__
  
  /*
-- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 15683cff90cb0de8fcdf95aae529563f8ab55b19,3db29befa3fa32ca55742516b7b90bdb6bb9cd2b..f22a9a8cd1ca77ae576cbe860f727d56ebc1266f
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_LAYER_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index da34a19f0e96e370bf2351491e61f8709a30f043,3dda29c7c0938ae50d56a475616948edaa5340bc..f3f875f0606e2660193ca3762896a2df77448689
@@@ -1,5 -1,5 +1,5 @@@
  /*
-  * Copyright (c) 2015 Samsung Electronics Co., Ltd.
 - * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 88ffafe2ab9c00e9e00d575aae04de505d8ce89f,19d460e9b3e3b6d8b1b57610913f9edbc16e8dc1..a23c86af448eac7541f4293d47a575cc6d97efe6
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_VIEW_MODE_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 860e6a80b3e62671c87599279c31ab229c57db8b,fb31cc8aaa5fa9ad187417ef6762097d67fd63b1..52c3799ec1b3869c025f6cf7b28f85536cbfaac7
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 521d266160aa3f5abf327b063bf92706c5675eda,e9b92d9c2a631c67449b5cd9e6bc714ed45a4f25..1042bd140e1f4c0a31dfcd58c300fc6e494ca26f
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_MATH_UTILS_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 3ac17ce6c7f693c8ad398c775d7f5c4cf682961f,18107c1ad0481607dcead41fc0944423ec618275..8e2f23ff7781c990f929dc01b56b9f83beb3c3f1
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index acb274f554f0e2cfa9d30fa73621a2c5b7e019cf,4bbc1486815acdde319aada5b0ba656d9a4abaf7..5fe55c322e5850194ae8e6183302f978f504e679
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index f5a91716c0af129b9f3c5a6d012f10d5b24c761a,1b48d5ccecd694f7460bcab963856189ef2ddbc4..6a72755799977aa05b7dae5fd3371591ce945694
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index c4fef99e31d4535f83adf186a658e66d7a321996,0578e19b353cdd3827643fbfb78c851b45e6b1c2..c0e47d0260c53357b403e85b0d0ebf39f0236df0
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 53a1d91f8297229c0317b8d058e2752dd39c6e4a,bf861ebc02c066352b36a872d01ca7ad997e99bd..386dda26d46ae2dcbb22ce5163f68b6627b0a0e3
@@@ -2,7 -2,7 +2,7 @@@
  #define __DALI_TYPE_INFO_H__
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index f3b1eeaea5a0fd935c779bd1ba6a416042d4007b,dbe1910d9d1a252a83b47e52742cd0b03c484814..b85c6afff330d180c286f23e1ef76bc5adfaca82
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 8f8359c7472dffcfb3afde327c8a3c8d4b55fe36,555accac0907f67d3a549b2460ae3a3249fa38bc..c604bd9d413ac7ec446a9d523a02446050ba0ede
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 099a0aded8b5ed01c14e64ef3fbed58264eae44b,1e70040c3e3419e1c66118c11ccb2d1ecce8f3cf..6daeb6593be3b30a0321329db1a866c8f56477da
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 30c5e6de4d0bdc756018be285eeb8246c148c167,456d3d7641225203c1ceb49fd4939447f4b18f38..44430408207da3236a833d958b1a911ae6fc9e17
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_FRAMEBUFFER_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 81b9e8e18cf90a3f5cda3021026fcafdf1f72b55,a9c7867fe24506bf33834daa727281eaa6afca4f..48f6aab63b24d2fafe48bbc5a7adbefe492e401a
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index e894e30f10b928aac95be822cae1f353d79f7f01,11458e1963a3b09b592969f9bd977f0d4fa4f49f..07f14b8a37c0ed5058a982d205a23c01a76c836e
@@@ -1,5 -1,5 +1,5 @@@
  /*
-- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 6c57ab9b6feca542d0ed18e135180ad46bf1cfcf,4f1ead7f1efc4c9b4027390c79e3fe3c7ea2ccd3..aa1ab6c1a014242be112468b37946bb5cde964cd
@@@ -2,7 -2,7 +2,7 @@@
  #define DALI_SHADER_H
  
  /*
-- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
++ * Copyright (c) 2019 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.
index 851b0b158ede8b7f0dc254ee9a85427d9496739b,717be7269c3be0d43789ee78b923c8f9547a5b75..0c913711f70b4cfa381c11c17a8eb60757432a56
@@@ -1,6 -1,6 +1,6 @@@
 -Name:       dali
 +Name:       dali-vk
  Summary:    DALi 3D Engine
- Version:    1.3.52
+ Version:    1.4.5
  Release:    1
  Group:      System/Libraries
  License:    Apache-2.0 and BSD-3-Clause and MIT