os/graphics/graphicscomposition/openwfcompositionengine/composition/include/wfcpipeline.h
Update contrib.
1 /* Copyright (c) 2009 The Khronos Group Inc.
2 * Portions copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies)
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and/or associated documentation files (the
6 * "Materials"), to deal in the Materials without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Materials, and to
9 * permit persons to whom the Materials are furnished to do so, subject to
10 * the following conditions:
12 * The above copyright notice and this permission notice shall be included
13 * in all copies or substantial portions of the Materials.
15 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
27 * \brief Composition pipeline interface
29 #ifndef WFCPIPELINE_H_
30 #define WFCPIPELINE_H_
37 #include "wfccontext.h"
38 #include "wfcelement.h"
39 #include "wfcimageprovider.h"
40 #include "wfcstructs.h"
43 #include "owfobject.h"
45 #include "owfnativestream.h"
46 #include "owfmemory.h"
55 /*------------------------------------------------------------------------ *//*!
56 * \brief Composition pipeline preparation
58 * \param context Context
59 * \param element Element
61 * \return Boolean value indicating whether preparation succeeded
62 *//*-------------------------------------------------------------------------*/
63 OWF_API_CALL WFC_ELEMENT_STATE*
64 WFC_Pipeline_BeginComposition(WFC_CONTEXT* context, WFC_ELEMENT* element);
67 /*------------------------------------------------------------------------ *//*!
68 * Composition pipeline cleanup
70 * \param context Context
71 * \param element Element
72 *//*-------------------------------------------------------------------------*/
74 WFC_Pipeline_EndComposition(WFC_CONTEXT* context, WFC_ELEMENT* element,WFC_ELEMENT_STATE* elementState);
76 /*------------------------------------------------------------------------ *//*!
77 * \brief Source conversion stage
79 * \param context Context
80 * \param element Element
81 *//*-------------------------------------------------------------------------*/
83 WFC_Pipeline_ExecuteSourceConversionStage(WFC_CONTEXT* context,WFC_ELEMENT_STATE* elementState);
85 /*------------------------------------------------------------------------ *//*!
88 * \param context Context
89 * \param element Element
90 *//*-------------------------------------------------------------------------*/
92 WFC_Pipeline_ExecuteCropStage(WFC_CONTEXT* context, WFC_ELEMENT_STATE* elementState);
94 /*------------------------------------------------------------------------ *//*!
97 * \param context Context
98 * \param element Element
99 *//*-------------------------------------------------------------------------*/
101 WFC_Pipeline_ExecuteFlipStage(WFC_CONTEXT* context, WFC_ELEMENT_STATE* elementState);
103 /*------------------------------------------------------------------------ *//*!
104 * \brief Rotation stage
106 * \param context Context
107 * \param element Element
108 *//*-------------------------------------------------------------------------*/
110 WFC_Pipeline_ExecuteRotationStage(WFC_CONTEXT* context, WFC_ELEMENT_STATE* elementState);
112 /*------------------------------------------------------------------------ *//*!
113 * \brief Scaling stage
115 * \param context Context
116 * \param element Element
117 *//*-------------------------------------------------------------------------*/
119 WFC_Pipeline_ExecuteScalingStage(WFC_CONTEXT* context, WFC_ELEMENT_STATE* elementState);
121 /*------------------------------------------------------------------------ *//*!
122 * \brief Blending stage
124 * \param context Context
125 * \param element Element
126 *//*-------------------------------------------------------------------------*/
128 WFC_Pipeline_ExecuteBlendingStage(WFC_CONTEXT* context, WFC_ELEMENT_STATE* elementState);
130 /*------------------------------------------------------------------------ *//*!
131 * \brief Composition pipeline preparation per context creation
133 * \param context Context
135 * \return Boolean value indicating whether preparation succeeded
136 *//*-------------------------------------------------------------------------*/
137 OWF_API_CALL OWFboolean WFC_Pipeline_CreateState(WFC_CONTEXT* context);
139 /*------------------------------------------------------------------------ *//*!
140 * \brief Composition pipeline pull-dowwn per context
142 * \param context Context
144 * \return Boolean value indicating whether preparation succeeded
145 *//*-------------------------------------------------------------------------*/
146 OWF_API_CALL void WFC_Pipeline_DestroyState(WFC_CONTEXT* context);
153 #endif /* WFCPIPELINE_H_ */