2 * Copyright (C) 2013 DENSO CORPORATION
4 * Permission to use, copy, modify, distribute, and sell this software and
5 * its documentation for any purpose is hereby granted without fee, provided
6 * that the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name of the copyright holders not be used in
9 * advertising or publicity pertaining to distribution of the software
10 * without specific, written prior permission. The copyright holders make
11 * no representations about the suitability of this software for any
12 * purpose. It is provided "as is" without express or implied warranty.
14 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
15 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
17 * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
18 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
19 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
20 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
24 * The ivi-layout library supports API set of controlling properties of
25 * surface and layer which groups surfaces. An unique ID whose type is integer
26 * is required to create surface and layer. With the unique ID, surface and
27 * layer are identified to control them. The API set consists of APIs to control
28 * properties of surface and layers about followings,
31 * - clipping (x,y,width,height).
32 * - position and size of it to be displayed.
33 * - orientation per 90 degree.
34 * - add or remove surfaces to a layer.
35 * - order of surfaces/layers in layer/screen to be displayed.
36 * - commit to apply property changes.
37 * - notifications of property change.
39 * Management of surfaces and layers grouping these surfaces are common way in
40 * In-Vehicle Infotainment system, which integrate several domains in one system.
41 * A layer is allocated to a domain in order to control application surfaces
42 * grouped to the layer all together.
45 #ifndef _IVI_LAYOUT_EXPORT_H_
46 #define _IVI_LAYOUT_EXPORT_H_
50 #endif /* __cplusplus */
52 #include "compositor.h"
53 #include "ivi-layout.h"
55 struct ivi_layout_layer;
56 struct ivi_layout_screen;
58 enum ivi_layout_notification_mask {
59 IVI_NOTIFICATION_NONE = 0,
60 IVI_NOTIFICATION_OPACITY = (1 << 1),
61 IVI_NOTIFICATION_SOURCE_RECT = (1 << 2),
62 IVI_NOTIFICATION_DEST_RECT = (1 << 3),
63 IVI_NOTIFICATION_DIMENSION = (1 << 4),
64 IVI_NOTIFICATION_POSITION = (1 << 5),
65 IVI_NOTIFICATION_ORIENTATION = (1 << 6),
66 IVI_NOTIFICATION_VISIBILITY = (1 << 7),
67 IVI_NOTIFICATION_PIXELFORMAT = (1 << 8),
68 IVI_NOTIFICATION_ADD = (1 << 9),
69 IVI_NOTIFICATION_REMOVE = (1 << 10),
70 IVI_NOTIFICATION_CONFIGURE = (1 << 11),
71 IVI_NOTIFICATION_KEYBOARD_FOCUS = (1 << 12),
72 IVI_NOTIFICATION_ALL = 0xFFFF
75 enum ivi_layout_transition_type{
76 IVI_LAYOUT_TRANSITION_NONE,
77 IVI_LAYOUT_TRANSITION_VIEW_DEFAULT,
78 IVI_LAYOUT_TRANSITION_VIEW_DEST_RECT_ONLY,
79 IVI_LAYOUT_TRANSITION_VIEW_FADE_ONLY,
80 IVI_LAYOUT_TRANSITION_LAYER_FADE,
81 IVI_LAYOUT_TRANSITION_LAYER_MOVE,
82 IVI_LAYOUT_TRANSITION_LAYER_VIEW_ORDER,
83 IVI_LAYOUT_TRANSITION_MAX,
86 typedef void(*shellWarningNotificationFunc)(uint32_t id_surface,
87 enum ivi_layout_warning_flag warn,
90 typedef void(*layerPropertyNotificationFunc)(struct ivi_layout_layer *ivilayer,
91 struct ivi_layout_LayerProperties*,
92 enum ivi_layout_notification_mask mask,
95 typedef void(*surfacePropertyNotificationFunc)(struct ivi_layout_surface *ivisurf,
96 struct ivi_layout_SurfaceProperties*,
97 enum ivi_layout_notification_mask mask,
100 typedef void(*layerCreateNotificationFunc)(struct ivi_layout_layer *ivilayer,
103 typedef void(*layerRemoveNotificationFunc)(struct ivi_layout_layer *ivilayer,
106 typedef void(*surfaceCreateNotificationFunc)(struct ivi_layout_surface *ivisurf,
109 typedef void(*surfaceRemoveNotificationFunc)(struct ivi_layout_surface *ivisurf,
112 typedef void(*surfaceConfigureNotificationFunc)(struct ivi_layout_surface *ivisurf,
115 typedef void(*ivi_controller_surface_content_callback)(struct ivi_layout_surface *ivisurf,
120 ivi_layout_addNotificationShellWarning(shellWarningNotificationFunc callback,
124 ivi_layout_removeNotificationShellWarning(shellWarningNotificationFunc callback,
128 * \brief to be called by ivi-shell in order to set initail view of
133 ivi_layout_get_weston_view(struct ivi_layout_surface *surface);
137 * \brief initialize ivi-layout
141 ivi_layout_initWithCompositor(struct weston_compositor *ec);
145 * \brief register for notification when layer is created
148 ivi_layout_addNotificationCreateLayer(layerCreateNotificationFunc callback,
152 ivi_layout_removeNotificationCreateLayer(layerCreateNotificationFunc callback,
156 * \brief register for notification when layer is removed
159 ivi_layout_addNotificationRemoveLayer(layerRemoveNotificationFunc callback,
163 ivi_layout_removeNotificationRemoveLayer(layerRemoveNotificationFunc callback,
167 * \brief register for notification when surface is created
170 ivi_layout_addNotificationCreateSurface(surfaceCreateNotificationFunc callback,
174 ivi_layout_removeNotificationCreateSurface(surfaceCreateNotificationFunc callback,
178 * \brief register for notification when surface is removed
181 ivi_layout_addNotificationRemoveSurface(surfaceRemoveNotificationFunc callback,
185 ivi_layout_removeNotificationRemoveSurface(surfaceRemoveNotificationFunc callback,
189 * \brief register for notification when surface is configured
192 ivi_layout_addNotificationConfigureSurface(surfaceConfigureNotificationFunc callback,
196 ivi_layout_removeNotificationConfigureSurface(surfaceConfigureNotificationFunc callback,
200 * \brief get id of surface from ivi_layout_surface
202 * \return 0 if the method call was successful
203 * \return -1 if the method call was failed
206 ivi_layout_getIdOfSurface(struct ivi_layout_surface *ivisurf);
209 * \brief get id of layer from ivi_layout_layer
212 * \return 0 if the method call was successful
213 * \return -1 if the method call was failed
216 ivi_layout_getIdOfLayer(struct ivi_layout_layer *ivilayer);
219 * \brief get ivi_layout_layer from id of layer
221 * \return (struct ivi_layout_layer *)
222 * if the method call was successful
223 * \return NULL if the method call was failed
225 struct ivi_layout_layer *
226 ivi_layout_getLayerFromId(uint32_t id_layer);
229 * \brief get ivi_layout_surface from id of surface
231 * \return (struct ivi_layout_surface *)
232 * if the method call was successful
233 * \return NULL if the method call was failed
235 struct ivi_layout_surface *
236 ivi_layout_getSurfaceFromId(uint32_t id_surface);
239 * \brief get ivi_layout_screen from id of screen
241 * \return (struct ivi_layout_screen *)
242 * if the method call was successful
243 * \return NULL if the method call was failed
245 struct ivi_layout_screen *
246 ivi_layout_getScreenFromId(uint32_t id_screen);
249 * \brief Get the screen resolution of a specific screen
251 * \return 0 if the method call was successful
252 * \return -1 if the method call was failed
255 ivi_layout_getScreenResolution(struct ivi_layout_screen *iviscrn,
260 * \brief register for notification on property changes of surface
262 * \return 0 if the method call was successful
263 * \return -1 if the method call was failed
266 ivi_layout_surfaceAddNotification(struct ivi_layout_surface *ivisurf,
267 surfacePropertyNotificationFunc callback,
271 * \brief remove notification on property changes of surface
273 * \return 0 if the method call was successful
274 * \return -1 if the method call was failed
277 ivi_layout_surfaceRemoveNotification(struct ivi_layout_surface *ivisurf);
280 * \brief Create a surface
282 * \return 0 if the method call was successful
283 * \return -1 if the method call was failed
286 struct ivi_layout_surface *
287 ivi_layout_surfaceCreate(struct weston_surface *wl_surface,
288 uint32_t id_surface);
292 * \brief Set the native content of an application to be used as surface content.
293 * If wl_surface is NULL, remove the native content of a surface
295 * \return 0 if the method call was successful
296 * \return -1 if the method call was failed
300 ivi_layout_surfaceSetNativeContent(struct weston_surface *wl_surface,
303 uint32_t id_surface);
307 * \brief Set an observer callback for surface content status change.
309 * \return 0 if the method call was successful
310 * \return -1 if the method call was failed
313 ivi_layout_surfaceSetContentObserver(struct ivi_layout_surface *ivisurf,
314 ivi_controller_surface_content_callback callback,
318 * \brief initialize ivi_layout_surface dest/source width and height
322 ivi_layout_surfaceConfigure(struct ivi_layout_surface *ivisurf,
323 uint32_t width, uint32_t height);
327 * \brief Remove a surface
329 * \return 0 if the method call was successful
330 * \return -1 if the method call was failed
333 ivi_layout_surfaceRemove(struct ivi_layout_surface *ivisurf);
336 * \brief Set from which kind of devices the surface can accept input events.
337 * By default, a surface accept input events from all kind of devices (keyboards, pointer, ...)
338 * By calling this function, you can adjust surface preferences. Note that this function only
339 * adjust the acceptance for the specified devices. Non specified are keept untouched.
341 * Typicall use case for this function is when dealing with pointer or touch events.
342 * Those are normally dispatched to the first visible surface below the coordinate.
343 * If you want a different behavior (i.e. forward events to an other surface below the coordinate,
344 * you can set all above surfaces to refuse input events)
346 * \return 0 if the method call was successful
347 * \return -1 if the method call was failed
350 ivi_layout_UpdateInputEventAcceptanceOn(struct ivi_layout_surface *ivisurf,
355 * \brief Get the layer properties
357 * \return 0 if the method call was successful
358 * \return -1 if the method call was failed
361 ivi_layout_getPropertiesOfLayer(struct ivi_layout_layer *ivilayer,
362 struct ivi_layout_LayerProperties *pLayerProperties);
365 * \brief Get the number of hardware layers of a screen
367 * \return 0 if the method call was successful
368 * \return -1 if the method call was failed
371 ivi_layout_getNumberOfHardwareLayers(uint32_t id_screen,
372 int32_t *pNumberOfHardwareLayers);
375 * \brief Get the screens
377 * \return 0 if the method call was successful
378 * \return -1 if the method call was failed
381 ivi_layout_getScreens(int32_t *pLength, struct ivi_layout_screen ***ppArray);
384 * \brief Get the screens under the given layer
386 * \return 0 if the method call was successful
387 * \return -1 if the method call was failed
390 ivi_layout_getScreensUnderLayer(struct ivi_layout_layer *ivilayer,
392 struct ivi_layout_screen ***ppArray);
395 * \brief Get all Layers which are currently registered and managed by the services
397 * \return 0 if the method call was successful
398 * \return -1 if the method call was failed
401 ivi_layout_getLayers(int32_t *pLength, struct ivi_layout_layer ***ppArray);
404 * \brief Get all Layers of the given screen
406 * \return 0 if the method call was successful
407 * \return -1 if the method call was failed
410 ivi_layout_getLayersOnScreen(struct ivi_layout_screen *iviscrn,
412 struct ivi_layout_layer ***ppArray);
415 * \brief Get all Layers under the given surface
417 * \return 0 if the method call was successful
418 * \return -1 if the method call was failed
421 ivi_layout_getLayersUnderSurface(struct ivi_layout_surface *ivisurf,
423 struct ivi_layout_layer ***ppArray);
426 * \brief Get all Surfaces which are currently registered and managed by the services
428 * \return 0 if the method call was successful
429 * \return -1 if the method call was failed
432 ivi_layout_getSurfaces(int32_t *pLength, struct ivi_layout_surface ***ppArray);
435 * \brief Get all Surfaces which are currently registered to a given layer and are managed by the services
437 * \return 0 if the method call was successful
438 * \return -1 if the method call was failed
441 ivi_layout_getSurfacesOnLayer(struct ivi_layout_layer *ivilayer,
443 struct ivi_layout_surface ***ppArray);
446 * \brief Create a layer which should be managed by the service
448 * \return 0 if the method call was successful
449 * \return -1 if the method call was failed
451 struct ivi_layout_layer *
452 ivi_layout_layerCreateWithDimension(uint32_t id_layer,
453 int32_t width, int32_t height);
456 * \brief Removes a layer which is currently managed by the service
458 * \return 0 if the method call was successful
459 * \return -1 if the method call was failed
462 ivi_layout_layerRemove(struct ivi_layout_layer *ivilayer);
465 * \brief Get the current type of the layer.
467 * \return 0 if the method call was successful
468 * \return -1 if the method call was failed
471 ivi_layout_layerGetType(struct ivi_layout_layer *ivilayer,
472 int32_t *pLayerType);
475 * \brief Set the visibility of a layer. If a layer is not visible, the layer and its
476 * surfaces will not be rendered.
478 * \return 0 if the method call was successful
479 * \return -1 if the method call was failed
482 ivi_layout_layerSetVisibility(struct ivi_layout_layer *ivilayer,
483 int32_t newVisibility);
486 * \brief Get the visibility of a layer. If a layer is not visible, the layer and its
487 * surfaces will not be rendered.
489 * \return 0 if the method call was successful
490 * \return -1 if the method call was failed
493 ivi_layout_layerGetVisibility(struct ivi_layout_layer *ivilayer,
494 int32_t *pVisibility);
497 * \brief Set the opacity of a layer.
499 * \return 0 if the method call was successful
500 * \return -1 if the method call was failed
503 ivi_layout_layerSetOpacity(struct ivi_layout_layer *ivilayer, float opacity);
506 * \brief Get the opacity of a layer.
508 * \return 0 if the method call was successful
509 * \return -1 if the method call was failed
512 ivi_layout_layerGetOpacity(struct ivi_layout_layer *ivilayer, float *pOpacity);
515 * \brief Set the area of a layer which should be used for the rendering.
516 * Only this part will be visible.
518 * \return 0 if the method call was successful
519 * \return -1 if the method call was failed
522 ivi_layout_layerSetSourceRectangle(struct ivi_layout_layer *ivilayer,
523 int32_t x, int32_t y,
524 int32_t width, int32_t height);
527 * \brief Set the destination area on the display for a layer.
528 * The layer will be scaled and positioned to this rectangle for rendering
530 * \return 0 if the method call was successful
531 * \return -1 if the method call was failed
534 ivi_layout_layerSetDestinationRectangle(struct ivi_layout_layer *ivilayer,
535 int32_t x, int32_t y,
536 int32_t width, int32_t height);
539 * \brief Get the horizontal and vertical dimension of the layer.
541 * \return 0 if the method call was successful
542 * \return -1 if the method call was failed
545 ivi_layout_layerGetDimension(struct ivi_layout_layer *ivilayer,
546 int32_t *pDimension);
549 * \brief Set the horizontal and vertical dimension of the layer.
551 * \return 0 if the method call was successful
552 * \return -1 if the method call was failed
555 ivi_layout_layerSetDimension(struct ivi_layout_layer *ivilayer,
556 int32_t *pDimension);
559 * \brief Get the horizontal and vertical position of the layer.
561 * \return 0 if the method call was successful
562 * \return -1 if the method call was failed
565 ivi_layout_layerGetPosition(struct ivi_layout_layer *ivilayer,
569 * \brief Sets the horizontal and vertical position of the layer.
571 * \return 0 if the method call was successful
572 * \return -1 if the method call was failed
575 ivi_layout_layerSetPosition(struct ivi_layout_layer *ivilayer,
579 * \brief Sets the orientation of a layer.
581 * \return 0 if the method call was successful
582 * \return -1 if the method call was failed
585 ivi_layout_layerSetOrientation(struct ivi_layout_layer *ivilayer,
586 int32_t orientation);
589 * \brief Gets the orientation of a layer.
591 * \return 0 if the method call was successful
592 * \return -1 if the method call was failed
595 ivi_layout_layerGetOrientation(struct ivi_layout_layer *ivilayer,
596 int32_t *pOrientation);
599 * \brief Sets the color value which defines the transparency value.
601 * \return 0 if the method call was successful
602 * \return -1 if the method call was failed
605 ivi_layout_layerSetChromaKey(struct ivi_layout_layer *ivilayer,
609 * \brief Sets render order of surfaces within one layer
611 * \return 0 if the method call was successful
612 * \return -1 if the method call was failed
615 ivi_layout_layerSetRenderOrder(struct ivi_layout_layer *ivilayer,
616 struct ivi_layout_surface **pSurface,
620 * \brief Get the capabilities of a layer
622 * \return 0 if the method call was successful
623 * \return -1 if the method call was failed
626 ivi_layout_layerGetCapabilities(struct ivi_layout_layer *ivilayer,
627 int32_t *pCapabilities);
630 * \brief Get the possible capabilities of a layertype
632 * \return 0 if the method call was successful
633 * \return -1 if the method call was failed
636 ivi_layout_layerTypeGetCapabilities(int32_t layerType,
637 int32_t *pCapabilities);
640 * \brief Create the logical surface, which has no native buffer associated
642 * \return 0 if the method call was successful
643 * \return -1 if the method call was failed
646 ivi_layout_surfaceInitialize(struct ivi_layout_surface **pSurface);
649 * \brief Set the visibility of a surface.
650 * If a surface is not visible it will not be rendered.
652 * \return 0 if the method call was successful
653 * \return -1 if the method call was failed
656 ivi_layout_surfaceSetVisibility(struct ivi_layout_surface *ivisurf,
657 int32_t newVisibility);
660 * \brief Get the visibility of a surface.
661 * If a surface is not visible it will not be rendered.
663 * \return 0 if the method call was successful
664 * \return -1 if the method call was failed
667 ivi_layout_surfaceGetVisibility(struct ivi_layout_surface *ivisurf,
668 int32_t *pVisibility);
671 * \brief Set the opacity of a surface.
673 * \return 0 if the method call was successful
674 * \return -1 if the method call was failed
677 ivi_layout_surfaceSetOpacity(struct ivi_layout_surface *ivisurf,
681 * \brief Get the opacity of a surface.
683 * \return 0 if the method call was successful
684 * \return -1 if the method call was failed
687 ivi_layout_surfaceGetOpacity(struct ivi_layout_surface *ivisurf,
691 * \brief Set the keyboard focus on a certain surface
692 * To receive keyboard events, 2 conditions must be fulfilled:
693 * 1- The surface must accept events from keyboard. See ilm_UpdateInputEventAcceptanceOn
694 * 2- The keyboard focus must be set on that surface
696 * \return 0 if the method call was successful
697 * \return -1 if the method call was failed
700 ivi_layout_SetKeyboardFocusOn(struct ivi_layout_surface *ivisurf);
703 * \brief Get the indentifier of the surface which hold the keyboard focus
705 * \return 0 if the method call was successful
706 * \return -1 if the method call was failed
709 ivi_layout_GetKeyboardFocusSurfaceId(struct ivi_layout_surface **pSurfaceId);
712 * \brief Set the destination area of a surface within a layer for rendering.
713 * The surface will be scaled to this rectangle for rendering.
715 * \return 0 if the method call was successful
716 * \return -1 if the method call was failed
719 ivi_layout_surfaceSetDestinationRectangle(struct ivi_layout_surface *ivisurf,
720 int32_t x, int32_t y,
721 int32_t width, int32_t height);
724 * \brief Set the horizontal and vertical dimension of the surface.
726 * \return 0 if the method call was successful
727 * \return -1 if the method call was failed
730 ivi_layout_surfaceSetDimension(struct ivi_layout_surface *ivisurf,
731 int32_t *pDimension);
734 * \brief Get the horizontal and vertical dimension of the surface.
736 * \return 0 if the method call was successful
737 * \return -1 if the method call was failed
740 ivi_layout_surfaceGetDimension(struct ivi_layout_surface *ivisurf,
741 int32_t *pDimension);
744 * \brief Sets the horizontal and vertical position of the surface.
746 * \return 0 if the method call was successful
747 * \return -1 if the method call was failed
750 ivi_layout_surfaceSetPosition(struct ivi_layout_surface *ivisurf,
754 * \brief Get the horizontal and vertical position of the surface.
756 * \return 0 if the method call was successful
757 * \return -1 if the method call was failed
760 ivi_layout_surfaceGetPosition(struct ivi_layout_surface *ivisurf,
764 * \brief Sets the orientation of a surface.
766 * \return 0 if the method call was successful
767 * \return -1 if the method call was failed
770 ivi_layout_surfaceSetOrientation(struct ivi_layout_surface *ivisurf,
771 int32_t orientation);
774 * \brief Gets the orientation of a surface.
776 * \return 0 if the method call was successful
777 * \return -1 if the method call was failed
780 ivi_layout_surfaceGetOrientation(struct ivi_layout_surface *ivisurf,
781 int32_t *pOrientation);
784 * \brief Gets the pixelformat of a surface.
786 * \return 0 if the method call was successful
787 * \return -1 if the method call was failed
790 ivi_layout_surfaceGetPixelformat(struct ivi_layout_layer *ivisurf,
791 int32_t *pPixelformat);
794 * \brief Sets the color value which defines the transparency value of a surface.
796 * \return 0 if the method call was successful
797 * \return -1 if the method call was failed
800 ivi_layout_surfaceSetChromaKey(struct ivi_layout_surface *ivisurf,
804 * \brief Add a layer to a screen which is currently managed by the service
806 * \return 0 if the method call was successful
807 * \return -1 if the method call was failed
810 ivi_layout_screenAddLayer(struct ivi_layout_screen *iviscrn,
811 struct ivi_layout_layer *addlayer);
814 * \brief Sets render order of layers on a display
816 * \return 0 if the method call was successful
817 * \return -1 if the method call was failed
820 ivi_layout_screenSetRenderOrder(struct ivi_layout_screen *iviscrn,
821 struct ivi_layout_layer **pLayer,
822 const int32_t number);
825 * \brief Enable or disable a rendering optimization
827 * \return 0 if the method call was successful
828 * \return -1 if the method call was failed
831 ivi_layout_SetOptimizationMode(uint32_t id, int32_t mode);
834 * \brief Get the current enablement for an optimization
836 * \return 0 if the method call was successful
837 * \return -1 if the method call was failed
840 ivi_layout_GetOptimizationMode(uint32_t id, int32_t *pMode);
843 * \brief register for notification on property changes of layer
845 * \return 0 if the method call was successful
846 * \return -1 if the method call was failed
849 ivi_layout_layerAddNotification(struct ivi_layout_layer *ivilayer,
850 layerPropertyNotificationFunc callback,
854 * \brief remove notification on property changes of layer
856 * \return 0 if the method call was successful
857 * \return -1 if the method call was failed
860 ivi_layout_layerRemoveNotification(struct ivi_layout_layer *ivilayer);
863 * \brief Get the surface properties
865 * \return 0 if the method call was successful
866 * \return -1 if the method call was failed
869 ivi_layout_getPropertiesOfSurface(struct ivi_layout_surface *ivisurf,
870 struct ivi_layout_SurfaceProperties *pSurfaceProperties);
873 * \brief Add a surface to a layer which is currently managed by the service
875 * \return 0 if the method call was successful
876 * \return -1 if the method call was failed
879 ivi_layout_layerAddSurface(struct ivi_layout_layer *ivilayer,
880 struct ivi_layout_surface *addsurf);
883 * \brief Removes a surface from a layer which is currently managed by the service
885 * \return 0 if the method call was successful
886 * \return -1 if the method call was failed
889 ivi_layout_layerRemoveSurface(struct ivi_layout_layer *ivilayer,
890 struct ivi_layout_surface *remsurf);
893 * \brief Set the area of a surface which should be used for the rendering.
895 * \return 0 if the method call was successful
896 * \return -1 if the method call was failed
899 ivi_layout_surfaceSetSourceRectangle(struct ivi_layout_surface *ivisurf,
900 int32_t x, int32_t y,
901 int32_t width, int32_t height);
904 * \brief get weston_output from ivi_layout_screen.
906 * \return (struct weston_screen *)
907 * if the method call was successful
908 * \return NULL if the method call was failed
910 struct weston_output *
911 ivi_layout_screenGetOutput(struct ivi_layout_screen *);
913 struct weston_surface *
914 ivi_layout_surfaceGetWestonSurface(struct ivi_layout_surface *ivisurf);
917 ivi_layout_surfaceGetSize(struct ivi_layout_surface *ivisurf, int32_t *width, int32_t *height, int32_t *stride);
920 ivi_layout_layerSetTransition(struct ivi_layout_layer *ivilayer,
921 enum ivi_layout_transition_type type,
925 ivi_layout_layerSetFadeInfo(struct ivi_layout_layer* layer,
927 double start_alpha, double end_alpha);
930 ivi_layout_surfaceSetTransition(struct ivi_layout_surface *ivisurf,
931 enum ivi_layout_transition_type type,
935 ivi_layout_surfaceSetTransitionDuration(struct ivi_layout_surface *ivisurf,uint32_t duration);
938 * \brief Commit all changes and execute all enqueued commands since last commit.
940 * \return 0 if the method call was successful
941 * \return -1 if the method call was failed
944 ivi_layout_commitChanges(void);
948 #endif /* __cplusplus */
950 #endif /* _IVI_LAYOUT_EXPORT_H_ */