<enum name="error">
<entry name="none" value="0"/>
<entry name="object_exists" value="1"/>
- <entry name="viewport_exists" value="2"/>
</enum>
<event name="format">
<arg name="surface" type="object" interface="wl_surface" />
</request>
- <request name="get_viewport">
- <arg name="id" type="new_id" interface="tizen_viewport" />
- <arg name="subsurface" type="object" interface="wl_subsurface" />
- </request>
-
</interface>
<interface name="tizen_video_object" version="1">
</interface>
- <interface name="tizen_viewport" version="1">
-
- <description summary="the viewport for a subsurface">
- This is the alternative and convenient solution of wl_viewport to present
- a subsurface 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.
- - wl_surface.set_buffer_transform
- - wl_surface.set_buffer_scale
- - wl_subsurface.set_position
- - wl_viewport.set_source
- - wl_viewport.set_destination
-
- wl_viewport.set_source is very complicated especially when the buffer of
- wl_surface is transformed by wl_surface.set_buffer_transform. And when the
- parent is resized, if we want to change the geometry of a subsurface also,
- wl_subsurface.set_position and wl_viewport.set_destination should be called
- everytime the parent is resized in client side. This makes difficult to
- synchronize a parent surface and a subsurface on screen.
-
- 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.
-
- The tizen_viewport is specified in the coordinates of a subsurface's parent.
-
- 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,
- tizen_viewport will consider the transform of a parent surface when applying
- the destination mode to a subsurface.
-
- The destination will be cropped by a parent surface.
-
- The change will be applied when wl_surface.commit is called.
- </description>
-
- <request name="destroy" type="destructor" />
-
- <request name="set_transform">
- <description summary="set the transform of a subsurface">
- 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
- rotated.
-
- If need to rotate the subsurface depended on a parent surface,
- tizen_viewport.follow_parent_transform will make it possible.
-
- </description>
- <arg name="transform" type="uint"/>
- </request>
-
- <request name="set_source">
- <description summary="set the source rectalge of a wl_buffer">
- The source rectangle won't be changed when a parent is resized. If it needs
- to be changed, tizen_viewport.set_source should be called with new values.
- </description>
- <arg name="x" type="uint"/>
- <arg name="y" type="uint"/>
- <arg name="width" type="uint"/>
- <arg name="height" 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
- needs to be changed, tizen_viewport.set_destination should be called with
- new values.
- </description>
- <arg name="x" type="int"/>
- <arg name="y" type="int"/>
- <arg name="width" type="uint"/>
- <arg name="height" type="uint"/>
- </request>
-
- <request name="set_destination_ratio">
- <description summary="set the ratio destination rectalge in a parent surface">
- 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.
- </description>
- <arg name="x" type="fixed"/>
- <arg name="y" type="fixed"/>
- <arg name="width" type="fixed"/>
- <arg name="height" type="fixed"/>
- </request>
-
- <request name="get_destination_mode">
- <arg name="id" type="new_id" interface="tizen_destination_mode" />
- </request>
-
- </interface>
-
- <interface name="tizen_destination_mode" version="1">
-
- <description summary="the destination mode for a subsurface">
- 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
- and align values. The ratio, scale, offset and align will be applied
- sequentially.
-
- The change will be applied when wl_surface.commit is called.
- </description>
-
- <enum name="error">
- <entry name="invalid_type" value="0"/>
- </enum>
-
- <enum name="type">
- <entry name="none" value="0"/>
- <entry name="letter_box" value="1"/>
- <entry name="origin" value="2"/>
- <entry name="full" value="3"/>
- <entry name="cropped_full" value="4"/>
- <entry name="origin_or_letter" value="5"/>
- </enum>
-
- <request name="destroy" type="destructor" />
-
- <request name="follow_parent_transform">
- <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.
- </description>
- </request>
-
- <request name="unfollow_parent_transform" />
-
- <request name="set" summary="set the destination mode">
- <arg name="mode" type="uint" enum="type"/>
- </request>
-
- <request name="set_ratio">
- <description summary="set the ratio of the destination rectangle of a subsurface">
- This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
- </description>
- <arg name="horizontal" type="fixed"/>
- <arg name="vertical" type="fixed"/>
- </request>
-
- <request name="set_scale">
- <description summary="set the scale of the destination rectangle of a subsurface">
- This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
- </description>
- <arg name="horizontal" type="fixed"/>
- <arg name="vertical" type="fixed"/>
- </request>
-
- <request name="set_align">
- <description summary="set the align of the destination rectangle of a subsurface">
- This allows the real number between 0.0 and 1.0. See wl_fixed_from_double and
- wl_fixed_to_double.
- </description>
- <arg name="horizontal" type="fixed"/>
- <arg name="vertical" type="fixed"/>
- </request>
-
- <request name="set_offset">
- <arg name="x" type="int"/>
- <arg name="y" type="int"/>
- <arg name="w" type="int"/>
- <arg name="h" type="int"/>
- </request>
-
- </interface>
-
<interface name="tizen_embedded_compositor" version="1">
<description summary="global embedded compositor object">