Merge "Text improvement 1. Text - Layout text & icons. * Feature added to layout...
[platform/core/uifw/dali-toolkit.git] / docs / content / shared-javascript-and-cpp-documentation / script-json-specification.md
index 2575417..599e6ce 100644 (file)
@@ -82,7 +82,7 @@ The JSON format deviates from the formal JSON specification and allows C style c
 
 ## Includes {#includes}
 
-The "includes" section is an array of filenames to be merged in order to
+The "includes" section is an array of file names to be merged in order to
 create a final in memory JSON tree.
 
 The merge process will walk key, value attributes from the root JSON
@@ -255,7 +255,7 @@ Builder.AnimateTo("light-theme", myActor, TimePeriod(0, 10));
 ~~~
 
 When applied to an actor tree the actors are referenced by name. Names
-are not unique in Dali.
+are not unique in DALi.
 
 When a style is applied in code DALi will perform a depth first search
 stopping with the first matching name.
@@ -369,48 +369,55 @@ Shader uniforms can be animated as if they are properties of the actor.
 
 When the animation is created from code (or from a signal) the property
 name search begins on the actor, if it isn't found the search continues
-on the attached shader object.
+on the attached renderer, and then on the attached shader object.
 
 The actor property names and shader uniform names must not clash for the
-uniform to animate correctly. The convention in DALi is to prepend
-uniforms with 'u'.
+uniform to animate correctly.
+
+The actor needs to register the uniform properties as custom animatable
+properties.
 
 ~~~
-    {                                    \\
-    "animations":                        \\ Animation library
-    {                                    \\
-     "rotate":                           \\ An Animation named rotate
-     {                                   \\
-     "duration": 10,                     \\
-     "properties":                       \\ Properties changed in this animation
-     [                                   \\
-     {
-     "actor":"image",                    \\ Actor found by name from the stage
-     "property":"uTranslate",            \\ Uniform name specified as if it is a
-                                         \\ property of the object.
-     "value":[10, 20],
-     ...
-     },
-     ...
-     ]
-     },
-     "shaderEffects":
-     {
-     "myshader1":
-     {
-                                        \\ Shader program with uniform
-     "program": {...}                   \\ "uTranslate"
-     }
-     },
-     "actors":
-     [
-     {
-     "name": "image",
-     "effect": "myshader1"              \\ Actor using shader effect instance
-                                        \\ "myshader1"
-     }
-     ]
+{
+  "animations":
+  {
+    "rotate":                          \\ An Animation named rotate
+    {
+      "properties":                    \\ Properties changed in this animation
+      [
+        {
+          "actor": "image",            \\ Actor found by name from the stage
+          "property": "uTranslate",    \\ Uniform name specified as if it is a property of the object
+          "value": [10, 20],           \\ Target value of uniform
+          ...
+        }
+      ]
+    },
+    ...
+  },
+  "stage":
+  [
+    {
+      "type": "ImageView",
+      "name": "image",                 \\ Name of the actor
+      ...
+      "image":
+      {
+        ...
+        "shader":                      \\ ImageView has a shader property where we can set a custom shader
+        {
+          "vertexShader": "..."        \\ Vertex shader with uniform "uTranslate"
+        }
+      },
+      "animatableProperties":          \\ Custom properties that the actor needs to register
+      {
+        "uTranslate": [0, 0]           \\ The name should match the uniform we want to animate
+      },
+      ...
     },
+    ...
+  ]
+}
 ~~~
 
 ## Stage {#stage}
@@ -418,7 +425,7 @@ uniforms with 'u'.
 The stage section supports the immediate creation of actors at the time
 the JSON is loaded.
 
-The stage is a tree of actors that can be added to Dali's stage object.
+The stage is a tree of actors that can be added to DALi's stage object.
 
 ~~~
 // C++
@@ -461,7 +468,7 @@ builder.addActors( dali.stage.getRootLayer() );
 
 # Actor and Control Properties {#actorprop}
 
-Each control has a set of supported properties documented in the "Dali
+Each control has a set of supported properties documented in the "DALi
 UI Control Specification".
 
 Please refer to the above document for further information about specific