support a normal surface to unify the viewport interface 58/83658/1
authorBoram Park <boram1288.park@samsung.com>
Thu, 28 Jul 2016 02:36:12 +0000 (11:36 +0900)
committerBoram Park <boram1288.park@samsung.com>
Thu, 11 Aug 2016 01:00:48 +0000 (10:00 +0900)
- support a normal surface to unify the viewport interface
- send "destination_changed" event to let client know the geometry information

Change-Id: Ie9982caa6d7b58fa5ea99a312dde4592dc0b8273

protocol/tizen-extension.xml

index d1fa84c..7bacfa6 100644 (file)
 
     <request name="get_viewport">
       <arg name="id" type="new_id" interface="tizen_viewport" />
-      <arg name="subsurface" type="object" interface="wl_subsurface" />
+      <arg name="surface" type="object" interface="wl_surface" />
     </request>
 
   </interface>
 
   <interface name="tizen_viewport" version="1">
 
-      <description summary="the viewport for a subsurface">
+      <description summary="the viewport for a surface">
     This is the alternative and convenient solution of wl_viewport to present
-    a subsurface on screen.
+    a surface on screen.
 
     The below five functions can be replaced with this interface. The below
-    functions will be ignored after applying this interface to a subsurface.
+    functions will be ignored after applying this interface to a surface.
      - wl_surface.set_buffer_transform
      - wl_surface.set_buffer_scale
      - wl_subsurface.set_position
     tizen_viewport allows clients to set the relative geometry to a subsurface
     in a parent surface. Whenever a parent surface is resized, the geometry of
     a subsurface will be calculated, moved and resized automatically by a
-    compositor.
+    compositor. The tizen_viewport is specified in the coordinates of a
+    subsurface's parent.
 
-    The tizen_viewport is specified in the coordinates of a subsurface's parent.
+       If tizen_viewport is applied to a shell surface(toplevel), the all value related
+       with x, y pos of tizen_viewport and tizen_destination_mode interface will be ignored.
 
     The below 3 functions don't consider the transform of a parent's surface.
      - tizen_viewport.set_source
      - tizen_viewport.set_destination
      - tizen_viewport.set_destination_ratio
 
-    However, tizen_destination_mode.follow_parent_transform is called,
+    Furthermore, tizen_destination_mode.follow_parent_transform is called,
     tizen_viewport will consider the transform of a parent surface when applying
-    the destination mode to a subsurface.
+    the destination mode to a subsurface. If tizen_destination_mode.follow_parent_transform
+    is applied to a shell surface, it will be ignored.
 
     The destination will be cropped by a parent surface.
 
     The change will be applied when wl_surface.commit is called.
       </description>
 
+    <event name="destination_changed">
+      <arg name="transform" type="uint"/>
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="width" type="uint"/>
+      <arg name="height" type="uint"/>
+    </event>
+
     <request name="destroy" type="destructor" />
 
     <request name="set_transform">
-      <description summary="set the transform of a subsurface">
+      <description summary="set the transform of a surface">
     The accepted values for the transform parameter are the values for wl_output.transform
     according to the output transform.
 
     The tizen_viewport.set_transform is applied only to itself. Basically it
     doesn't effect the transform of its subsurfaces. That is, if 90 transform is
-    setted and its subsurface has 0 transform, its subsurface won't be
+    setted and its subsurface still has 0 transform, its subsurface won't be
     rotated.
 
-    If need to rotate the subsurface depended on a parent surface,
-    tizen_viewport.follow_parent_transform will make it possible.
+    If needed to rotate the subsurface depended on a parent surface,
+    tizen_destination_mode.follow_parent_transform will make it possible.
 
       </description>
       <arg name="transform" type="uint"/>
     </request>
 
     <request name="set_destination">
-      <description summary="set the destination rectalge in a parent surface">
-    The destination rectangle won't be changed when a parent is resized. If it
+      <description summary="set the destination geometry of a surface">
+    The destination geometry won't be changed when a parent is resized. If it
     needs to be changed, tizen_viewport.set_destination should be called with
     new values.
+
+       If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
+       tizen_viewport.set_destination will be ignored.
       </description>
       <arg name="x" type="int"/>
       <arg name="y" type="int"/>
     The destination rectangle of a subsurface will be automatically changed
     when a parent is resized. This allows the real number between 0.0 and 1.0.
     See wl_fixed_from_double and wl_fixed_to_double.
+
+       If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
+       tizen_viewport.set_destination_ratio will be ignored.
       </description>
       <arg name="x" type="fixed"/>
       <arg name="y" type="fixed"/>
 
   <interface name="tizen_destination_mode" version="1">
 
-      <description summary="the destination mode for a subsurface">
+      <description summary="the destination mode for a surface">
     The destination rectangle will be automatically changed when a parent is
     resized. When tizen_destination_mode.set is called, the value of
     tizen_viewport.set_destination and tizen_viewport.set_destination_ratio
     will be ignored.
 
-    The destination of a subsurface is decided by the mode, ratio, scale, offset
+    The destination of a surface is decided by the mode, ratio, scale, offset
     and align values. The ratio, scale, offset and align will be applied
     sequentially.
 
       <description summary="follow the transform change of a parent surface">
     The real transform of a subsurface is (parent's transform + subsurface's transform).
     That is, the subsurface will be rotated automatically when the parent is rotated.
+
+    If tizen_destination_mode.follow_parent_transform is applied to a shell surface(toplevel),
+    it will be ignored.
       </description>
     </request>