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_ALL = 0xFFFF
74 enum ivi_layout_transition_type{
75 IVI_LAYOUT_TRANSITION_NONE,
76 IVI_LAYOUT_TRANSITION_VIEW_DEFAULT,
77 IVI_LAYOUT_TRANSITION_VIEW_DEST_RECT_ONLY,
78 IVI_LAYOUT_TRANSITION_VIEW_FADE_ONLY,
79 IVI_LAYOUT_TRANSITION_LAYER_FADE,
80 IVI_LAYOUT_TRANSITION_LAYER_MOVE,
81 IVI_LAYOUT_TRANSITION_LAYER_VIEW_ORDER,
82 IVI_LAYOUT_TRANSITION_MAX,
85 typedef void(*shellWarningNotificationFunc)(uint32_t id_surface,
86 enum ivi_layout_warning_flag warn,
89 typedef void(*layerPropertyNotificationFunc)(struct ivi_layout_layer *ivilayer,
90 struct ivi_layout_LayerProperties*,
91 enum ivi_layout_notification_mask mask,
94 typedef void(*surfacePropertyNotificationFunc)(struct ivi_layout_surface *ivisurf,
95 struct ivi_layout_SurfaceProperties*,
96 enum ivi_layout_notification_mask mask,
99 typedef void(*layerCreateNotificationFunc)(struct ivi_layout_layer *ivilayer,
102 typedef void(*layerRemoveNotificationFunc)(struct ivi_layout_layer *ivilayer,
105 typedef void(*surfaceCreateNotificationFunc)(struct ivi_layout_surface *ivisurf,
108 typedef void(*surfaceRemoveNotificationFunc)(struct ivi_layout_surface *ivisurf,
111 typedef void(*surfaceConfigureNotificationFunc)(struct ivi_layout_surface *ivisurf,
114 typedef void(*ivi_controller_surface_content_callback)(struct ivi_layout_surface *ivisurf,
119 ivi_layout_addNotificationShellWarning(shellWarningNotificationFunc callback,
123 ivi_layout_removeNotificationShellWarning(shellWarningNotificationFunc callback,
127 * \brief to be called by ivi-shell in order to set initail view of
132 ivi_layout_get_weston_view(struct ivi_layout_surface *surface);
136 * \brief initialize ivi-layout
140 ivi_layout_initWithCompositor(struct weston_compositor *ec);
144 * \brief register for notification when layer is created
147 ivi_layout_addNotificationCreateLayer(layerCreateNotificationFunc callback,
151 ivi_layout_removeNotificationCreateLayer(layerCreateNotificationFunc callback,
155 * \brief register for notification when layer is removed
158 ivi_layout_addNotificationRemoveLayer(layerRemoveNotificationFunc callback,
162 ivi_layout_removeNotificationRemoveLayer(layerRemoveNotificationFunc callback,
166 * \brief register for notification when surface is created
169 ivi_layout_addNotificationCreateSurface(surfaceCreateNotificationFunc callback,
173 ivi_layout_removeNotificationCreateSurface(surfaceCreateNotificationFunc callback,
177 * \brief register for notification when surface is removed
180 ivi_layout_addNotificationRemoveSurface(surfaceRemoveNotificationFunc callback,
184 ivi_layout_removeNotificationRemoveSurface(surfaceRemoveNotificationFunc callback,
188 * \brief register for notification when surface is configured
191 ivi_layout_addNotificationConfigureSurface(surfaceConfigureNotificationFunc callback,
195 ivi_layout_removeNotificationConfigureSurface(surfaceConfigureNotificationFunc callback,
199 * \brief get id of surface from ivi_layout_surface
201 * \return 0 if the method call was successful
202 * \return -1 if the method call was failed
205 ivi_layout_getIdOfSurface(struct ivi_layout_surface *ivisurf);
208 * \brief get id of layer from ivi_layout_layer
211 * \return 0 if the method call was successful
212 * \return -1 if the method call was failed
215 ivi_layout_getIdOfLayer(struct ivi_layout_layer *ivilayer);
218 * \brief get ivi_layout_layer from id of layer
220 * \return (struct ivi_layout_layer *)
221 * if the method call was successful
222 * \return NULL if the method call was failed
224 struct ivi_layout_layer *
225 ivi_layout_getLayerFromId(uint32_t id_layer);
228 * \brief get ivi_layout_surface from id of surface
230 * \return (struct ivi_layout_surface *)
231 * if the method call was successful
232 * \return NULL if the method call was failed
234 struct ivi_layout_surface *
235 ivi_layout_getSurfaceFromId(uint32_t id_surface);
238 * \brief get ivi_layout_screen from id of screen
240 * \return (struct ivi_layout_screen *)
241 * if the method call was successful
242 * \return NULL if the method call was failed
244 struct ivi_layout_screen *
245 ivi_layout_getScreenFromId(uint32_t id_screen);
248 * \brief Get the screen resolution of a specific screen
250 * \return 0 if the method call was successful
251 * \return -1 if the method call was failed
254 ivi_layout_getScreenResolution(struct ivi_layout_screen *iviscrn,
259 * \brief register for notification on property changes of surface
261 * \return 0 if the method call was successful
262 * \return -1 if the method call was failed
265 ivi_layout_surfaceAddNotification(struct ivi_layout_surface *ivisurf,
266 surfacePropertyNotificationFunc callback,
270 * \brief remove notification on property changes of surface
272 * \return 0 if the method call was successful
273 * \return -1 if the method call was failed
276 ivi_layout_surfaceRemoveNotification(struct ivi_layout_surface *ivisurf);
279 * \brief Create a surface
281 * \return 0 if the method call was successful
282 * \return -1 if the method call was failed
285 struct ivi_layout_surface *
286 ivi_layout_surfaceCreate(struct weston_surface *wl_surface,
287 uint32_t id_surface);
291 * \brief Set the native content of an application to be used as surface content.
292 * If wl_surface is NULL, remove the native content of a surface
294 * \return 0 if the method call was successful
295 * \return -1 if the method call was failed
299 ivi_layout_surfaceSetNativeContent(struct weston_surface *wl_surface,
302 uint32_t id_surface);
306 * \brief Set an observer callback for surface content status change.
308 * \return 0 if the method call was successful
309 * \return -1 if the method call was failed
312 ivi_layout_surfaceSetContentObserver(struct ivi_layout_surface *ivisurf,
313 ivi_controller_surface_content_callback callback,
317 * \brief initialize ivi_layout_surface dest/source width and height
321 ivi_layout_surfaceConfigure(struct ivi_layout_surface *ivisurf,
322 uint32_t width, uint32_t height);
326 * \brief Remove a surface
328 * \return 0 if the method call was successful
329 * \return -1 if the method call was failed
332 ivi_layout_surfaceRemove(struct ivi_layout_surface *ivisurf);
335 * \brief Set from which kind of devices the surface can accept input events.
336 * By default, a surface accept input events from all kind of devices (keyboards, pointer, ...)
337 * By calling this function, you can adjust surface preferences. Note that this function only
338 * adjust the acceptance for the specified devices. Non specified are keept untouched.
340 * Typicall use case for this function is when dealing with pointer or touch events.
341 * Those are normally dispatched to the first visible surface below the coordinate.
342 * If you want a different behavior (i.e. forward events to an other surface below the coordinate,
343 * you can set all above surfaces to refuse input events)
345 * \return 0 if the method call was successful
346 * \return -1 if the method call was failed
349 ivi_layout_UpdateInputEventAcceptanceOn(struct ivi_layout_surface *ivisurf,
354 * \brief Get the layer properties
356 * \return 0 if the method call was successful
357 * \return -1 if the method call was failed
360 ivi_layout_getPropertiesOfLayer(struct ivi_layout_layer *ivilayer,
361 struct ivi_layout_LayerProperties *pLayerProperties);
364 * \brief Get the number of hardware layers of a screen
366 * \return 0 if the method call was successful
367 * \return -1 if the method call was failed
370 ivi_layout_getNumberOfHardwareLayers(uint32_t id_screen,
371 int32_t *pNumberOfHardwareLayers);
374 * \brief Get the screens
376 * \return 0 if the method call was successful
377 * \return -1 if the method call was failed
380 ivi_layout_getScreens(int32_t *pLength, struct ivi_layout_screen ***ppArray);
383 * \brief Get the screens under the given layer
385 * \return 0 if the method call was successful
386 * \return -1 if the method call was failed
389 ivi_layout_getScreensUnderLayer(struct ivi_layout_layer *ivilayer,
391 struct ivi_layout_screen ***ppArray);
394 * \brief Get all Layers which are currently registered and managed by the services
396 * \return 0 if the method call was successful
397 * \return -1 if the method call was failed
400 ivi_layout_getLayers(int32_t *pLength, struct ivi_layout_layer ***ppArray);
403 * \brief Get all Layers of the given screen
405 * \return 0 if the method call was successful
406 * \return -1 if the method call was failed
409 ivi_layout_getLayersOnScreen(struct ivi_layout_screen *iviscrn,
411 struct ivi_layout_layer ***ppArray);
414 * \brief Get all Layers under the given surface
416 * \return 0 if the method call was successful
417 * \return -1 if the method call was failed
420 ivi_layout_getLayersUnderSurface(struct ivi_layout_surface *ivisurf,
422 struct ivi_layout_layer ***ppArray);
425 * \brief Get all Surfaces which are currently registered and managed by the services
427 * \return 0 if the method call was successful
428 * \return -1 if the method call was failed
431 ivi_layout_getSurfaces(int32_t *pLength, struct ivi_layout_surface ***ppArray);
434 * \brief Get all Surfaces which are currently registered to a given layer and are managed by the services
436 * \return 0 if the method call was successful
437 * \return -1 if the method call was failed
440 ivi_layout_getSurfacesOnLayer(struct ivi_layout_layer *ivilayer,
442 struct ivi_layout_surface ***ppArray);
445 * \brief Create a layer which should be managed by the service
447 * \return 0 if the method call was successful
448 * \return -1 if the method call was failed
450 struct ivi_layout_layer *
451 ivi_layout_layerCreateWithDimension(uint32_t id_layer,
452 int32_t width, int32_t height);
455 * \brief Removes a layer which is currently managed by the service
457 * \return 0 if the method call was successful
458 * \return -1 if the method call was failed
461 ivi_layout_layerRemove(struct ivi_layout_layer *ivilayer);
464 * \brief Get the current type of the layer.
466 * \return 0 if the method call was successful
467 * \return -1 if the method call was failed
470 ivi_layout_layerGetType(struct ivi_layout_layer *ivilayer,
471 int32_t *pLayerType);
474 * \brief Set the visibility of a layer. If a layer is not visible, the layer and its
475 * surfaces will not be rendered.
477 * \return 0 if the method call was successful
478 * \return -1 if the method call was failed
481 ivi_layout_layerSetVisibility(struct ivi_layout_layer *ivilayer,
482 int32_t newVisibility);
485 * \brief Get the visibility of a layer. If a layer is not visible, the layer and its
486 * surfaces will not be rendered.
488 * \return 0 if the method call was successful
489 * \return -1 if the method call was failed
492 ivi_layout_layerGetVisibility(struct ivi_layout_layer *ivilayer,
493 int32_t *pVisibility);
496 * \brief Set the opacity of a layer.
498 * \return 0 if the method call was successful
499 * \return -1 if the method call was failed
502 ivi_layout_layerSetOpacity(struct ivi_layout_layer *ivilayer, float opacity);
505 * \brief Get the opacity of a layer.
507 * \return 0 if the method call was successful
508 * \return -1 if the method call was failed
511 ivi_layout_layerGetOpacity(struct ivi_layout_layer *ivilayer, float *pOpacity);
514 * \brief Set the area of a layer which should be used for the rendering.
515 * Only this part will be visible.
517 * \return 0 if the method call was successful
518 * \return -1 if the method call was failed
521 ivi_layout_layerSetSourceRectangle(struct ivi_layout_layer *ivilayer,
522 int32_t x, int32_t y,
523 int32_t width, int32_t height);
526 * \brief Set the destination area on the display for a layer.
527 * The layer will be scaled and positioned to this rectangle for rendering
529 * \return 0 if the method call was successful
530 * \return -1 if the method call was failed
533 ivi_layout_layerSetDestinationRectangle(struct ivi_layout_layer *ivilayer,
534 int32_t x, int32_t y,
535 int32_t width, int32_t height);
538 * \brief Get the horizontal and vertical dimension of the layer.
540 * \return 0 if the method call was successful
541 * \return -1 if the method call was failed
544 ivi_layout_layerGetDimension(struct ivi_layout_layer *ivilayer,
545 int32_t *pDimension);
548 * \brief Set the horizontal and vertical dimension of the layer.
550 * \return 0 if the method call was successful
551 * \return -1 if the method call was failed
554 ivi_layout_layerSetDimension(struct ivi_layout_layer *ivilayer,
555 int32_t *pDimension);
558 * \brief Get the horizontal and vertical position of the layer.
560 * \return 0 if the method call was successful
561 * \return -1 if the method call was failed
564 ivi_layout_layerGetPosition(struct ivi_layout_layer *ivilayer,
568 * \brief Sets the horizontal and vertical position of the layer.
570 * \return 0 if the method call was successful
571 * \return -1 if the method call was failed
574 ivi_layout_layerSetPosition(struct ivi_layout_layer *ivilayer,
578 * \brief Sets the orientation of a layer.
580 * \return 0 if the method call was successful
581 * \return -1 if the method call was failed
584 ivi_layout_layerSetOrientation(struct ivi_layout_layer *ivilayer,
585 int32_t orientation);
588 * \brief Gets the orientation of a layer.
590 * \return 0 if the method call was successful
591 * \return -1 if the method call was failed
594 ivi_layout_layerGetOrientation(struct ivi_layout_layer *ivilayer,
595 int32_t *pOrientation);
598 * \brief Sets the color value which defines the transparency value.
600 * \return 0 if the method call was successful
601 * \return -1 if the method call was failed
604 ivi_layout_layerSetChromaKey(struct ivi_layout_layer *ivilayer,
608 * \brief Sets render order of surfaces within one layer
610 * \return 0 if the method call was successful
611 * \return -1 if the method call was failed
614 ivi_layout_layerSetRenderOrder(struct ivi_layout_layer *ivilayer,
615 struct ivi_layout_surface **pSurface,
619 * \brief Get the capabilities of a layer
621 * \return 0 if the method call was successful
622 * \return -1 if the method call was failed
625 ivi_layout_layerGetCapabilities(struct ivi_layout_layer *ivilayer,
626 int32_t *pCapabilities);
629 * \brief Get the possible capabilities of a layertype
631 * \return 0 if the method call was successful
632 * \return -1 if the method call was failed
635 ivi_layout_layerTypeGetCapabilities(int32_t layerType,
636 int32_t *pCapabilities);
639 * \brief Create the logical surface, which has no native buffer associated
641 * \return 0 if the method call was successful
642 * \return -1 if the method call was failed
645 ivi_layout_surfaceInitialize(struct ivi_layout_surface **pSurface);
648 * \brief Set the visibility of a surface.
649 * If a surface is not visible it will not be rendered.
651 * \return 0 if the method call was successful
652 * \return -1 if the method call was failed
655 ivi_layout_surfaceSetVisibility(struct ivi_layout_surface *ivisurf,
656 int32_t newVisibility);
659 * \brief Get the visibility of a surface.
660 * If a surface is not visible it will not be rendered.
662 * \return 0 if the method call was successful
663 * \return -1 if the method call was failed
666 ivi_layout_surfaceGetVisibility(struct ivi_layout_surface *ivisurf,
667 int32_t *pVisibility);
670 * \brief Set the opacity of a surface.
672 * \return 0 if the method call was successful
673 * \return -1 if the method call was failed
676 ivi_layout_surfaceSetOpacity(struct ivi_layout_surface *ivisurf,
680 * \brief Get the opacity of a surface.
682 * \return 0 if the method call was successful
683 * \return -1 if the method call was failed
686 ivi_layout_surfaceGetOpacity(struct ivi_layout_surface *ivisurf,
690 * \brief Set the keyboard focus on a certain surface
691 * To receive keyboard events, 2 conditions must be fulfilled:
692 * 1- The surface must accept events from keyboard. See ilm_UpdateInputEventAcceptanceOn
693 * 2- The keyboard focus must be set on that surface
695 * \return 0 if the method call was successful
696 * \return -1 if the method call was failed
699 ivi_layout_SetKeyboardFocusOn(struct ivi_layout_surface *ivisurf);
702 * \brief Get the indentifier of the surface which hold the keyboard focus
704 * \return 0 if the method call was successful
705 * \return -1 if the method call was failed
708 ivi_layout_GetKeyboardFocusSurfaceId(struct ivi_layout_surface **pSurfaceId);
711 * \brief Set the destination area of a surface within a layer for rendering.
712 * The surface will be scaled to this rectangle for rendering.
714 * \return 0 if the method call was successful
715 * \return -1 if the method call was failed
718 ivi_layout_surfaceSetDestinationRectangle(struct ivi_layout_surface *ivisurf,
719 int32_t x, int32_t y,
720 int32_t width, int32_t height);
723 * \brief Set the horizontal and vertical dimension of the surface.
725 * \return 0 if the method call was successful
726 * \return -1 if the method call was failed
729 ivi_layout_surfaceSetDimension(struct ivi_layout_surface *ivisurf,
730 int32_t *pDimension);
733 * \brief Get the horizontal and vertical dimension of the surface.
735 * \return 0 if the method call was successful
736 * \return -1 if the method call was failed
739 ivi_layout_surfaceGetDimension(struct ivi_layout_surface *ivisurf,
740 int32_t *pDimension);
743 * \brief Sets the horizontal and vertical position of the surface.
745 * \return 0 if the method call was successful
746 * \return -1 if the method call was failed
749 ivi_layout_surfaceSetPosition(struct ivi_layout_surface *ivisurf,
753 * \brief Get the horizontal and vertical position of the surface.
755 * \return 0 if the method call was successful
756 * \return -1 if the method call was failed
759 ivi_layout_surfaceGetPosition(struct ivi_layout_surface *ivisurf,
763 * \brief Sets the orientation of a surface.
765 * \return 0 if the method call was successful
766 * \return -1 if the method call was failed
769 ivi_layout_surfaceSetOrientation(struct ivi_layout_surface *ivisurf,
770 int32_t orientation);
773 * \brief Gets the orientation of a surface.
775 * \return 0 if the method call was successful
776 * \return -1 if the method call was failed
779 ivi_layout_surfaceGetOrientation(struct ivi_layout_surface *ivisurf,
780 int32_t *pOrientation);
783 * \brief Gets the pixelformat of a surface.
785 * \return 0 if the method call was successful
786 * \return -1 if the method call was failed
789 ivi_layout_surfaceGetPixelformat(struct ivi_layout_layer *ivisurf,
790 int32_t *pPixelformat);
793 * \brief Sets the color value which defines the transparency value of a surface.
795 * \return 0 if the method call was successful
796 * \return -1 if the method call was failed
799 ivi_layout_surfaceSetChromaKey(struct ivi_layout_surface *ivisurf,
803 * \brief Add a layer to a screen which is currently managed by the service
805 * \return 0 if the method call was successful
806 * \return -1 if the method call was failed
809 ivi_layout_screenAddLayer(struct ivi_layout_screen *iviscrn,
810 struct ivi_layout_layer *addlayer);
813 * \brief Sets render order of layers on a display
815 * \return 0 if the method call was successful
816 * \return -1 if the method call was failed
819 ivi_layout_screenSetRenderOrder(struct ivi_layout_screen *iviscrn,
820 struct ivi_layout_layer **pLayer,
821 const int32_t number);
824 * \brief Enable or disable a rendering optimization
826 * \return 0 if the method call was successful
827 * \return -1 if the method call was failed
830 ivi_layout_SetOptimizationMode(uint32_t id, int32_t mode);
833 * \brief Get the current enablement for an optimization
835 * \return 0 if the method call was successful
836 * \return -1 if the method call was failed
839 ivi_layout_GetOptimizationMode(uint32_t id, int32_t *pMode);
842 * \brief register for notification on property changes of layer
844 * \return 0 if the method call was successful
845 * \return -1 if the method call was failed
848 ivi_layout_layerAddNotification(struct ivi_layout_layer *ivilayer,
849 layerPropertyNotificationFunc callback,
853 * \brief remove notification on property changes of layer
855 * \return 0 if the method call was successful
856 * \return -1 if the method call was failed
859 ivi_layout_layerRemoveNotification(struct ivi_layout_layer *ivilayer);
862 * \brief Get the surface properties
864 * \return 0 if the method call was successful
865 * \return -1 if the method call was failed
868 ivi_layout_getPropertiesOfSurface(struct ivi_layout_surface *ivisurf,
869 struct ivi_layout_SurfaceProperties *pSurfaceProperties);
872 * \brief Add a surface to a layer which is currently managed by the service
874 * \return 0 if the method call was successful
875 * \return -1 if the method call was failed
878 ivi_layout_layerAddSurface(struct ivi_layout_layer *ivilayer,
879 struct ivi_layout_surface *addsurf);
882 * \brief Removes a surface from a layer which is currently managed by the service
884 * \return 0 if the method call was successful
885 * \return -1 if the method call was failed
888 ivi_layout_layerRemoveSurface(struct ivi_layout_layer *ivilayer,
889 struct ivi_layout_surface *remsurf);
892 * \brief Set the area of a surface which should be used for the rendering.
894 * \return 0 if the method call was successful
895 * \return -1 if the method call was failed
898 ivi_layout_surfaceSetSourceRectangle(struct ivi_layout_surface *ivisurf,
899 int32_t x, int32_t y,
900 int32_t width, int32_t height);
903 * \brief get weston_output from ivi_layout_screen.
905 * \return (struct weston_screen *)
906 * if the method call was successful
907 * \return NULL if the method call was failed
909 struct weston_output *
910 ivi_layout_screenGetOutput(struct ivi_layout_screen *);
912 struct weston_surface *
913 ivi_layout_surfaceGetWestonSurface(struct ivi_layout_surface *ivisurf);
916 ivi_layout_surfaceGetSize(struct ivi_layout_surface *ivisurf, int32_t *width, int32_t *height, int32_t *stride);
919 ivi_layout_layerSetTransition(struct ivi_layout_layer *ivilayer,
920 enum ivi_layout_transition_type type,
924 ivi_layout_layerSetFadeInfo(struct ivi_layout_layer* layer,
926 double start_alpha, double end_alpha);
929 ivi_layout_surfaceSetTransition(struct ivi_layout_surface *ivisurf,
930 enum ivi_layout_transition_type type,
934 ivi_layout_surfaceSetTransitionDuration(struct ivi_layout_surface *ivisurf,uint32_t duration);
937 * \brief Commit all changes and execute all enqueued commands since last commit.
939 * \return 0 if the method call was successful
940 * \return -1 if the method call was failed
943 ivi_layout_commitChanges(void);
947 #endif /* __cplusplus */
949 #endif /* _IVI_LAYOUT_EXPORT_H_ */