xref: /utopia/UTPA2-700.0.x/mxlib/include/apiGFX.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi //    Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi //    No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi //    modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi //    supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi //    Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi //    Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi //    obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi //    such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi //    MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi //    confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi //    third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi //    without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi //    intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi //    and in conformity with any international standard.  You agree to waive any
38*53ee8cc1Swenshuai.xi //    claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi //    incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi //    In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi //    consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi //    revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi //    You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi //    even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi //    request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi //    parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi //    services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi //    MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi //    ("Services").
52*53ee8cc1Swenshuai.xi //    You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi //    writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi //    disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi //    or otherwise:
58*53ee8cc1Swenshuai.xi //    (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi //        mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi //    (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi //        including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi //        of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi //    (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi //    of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi //    Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi //    settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi //    Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi //    with the said Rules.
72*53ee8cc1Swenshuai.xi //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi //    be English.
74*53ee8cc1Swenshuai.xi //    The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
79*53ee8cc1Swenshuai.xi //
80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81*53ee8cc1Swenshuai.xi // All rights reserved.
82*53ee8cc1Swenshuai.xi //
83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient.
87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
92*53ee8cc1Swenshuai.xi //
93*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
94*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
95*53ee8cc1Swenshuai.xi ///
96*53ee8cc1Swenshuai.xi /// @file   apiGFX.h
97*53ee8cc1Swenshuai.xi /// @brief  MStar Graphics Driver Interface
98*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc.
99*53ee8cc1Swenshuai.xi /// @version 1.0
100*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
101*53ee8cc1Swenshuai.xi 
102*53ee8cc1Swenshuai.xi //-------------------------------------------------
103*53ee8cc1Swenshuai.xi /*! \defgroup GFX GFX interface
104*53ee8cc1Swenshuai.xi 
105*53ee8cc1Swenshuai.xi   \brief
106*53ee8cc1Swenshuai.xi   GE:Graphic Engine \n\n
107*53ee8cc1Swenshuai.xi   Basic primitives supported:\n
108*53ee8cc1Swenshuai.xi   Line draw: Draw a straight line \n
109*53ee8cc1Swenshuai.xi   Rect fill(Rectangular Fill) : Draw rectangle \n
110*53ee8cc1Swenshuai.xi   Bitblt(Bit Transfer Block) : Memory copy \n
111*53ee8cc1Swenshuai.xi 
112*53ee8cc1Swenshuai.xi   <b> GFX Init Flow: </b> \n
113*53ee8cc1Swenshuai.xi   \image html apiGFX_pic1.png
114*53ee8cc1Swenshuai.xi   \n\n
115*53ee8cc1Swenshuai.xi   <b> GFX Execute procedure: </b> \n
116*53ee8cc1Swenshuai.xi   \image html apiGFX_pic2.png
117*53ee8cc1Swenshuai.xi 
118*53ee8cc1Swenshuai.xi   *! \defgroup GFX_INIT GFX init related functions
119*53ee8cc1Swenshuai.xi   *   \ingroup   GFX
120*53ee8cc1Swenshuai.xi 
121*53ee8cc1Swenshuai.xi   *! \defgroup GFX_CAPS GFX get capability related functions
122*53ee8cc1Swenshuai.xi   *   \ingroup   GFX
123*53ee8cc1Swenshuai.xi 
124*53ee8cc1Swenshuai.xi   *! \defgroup GFX_CB GFX call back related functions
125*53ee8cc1Swenshuai.xi   *   \ingroup   GFX
126*53ee8cc1Swenshuai.xi 
127*53ee8cc1Swenshuai.xi   *! \defgroup GFX_DRAW_SETTING GFX draw setting related functions
128*53ee8cc1Swenshuai.xi   *   \ingroup   GFX
129*53ee8cc1Swenshuai.xi 
130*53ee8cc1Swenshuai.xi   *! \defgroup GFX_LOCK_BEGINE_END GFX lock begine/end related functions
131*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
132*53ee8cc1Swenshuai.xi 
133*53ee8cc1Swenshuai.xi   *! \defgroup GFX_BUFFER_INFO GFX buffer info related functions
134*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
135*53ee8cc1Swenshuai.xi 
136*53ee8cc1Swenshuai.xi   *! \defgroup GFX_COLOR_KEY GFX color key related functions
137*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
138*53ee8cc1Swenshuai.xi 
139*53ee8cc1Swenshuai.xi   *! \defgroup GFX_ROP GFX ROP related functions
140*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
141*53ee8cc1Swenshuai.xi 
142*53ee8cc1Swenshuai.xi   *! \defgroup GFX_ALPHA_COMPARE GFX alpha compare related functions
143*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
144*53ee8cc1Swenshuai.xi 
145*53ee8cc1Swenshuai.xi   *! \defgroup GFX_ALPHA_BLENDING GFX alpha blending related functions
146*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
147*53ee8cc1Swenshuai.xi 
148*53ee8cc1Swenshuai.xi   *! \defgroup GFX_DFB GFX DFB related functions
149*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
150*53ee8cc1Swenshuai.xi 
151*53ee8cc1Swenshuai.xi   *! \defgroup GFX_PALETTE GFX palette related functions
152*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
153*53ee8cc1Swenshuai.xi 
154*53ee8cc1Swenshuai.xi   *! \defgroup GFX_CLIP GFX clip window related functions
155*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
156*53ee8cc1Swenshuai.xi 
157*53ee8cc1Swenshuai.xi   *! \defgroup GFX_DRAW GFX draw related functions
158*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
159*53ee8cc1Swenshuai.xi 
160*53ee8cc1Swenshuai.xi   *! \defgroup GFX_DRAW_MISC GFX draw misc related functions
161*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
162*53ee8cc1Swenshuai.xi 
163*53ee8cc1Swenshuai.xi   *! \defgroup GFX_WAIT_DONE GFX wait done related functions
164*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
165*53ee8cc1Swenshuai.xi 
166*53ee8cc1Swenshuai.xi   *! \defgroup GFX_CLEAR GFX clear buffer related functions
167*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_DRAW_SETTING
168*53ee8cc1Swenshuai.xi 
169*53ee8cc1Swenshuai.xi   *! \defgroup GFX_OPTION GFX option related functions
170*53ee8cc1Swenshuai.xi   *   \ingroup   GFX
171*53ee8cc1Swenshuai.xi 
172*53ee8cc1Swenshuai.xi   *! \defgroup GFX_STRETCH GFX stretch related functions
173*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_OPTION
174*53ee8cc1Swenshuai.xi 
175*53ee8cc1Swenshuai.xi   *! \defgroup GFX_MIRROR GFX mirror related functions
176*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_OPTION
177*53ee8cc1Swenshuai.xi 
178*53ee8cc1Swenshuai.xi   *! \defgroup GFX_ROTATE GFX rotate related functions
179*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_OPTION
180*53ee8cc1Swenshuai.xi 
181*53ee8cc1Swenshuai.xi   *! \defgroup GFX_DITHER GFX dither related functions
182*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_OPTION
183*53ee8cc1Swenshuai.xi 
184*53ee8cc1Swenshuai.xi   *! \defgroup GFX_R2Y GFX r2y related functions
185*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_OPTION
186*53ee8cc1Swenshuai.xi 
187*53ee8cc1Swenshuai.xi   *! \defgroup GFX_WRITE_PROTECT GFX write protect related functions
188*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_OPTION
189*53ee8cc1Swenshuai.xi 
190*53ee8cc1Swenshuai.xi   *! \defgroup GFX_VCMQ GFX virtual CMDQ related functions
191*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_OPTION
192*53ee8cc1Swenshuai.xi 
193*53ee8cc1Swenshuai.xi   *! \defgroup GFX_PIXEL_MODE GFX pixel mode related functions
194*53ee8cc1Swenshuai.xi   *   \ingroup   GFX_OPTION
195*53ee8cc1Swenshuai.xi 
196*53ee8cc1Swenshuai.xi   *! \defgroup GFX_POWER_STATE GFX power state related functions
197*53ee8cc1Swenshuai.xi   *   \ingroup   GFX
198*53ee8cc1Swenshuai.xi 
199*53ee8cc1Swenshuai.xi   *! \defgroup GFX_MISC GFX misc related functions
200*53ee8cc1Swenshuai.xi   *   \ingroup   GFX
201*53ee8cc1Swenshuai.xi 
202*53ee8cc1Swenshuai.xi   *! \defgroup GFX_MISC_NOS GFX misc nos related functions
203*53ee8cc1Swenshuai.xi   *   \ingroup   GFX
204*53ee8cc1Swenshuai.xi 
205*53ee8cc1Swenshuai.xi   *! \defgroup GFX_MISC_BOX GFX misc box related functions
206*53ee8cc1Swenshuai.xi   *   \ingroup   GFX
207*53ee8cc1Swenshuai.xi 
208*53ee8cc1Swenshuai.xi   *! \defgroup GFX_ToBeRemove GFX to be remove related functions
209*53ee8cc1Swenshuai.xi   *   \ingroup   GFX
210*53ee8cc1Swenshuai.xi 
211*53ee8cc1Swenshuai.xi   */
212*53ee8cc1Swenshuai.xi //-------------------------------------------------
213*53ee8cc1Swenshuai.xi 
214*53ee8cc1Swenshuai.xi #ifndef _API_GFX_H_
215*53ee8cc1Swenshuai.xi #define _API_GFX_H_
216*53ee8cc1Swenshuai.xi 
217*53ee8cc1Swenshuai.xi //#include "drvGE.h"
218*53ee8cc1Swenshuai.xi //#define MAX_FONT                    20  //5
219*53ee8cc1Swenshuai.xi //#define MAX_BITMAP                  127
220*53ee8cc1Swenshuai.xi 
221*53ee8cc1Swenshuai.xi #include "MsTypes.h"
222*53ee8cc1Swenshuai.xi #include "MsDevice.h"
223*53ee8cc1Swenshuai.xi #include "MsCommon.h"
224*53ee8cc1Swenshuai.xi #include "UFO.h"
225*53ee8cc1Swenshuai.xi 
226*53ee8cc1Swenshuai.xi #ifdef __cplusplus
227*53ee8cc1Swenshuai.xi extern "C"
228*53ee8cc1Swenshuai.xi {
229*53ee8cc1Swenshuai.xi #endif
230*53ee8cc1Swenshuai.xi 
231*53ee8cc1Swenshuai.xi // For CHAKRA
232*53ee8cc1Swenshuai.xi #define GE_ALIGNED_VALUE(value, align)  ( ((value) + ((align)-1)) & ~((align)-1) )
233*53ee8cc1Swenshuai.xi #define GE_ADDR_ALIGNMENT(addr)         GE_ALIGNED_VALUE(addr, 8)    // 8-byte alignment
234*53ee8cc1Swenshuai.xi 
235*53ee8cc1Swenshuai.xi // END CHAKRA
236*53ee8cc1Swenshuai.xi 
237*53ee8cc1Swenshuai.xi #define ERR_HANDLE                  -1
238*53ee8cc1Swenshuai.xi #define ERR_NULL_INDEX                  0xFFFFUL
239*53ee8cc1Swenshuai.xi 
240*53ee8cc1Swenshuai.xi #define MSIF_GFX_LIB_CODE               {'G','F','X','_'} //Lib code
241*53ee8cc1Swenshuai.xi #define MSIF_GFX_LIBVER                 {'1','9'}      //LIB version
242*53ee8cc1Swenshuai.xi #define MSIF_GFX_BUILDNUM               {'1','9' }    //Build Number
243*53ee8cc1Swenshuai.xi #define MSIF_GFX_CHANGELIST             {'0','0','6','1','8','4','6','4'} //P4 ChangeList Number
244*53ee8cc1Swenshuai.xi 
245*53ee8cc1Swenshuai.xi #define GFX_DRV_VERSION                 /* Character String for DRV/API version             */  \
246*53ee8cc1Swenshuai.xi     MSIF_TAG,                           /* 'MSIF'                                           */  \
247*53ee8cc1Swenshuai.xi     MSIF_CLASS,                         /* '00'                                             */  \
248*53ee8cc1Swenshuai.xi     MSIF_CUS,                           /* 0x0000                                           */  \
249*53ee8cc1Swenshuai.xi     MSIF_MOD,                           /* 0x0000                                           */  \
250*53ee8cc1Swenshuai.xi     MSIF_CHIP,                                                                                  \
251*53ee8cc1Swenshuai.xi     MSIF_CPU,                                                                                   \
252*53ee8cc1Swenshuai.xi     MSIF_GFX_LIB_CODE,                  /* IP__                                             */  \
253*53ee8cc1Swenshuai.xi     MSIF_GFX_LIBVER,                    /* 0.0 ~ Z.Z                                        */  \
254*53ee8cc1Swenshuai.xi     MSIF_GFX_BUILDNUM,                  /* 00 ~ 99                                          */  \
255*53ee8cc1Swenshuai.xi     MSIF_GFX_CHANGELIST,                /* CL#                                              */  \
256*53ee8cc1Swenshuai.xi     MSIF_OS
257*53ee8cc1Swenshuai.xi 
258*53ee8cc1Swenshuai.xi //GE return code
259*53ee8cc1Swenshuai.xi /// GFX API return value
260*53ee8cc1Swenshuai.xi typedef enum
261*53ee8cc1Swenshuai.xi {
262*53ee8cc1Swenshuai.xi     GFX_FAIL                        = 0,
263*53ee8cc1Swenshuai.xi     GFX_SUCCESS                        ,
264*53ee8cc1Swenshuai.xi     GFX_NON_ALIGN_ADDRESS             ,
265*53ee8cc1Swenshuai.xi     GFX_NON_ALIGN_PITCH               ,
266*53ee8cc1Swenshuai.xi     GFX_INVALID_PARAMETERS            ,
267*53ee8cc1Swenshuai.xi     /// not support
268*53ee8cc1Swenshuai.xi     GFX_DRV_NOT_SUPPORT               ,
269*53ee8cc1Swenshuai.xi     /// pixel format error
270*53ee8cc1Swenshuai.xi     GFX_DRV_FAIL_FORMAT               ,
271*53ee8cc1Swenshuai.xi     /// bitblit start address error
272*53ee8cc1Swenshuai.xi     GFX_DRV_FAIL_BLTADDR              ,
273*53ee8cc1Swenshuai.xi     /// bitblt overlap (if STRETCH, ITALIC, MIRROR, ROTATE)
274*53ee8cc1Swenshuai.xi     GFX_DRV_FAIL_OVERLAP              ,
275*53ee8cc1Swenshuai.xi     /// stretch bitblt fail
276*53ee8cc1Swenshuai.xi     GFX_DRV_FAIL_STRETCH              ,
277*53ee8cc1Swenshuai.xi     /// italic bitblt fail (if MIRROR, ROTATE)
278*53ee8cc1Swenshuai.xi     GFX_DRV_FAIL_ITALIC               ,
279*53ee8cc1Swenshuai.xi     /// engine is locked by others
280*53ee8cc1Swenshuai.xi     GFX_DRV_FAIL_LOCKED               ,
281*53ee8cc1Swenshuai.xi     /// primitive will not be drawn
282*53ee8cc1Swenshuai.xi     GFX_DRV_NOT_DRAW                   ,
283*53ee8cc1Swenshuai.xi     /// Dependent functions are not linked
284*53ee8cc1Swenshuai.xi     GFX_DRV_NO_DEPENDENT              ,
285*53ee8cc1Swenshuai.xi     /// context not inited.
286*53ee8cc1Swenshuai.xi     GFX_DRV_CTXMAG_FAIL               ,
287*53ee8cc1Swenshuai.xi 
288*53ee8cc1Swenshuai.xi     GFX_INVALID_INTENSITY_ID = 0x100,
289*53ee8cc1Swenshuai.xi     GFX_INVALID_BUFF_INFO             ,
290*53ee8cc1Swenshuai.xi     GFX_INVALID_FONT_HANDLE           ,
291*53ee8cc1Swenshuai.xi     GFX_INVALID_BMP_HANDLE            ,
292*53ee8cc1Swenshuai.xi     GFX_INIT_FAIL                                  ,
293*53ee8cc1Swenshuai.xi } GFX_Result;
294*53ee8cc1Swenshuai.xi 
295*53ee8cc1Swenshuai.xi 
296*53ee8cc1Swenshuai.xi ///Define Raster Operation
297*53ee8cc1Swenshuai.xi typedef enum
298*53ee8cc1Swenshuai.xi {
299*53ee8cc1Swenshuai.xi     /// rop_result = 0;
300*53ee8cc1Swenshuai.xi     ROP2_OP_ZERO                    = 0,
301*53ee8cc1Swenshuai.xi     /// rop_result = ~( rop_src | rop_dst );
302*53ee8cc1Swenshuai.xi     ROP2_OP_NOT_PS_OR_PD            ,
303*53ee8cc1Swenshuai.xi     /// rop_result = ((~rop_src) & rop_dst);
304*53ee8cc1Swenshuai.xi     ROP2_OP_NS_AND_PD               ,
305*53ee8cc1Swenshuai.xi     /// rop_result = ~(rop_src);
306*53ee8cc1Swenshuai.xi     ROP2_OP_NS                      ,
307*53ee8cc1Swenshuai.xi     /// rop_result = (rop_src & (~rop_dst));
308*53ee8cc1Swenshuai.xi     ROP2_OP_PS_AND_ND               ,
309*53ee8cc1Swenshuai.xi     /// rop_result = ~(rop_dst);
310*53ee8cc1Swenshuai.xi     ROP2_OP_ND                      ,
311*53ee8cc1Swenshuai.xi     /// rop_result = ( rop_src ^ rop_dst);
312*53ee8cc1Swenshuai.xi     ROP2_OP_PS_XOR_PD               ,
313*53ee8cc1Swenshuai.xi     /// rop_result = ~(rop_src & rop_dst);
314*53ee8cc1Swenshuai.xi     ROP2_OP_NOT_PS_AND_PD           ,
315*53ee8cc1Swenshuai.xi     /// rop_result = (rop_src & rop_dst);
316*53ee8cc1Swenshuai.xi     ROP2_OP_PS_AND_PD               ,
317*53ee8cc1Swenshuai.xi     /// rop_result = ~(rop_dst ^ rop_src);
318*53ee8cc1Swenshuai.xi     ROP2_OP_NOT_PS_XOR_PD           ,
319*53ee8cc1Swenshuai.xi     /// rop_result = rop_dst;
320*53ee8cc1Swenshuai.xi     ROP2_OP_PD                      ,
321*53ee8cc1Swenshuai.xi     /// rop_result = (rop_dst | (~rop_src));
322*53ee8cc1Swenshuai.xi     ROP2_OP_NS_OR_PD                ,
323*53ee8cc1Swenshuai.xi     /// rop_result = rop_src;
324*53ee8cc1Swenshuai.xi     ROP2_OP_PS                      ,
325*53ee8cc1Swenshuai.xi     /// rop_result = (rop_src | (~rop_dst));
326*53ee8cc1Swenshuai.xi     ROP2_OP_PS_OR_ND                ,
327*53ee8cc1Swenshuai.xi     /// rop_result = (rop_dst | rop_src);
328*53ee8cc1Swenshuai.xi     ROP2_OP_PD_OR_PS                ,
329*53ee8cc1Swenshuai.xi     /// rop_result = 0xffffff;
330*53ee8cc1Swenshuai.xi     ROP2_OP_ONE                     ,
331*53ee8cc1Swenshuai.xi } GFX_ROP2_Op;
332*53ee8cc1Swenshuai.xi 
333*53ee8cc1Swenshuai.xi 
334*53ee8cc1Swenshuai.xi /// Color Key Operation Mode
335*53ee8cc1Swenshuai.xi typedef enum
336*53ee8cc1Swenshuai.xi {
337*53ee8cc1Swenshuai.xi     /// If EQUAL then perform CK operation
338*53ee8cc1Swenshuai.xi     CK_OP_EQUAL                     = 0,
339*53ee8cc1Swenshuai.xi     /// If NOT EQUAL then perform CK operation
340*53ee8cc1Swenshuai.xi     CK_OP_NOT_EQUAL                 = 1,
341*53ee8cc1Swenshuai.xi     /// If EQUAL then perform Alpha Key operation
342*53ee8cc1Swenshuai.xi     AK_OP_EQUAL                     = 2,
343*53ee8cc1Swenshuai.xi     /// If NOT EQUAL then Alpha Key operation
344*53ee8cc1Swenshuai.xi     AK_OP_NOT_EQUAL                 = 3,
345*53ee8cc1Swenshuai.xi } GFX_ColorKeyMode;
346*53ee8cc1Swenshuai.xi 
347*53ee8cc1Swenshuai.xi ///Define Blending Coefficient
348*53ee8cc1Swenshuai.xi typedef enum
349*53ee8cc1Swenshuai.xi {
350*53ee8cc1Swenshuai.xi     /// Csrc
351*53ee8cc1Swenshuai.xi     COEF_ONE                        = 0,
352*53ee8cc1Swenshuai.xi     /// Csrc * Aconst + Cdst * (1 - Aconst)
353*53ee8cc1Swenshuai.xi     COEF_CONST                      ,
354*53ee8cc1Swenshuai.xi     ///  Csrc * Asrc + Cdst * (1 - Asrc)
355*53ee8cc1Swenshuai.xi     COEF_ASRC                       ,
356*53ee8cc1Swenshuai.xi     /// Csrc * Adst + Cdst * (1 - Adst)
357*53ee8cc1Swenshuai.xi     COEF_ADST                       ,
358*53ee8cc1Swenshuai.xi 
359*53ee8cc1Swenshuai.xi     /// Cdst
360*53ee8cc1Swenshuai.xi     COEF_ZERO                       ,
361*53ee8cc1Swenshuai.xi     /// Csrc * (1 - Aconst) + Cdst * Aconst
362*53ee8cc1Swenshuai.xi     COEF_1_CONST                    ,
363*53ee8cc1Swenshuai.xi     /// Csrc * (1 - Asrc) + Cdst * Asrc
364*53ee8cc1Swenshuai.xi     COEF_1_ASRC                     ,
365*53ee8cc1Swenshuai.xi     ///  Csrc * (1 - Adst) + Cdst * Adst
366*53ee8cc1Swenshuai.xi     COEF_1_ADST                     ,
367*53ee8cc1Swenshuai.xi 
368*53ee8cc1Swenshuai.xi     /// ((Asrc * Aconst) * Csrc + (1-(Asrc *Aconst)) * Cdst) / 2
369*53ee8cc1Swenshuai.xi     COEF_ROP8_ALPHA                 ,
370*53ee8cc1Swenshuai.xi     /// ((Asrc * Aconst) * Csrc + Adst * Cdst * (1-(Asrc * Aconst))) / (Asrc * Aconst) + Adst * (1- Asrc * Aconst))
371*53ee8cc1Swenshuai.xi     COEF_ROP8_SRCOVER               ,
372*53ee8cc1Swenshuai.xi     /// ((Asrc * Aconst) * Csrc * (1-Adst) + Adst * Cdst) / (Asrc * Aconst) * (1-Adst) + Adst)
373*53ee8cc1Swenshuai.xi     COEF_ROP8_DSTOVER               ,
374*53ee8cc1Swenshuai.xi 
375*53ee8cc1Swenshuai.xi     /// Csrc * Aconst
376*53ee8cc1Swenshuai.xi     ///@note
377*53ee8cc1Swenshuai.xi     /// <b>[URANUS] <em>It does not support COEF_CONST_SRC</em></b>
378*53ee8cc1Swenshuai.xi     COEF_CONST_SRC              ,
379*53ee8cc1Swenshuai.xi     /// Csrc * (1 - Aconst)
380*53ee8cc1Swenshuai.xi     ///@note
381*53ee8cc1Swenshuai.xi     /// <b>[URANUS] <em>It does not support COEF_1_CONST_SRC</em></b>
382*53ee8cc1Swenshuai.xi     COEF_1_CONST_SRC            ,
383*53ee8cc1Swenshuai.xi 
384*53ee8cc1Swenshuai.xi     /// Csrc * Adst * Asrc * Aconst + Cdst * Adst * (1 - Asrc * Aconst)
385*53ee8cc1Swenshuai.xi     ///@note
386*53ee8cc1Swenshuai.xi     /// <b>[URANUS] <em>It does not support COEF_SRC_ATOP_DST</em></b>
387*53ee8cc1Swenshuai.xi     COEF_SRC_ATOP_DST               ,
388*53ee8cc1Swenshuai.xi     /// Cdst * Asrc * Aconst * Adst + Csrc * Asrc * Aconst * (1 - Adst)
389*53ee8cc1Swenshuai.xi     ///@note
390*53ee8cc1Swenshuai.xi     /// <b>[URANUS] <em>It does not support COEF_DST_ATOP_SRC</em></b>
391*53ee8cc1Swenshuai.xi     COEF_DST_ATOP_SRC               ,
392*53ee8cc1Swenshuai.xi     /// (1 - Adst) * Csrc * Asrc * Aconst + Adst * Cdst * (1 - Asrc * Aconst)
393*53ee8cc1Swenshuai.xi     ///@note
394*53ee8cc1Swenshuai.xi     /// <b>[URANUS] <em>It does not support COEF_SRC_XOR_DST</em></b>
395*53ee8cc1Swenshuai.xi     COEF_SRC_XOR_DST                ,
396*53ee8cc1Swenshuai.xi } GFX_BlendCoef;
397*53ee8cc1Swenshuai.xi 
398*53ee8cc1Swenshuai.xi ///Define Blending Source from
399*53ee8cc1Swenshuai.xi typedef enum
400*53ee8cc1Swenshuai.xi {
401*53ee8cc1Swenshuai.xi     /// constant
402*53ee8cc1Swenshuai.xi     ABL_FROM_CONST                  = 0,
403*53ee8cc1Swenshuai.xi     /// source alpha
404*53ee8cc1Swenshuai.xi     ABL_FROM_ASRC                   ,
405*53ee8cc1Swenshuai.xi     /// destination alpha
406*53ee8cc1Swenshuai.xi     ABL_FROM_ADST                   ,
407*53ee8cc1Swenshuai.xi     /// Aout = Asrc*Aconst
408*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_SRC       ,
409*53ee8cc1Swenshuai.xi     /// Aout = Asrc*Aconst * Adst
410*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_IN  ,
411*53ee8cc1Swenshuai.xi     /// Aout = (1-Asrc*Aconst) * Adst
412*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_DSTOUT  ,
413*53ee8cc1Swenshuai.xi     /// Aout = (1-Adst) * Asrc*Aconst
414*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_SRCOUT           ,
415*53ee8cc1Swenshuai.xi     /// Aout = (Asrc*Aconst) + Adst*(1-Asrc*Aconst) or (Asrc*Aconst)*(1-Adst) + Adst
416*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_OVER             ,
417*53ee8cc1Swenshuai.xi 
418*53ee8cc1Swenshuai.xi     /// 1 - Aconst
419*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_INV_CONST       ,
420*53ee8cc1Swenshuai.xi     /// 1 - Asrc
421*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_INV_ASRC         ,
422*53ee8cc1Swenshuai.xi     /// 1 - Adst
423*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_INV_ADST         ,
424*53ee8cc1Swenshuai.xi     /// Adst * Asrc * Aconst + Adst * (1 - Asrc * Aconst) A atop B
425*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_SRC_ATOP_DST    ,
426*53ee8cc1Swenshuai.xi     /// Asrc * Aconst * Adst + Asrc * Aconst * (1 - Adst) B atop A
427*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_DST_ATOP_SRC    ,
428*53ee8cc1Swenshuai.xi     /// (1 - Adst) * Asrc * Aconst + Adst * (1 - Asrc * Aconst) A xor B
429*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_SRC_XOR_DST     ,
430*53ee8cc1Swenshuai.xi     /// Asrc * Asrc * Aconst + Adst * (1 - Asrc * Aconst)
431*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_INV_SRC_ATOP_DST     ,
432*53ee8cc1Swenshuai.xi     /// Asrc * (1 - Asrc * Aconst) + Adst * Asrc * Aconst
433*53ee8cc1Swenshuai.xi     ABL_FROM_ROP8_INV_DST_ATOP_SRC
434*53ee8cc1Swenshuai.xi } GFX_AlphaSrcFrom;
435*53ee8cc1Swenshuai.xi 
436*53ee8cc1Swenshuai.xi 
437*53ee8cc1Swenshuai.xi ///Define Colorkey Mode
438*53ee8cc1Swenshuai.xi typedef enum
439*53ee8cc1Swenshuai.xi {
440*53ee8cc1Swenshuai.xi     /// max(Asrc,Adst)
441*53ee8cc1Swenshuai.xi     GFX_ACMP_OP_MAX                = 0,
442*53ee8cc1Swenshuai.xi     /// min(Asrc,Adst)
443*53ee8cc1Swenshuai.xi     GFX_GE_ACMP_OP_MIN                = 1,
444*53ee8cc1Swenshuai.xi 
445*53ee8cc1Swenshuai.xi } GFX_ACmpOp;
446*53ee8cc1Swenshuai.xi 
447*53ee8cc1Swenshuai.xi 
448*53ee8cc1Swenshuai.xi /// GE buffer format
449*53ee8cc1Swenshuai.xi typedef enum
450*53ee8cc1Swenshuai.xi {
451*53ee8cc1Swenshuai.xi     /// font mode I1
452*53ee8cc1Swenshuai.xi     GFX_FMT_I1                      = E_MS_FMT_I1,
453*53ee8cc1Swenshuai.xi     /// font mode I2
454*53ee8cc1Swenshuai.xi     GFX_FMT_I2                      = E_MS_FMT_I2,
455*53ee8cc1Swenshuai.xi     /// font mode I4
456*53ee8cc1Swenshuai.xi     GFX_FMT_I4                      = E_MS_FMT_I4,
457*53ee8cc1Swenshuai.xi     /// color format palette 256(I8)
458*53ee8cc1Swenshuai.xi     GFX_FMT_I8                      = E_MS_FMT_I8,
459*53ee8cc1Swenshuai.xi      /// color format blinking display
460*53ee8cc1Swenshuai.xi     GFX_FMT_FABAFGBG2266 = E_MS_FMT_FaBaFgBg2266,
461*53ee8cc1Swenshuai.xi     /// Uranus GOP only support this blinking
462*53ee8cc1Swenshuai.xi     /// color format for blinking display format
463*53ee8cc1Swenshuai.xi     GFX_FMT_1ABFGBG12355            = E_MS_FMT_1ABFgBg12355,
464*53ee8cc1Swenshuai.xi     /// color format RGB565
465*53ee8cc1Swenshuai.xi     GFX_FMT_RGB565                  = E_MS_FMT_RGB565,
466*53ee8cc1Swenshuai.xi     // color format ORGB1555
467*53ee8cc1Swenshuai.xi     GFX_FMT_ARGB1555                = E_MS_FMT_ARGB1555,
468*53ee8cc1Swenshuai.xi     // color format ARGB4444
469*53ee8cc1Swenshuai.xi     GFX_FMT_ARGB4444                = E_MS_FMT_ARGB4444,
470*53ee8cc1Swenshuai.xi     // color format for blinking display format
471*53ee8cc1Swenshuai.xi     // Uranus GOP does NOT support this blinking format
472*53ee8cc1Swenshuai.xi     // GE_FMT_1BAAFGBG123433       = 0xb,
473*53ee8cc1Swenshuai.xi     // @FIXME: Venus does not have this color format. Need to take care of it.
474*53ee8cc1Swenshuai.xi     /// color format ARGB1555 DST
475*53ee8cc1Swenshuai.xi     GFX_FMT_ARGB1555_DST            = E_MS_FMT_ARGB1555_DST,
476*53ee8cc1Swenshuai.xi     /// color format YUV422
477*53ee8cc1Swenshuai.xi     GFX_FMT_YUV422                  = E_MS_FMT_YUV422,
478*53ee8cc1Swenshuai.xi     /// color format ARGB8888
479*53ee8cc1Swenshuai.xi     GFX_FMT_ARGB8888                = E_MS_FMT_ARGB8888,
480*53ee8cc1Swenshuai.xi     /// color format RGBA5551
481*53ee8cc1Swenshuai.xi     GFX_FMT_RGBA5551                = E_MS_FMT_RGBA5551,
482*53ee8cc1Swenshuai.xi      /// color format RGBA4444
483*53ee8cc1Swenshuai.xi     GFX_FMT_RGBA4444               = E_MS_FMT_RGBA4444,
484*53ee8cc1Swenshuai.xi     /// color format ABGR8888
485*53ee8cc1Swenshuai.xi     GFX_FMT_ABGR8888                = E_MS_FMT_ABGR8888,
486*53ee8cc1Swenshuai.xi     /// New Color Format
487*53ee8cc1Swenshuai.xi     /// color format BGRA5551
488*53ee8cc1Swenshuai.xi     GFX_FMT_BGRA5551               = E_MS_FMT_BGRA5551,
489*53ee8cc1Swenshuai.xi     /// color format ABGR1555
490*53ee8cc1Swenshuai.xi     GFX_FMT_ABGR1555               = E_MS_FMT_ABGR1555,
491*53ee8cc1Swenshuai.xi     /// color format ABGR4444
492*53ee8cc1Swenshuai.xi     GFX_FMT_ABGR4444               = E_MS_FMT_ABGR4444,
493*53ee8cc1Swenshuai.xi     /// color format BGRA4444
494*53ee8cc1Swenshuai.xi     GFX_FMT_BGRA4444               = E_MS_FMT_BGRA4444,
495*53ee8cc1Swenshuai.xi     /// color format BGR565
496*53ee8cc1Swenshuai.xi     GFX_FMT_BGR565               = E_MS_FMT_BGR565,
497*53ee8cc1Swenshuai.xi     /// color format RGBA8888
498*53ee8cc1Swenshuai.xi     GFX_FMT_RGBA8888               = E_MS_FMT_RGBA8888,
499*53ee8cc1Swenshuai.xi     /// color format RGBA8888
500*53ee8cc1Swenshuai.xi     GFX_FMT_BGRA8888               = E_MS_FMT_BGRA8888,
501*53ee8cc1Swenshuai.xi } GFX_Buffer_Format;
502*53ee8cc1Swenshuai.xi 
503*53ee8cc1Swenshuai.xi ///Define RGB2YUV conversion formula
504*53ee8cc1Swenshuai.xi typedef enum
505*53ee8cc1Swenshuai.xi {
506*53ee8cc1Swenshuai.xi     GFX_YUV_OP1            ,  // GFX_YUV_Rgb2Yuv
507*53ee8cc1Swenshuai.xi     GFX_YUV_OP2            ,  // GFX_YUV_OutRange
508*53ee8cc1Swenshuai.xi     GFX_YUV_OP3            ,  // GE_YUV_InRange
509*53ee8cc1Swenshuai.xi     GFX_YUV_OP4            ,  // GFX_YUV_422
510*53ee8cc1Swenshuai.xi } GFX_YUV_OpType;
511*53ee8cc1Swenshuai.xi 
512*53ee8cc1Swenshuai.xi ///Define RGB2YUV conversion formula
513*53ee8cc1Swenshuai.xi typedef enum
514*53ee8cc1Swenshuai.xi {
515*53ee8cc1Swenshuai.xi     GFX_YUV_RGB2YUV_PC             = 0,
516*53ee8cc1Swenshuai.xi     GFX_YUV_RGB2YUV_255            = 1,
517*53ee8cc1Swenshuai.xi 
518*53ee8cc1Swenshuai.xi } GFX_YUV_Rgb2Yuv;
519*53ee8cc1Swenshuai.xi 
520*53ee8cc1Swenshuai.xi ///Define output YUV color domain
521*53ee8cc1Swenshuai.xi typedef enum
522*53ee8cc1Swenshuai.xi {
523*53ee8cc1Swenshuai.xi     GFX_YUV_OUT_255                = 0,
524*53ee8cc1Swenshuai.xi     GFX_YUV_OUT_PC                 = 1,
525*53ee8cc1Swenshuai.xi 
526*53ee8cc1Swenshuai.xi } GFX_YUV_OutRange;
527*53ee8cc1Swenshuai.xi 
528*53ee8cc1Swenshuai.xi ///Define input YUV color domain
529*53ee8cc1Swenshuai.xi typedef enum
530*53ee8cc1Swenshuai.xi {
531*53ee8cc1Swenshuai.xi     GFX_YUV_IN_255                 = 0,
532*53ee8cc1Swenshuai.xi     GFX_YUV_IN_127                 = 1,
533*53ee8cc1Swenshuai.xi 
534*53ee8cc1Swenshuai.xi } GFX_YUV_InRange;
535*53ee8cc1Swenshuai.xi 
536*53ee8cc1Swenshuai.xi ///Define YOU 422 format
537*53ee8cc1Swenshuai.xi typedef enum
538*53ee8cc1Swenshuai.xi {
539*53ee8cc1Swenshuai.xi     GFX_YUV_YVYU                   = 0,
540*53ee8cc1Swenshuai.xi     GFX_YUV_YUYV                   = 1,
541*53ee8cc1Swenshuai.xi     GFX_YUV_VYUY                   = 2,
542*53ee8cc1Swenshuai.xi     GFX_YUV_UYVY                   = 3,
543*53ee8cc1Swenshuai.xi 
544*53ee8cc1Swenshuai.xi } GFX_YUV_422;
545*53ee8cc1Swenshuai.xi 
546*53ee8cc1Swenshuai.xi ///Define paramter for YUV operation
547*53ee8cc1Swenshuai.xi typedef struct
548*53ee8cc1Swenshuai.xi {
549*53ee8cc1Swenshuai.xi     GFX_YUV_Rgb2Yuv                  rgb2yuv;
550*53ee8cc1Swenshuai.xi     GFX_YUV_OutRange                 out_range;
551*53ee8cc1Swenshuai.xi     GFX_YUV_InRange                  in_range;
552*53ee8cc1Swenshuai.xi     GFX_YUV_422                      dst_fmt;
553*53ee8cc1Swenshuai.xi     GFX_YUV_422                      src_fmt;
554*53ee8cc1Swenshuai.xi } GFX_YUVMode;
555*53ee8cc1Swenshuai.xi 
556*53ee8cc1Swenshuai.xi 
557*53ee8cc1Swenshuai.xi //-------------------------------------------------
558*53ee8cc1Swenshuai.xi /// Define Virtual Command Buffer Size
559*53ee8cc1Swenshuai.xi typedef enum
560*53ee8cc1Swenshuai.xi {
561*53ee8cc1Swenshuai.xi     /// 4K
562*53ee8cc1Swenshuai.xi     GFX_VCMD_4K = 0,
563*53ee8cc1Swenshuai.xi     /// 8K
564*53ee8cc1Swenshuai.xi     GFX_VCMD_8K = 1,
565*53ee8cc1Swenshuai.xi     /// 16K
566*53ee8cc1Swenshuai.xi     GFX_VCMD_16K = 2,
567*53ee8cc1Swenshuai.xi     /// 32K
568*53ee8cc1Swenshuai.xi     GFX_VCMD_32K = 3,
569*53ee8cc1Swenshuai.xi     /// 64K
570*53ee8cc1Swenshuai.xi     GFX_VCMD_64K = 4,
571*53ee8cc1Swenshuai.xi     /// 128K
572*53ee8cc1Swenshuai.xi     GFX_VCMD_128K = 5,
573*53ee8cc1Swenshuai.xi     /// 256K
574*53ee8cc1Swenshuai.xi     GFX_VCMD_256K = 6,
575*53ee8cc1Swenshuai.xi     /// 512K
576*53ee8cc1Swenshuai.xi     GFX_VCMD_512K = 7,
577*53ee8cc1Swenshuai.xi     /// 1024k
578*53ee8cc1Swenshuai.xi     GFX_VCMD_1024K = 8,
579*53ee8cc1Swenshuai.xi } GFX_VcmqBufSize;
580*53ee8cc1Swenshuai.xi 
581*53ee8cc1Swenshuai.xi 
582*53ee8cc1Swenshuai.xi 
583*53ee8cc1Swenshuai.xi //-------------------------------------------------
584*53ee8cc1Swenshuai.xi /// Define RGB color in LE
585*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
586*53ee8cc1Swenshuai.xi {
587*53ee8cc1Swenshuai.xi     /// Blue
588*53ee8cc1Swenshuai.xi     MS_U8 b;
589*53ee8cc1Swenshuai.xi     /// Green
590*53ee8cc1Swenshuai.xi     MS_U8 g;
591*53ee8cc1Swenshuai.xi     /// Red
592*53ee8cc1Swenshuai.xi     MS_U8 r;
593*53ee8cc1Swenshuai.xi     /// Alpha
594*53ee8cc1Swenshuai.xi     MS_U8 a;
595*53ee8cc1Swenshuai.xi } GFX_RgbColor;
596*53ee8cc1Swenshuai.xi 
597*53ee8cc1Swenshuai.xi /// Define YUV color
598*53ee8cc1Swenshuai.xi typedef struct
599*53ee8cc1Swenshuai.xi {
600*53ee8cc1Swenshuai.xi     MS_U32         Y:8;
601*53ee8cc1Swenshuai.xi     MS_U32         U:4;
602*53ee8cc1Swenshuai.xi     MS_U32         V:4;
603*53ee8cc1Swenshuai.xi } GFX_YuvColor;
604*53ee8cc1Swenshuai.xi 
605*53ee8cc1Swenshuai.xi 
606*53ee8cc1Swenshuai.xi /// General GFX color type, union of rgb and yuv color.
607*53ee8cc1Swenshuai.xi typedef struct{
608*53ee8cc1Swenshuai.xi     union{
609*53ee8cc1Swenshuai.xi         GFX_RgbColor    rgb;
610*53ee8cc1Swenshuai.xi         GFX_YuvColor    yuv;
611*53ee8cc1Swenshuai.xi     };
612*53ee8cc1Swenshuai.xi } GFX_Color;
613*53ee8cc1Swenshuai.xi 
614*53ee8cc1Swenshuai.xi //-------------------------------------------------
615*53ee8cc1Swenshuai.xi /// Define the start color & end color
616*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
617*53ee8cc1Swenshuai.xi {
618*53ee8cc1Swenshuai.xi     /// start color
619*53ee8cc1Swenshuai.xi     GFX_RgbColor color_s;
620*53ee8cc1Swenshuai.xi     /// end color
621*53ee8cc1Swenshuai.xi     GFX_RgbColor color_e;
622*53ee8cc1Swenshuai.xi } GFX_ColorRange;
623*53ee8cc1Swenshuai.xi 
624*53ee8cc1Swenshuai.xi //-------------------------------------------------
625*53ee8cc1Swenshuai.xi /// Define the position of one point.
626*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
627*53ee8cc1Swenshuai.xi {
628*53ee8cc1Swenshuai.xi     /// X address
629*53ee8cc1Swenshuai.xi     MS_U16 x;
630*53ee8cc1Swenshuai.xi     /// Y address
631*53ee8cc1Swenshuai.xi     MS_U16 y;
632*53ee8cc1Swenshuai.xi } GFX_Point;
633*53ee8cc1Swenshuai.xi 
634*53ee8cc1Swenshuai.xi //-------------------------------------------------
635*53ee8cc1Swenshuai.xi /// Specify the blink data
636*53ee8cc1Swenshuai.xi         //          1 A B Fg Bg
637*53ee8cc1Swenshuai.xi         //          1 2 3  5  5
638*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
639*53ee8cc1Swenshuai.xi {
640*53ee8cc1Swenshuai.xi     /// BG color (for blink mode use)
641*53ee8cc1Swenshuai.xi     MS_U8                  background;             // 5 bits
642*53ee8cc1Swenshuai.xi     /// FG color (for blink mode use)
643*53ee8cc1Swenshuai.xi     MS_U8                  foreground;             // 5 bits
644*53ee8cc1Swenshuai.xi     /// Control flag\n
645*53ee8cc1Swenshuai.xi     union{
646*53ee8cc1Swenshuai.xi         MS_U16             ctrl_flag;
647*53ee8cc1Swenshuai.xi         struct{
648*53ee8cc1Swenshuai.xi             MS_U16         Blink:3;                // 3 bits
649*53ee8cc1Swenshuai.xi             MS_U16         Alpha:2;                // 2 bits
650*53ee8cc1Swenshuai.xi             MS_U16         blink_en:1;
651*53ee8cc1Swenshuai.xi             MS_U16         reserved1:10;
652*53ee8cc1Swenshuai.xi         } Bits;
653*53ee8cc1Swenshuai.xi         struct{
654*53ee8cc1Swenshuai.xi             MS_U16 BlinkAlpha:4;
655*53ee8cc1Swenshuai.xi             MS_U16 Alpha:2;
656*53ee8cc1Swenshuai.xi             MS_U16 Blink:3;
657*53ee8cc1Swenshuai.xi             MS_U16 reserved:7;
658*53ee8cc1Swenshuai.xi         }Bits2;
659*53ee8cc1Swenshuai.xi         struct{
660*53ee8cc1Swenshuai.xi             MS_U16 Fa:2;
661*53ee8cc1Swenshuai.xi             MS_U16 Ba:2;
662*53ee8cc1Swenshuai.xi             MS_U16 reserved:12;
663*53ee8cc1Swenshuai.xi 
664*53ee8cc1Swenshuai.xi         }Bits3;
665*53ee8cc1Swenshuai.xi     };
666*53ee8cc1Swenshuai.xi 
667*53ee8cc1Swenshuai.xi 
668*53ee8cc1Swenshuai.xi } GFX_BlinkData;
669*53ee8cc1Swenshuai.xi 
670*53ee8cc1Swenshuai.xi 
671*53ee8cc1Swenshuai.xi /// Define the start blink color & end blink color.
672*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
673*53ee8cc1Swenshuai.xi {
674*53ee8cc1Swenshuai.xi     /// start blink color
675*53ee8cc1Swenshuai.xi     GFX_BlinkData blink_data_s;
676*53ee8cc1Swenshuai.xi     /// end blink color
677*53ee8cc1Swenshuai.xi     GFX_BlinkData blink_data_e;
678*53ee8cc1Swenshuai.xi } GFX_BlinkDataRange;
679*53ee8cc1Swenshuai.xi 
680*53ee8cc1Swenshuai.xi //-------------------------------------------------
681*53ee8cc1Swenshuai.xi //-------------------------------------------------
682*53ee8cc1Swenshuai.xi #define GFXLINE_FLAG_COLOR_CONSTANT     0x00UL
683*53ee8cc1Swenshuai.xi #define GFXLINE_FLAG_COLOR_GRADIENT     0x01UL
684*53ee8cc1Swenshuai.xi 
685*53ee8cc1Swenshuai.xi /// Define the attribute of line.
686*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
687*53ee8cc1Swenshuai.xi {
688*53ee8cc1Swenshuai.xi     /// start X address
689*53ee8cc1Swenshuai.xi     MS_U16 x1;
690*53ee8cc1Swenshuai.xi     /// Start Y address
691*53ee8cc1Swenshuai.xi     MS_U16 y1;
692*53ee8cc1Swenshuai.xi     /// End X address
693*53ee8cc1Swenshuai.xi     MS_U16 x2;
694*53ee8cc1Swenshuai.xi     /// End Y address
695*53ee8cc1Swenshuai.xi     MS_U16 y2;
696*53ee8cc1Swenshuai.xi     /// Color format
697*53ee8cc1Swenshuai.xi     GFX_Buffer_Format fmt;
698*53ee8cc1Swenshuai.xi     union
699*53ee8cc1Swenshuai.xi     {
700*53ee8cc1Swenshuai.xi         /// Color
701*53ee8cc1Swenshuai.xi         ///For all RGB color, the color set as the ARGB8888 format.\n
702*53ee8cc1Swenshuai.xi         ///Each color component need to shift to high bit.\n
703*53ee8cc1Swenshuai.xi         ///Use ARGB1555 as the example, the source color key as the following:\n
704*53ee8cc1Swenshuai.xi         ///ARGB1555  --> ARRRRRGGGGGBBBBB                   (every character represents one bit)\n
705*53ee8cc1Swenshuai.xi         ///colorRange.color_s --> A0000000RRRRR000GGGGG000BBBBB000   (every character represents one bit)\n\n
706*53ee8cc1Swenshuai.xi         ///For GFX_FMT_I8 format, the index set to b component (colorRange.color_s.b = b).\n
707*53ee8cc1Swenshuai.xi         GFX_ColorRange       colorRange;
708*53ee8cc1Swenshuai.xi         ///Blink attribute
709*53ee8cc1Swenshuai.xi         ///For GFX_FMT_1BAAFGBG123433 foramt, the foramt set as the GFX_BlinkData.\n
710*53ee8cc1Swenshuai.xi         GFX_BlinkDataRange  blkDataRange;
711*53ee8cc1Swenshuai.xi     };
712*53ee8cc1Swenshuai.xi     /// Line width
713*53ee8cc1Swenshuai.xi     MS_U32 width;
714*53ee8cc1Swenshuai.xi     /// GFXLINE_FLAG_COLOR_CONSTANT: Constant color\n
715*53ee8cc1Swenshuai.xi     /// GFXLINE_FLAG_COLOR_GRADIENT: Gradient color
716*53ee8cc1Swenshuai.xi     MS_U32 flag;
717*53ee8cc1Swenshuai.xi 
718*53ee8cc1Swenshuai.xi } GFX_DrawLineInfo;
719*53ee8cc1Swenshuai.xi 
720*53ee8cc1Swenshuai.xi //-------------------------------------------------
721*53ee8cc1Swenshuai.xi 
722*53ee8cc1Swenshuai.xi /// Define the dimension of one block
723*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
724*53ee8cc1Swenshuai.xi {
725*53ee8cc1Swenshuai.xi     /// X start address
726*53ee8cc1Swenshuai.xi     MS_U16 x;
727*53ee8cc1Swenshuai.xi     /// Y start address
728*53ee8cc1Swenshuai.xi     MS_U16 y;
729*53ee8cc1Swenshuai.xi     /// width
730*53ee8cc1Swenshuai.xi     MS_U16 width;
731*53ee8cc1Swenshuai.xi     /// height
732*53ee8cc1Swenshuai.xi     MS_U16 height;
733*53ee8cc1Swenshuai.xi } GFX_Block;
734*53ee8cc1Swenshuai.xi 
735*53ee8cc1Swenshuai.xi /*******************************************************************
736*53ee8cc1Swenshuai.xi // Define the Trapezoid                                            *
737*53ee8cc1Swenshuai.xi // [u16X0, u16Y0]: The Left point of top of Trapezoid;             *
738*53ee8cc1Swenshuai.xi // [u16X1, u16Y1]: The Left point of bottom of Trapezoid;          *
739*53ee8cc1Swenshuai.xi // [u16DeltaTop]: The Width of top of Trapezoid;                   *
740*53ee8cc1Swenshuai.xi // [u16DeltaBottom]: The Width of bottom of Trapezoid;             *
741*53ee8cc1Swenshuai.xi // To Simplify, For DIRECTION_X: u16Y0 < u16Y1                     *
742*53ee8cc1Swenshuai.xi // To Simplify, For DIRECTION_Y: u16X0 > u16X1                     *
743*53ee8cc1Swenshuai.xi ********************************************************************/
744*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
745*53ee8cc1Swenshuai.xi {
746*53ee8cc1Swenshuai.xi     /// x0 start address
747*53ee8cc1Swenshuai.xi     MS_U16                          u16X0;
748*53ee8cc1Swenshuai.xi     /// y0 start address
749*53ee8cc1Swenshuai.xi     MS_U16                          u16Y0;
750*53ee8cc1Swenshuai.xi     /// x1 start address
751*53ee8cc1Swenshuai.xi     MS_U16                          u16X1;
752*53ee8cc1Swenshuai.xi     /// y1 start address
753*53ee8cc1Swenshuai.xi     MS_U16                          u16Y1;
754*53ee8cc1Swenshuai.xi     /// delta of Top
755*53ee8cc1Swenshuai.xi     MS_U16                          u16DeltaTop;
756*53ee8cc1Swenshuai.xi     // delta of Bottom
757*53ee8cc1Swenshuai.xi     MS_U16                          u16DeltaBottom;
758*53ee8cc1Swenshuai.xi } GFX_Trapezoid;
759*53ee8cc1Swenshuai.xi 
760*53ee8cc1Swenshuai.xi //-------------------------------------------------
761*53ee8cc1Swenshuai.xi 
762*53ee8cc1Swenshuai.xi #define GFXRECT_FLAG_COLOR_CONSTANT     0x0UL
763*53ee8cc1Swenshuai.xi #define GFXRECT_FLAG_COLOR_GRADIENT_X   0x1UL
764*53ee8cc1Swenshuai.xi #define GFXRECT_FLAG_COLOR_GRADIENT_Y   0x2UL
765*53ee8cc1Swenshuai.xi #define GFXRECT_FLAG_TRAPE_DIRECTION_X  0x4UL //excluded with GFXRECT_FLAG_TRAPE_DIRECTION_Y
766*53ee8cc1Swenshuai.xi #define GFXRECT_FLAG_TRAPE_DIRECTION_Y  0x8UL //excluded with GFXRECT_FLAG_TRAPE_DIRECTION_X
767*53ee8cc1Swenshuai.xi 
768*53ee8cc1Swenshuai.xi /// Define the info. of one block.
769*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
770*53ee8cc1Swenshuai.xi {
771*53ee8cc1Swenshuai.xi     /// dst block info
772*53ee8cc1Swenshuai.xi     union
773*53ee8cc1Swenshuai.xi     {
774*53ee8cc1Swenshuai.xi         GFX_Block       dstBlock;
775*53ee8cc1Swenshuai.xi         GFX_Trapezoid   dstTrapezoidBlk;
776*53ee8cc1Swenshuai.xi     };
777*53ee8cc1Swenshuai.xi     /// Color format
778*53ee8cc1Swenshuai.xi     GFX_Buffer_Format fmt;
779*53ee8cc1Swenshuai.xi     union
780*53ee8cc1Swenshuai.xi     {
781*53ee8cc1Swenshuai.xi         /// Color
782*53ee8cc1Swenshuai.xi         ///For all RGB color, the color set as the ARGB8888 format.\n
783*53ee8cc1Swenshuai.xi         ///Each color component need to shift to high bit.\n
784*53ee8cc1Swenshuai.xi         ///Use ARGB1555 as the example, the source color key as the following:\n
785*53ee8cc1Swenshuai.xi         ///ARGB1555  --> ARRRRRGGGGGBBBBB                   (every character represents one bit)\n
786*53ee8cc1Swenshuai.xi         ///color_s   --> A0000000RRRRR000GGGGG000BBBBB000   (every character represents one bit)\n\n
787*53ee8cc1Swenshuai.xi         ///For GFX_FMT_I8 format, the index set to b component (colorRange.color_s.b = b).\n
788*53ee8cc1Swenshuai.xi         GFX_ColorRange       colorRange;
789*53ee8cc1Swenshuai.xi         ///Blink attribute
790*53ee8cc1Swenshuai.xi         ///For GFX_FMT_1BAAFGBG123433 foramt, the foramt set as the GFX_BlinkData.\n
791*53ee8cc1Swenshuai.xi         GFX_BlinkDataRange  blkDataRange;
792*53ee8cc1Swenshuai.xi     };
793*53ee8cc1Swenshuai.xi 
794*53ee8cc1Swenshuai.xi     /// GERECT_FLAG_COLOR_CONSTANT: Constant color\n
795*53ee8cc1Swenshuai.xi     /// GERECT_FLAG_COLOR_GRADIENT_X: X direction gradient color\n
796*53ee8cc1Swenshuai.xi     /// GERECT_FLAG_COLOR_GRADIENT_Y: Y direction gradient color\n
797*53ee8cc1Swenshuai.xi     /// GFXRECT_FLAG_TRAPE_DIRECTION_X: for trapezoid, top & bottom in X direction parallel, excluded with GFXRECT_FLAG_TRAPE_DIRECTION_Y\n
798*53ee8cc1Swenshuai.xi     /// GFXRECT_FLAG_TRAPE_DIRECTION_Y: for trapezoid, top & bottom in Y direction parallel, excluded with GFXRECT_FLAG_TRAPE_DIRECTION_X\n
799*53ee8cc1Swenshuai.xi     MS_U32 flag;
800*53ee8cc1Swenshuai.xi 
801*53ee8cc1Swenshuai.xi } GFX_RectFillInfo;
802*53ee8cc1Swenshuai.xi 
803*53ee8cc1Swenshuai.xi typedef struct
804*53ee8cc1Swenshuai.xi {
805*53ee8cc1Swenshuai.xi     GFX_RectFillInfo *BatchFillInfo;
806*53ee8cc1Swenshuai.xi     MS_U32 u32BatchNum;
807*53ee8cc1Swenshuai.xi } GFX_BatchRectFillInfo;
808*53ee8cc1Swenshuai.xi 
809*53ee8cc1Swenshuai.xi /// Define structure for OVAL drawing.
810*53ee8cc1Swenshuai.xi typedef struct
811*53ee8cc1Swenshuai.xi {
812*53ee8cc1Swenshuai.xi     /// dst block info
813*53ee8cc1Swenshuai.xi     GFX_Block       dstBlock;
814*53ee8cc1Swenshuai.xi     /// Color format
815*53ee8cc1Swenshuai.xi     GFX_Buffer_Format fmt;
816*53ee8cc1Swenshuai.xi     union{
817*53ee8cc1Swenshuai.xi         GFX_RgbColor color;
818*53ee8cc1Swenshuai.xi         GFX_BlinkData blink_data;
819*53ee8cc1Swenshuai.xi     };
820*53ee8cc1Swenshuai.xi     MS_U32 u32LineWidth;
821*53ee8cc1Swenshuai.xi } GFX_OvalFillInfo;
822*53ee8cc1Swenshuai.xi 
823*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
824*53ee8cc1Swenshuai.xi {
825*53ee8cc1Swenshuai.xi      int            x0;  /* X coordinate of first edge */
826*53ee8cc1Swenshuai.xi      int            y0;  /* Y coordinate of first edge */
827*53ee8cc1Swenshuai.xi      int            x1;  /* X coordinate of second edge */
828*53ee8cc1Swenshuai.xi      int            y1;  /* Y coordinate of second edge */
829*53ee8cc1Swenshuai.xi      int            x2;  /* X coordinate of third edge */
830*53ee8cc1Swenshuai.xi      int            y2;  /* Y coordinate of third edge */
831*53ee8cc1Swenshuai.xi } GFX_Triangle;
832*53ee8cc1Swenshuai.xi 
833*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
834*53ee8cc1Swenshuai.xi {
835*53ee8cc1Swenshuai.xi     GFX_Triangle tri;
836*53ee8cc1Swenshuai.xi     GFX_Block    clip_box;
837*53ee8cc1Swenshuai.xi     GFX_Buffer_Format fmt;
838*53ee8cc1Swenshuai.xi     union
839*53ee8cc1Swenshuai.xi     {
840*53ee8cc1Swenshuai.xi         /// Color
841*53ee8cc1Swenshuai.xi         ///For all RGB color, the color set as the ARGB8888 format.\n
842*53ee8cc1Swenshuai.xi         ///Each color component need to shift to high bit.\n
843*53ee8cc1Swenshuai.xi         ///Use ARGB1555 as the example, the source color key as the following:\n
844*53ee8cc1Swenshuai.xi         ///ARGB1555  --> ARRRRRGGGGGBBBBB                   (every character represents one bit)\n
845*53ee8cc1Swenshuai.xi         ///color_s   --> A0000000RRRRR000GGGGG000BBBBB000   (every character represents one bit)\n\n
846*53ee8cc1Swenshuai.xi         ///For GFX_FMT_I8 format, the index set to b component (colorRange.color_s.b = b).\n
847*53ee8cc1Swenshuai.xi         GFX_ColorRange       colorRange;
848*53ee8cc1Swenshuai.xi         ///Blink attribute
849*53ee8cc1Swenshuai.xi         ///For GFX_FMT_1BAAFGBG123433 foramt, the foramt set as the GFX_BlinkData.\n
850*53ee8cc1Swenshuai.xi         GFX_BlinkDataRange  blkDataRange;
851*53ee8cc1Swenshuai.xi     };
852*53ee8cc1Swenshuai.xi 
853*53ee8cc1Swenshuai.xi     /// GERECT_FLAG_COLOR_CONSTANT: Constant color\n
854*53ee8cc1Swenshuai.xi     /// GERECT_FLAG_COLOR_GRADIENT_X: X direction gradient color\n
855*53ee8cc1Swenshuai.xi     /// GERECT_FLAG_COLOR_GRADIENT_Y: Y direction gradient color\n
856*53ee8cc1Swenshuai.xi     /// GFXRECT_FLAG_TRAPE_DIRECTION_X: for trapezoid, top & bottom in X direction parallel, excluded with GFXRECT_FLAG_TRAPE_DIRECTION_Y\n
857*53ee8cc1Swenshuai.xi     /// GFXRECT_FLAG_TRAPE_DIRECTION_Y: for trapezoid, top & bottom in Y direction parallel, excluded with GFXRECT_FLAG_TRAPE_DIRECTION_X\n
858*53ee8cc1Swenshuai.xi     MS_U32 flag;
859*53ee8cc1Swenshuai.xi } GFX_TriFillInfo;
860*53ee8cc1Swenshuai.xi 
861*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
862*53ee8cc1Swenshuai.xi {
863*53ee8cc1Swenshuai.xi     int            x;   /* X coordinate */
864*53ee8cc1Swenshuai.xi     int            w;   /* width of span */
865*53ee8cc1Swenshuai.xi } Span;
866*53ee8cc1Swenshuai.xi 
867*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
868*53ee8cc1Swenshuai.xi {
869*53ee8cc1Swenshuai.xi      int y;
870*53ee8cc1Swenshuai.xi      Span *spans;
871*53ee8cc1Swenshuai.xi      int num_spans;
872*53ee8cc1Swenshuai.xi } GFX_Span;
873*53ee8cc1Swenshuai.xi 
874*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
875*53ee8cc1Swenshuai.xi {
876*53ee8cc1Swenshuai.xi     GFX_Span     span;
877*53ee8cc1Swenshuai.xi     GFX_Block    clip_box;
878*53ee8cc1Swenshuai.xi     GFX_Buffer_Format fmt;
879*53ee8cc1Swenshuai.xi     union
880*53ee8cc1Swenshuai.xi     {
881*53ee8cc1Swenshuai.xi         /// Color
882*53ee8cc1Swenshuai.xi         ///For all RGB color, the color set as the ARGB8888 format.\n
883*53ee8cc1Swenshuai.xi         ///Each color component need to shift to high bit.\n
884*53ee8cc1Swenshuai.xi         ///Use ARGB1555 as the example, the source color key as the following:\n
885*53ee8cc1Swenshuai.xi         ///ARGB1555  --> ARRRRRGGGGGBBBBB                   (every character represents one bit)\n
886*53ee8cc1Swenshuai.xi         ///color_s   --> A0000000RRRRR000GGGGG000BBBBB000   (every character represents one bit)\n\n
887*53ee8cc1Swenshuai.xi         ///For GFX_FMT_I8 format, the index set to b component (colorRange.color_s.b = b).\n
888*53ee8cc1Swenshuai.xi         GFX_ColorRange       colorRange;
889*53ee8cc1Swenshuai.xi         ///Blink attribute
890*53ee8cc1Swenshuai.xi         ///For GFX_FMT_1BAAFGBG123433 foramt, the foramt set as the GFX_BlinkData.\n
891*53ee8cc1Swenshuai.xi         GFX_BlinkDataRange  blkDataRange;
892*53ee8cc1Swenshuai.xi     };
893*53ee8cc1Swenshuai.xi 
894*53ee8cc1Swenshuai.xi     /// GERECT_FLAG_COLOR_CONSTANT: Constant color\n
895*53ee8cc1Swenshuai.xi     /// GERECT_FLAG_COLOR_GRADIENT_X: X direction gradient color\n
896*53ee8cc1Swenshuai.xi     /// GERECT_FLAG_COLOR_GRADIENT_Y: Y direction gradient color\n
897*53ee8cc1Swenshuai.xi     /// GFXRECT_FLAG_TRAPE_DIRECTION_X: for trapezoid, top & bottom in X direction parallel, excluded with GFXRECT_FLAG_TRAPE_DIRECTION_Y\n
898*53ee8cc1Swenshuai.xi     /// GFXRECT_FLAG_TRAPE_DIRECTION_Y: for trapezoid, top & bottom in Y direction parallel, excluded with GFXRECT_FLAG_TRAPE_DIRECTION_X\n
899*53ee8cc1Swenshuai.xi     MS_U32 flag;
900*53ee8cc1Swenshuai.xi } GFX_SpanFillInfo;
901*53ee8cc1Swenshuai.xi 
902*53ee8cc1Swenshuai.xi //-------------------------------------------------
903*53ee8cc1Swenshuai.xi #define GFXFONT_FLAG_DEFAULT            0x0UL
904*53ee8cc1Swenshuai.xi #define GFXFONT_FLAG_ITALIC             0x1UL
905*53ee8cc1Swenshuai.xi #define GFXFONT_FLAG_SCALE              0x2UL
906*53ee8cc1Swenshuai.xi #define GFXFONT_FLAG_COMPACT            0x4UL
907*53ee8cc1Swenshuai.xi #define GFXFONT_FLAG_BACKGROUND         0x8UL
908*53ee8cc1Swenshuai.xi #define GFXFONT_FLAG_BLINK              0x10UL
909*53ee8cc1Swenshuai.xi #define GFXFONT_FLAG_VARWIDTH           0x20UL
910*53ee8cc1Swenshuai.xi #define GFXFONT_FLAG_GAP                0x40UL
911*53ee8cc1Swenshuai.xi #define GFXFONT_FLAG_BOLD               0x80UL
912*53ee8cc1Swenshuai.xi 
913*53ee8cc1Swenshuai.xi /// Define font overlap info.
914*53ee8cc1Swenshuai.xi typedef struct
915*53ee8cc1Swenshuai.xi {
916*53ee8cc1Swenshuai.xi     MS_S8 s8Xoffset;         ///
917*53ee8cc1Swenshuai.xi     MS_S8 s8Yoffset;
918*53ee8cc1Swenshuai.xi } GFX_GlyphOverlapInfo;
919*53ee8cc1Swenshuai.xi 
920*53ee8cc1Swenshuai.xi /// Glyph display information
921*53ee8cc1Swenshuai.xi typedef struct
922*53ee8cc1Swenshuai.xi {
923*53ee8cc1Swenshuai.xi     MS_U8  u8X0;               ///< Left position to display
924*53ee8cc1Swenshuai.xi     MS_U8  u8Width;            ///< Width of the glyph to display
925*53ee8cc1Swenshuai.xi     MS_U16 u16Index;           ///< Glyph index in the font table
926*53ee8cc1Swenshuai.xi     GFX_GlyphOverlapInfo overlap_info;
927*53ee8cc1Swenshuai.xi } GFX_GlyphDispInfo;
928*53ee8cc1Swenshuai.xi 
929*53ee8cc1Swenshuai.xi 
930*53ee8cc1Swenshuai.xi 
931*53ee8cc1Swenshuai.xi 
932*53ee8cc1Swenshuai.xi /// Font format
933*53ee8cc1Swenshuai.xi typedef struct
934*53ee8cc1Swenshuai.xi {
935*53ee8cc1Swenshuai.xi     /// GEFONT_FLAG_DEFAULT: Default font format\n
936*53ee8cc1Swenshuai.xi     /// GEFONT_FLAG_SCALE: scalable font\n
937*53ee8cc1Swenshuai.xi     /// GEFONT_FLAG_COMPACT: Compact font\n
938*53ee8cc1Swenshuai.xi     /// GEFONT_FLAG_GAP: Gap font\n
939*53ee8cc1Swenshuai.xi     /// GEFONT_FLAG_VARIABLE_WIDTH: Variable font width, depend on horizontal font length.
940*53ee8cc1Swenshuai.xi     MS_U32 flag;
941*53ee8cc1Swenshuai.xi 
942*53ee8cc1Swenshuai.xi     /// dst block first character position , and each character width , height
943*53ee8cc1Swenshuai.xi     GFX_Block  dstblk;
944*53ee8cc1Swenshuai.xi 
945*53ee8cc1Swenshuai.xi     /// set compact distant(take indent effect) when GEFONT_FLAG_COMPACT is set
946*53ee8cc1Swenshuai.xi     MS_U16 dis;
947*53ee8cc1Swenshuai.xi     MS_U16 gap;
948*53ee8cc1Swenshuai.xi 
949*53ee8cc1Swenshuai.xi     GFX_GlyphDispInfo *pGlyphDispInfo;
950*53ee8cc1Swenshuai.xi 
951*53ee8cc1Swenshuai.xi     union{
952*53ee8cc1Swenshuai.xi         MS_U32  u32data;
953*53ee8cc1Swenshuai.xi         GFX_RgbColor color;
954*53ee8cc1Swenshuai.xi         GFX_BlinkData blink_data;
955*53ee8cc1Swenshuai.xi     };
956*53ee8cc1Swenshuai.xi 
957*53ee8cc1Swenshuai.xi } GFX_TextOutInfo;
958*53ee8cc1Swenshuai.xi 
959*53ee8cc1Swenshuai.xi 
960*53ee8cc1Swenshuai.xi /// Define blink type for blinking data
961*53ee8cc1Swenshuai.xi typedef enum
962*53ee8cc1Swenshuai.xi {
963*53ee8cc1Swenshuai.xi     GEBLINK_NONE = 0x0,
964*53ee8cc1Swenshuai.xi     GEBLINK_BACKGROUND,
965*53ee8cc1Swenshuai.xi     GEBLINK_FOREGROUND,
966*53ee8cc1Swenshuai.xi     GEBLINK_BOTH,
967*53ee8cc1Swenshuai.xi } GFX_BlinkType;
968*53ee8cc1Swenshuai.xi 
969*53ee8cc1Swenshuai.xi // Define write protect type
970*53ee8cc1Swenshuai.xi typedef enum
971*53ee8cc1Swenshuai.xi {
972*53ee8cc1Swenshuai.xi     GFX_WP_IN_RANGE                = 0,
973*53ee8cc1Swenshuai.xi     GFX_WP_OUT_RANGE               = 1,
974*53ee8cc1Swenshuai.xi     GFX_WP_DISABLE                 = 0xFF,
975*53ee8cc1Swenshuai.xi 
976*53ee8cc1Swenshuai.xi } GFX_WPType;
977*53ee8cc1Swenshuai.xi 
978*53ee8cc1Swenshuai.xi /// Bounding box (BBox) of a glyph
979*53ee8cc1Swenshuai.xi typedef struct
980*53ee8cc1Swenshuai.xi {
981*53ee8cc1Swenshuai.xi     MS_U8  u8X0;       ///< Position of the left edge of the bounding box
982*53ee8cc1Swenshuai.xi     MS_U8  u8Width;    ///< Width of the bounding box
983*53ee8cc1Swenshuai.xi     MS_U8  u8Y0;       ///< Position of the top edge of the bounding box
984*53ee8cc1Swenshuai.xi     MS_U8  u8Height;   ///< Height of the bounding box
985*53ee8cc1Swenshuai.xi } GFX_GlyphBbox;
986*53ee8cc1Swenshuai.xi 
987*53ee8cc1Swenshuai.xi /// X-direction information of the bounding box of a glyph
988*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
989*53ee8cc1Swenshuai.xi {
990*53ee8cc1Swenshuai.xi     MS_U8  u8X0;       ///< Position of the left edge of the bounding box
991*53ee8cc1Swenshuai.xi     MS_U8  u8Width;    ///< Width of the bounding box
992*53ee8cc1Swenshuai.xi } GFX_GlyphBbox_X;
993*53ee8cc1Swenshuai.xi 
994*53ee8cc1Swenshuai.xi /// Y-direction information of the bounding box of a glyph
995*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
996*53ee8cc1Swenshuai.xi {
997*53ee8cc1Swenshuai.xi     MS_U8  u8Y0;       ///< Position of the top edge of the bounding box
998*53ee8cc1Swenshuai.xi     MS_U8  u8Height;   ///< Height of the bounding box
999*53ee8cc1Swenshuai.xi } GFX_GlyphBbox_Y;
1000*53ee8cc1Swenshuai.xi 
1001*53ee8cc1Swenshuai.xi 
1002*53ee8cc1Swenshuai.xi /// Define structure for color delta (Gradient color)
1003*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1004*53ee8cc1Swenshuai.xi {
1005*53ee8cc1Swenshuai.xi     MS_U8 flag;
1006*53ee8cc1Swenshuai.xi     MS_U32 delta_r;
1007*53ee8cc1Swenshuai.xi     MS_U32 delta_g;
1008*53ee8cc1Swenshuai.xi     MS_U32 delta_b;
1009*53ee8cc1Swenshuai.xi } GFX_GFX_ColorDelta;
1010*53ee8cc1Swenshuai.xi 
1011*53ee8cc1Swenshuai.xi 
1012*53ee8cc1Swenshuai.xi //-------------------------------------------------
1013*53ee8cc1Swenshuai.xi /// Specify the attribute of a bitmap
1014*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1015*53ee8cc1Swenshuai.xi {
1016*53ee8cc1Swenshuai.xi     /// Do scaling operation
1017*53ee8cc1Swenshuai.xi     MS_BOOL bScale;
1018*53ee8cc1Swenshuai.xi     /// X start address
1019*53ee8cc1Swenshuai.xi     MS_U16 x;
1020*53ee8cc1Swenshuai.xi     /// Y start address
1021*53ee8cc1Swenshuai.xi     MS_U16 y;
1022*53ee8cc1Swenshuai.xi     /// width
1023*53ee8cc1Swenshuai.xi     MS_U16 width;
1024*53ee8cc1Swenshuai.xi     /// height
1025*53ee8cc1Swenshuai.xi     MS_U16 height;
1026*53ee8cc1Swenshuai.xi } GFX_DrawBmpInfo;
1027*53ee8cc1Swenshuai.xi 
1028*53ee8cc1Swenshuai.xi 
1029*53ee8cc1Swenshuai.xi //-------------------------------------------------
1030*53ee8cc1Swenshuai.xi /// Define rotation angle
1031*53ee8cc1Swenshuai.xi typedef enum
1032*53ee8cc1Swenshuai.xi {
1033*53ee8cc1Swenshuai.xi     /// Do not rotate
1034*53ee8cc1Swenshuai.xi     GEROTATE_0,
1035*53ee8cc1Swenshuai.xi     /// Rotate 90 degree
1036*53ee8cc1Swenshuai.xi     GEROTATE_90,
1037*53ee8cc1Swenshuai.xi     /// Rotate 180 degree
1038*53ee8cc1Swenshuai.xi     GEROTATE_180,
1039*53ee8cc1Swenshuai.xi     /// Rotate 270 degree
1040*53ee8cc1Swenshuai.xi     GEROTATE_270,
1041*53ee8cc1Swenshuai.xi } GFX_RotateAngle;
1042*53ee8cc1Swenshuai.xi 
1043*53ee8cc1Swenshuai.xi //=============================================================================
1044*53ee8cc1Swenshuai.xi // Font information
1045*53ee8cc1Swenshuai.xi //=============================================================================
1046*53ee8cc1Swenshuai.xi #if 0
1047*53ee8cc1Swenshuai.xi /// Bounding box (BBox) of a glyph
1048*53ee8cc1Swenshuai.xi typedef struct
1049*53ee8cc1Swenshuai.xi {
1050*53ee8cc1Swenshuai.xi     ///Position of the left edge of the bounding box
1051*53ee8cc1Swenshuai.xi     MS_U8  u8X0;
1052*53ee8cc1Swenshuai.xi     ///Width of the bounding box
1053*53ee8cc1Swenshuai.xi     MS_U8  u8Width;
1054*53ee8cc1Swenshuai.xi     ///Position of the top edge of the bounding box
1055*53ee8cc1Swenshuai.xi     MS_U8  u8Y0;
1056*53ee8cc1Swenshuai.xi     ///Height of the bounding box
1057*53ee8cc1Swenshuai.xi     MS_U8  u8Height;
1058*53ee8cc1Swenshuai.xi }GFX_GFX_GLYPH_BBOX;
1059*53ee8cc1Swenshuai.xi #endif
1060*53ee8cc1Swenshuai.xi 
1061*53ee8cc1Swenshuai.xi /// define character information
1062*53ee8cc1Swenshuai.xi typedef struct
1063*53ee8cc1Swenshuai.xi {
1064*53ee8cc1Swenshuai.xi     /// Character start address (128 bits alignment)
1065*53ee8cc1Swenshuai.xi     MS_PHY addr;
1066*53ee8cc1Swenshuai.xi     /// Character width
1067*53ee8cc1Swenshuai.xi     MS_U32 width;
1068*53ee8cc1Swenshuai.xi     /// Character pitch
1069*53ee8cc1Swenshuai.xi     MS_U32 pitch;
1070*53ee8cc1Swenshuai.xi     /// Character height
1071*53ee8cc1Swenshuai.xi     MS_U32 height;
1072*53ee8cc1Swenshuai.xi     /// Character horizontal offset
1073*53ee8cc1Swenshuai.xi     MS_U32 Hoffset;
1074*53ee8cc1Swenshuai.xi     /// Character vertical offset
1075*53ee8cc1Swenshuai.xi     MS_U32 Voffset;
1076*53ee8cc1Swenshuai.xi     /// Character format
1077*53ee8cc1Swenshuai.xi     GFX_Buffer_Format fmt;
1078*53ee8cc1Swenshuai.xi } GFX_CharInfo;
1079*53ee8cc1Swenshuai.xi 
1080*53ee8cc1Swenshuai.xi /// Define font table information
1081*53ee8cc1Swenshuai.xi typedef struct
1082*53ee8cc1Swenshuai.xi {
1083*53ee8cc1Swenshuai.xi     /// font start address
1084*53ee8cc1Swenshuai.xi     MS_PHY addr;
1085*53ee8cc1Swenshuai.xi     /// font length
1086*53ee8cc1Swenshuai.xi     MS_U32 len;
1087*53ee8cc1Swenshuai.xi     /// font structure is used
1088*53ee8cc1Swenshuai.xi     MS_BOOL inUsed;
1089*53ee8cc1Swenshuai.xi     /// character width (pixel unit)
1090*53ee8cc1Swenshuai.xi     MS_U32 width;
1091*53ee8cc1Swenshuai.xi     /// character pitch (byte unit)
1092*53ee8cc1Swenshuai.xi     MS_U32 pitch;
1093*53ee8cc1Swenshuai.xi     /// character height (pixel unit)
1094*53ee8cc1Swenshuai.xi     MS_U32 height;
1095*53ee8cc1Swenshuai.xi     /// one character length (byte unit)
1096*53ee8cc1Swenshuai.xi     MS_U32 offset;
1097*53ee8cc1Swenshuai.xi     /// Bounding Box offset
1098*53ee8cc1Swenshuai.xi     GFX_GlyphBbox* pBBox;
1099*53ee8cc1Swenshuai.xi     /// font format
1100*53ee8cc1Swenshuai.xi     GFX_Buffer_Format fmt;
1101*53ee8cc1Swenshuai.xi } GFX_FontInfo;
1102*53ee8cc1Swenshuai.xi 
1103*53ee8cc1Swenshuai.xi 
1104*53ee8cc1Swenshuai.xi //=============================================================================
1105*53ee8cc1Swenshuai.xi // Bitmap information
1106*53ee8cc1Swenshuai.xi //=============================================================================
1107*53ee8cc1Swenshuai.xi typedef struct
1108*53ee8cc1Swenshuai.xi {
1109*53ee8cc1Swenshuai.xi     MS_PHY addr;       // flat address of whole memory map
1110*53ee8cc1Swenshuai.xi     MS_U32 len;
1111*53ee8cc1Swenshuai.xi     MS_BOOL inUsed;
1112*53ee8cc1Swenshuai.xi     MS_U32 width;
1113*53ee8cc1Swenshuai.xi     MS_U32 pitch;
1114*53ee8cc1Swenshuai.xi     MS_U32 height;
1115*53ee8cc1Swenshuai.xi     GFX_Buffer_Format fmt;
1116*53ee8cc1Swenshuai.xi } GFX_BitmapInfo;
1117*53ee8cc1Swenshuai.xi 
1118*53ee8cc1Swenshuai.xi 
1119*53ee8cc1Swenshuai.xi //=============================================================================
1120*53ee8cc1Swenshuai.xi // Draw Rect info
1121*53ee8cc1Swenshuai.xi //=============================================================================
1122*53ee8cc1Swenshuai.xi /// Define the bitblt source & destination block.
1123*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1124*53ee8cc1Swenshuai.xi {
1125*53ee8cc1Swenshuai.xi     /// Source block
1126*53ee8cc1Swenshuai.xi     GFX_Block srcblk;
1127*53ee8cc1Swenshuai.xi 
1128*53ee8cc1Swenshuai.xi     /// Destination block
1129*53ee8cc1Swenshuai.xi     union
1130*53ee8cc1Swenshuai.xi     {
1131*53ee8cc1Swenshuai.xi         GFX_Trapezoid dsttrapeblk;
1132*53ee8cc1Swenshuai.xi         GFX_Block dstblk;
1133*53ee8cc1Swenshuai.xi     };
1134*53ee8cc1Swenshuai.xi }GFX_DrawRect;
1135*53ee8cc1Swenshuai.xi 
1136*53ee8cc1Swenshuai.xi /// Define the bitblt two source & destination block.
1137*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1138*53ee8cc1Swenshuai.xi {
1139*53ee8cc1Swenshuai.xi     /// Source block
1140*53ee8cc1Swenshuai.xi     GFX_Block srcblk0;
1141*53ee8cc1Swenshuai.xi     // Attendtion, width and height of srcblk1 must be the same as dstblk
1142*53ee8cc1Swenshuai.xi     GFX_Block srcblk1;
1143*53ee8cc1Swenshuai.xi     /// Destination block
1144*53ee8cc1Swenshuai.xi     GFX_Block dstblk;
1145*53ee8cc1Swenshuai.xi }GFX_DrawTwoSourceRect;
1146*53ee8cc1Swenshuai.xi 
1147*53ee8cc1Swenshuai.xi 
1148*53ee8cc1Swenshuai.xi /// Define the scaling factor for X & Y direction.
1149*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1150*53ee8cc1Swenshuai.xi {
1151*53ee8cc1Swenshuai.xi     MS_U32 u32DeltaX;
1152*53ee8cc1Swenshuai.xi     MS_U32 u32DeltaY;
1153*53ee8cc1Swenshuai.xi     MS_U32 u32InitDelatX;
1154*53ee8cc1Swenshuai.xi     MS_U32 u32InitDelatY;
1155*53ee8cc1Swenshuai.xi }GFX_ScaleInfo;
1156*53ee8cc1Swenshuai.xi 
1157*53ee8cc1Swenshuai.xi //=============================================================================
1158*53ee8cc1Swenshuai.xi // Data Buffer info
1159*53ee8cc1Swenshuai.xi //=============================================================================
1160*53ee8cc1Swenshuai.xi /// Data buffer info.
1161*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1162*53ee8cc1Swenshuai.xi {
1163*53ee8cc1Swenshuai.xi     /// start memory address
1164*53ee8cc1Swenshuai.xi     MS_PHY u32Addr;       // flat address of whole memory map
1165*53ee8cc1Swenshuai.xi     /// width
1166*53ee8cc1Swenshuai.xi     MS_U32 u32Width;
1167*53ee8cc1Swenshuai.xi     /// height
1168*53ee8cc1Swenshuai.xi     MS_U32 u32Height;
1169*53ee8cc1Swenshuai.xi     /// pitch
1170*53ee8cc1Swenshuai.xi     MS_U32 u32Pitch;
1171*53ee8cc1Swenshuai.xi     /// Color format\n
1172*53ee8cc1Swenshuai.xi     /// - GFX_FMT_I1\n
1173*53ee8cc1Swenshuai.xi     /// - GFX_FMT_I2\n
1174*53ee8cc1Swenshuai.xi     /// - GFX_FMT_I4\n
1175*53ee8cc1Swenshuai.xi     /// - GFX_FMT_I8\n
1176*53ee8cc1Swenshuai.xi     /// - GFX_FMT_RGB565\n
1177*53ee8cc1Swenshuai.xi     /// - GFX_FMT_ARGB1555\n
1178*53ee8cc1Swenshuai.xi     /// - GFX_FMT_ARGB4444\n
1179*53ee8cc1Swenshuai.xi     /// - GFX_FMT_1BAAFGBG123433\n
1180*53ee8cc1Swenshuai.xi     /// - GFX_FMT_ARGB8888\n
1181*53ee8cc1Swenshuai.xi     GFX_Buffer_Format u32ColorFmt;
1182*53ee8cc1Swenshuai.xi } GFX_BufferInfo;
1183*53ee8cc1Swenshuai.xi 
1184*53ee8cc1Swenshuai.xi /// Define the GFX init parameter.
1185*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1186*53ee8cc1Swenshuai.xi {
1187*53ee8cc1Swenshuai.xi     MS_U8                           u8Miu;
1188*53ee8cc1Swenshuai.xi     MS_U8                           u8Dither;
1189*53ee8cc1Swenshuai.xi     MS_U32                          u32VCmdQSize;                       /// MIN:4K, MAX:512K, <MIN:Disable
1190*53ee8cc1Swenshuai.xi     MS_PHY                          u32VCmdQAddr;                       //  8-byte aligned
1191*53ee8cc1Swenshuai.xi     MS_BOOL                         bIsHK;                              /// Running as HK or Co-processor
1192*53ee8cc1Swenshuai.xi     MS_BOOL                         bIsCompt;                           /// Running as compatible mode. In compatible mode, the parameter checking loose for NOS APP compatibility.  TRUE=>compatible with 51/Chakra , FALSE=>linux OS style
1193*53ee8cc1Swenshuai.xi }GFX_Config;
1194*53ee8cc1Swenshuai.xi 
1195*53ee8cc1Swenshuai.xi /// GE dbg info
1196*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1197*53ee8cc1Swenshuai.xi {
1198*53ee8cc1Swenshuai.xi     /// Specified format
1199*53ee8cc1Swenshuai.xi     MS_U8                       verctrl[32];
1200*53ee8cc1Swenshuai.xi     /// Specified format
1201*53ee8cc1Swenshuai.xi     MS_U8                       gedump[256];
1202*53ee8cc1Swenshuai.xi     /// Base alignment in byte unit
1203*53ee8cc1Swenshuai.xi     MS_U32                      semstaus;
1204*53ee8cc1Swenshuai.xi } GFX_DbgInfo;
1205*53ee8cc1Swenshuai.xi 
1206*53ee8cc1Swenshuai.xi 
1207*53ee8cc1Swenshuai.xi typedef GFX_BufferInfo* PGFX_BufferInfo;
1208*53ee8cc1Swenshuai.xi 
1209*53ee8cc1Swenshuai.xi 
1210*53ee8cc1Swenshuai.xi 
1211*53ee8cc1Swenshuai.xi //=============================================================================
1212*53ee8cc1Swenshuai.xi // GE palette information
1213*53ee8cc1Swenshuai.xi //=============================================================================
1214*53ee8cc1Swenshuai.xi 
1215*53ee8cc1Swenshuai.xi typedef union
1216*53ee8cc1Swenshuai.xi {
1217*53ee8cc1Swenshuai.xi     /// ARGB8888
1218*53ee8cc1Swenshuai.xi     struct
1219*53ee8cc1Swenshuai.xi     {
1220*53ee8cc1Swenshuai.xi         MS_U8 u8A;
1221*53ee8cc1Swenshuai.xi         MS_U8 u8R;
1222*53ee8cc1Swenshuai.xi         MS_U8 u8G;
1223*53ee8cc1Swenshuai.xi         MS_U8 u8B;
1224*53ee8cc1Swenshuai.xi     } RGB;
1225*53ee8cc1Swenshuai.xi     // 32-bit direct access.
1226*53ee8cc1Swenshuai.xi     MS_U8 u8Data[4];
1227*53ee8cc1Swenshuai.xi } GFX_PaletteEntry;
1228*53ee8cc1Swenshuai.xi 
1229*53ee8cc1Swenshuai.xi 
1230*53ee8cc1Swenshuai.xi 
1231*53ee8cc1Swenshuai.xi #define GFXDRAW_FLAG_DEFAULT            0x0UL
1232*53ee8cc1Swenshuai.xi #define GFXDRAW_FLAG_SCALE              0x1UL
1233*53ee8cc1Swenshuai.xi #define GFXDRAW_FLAG_DUPLICAPE          0x2UL
1234*53ee8cc1Swenshuai.xi #define GFXDRAW_FLAG_TRAPEZOID_X        0x4UL // excluded with GFXDRAW_FLAG_TRAPEZOID_Y
1235*53ee8cc1Swenshuai.xi #define GFXDRAW_FLAG_TRAPEZOID_Y        0x8UL // excluded with GFXDRAW_FLAG_TRAPEZOID_X
1236*53ee8cc1Swenshuai.xi 
1237*53ee8cc1Swenshuai.xi //#define FB_FMT_AS_DEFAULT               0xFFFF
1238*53ee8cc1Swenshuai.xi 
1239*53ee8cc1Swenshuai.xi //=============================================================================
1240*53ee8cc1Swenshuai.xi // YUV color setting
1241*53ee8cc1Swenshuai.xi //=============================================================================
1242*53ee8cc1Swenshuai.xi typedef MS_U8                           GFX_Rgb2yuvMode;
1243*53ee8cc1Swenshuai.xi #define GFX_RGB2YUV_PC_MODE             ((GFX_Rgb2yuvMode)0x0UL)          // computer mode Y: 16~ 235, UV: 0~ 240
1244*53ee8cc1Swenshuai.xi #define GFX_RGB2YUV_255_MODE            ((GFX_Rgb2yuvMode)0x1UL)          // To 0~ 255
1245*53ee8cc1Swenshuai.xi 
1246*53ee8cc1Swenshuai.xi typedef MS_U8                           GFX_YuvRangeOut;
1247*53ee8cc1Swenshuai.xi #define GFX_YUV_RANGE_OUT_255           ((GFX_YuvRangeOut)0x0UL)         // To 0~ 255
1248*53ee8cc1Swenshuai.xi #define GFX_YUV_RANGE_OUT_PC            ((GFX_YuvRangeOut)0x1UL)         // To Y: 16~ 235
1249*53ee8cc1Swenshuai.xi 
1250*53ee8cc1Swenshuai.xi typedef MS_U8                           GFX_YuvRangeIn;
1251*53ee8cc1Swenshuai.xi #define GFX_YUV_RANGE_IN_255            ((GFX_YuvRangeIn)0x0UL)          // UV input range, 0~ 255
1252*53ee8cc1Swenshuai.xi #define GFX_YUV_RANGE_IN_127            ((GFX_YuvRangeIn)0x1UL)          // UV input range, -128~ 127
1253*53ee8cc1Swenshuai.xi 
1254*53ee8cc1Swenshuai.xi typedef MS_U8                           GFX_Yuv422Fmt;
1255*53ee8cc1Swenshuai.xi #define GFX_YUV_422_FMT_UY1VY0          ((GFX_Yuv422Fmt)0x00UL)          // CbY1CrY0
1256*53ee8cc1Swenshuai.xi #define GFX_YUV_422_FMT_VY1UY0          ((GFX_Yuv422Fmt)0x01UL)          // CrY1CbY0
1257*53ee8cc1Swenshuai.xi #define GFX_YUV_422_FMT_Y1UY0V          ((GFX_Yuv422Fmt)0x02UL)          // Y1CbY0Cr
1258*53ee8cc1Swenshuai.xi #define GFX_YUV_422_FMT_Y1VY0U          ((GFX_Yuv422Fmt)0x03UL)          // Y1CrY0Cb
1259*53ee8cc1Swenshuai.xi 
1260*53ee8cc1Swenshuai.xi /// Pack of YUV CSC info
1261*53ee8cc1Swenshuai.xi typedef struct
1262*53ee8cc1Swenshuai.xi {
1263*53ee8cc1Swenshuai.xi     GFX_Rgb2yuvMode                     rgb2yuv_mode;
1264*53ee8cc1Swenshuai.xi     GFX_YuvRangeOut                    yuv_range_out;
1265*53ee8cc1Swenshuai.xi     GFX_YuvRangeIn                     yuv_range_in;
1266*53ee8cc1Swenshuai.xi     GFX_Yuv422Fmt                      yuv_mem_fmt_src;
1267*53ee8cc1Swenshuai.xi     GFX_Yuv422Fmt                      yuv_mem_fmt_dst;
1268*53ee8cc1Swenshuai.xi } GFX_YuvInfo;
1269*53ee8cc1Swenshuai.xi 
1270*53ee8cc1Swenshuai.xi //-------------------------------------------------
1271*53ee8cc1Swenshuai.xi /// Define Stretch Bitblt with Color Key Type
1272*53ee8cc1Swenshuai.xi typedef enum
1273*53ee8cc1Swenshuai.xi {
1274*53ee8cc1Swenshuai.xi     /// Do nothing
1275*53ee8cc1Swenshuai.xi     GFX_DONOTHING = 0,
1276*53ee8cc1Swenshuai.xi     /// Nearest When the Color Key happened
1277*53ee8cc1Swenshuai.xi     GFX_NEAREST = 1,
1278*53ee8cc1Swenshuai.xi     /// Replace the Key to Custom Color
1279*53ee8cc1Swenshuai.xi     GFX_REPLACE_KEY_2_CUS = 2,
1280*53ee8cc1Swenshuai.xi } GFX_StretchCKType;
1281*53ee8cc1Swenshuai.xi 
1282*53ee8cc1Swenshuai.xi //-------------------------------------------------
1283*53ee8cc1Swenshuai.xi /// Define DFB Blending Related:
1284*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_COLORALPHA             0x0001UL
1285*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_ALPHACHANNEL           0x0002UL
1286*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_COLORIZE               0x0004UL
1287*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_SRCPREMUL              0x0008UL
1288*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_SRCPREMULCOL           0x0010UL
1289*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_DSTPREMUL              0x0020UL
1290*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_XOR                    0x0040UL
1291*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_DEMULTIPLY             0x0080UL
1292*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_SRCALPHAMASK           0x0100UL
1293*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_SRCCOLORMASK           0x0200UL
1294*53ee8cc1Swenshuai.xi #define GFX_DFB_BLD_FLAG_ALL                    0x03FFUL
1295*53ee8cc1Swenshuai.xi 
1296*53ee8cc1Swenshuai.xi typedef enum
1297*53ee8cc1Swenshuai.xi {
1298*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_ZERO                 = 0,
1299*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_ONE                  = 1,
1300*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_SRCCOLOR             = 2,
1301*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_INVSRCCOLOR          = 3,
1302*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_SRCALPHA             = 4,
1303*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_INVSRCALPHA          = 5,
1304*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_DESTALPHA            = 6,
1305*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_INVDESTALPHA         = 7,
1306*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_DESTCOLOR            = 8,
1307*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_INVDESTCOLOR         = 9,
1308*53ee8cc1Swenshuai.xi     GFX_DFB_BLD_OP_SRCALPHASAT          = 10,
1309*53ee8cc1Swenshuai.xi }GFX_DFBBldOP;
1310*53ee8cc1Swenshuai.xi 
1311*53ee8cc1Swenshuai.xi //=============================================================================
1312*53ee8cc1Swenshuai.xi // GFX format capability setting
1313*53ee8cc1Swenshuai.xi //=============================================================================
1314*53ee8cc1Swenshuai.xi ///Define Buffer Usage Type
1315*53ee8cc1Swenshuai.xi typedef enum
1316*53ee8cc1Swenshuai.xi {
1317*53ee8cc1Swenshuai.xi     /// Desitination buffer for LINE, RECT, BLT
1318*53ee8cc1Swenshuai.xi     E_GFX_BUF_DST                    = 0,
1319*53ee8cc1Swenshuai.xi     /// Source buffer for BLT
1320*53ee8cc1Swenshuai.xi     E_GFX_BUF_SRC                    = 1,
1321*53ee8cc1Swenshuai.xi } EN_GFX_BUF_TYPE;
1322*53ee8cc1Swenshuai.xi 
1323*53ee8cc1Swenshuai.xi /// Define gfx format capability type
1324*53ee8cc1Swenshuai.xi typedef enum
1325*53ee8cc1Swenshuai.xi {
1326*53ee8cc1Swenshuai.xi     E_GFX_FMT_CAP_NONE = 0x0,
1327*53ee8cc1Swenshuai.xi     E_GFX_FMT_CAP_MULTI_PIXEL,
1328*53ee8cc1Swenshuai.xi } EN_GFX_FMT_CAPS_TYPE;
1329*53ee8cc1Swenshuai.xi 
1330*53ee8cc1Swenshuai.xi typedef enum
1331*53ee8cc1Swenshuai.xi {
1332*53ee8cc1Swenshuai.xi     E_GFX_CONFIG_BURST_MIU_LENGTH,
1333*53ee8cc1Swenshuai.xi } EN_GFX_CONFIG_TYPE;
1334*53ee8cc1Swenshuai.xi 
1335*53ee8cc1Swenshuai.xi typedef enum
1336*53ee8cc1Swenshuai.xi {
1337*53ee8cc1Swenshuai.xi     E_GFX_CONFIG_INIT,
1338*53ee8cc1Swenshuai.xi } EN_GFX_CONFIG_INIT;
1339*53ee8cc1Swenshuai.xi 
1340*53ee8cc1Swenshuai.xi 
1341*53ee8cc1Swenshuai.xi typedef struct
1342*53ee8cc1Swenshuai.xi {
1343*53ee8cc1Swenshuai.xi     MS_BOOL                     bEnable;
1344*53ee8cc1Swenshuai.xi     MS_U32                      u32BurstLen;
1345*53ee8cc1Swenshuai.xi }GFX_Set_BurstMiuLen;
1346*53ee8cc1Swenshuai.xi 
1347*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1348*53ee8cc1Swenshuai.xi {
1349*53ee8cc1Swenshuai.xi     /// Color format\n
1350*53ee8cc1Swenshuai.xi     /// - GFX_FMT_I1\n
1351*53ee8cc1Swenshuai.xi     /// - GFX_FMT_I2\n
1352*53ee8cc1Swenshuai.xi     /// - GFX_FMT_I4\n
1353*53ee8cc1Swenshuai.xi     /// - GFX_FMT_I8\n
1354*53ee8cc1Swenshuai.xi     /// - GFX_FMT_RGB565\n
1355*53ee8cc1Swenshuai.xi     /// - GFX_FMT_ARGB1555\n
1356*53ee8cc1Swenshuai.xi     /// - GFX_FMT_ARGB4444\n
1357*53ee8cc1Swenshuai.xi     /// - GFX_FMT_1BAAFGBG123433\n
1358*53ee8cc1Swenshuai.xi     /// - GFX_FMT_ARGB8888\n
1359*53ee8cc1Swenshuai.xi     GFX_Buffer_Format    u32ColorFmt;
1360*53ee8cc1Swenshuai.xi     EN_GFX_BUF_TYPE      eBufferType;
1361*53ee8cc1Swenshuai.xi     EN_GFX_FMT_CAPS_TYPE eFmtCapsType;
1362*53ee8cc1Swenshuai.xi     MS_U8                u8BaseAlign;
1363*53ee8cc1Swenshuai.xi     MS_U8                u8PitchAlign;
1364*53ee8cc1Swenshuai.xi }GFX_FmtAlignCapsInfo;
1365*53ee8cc1Swenshuai.xi 
1366*53ee8cc1Swenshuai.xi //=============================================================================
1367*53ee8cc1Swenshuai.xi // GFX capability setting
1368*53ee8cc1Swenshuai.xi //=============================================================================
1369*53ee8cc1Swenshuai.xi 
1370*53ee8cc1Swenshuai.xi //GFX Capability
1371*53ee8cc1Swenshuai.xi typedef enum
1372*53ee8cc1Swenshuai.xi {
1373*53ee8cc1Swenshuai.xi     E_GFX_CAP_MULTI_PIXEL,
1374*53ee8cc1Swenshuai.xi     E_GFX_CAP_BLT_DOWN_SCALE,
1375*53ee8cc1Swenshuai.xi     E_GFX_CAP_DFB_BLENDING,
1376*53ee8cc1Swenshuai.xi     E_GFX_CAP_ALIGN,
1377*53ee8cc1Swenshuai.xi     E_GFX_CAP_TLB,
1378*53ee8cc1Swenshuai.xi }EN_GFX_CAPS;
1379*53ee8cc1Swenshuai.xi 
1380*53ee8cc1Swenshuai.xi ///GFX Capability MultiPixel Info
1381*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1382*53ee8cc1Swenshuai.xi {
1383*53ee8cc1Swenshuai.xi     MS_U16  WordUnit;
1384*53ee8cc1Swenshuai.xi     MS_BOOL bSupportMultiPixel;
1385*53ee8cc1Swenshuai.xi }GFX_CapMultiPixelInfo;
1386*53ee8cc1Swenshuai.xi 
1387*53ee8cc1Swenshuai.xi ///GFX Capability Bitblt down scale Info
1388*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
1389*53ee8cc1Swenshuai.xi {
1390*53ee8cc1Swenshuai.xi     /// Bitblt down scale range start
1391*53ee8cc1Swenshuai.xi     MS_U8 u8RangeMax;
1392*53ee8cc1Swenshuai.xi     /// Bitblt down scale range end
1393*53ee8cc1Swenshuai.xi     MS_U8 u8RangeMin;
1394*53ee8cc1Swenshuai.xi     /// Bitblt down scale continuous range end
1395*53ee8cc1Swenshuai.xi     MS_U8 u8ContinuousRangeMin;
1396*53ee8cc1Swenshuai.xi     /// Is full range support down scaling.
1397*53ee8cc1Swenshuai.xi     /// - TRUE: The down scale value between u8RangeMax to u8RangeMin is fully supported.
1398*53ee8cc1Swenshuai.xi     /// - FALSE: The down scale value between u8RangeMax to u8ContinuousRangeMin is fully supported.
1399*53ee8cc1Swenshuai.xi     ///          The down scale value between u8ContinuousRangeMin to u8RangeMin is supported
1400*53ee8cc1Swenshuai.xi     ///          if the value is power of two (e.g., 4, 8, 16, and 32).
1401*53ee8cc1Swenshuai.xi     MS_BOOL bFullRangeSupport;
1402*53ee8cc1Swenshuai.xi }GFX_BLT_DownScaleInfo;
1403*53ee8cc1Swenshuai.xi 
1404*53ee8cc1Swenshuai.xi //GFX TLB Mode
1405*53ee8cc1Swenshuai.xi typedef enum
1406*53ee8cc1Swenshuai.xi {
1407*53ee8cc1Swenshuai.xi     /// TLB for None
1408*53ee8cc1Swenshuai.xi     E_GFX_TLB_NONE = 0x0000,
1409*53ee8cc1Swenshuai.xi     /// TLB for Source
1410*53ee8cc1Swenshuai.xi     E_GFX_TLB_SRC = 0x0001,
1411*53ee8cc1Swenshuai.xi     /// TLB for Destination
1412*53ee8cc1Swenshuai.xi     E_GFX_TLB_DST = 0x0002,
1413*53ee8cc1Swenshuai.xi     /// TLB for Source and Destination
1414*53ee8cc1Swenshuai.xi     E_GFX_TLB_SRC_DST = 0x0003,
1415*53ee8cc1Swenshuai.xi }EN_GFX_TLB_Mode;
1416*53ee8cc1Swenshuai.xi 
1417*53ee8cc1Swenshuai.xi //-----------------------------------------------------------------------------
1418*53ee8cc1Swenshuai.xi //  Functions
1419*53ee8cc1Swenshuai.xi //-----------------------------------------------------------------------------
1420*53ee8cc1Swenshuai.xi //-----------------
1421*53ee8cc1Swenshuai.xi // GFX_INIT
1422*53ee8cc1Swenshuai.xi //-----------------
1423*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1424*53ee8cc1Swenshuai.xi /// Initialize GFX module.
1425*53ee8cc1Swenshuai.xi /// @ingroup GFX_INIT
1426*53ee8cc1Swenshuai.xi /// @param  geConfig             \b IN: init config
1427*53ee8cc1Swenshuai.xi /// @return void
1428*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1429*53ee8cc1Swenshuai.xi DLL_PUBLIC extern void MApi_GFX_Init(GFX_Config *geConfig);
1430*53ee8cc1Swenshuai.xi 
1431*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1432*53ee8cc1Swenshuai.xi /// Initialize GFX module.
1433*53ee8cc1Swenshuai.xi /// @ingroup GFX_INIT
1434*53ee8cc1Swenshuai.xi /// @param  geConfig             \b IN: init config
1435*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1436*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1437*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1438*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetConfig(EN_GFX_CONFIG_INIT enType,void *plist,MS_U32 u32Len);
1439*53ee8cc1Swenshuai.xi 
1440*53ee8cc1Swenshuai.xi //-----------------
1441*53ee8cc1Swenshuai.xi // GFX_ToBeRemove
1442*53ee8cc1Swenshuai.xi //-----------------
1443*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1444*53ee8cc1Swenshuai.xi /// MApi_GFX_GetFontInfo
1445*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
1446*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1447*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1448*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1449*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetFontInfo(MS_S32 handle, GFX_FontInfo* pinfo);
1450*53ee8cc1Swenshuai.xi 
1451*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1452*53ee8cc1Swenshuai.xi /// Get clip window
1453*53ee8cc1Swenshuai.xi /// @ingroup GFX_CLIP
1454*53ee8cc1Swenshuai.xi /// @param  v0                  \b IN: left-top point
1455*53ee8cc1Swenshuai.xi /// @param  v1                  \b IN: right-down point
1456*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1457*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1458*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1459*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetClip(GFX_Point* v0, GFX_Point* v1);
1460*53ee8cc1Swenshuai.xi 
1461*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1462*53ee8cc1Swenshuai.xi /// Get I2 I4 palette
1463*53ee8cc1Swenshuai.xi /// @ingroup GFX_PALETTE
1464*53ee8cc1Swenshuai.xi /// @param  id                  \b IN: index
1465*53ee8cc1Swenshuai.xi /// @param  pColor              \b IN: color
1466*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1467*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1468*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1469*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetIntensity(MS_U32 idx, MS_U32 *color);
1470*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1471*53ee8cc1Swenshuai.xi /// Get tag
1472*53ee8cc1Swenshuai.xi /// @ingroup GFX_WAIT_DONE
1473*53ee8cc1Swenshuai.xi /// @param  tagID                  \b IN: tag
1474*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1475*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1476*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1477*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetTAGID(MS_U16 *tagID);
1478*53ee8cc1Swenshuai.xi 
1479*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1480*53ee8cc1Swenshuai.xi /// Get next tag
1481*53ee8cc1Swenshuai.xi /// @ingroup GFX_WAIT_DONE
1482*53ee8cc1Swenshuai.xi /// @param  bStepTagBefore      \b IN: next tag
1483*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1484*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1485*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1486*53ee8cc1Swenshuai.xi DLL_PUBLIC extern MS_U16     MApi_GFX_GetNextTAGID(MS_BOOL bStepTagBefore);
1487*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1488*53ee8cc1Swenshuai.xi /// MApi_GFX_GetInfo
1489*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
1490*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1491*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1492*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1493*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetInfo( GFX_DbgInfo *dbg );
1494*53ee8cc1Swenshuai.xi //-----------------
1495*53ee8cc1Swenshuai.xi // GFX_CAPS
1496*53ee8cc1Swenshuai.xi //-----------------
1497*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1498*53ee8cc1Swenshuai.xi /// Get GE capability
1499*53ee8cc1Swenshuai.xi /// @ingroup GFX_CAPS
1500*53ee8cc1Swenshuai.xi /// @param  eCapType            \b IN: cap type
1501*53ee8cc1Swenshuai.xi /// @param  pRet                \b IN: cap struct pointer
1502*53ee8cc1Swenshuai.xi /// @param  ret_size            \b IN: cap struct size
1503*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1504*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1505*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1506*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetGECaps(EN_GFX_CAPS eCapType, MS_U32* pRet, MS_U32 ret_size);
1507*53ee8cc1Swenshuai.xi 
1508*53ee8cc1Swenshuai.xi 
1509*53ee8cc1Swenshuai.xi 
1510*53ee8cc1Swenshuai.xi //-----------------
1511*53ee8cc1Swenshuai.xi // GFX_DRAW
1512*53ee8cc1Swenshuai.xi //-----------------
1513*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1514*53ee8cc1Swenshuai.xi /// Draw line
1515*53ee8cc1Swenshuai.xi /// @ingroup GFX_DRAW
1516*53ee8cc1Swenshuai.xi /// @param  pline               \b IN: line info
1517*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1518*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1519*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1520*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_DrawLine(GFX_DrawLineInfo *pline);
1521*53ee8cc1Swenshuai.xi 
1522*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1523*53ee8cc1Swenshuai.xi /// Fill Rect
1524*53ee8cc1Swenshuai.xi /// @ingroup GFX_DRAW
1525*53ee8cc1Swenshuai.xi /// @param  pfillblock          \b IN: Rect info
1526*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1527*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1528*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1529*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_RectFill(GFX_RectFillInfo *pfillblock);
1530*53ee8cc1Swenshuai.xi 
1531*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1532*53ee8cc1Swenshuai.xi /// Fill Triangle
1533*53ee8cc1Swenshuai.xi /// @ingroup GFX_DRAW
1534*53ee8cc1Swenshuai.xi /// @param  ptriblock          \b IN: Triangle info
1535*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1536*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1537*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1538*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_TriFill(GFX_TriFillInfo *ptriblock);
1539*53ee8cc1Swenshuai.xi 
1540*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1541*53ee8cc1Swenshuai.xi /// Fill Span
1542*53ee8cc1Swenshuai.xi /// @ingroup GFX_DRAW
1543*53ee8cc1Swenshuai.xi /// @param  pspanblock          \b IN: Span info
1544*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1545*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1546*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1547*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SpanFill(GFX_SpanFillInfo *pspanblock);
1548*53ee8cc1Swenshuai.xi 
1549*53ee8cc1Swenshuai.xi //-----------------
1550*53ee8cc1Swenshuai.xi // GFX_BUFFER_INFO
1551*53ee8cc1Swenshuai.xi //-----------------
1552*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1553*53ee8cc1Swenshuai.xi /// Set Src buffer info
1554*53ee8cc1Swenshuai.xi /// @ingroup GFX_BUFFER_INFO
1555*53ee8cc1Swenshuai.xi /// @param  bufInfo              \b IN: Src buffer info
1556*53ee8cc1Swenshuai.xi /// @param  offsetofByte         \b IN: offset
1557*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1558*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1559*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1560*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetSrcBufferInfo(GFX_BufferInfo *bufInfo, MS_U32 offsetofByte);
1561*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1562*53ee8cc1Swenshuai.xi /// Set Dst buffer info
1563*53ee8cc1Swenshuai.xi /// @ingroup GFX_BUFFER_INFO
1564*53ee8cc1Swenshuai.xi /// @param  bufInfo              \b IN: Dst buffer info
1565*53ee8cc1Swenshuai.xi /// @param  offsetofByte         \b IN: offset
1566*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1567*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1568*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1569*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetDstBufferInfo(GFX_BufferInfo *bufInfo, MS_U32 offsetofByte);
1570*53ee8cc1Swenshuai.xi 
1571*53ee8cc1Swenshuai.xi 
1572*53ee8cc1Swenshuai.xi 
1573*53ee8cc1Swenshuai.xi //-----------------
1574*53ee8cc1Swenshuai.xi // GFX_ROP
1575*53ee8cc1Swenshuai.xi //-----------------
1576*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1577*53ee8cc1Swenshuai.xi /// Set ROP
1578*53ee8cc1Swenshuai.xi /// @ingroup GFX_ROP
1579*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1580*53ee8cc1Swenshuai.xi /// @param  eRopMode              \b IN: ROP operation
1581*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1582*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1583*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1584*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetROP2(MS_BOOL enable, GFX_ROP2_Op eRopMode);
1585*53ee8cc1Swenshuai.xi //-----------------
1586*53ee8cc1Swenshuai.xi // GFX_COLOR_KEY
1587*53ee8cc1Swenshuai.xi //-----------------
1588*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1589*53ee8cc1Swenshuai.xi /// Set Src color-key info
1590*53ee8cc1Swenshuai.xi /// @ingroup GFX_COLOR_KEY
1591*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1592*53ee8cc1Swenshuai.xi /// @param  opMode              \b IN: color key operation
1593*53ee8cc1Swenshuai.xi /// @param  fmt                 \b IN: color format
1594*53ee8cc1Swenshuai.xi /// @param  ps_color            \b IN: color key range start
1595*53ee8cc1Swenshuai.xi /// @param  pe_color            \b IN: color key range end
1596*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1597*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1598*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1599*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetSrcColorKey(MS_BOOL enable, GFX_ColorKeyMode opMode,
1600*53ee8cc1Swenshuai.xi                                       GFX_Buffer_Format fmt, void *ps_color,
1601*53ee8cc1Swenshuai.xi                                       void *pe_color);
1602*53ee8cc1Swenshuai.xi 
1603*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1604*53ee8cc1Swenshuai.xi /// Set Dst color-key info
1605*53ee8cc1Swenshuai.xi /// @ingroup GFX_COLOR_KEY
1606*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1607*53ee8cc1Swenshuai.xi /// @param  opMode              \b IN: color key operation
1608*53ee8cc1Swenshuai.xi /// @param  fmt                 \b IN: color format
1609*53ee8cc1Swenshuai.xi /// @param  ps_color            \b IN: color key range start
1610*53ee8cc1Swenshuai.xi /// @param  pe_color            \b IN: color key range end
1611*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1612*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1613*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1614*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetDstColorKey(MS_BOOL enable, GFX_ColorKeyMode opMode,
1615*53ee8cc1Swenshuai.xi                                       GFX_Buffer_Format fmt, void *ps_color,
1616*53ee8cc1Swenshuai.xi                                       void *pe_color);
1617*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1618*53ee8cc1Swenshuai.xi /// Set alpha blending info
1619*53ee8cc1Swenshuai.xi /// @ingroup GFX_ALPHA_BLENDING
1620*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1621*53ee8cc1Swenshuai.xi /// @param  coef                \b IN: color blending formular
1622*53ee8cc1Swenshuai.xi /// @param  db_abl              \b IN: alpha blending formular
1623*53ee8cc1Swenshuai.xi /// @param  abl_const           \b IN: constant alpha
1624*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1625*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1626*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1627*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetAlpha(MS_BOOL enable, GFX_BlendCoef coef, GFX_AlphaSrcFrom db_abl, MS_U8 abl_const);
1628*53ee8cc1Swenshuai.xi //-----------------
1629*53ee8cc1Swenshuai.xi // GFX_ALPHA_BLENDING
1630*53ee8cc1Swenshuai.xi //-----------------
1631*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1632*53ee8cc1Swenshuai.xi /// Enable alpha blending
1633*53ee8cc1Swenshuai.xi /// @ingroup GFX_ALPHA_BLENDING
1634*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1635*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1636*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1637*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1638*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_EnableAlphaBlending(MS_BOOL enable);
1639*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1640*53ee8cc1Swenshuai.xi /// Enable DFB
1641*53ee8cc1Swenshuai.xi /// @ingroup GFX_DFB
1642*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1643*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1644*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1645*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1646*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_EnableDFBBlending(MS_BOOL enable);
1647*53ee8cc1Swenshuai.xi 
1648*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1649*53ee8cc1Swenshuai.xi /// Set DFB extra flag
1650*53ee8cc1Swenshuai.xi /// @ingroup GFX_DFB
1651*53ee8cc1Swenshuai.xi /// @param  u16DFBBldFlags      \b IN: extra blending flag
1652*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1653*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1654*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1655*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetDFBBldFlags(MS_U16 u16DFBBldFlags);
1656*53ee8cc1Swenshuai.xi 
1657*53ee8cc1Swenshuai.xi 
1658*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1659*53ee8cc1Swenshuai.xi /// Set DFB fomular
1660*53ee8cc1Swenshuai.xi /// @ingroup GFX_DFB
1661*53ee8cc1Swenshuai.xi /// @param  gfxSrcBldOP         \b IN: src blending operation
1662*53ee8cc1Swenshuai.xi /// @param  gfxDstBldOP         \b IN: dst blending operation
1663*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1664*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1665*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1666*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetDFBBldOP(GFX_DFBBldOP gfxSrcBldOP, GFX_DFBBldOP gfxDstBldOP);
1667*53ee8cc1Swenshuai.xi 
1668*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1669*53ee8cc1Swenshuai.xi /// Set DFB constant color
1670*53ee8cc1Swenshuai.xi /// @ingroup GFX_DFB
1671*53ee8cc1Swenshuai.xi /// @param  gfxRgbColor         \b IN: constant color
1672*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1673*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1674*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1675*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetDFBBldConstColor(GFX_RgbColor gfxRgbColor);
1676*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1677*53ee8cc1Swenshuai.xi /// BitBlit
1678*53ee8cc1Swenshuai.xi /// @ingroup GFX_DRAW
1679*53ee8cc1Swenshuai.xi /// @param  pfillblock          \b IN: BitBlit info
1680*53ee8cc1Swenshuai.xi /// @param  drawflag            \b IN: BitBlit flag
1681*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1682*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1683*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1684*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_BitBlt(GFX_DrawRect *drawbuf,MS_U32 drawflag);
1685*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1686*53ee8cc1Swenshuai.xi /// BitBlit with scaling info
1687*53ee8cc1Swenshuai.xi /// @ingroup GFX_DRAW
1688*53ee8cc1Swenshuai.xi /// @param  pfillblock          \b IN: BitBlit info
1689*53ee8cc1Swenshuai.xi /// @param  drawflag            \b IN: BitBlit flag
1690*53ee8cc1Swenshuai.xi /// @param  ScaleInfo           \b IN: Scaling info
1691*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1692*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1693*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1694*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_BitBltEx(GFX_DrawRect * drawbuf, MS_U32 drawflag, GFX_ScaleInfo * ScaleInfo);
1695*53ee8cc1Swenshuai.xi 
1696*53ee8cc1Swenshuai.xi //-----------------
1697*53ee8cc1Swenshuai.xi // GFX_PALETTE
1698*53ee8cc1Swenshuai.xi //-----------------
1699*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1700*53ee8cc1Swenshuai.xi /// Set I2 I4 palette
1701*53ee8cc1Swenshuai.xi /// @ingroup GFX_PALETTE
1702*53ee8cc1Swenshuai.xi /// @param  id                  \b IN: index
1703*53ee8cc1Swenshuai.xi /// @param  fmt                 \b IN: color format
1704*53ee8cc1Swenshuai.xi /// @param  pColor              \b IN: color
1705*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1706*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1707*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1708*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetIntensity(MS_U32 id, GFX_Buffer_Format fmt, MS_U32 *pColor);
1709*53ee8cc1Swenshuai.xi 
1710*53ee8cc1Swenshuai.xi 
1711*53ee8cc1Swenshuai.xi //-----------------
1712*53ee8cc1Swenshuai.xi // GFX_CLIP
1713*53ee8cc1Swenshuai.xi //-----------------
1714*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1715*53ee8cc1Swenshuai.xi /// Set clip window
1716*53ee8cc1Swenshuai.xi /// @ingroup GFX_CLIP
1717*53ee8cc1Swenshuai.xi /// @param  v0                  \b IN: left-top point
1718*53ee8cc1Swenshuai.xi /// @param  v1                  \b IN: right-down point
1719*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1720*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1721*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1722*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetClip(GFX_Point* v0, GFX_Point* v1);
1723*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1724*53ee8cc1Swenshuai.xi /// MApi_GFX_SetItalic
1725*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
1726*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1727*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1728*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1729*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetItalic(MS_BOOL enable,MS_U8 ini_line, MS_U8 ini_dis, MS_U8 delta);
1730*53ee8cc1Swenshuai.xi 
1731*53ee8cc1Swenshuai.xi //-----------------
1732*53ee8cc1Swenshuai.xi // GFX_DITHER
1733*53ee8cc1Swenshuai.xi //-----------------
1734*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1735*53ee8cc1Swenshuai.xi /// Set Dither
1736*53ee8cc1Swenshuai.xi /// @ingroup GFX_DITHER
1737*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1738*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1739*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1740*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1741*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetDither(MS_BOOL enable);
1742*53ee8cc1Swenshuai.xi 
1743*53ee8cc1Swenshuai.xi //-----------------
1744*53ee8cc1Swenshuai.xi // GFX_PIXEL_MODE
1745*53ee8cc1Swenshuai.xi //-----------------
1746*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1747*53ee8cc1Swenshuai.xi /// Set one pixel mode
1748*53ee8cc1Swenshuai.xi /// @ingroup GFX_PIXEL_MODE
1749*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1750*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1751*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1752*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1753*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetOnePixelMode(MS_BOOL enable);
1754*53ee8cc1Swenshuai.xi //-----------------
1755*53ee8cc1Swenshuai.xi // GFX_OPTION
1756*53ee8cc1Swenshuai.xi //-----------------
1757*53ee8cc1Swenshuai.xi //-----------------
1758*53ee8cc1Swenshuai.xi // GFX_STRETCH
1759*53ee8cc1Swenshuai.xi //-----------------
1760*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1761*53ee8cc1Swenshuai.xi /// Enable Nearest mode
1762*53ee8cc1Swenshuai.xi /// @ingroup GFX_STRETCH
1763*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1764*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1765*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1766*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1767*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetNearestMode(MS_BOOL enable);
1768*53ee8cc1Swenshuai.xi //-----------------
1769*53ee8cc1Swenshuai.xi // GFX_MIRROR
1770*53ee8cc1Swenshuai.xi //-----------------
1771*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1772*53ee8cc1Swenshuai.xi /// Set Src mirror
1773*53ee8cc1Swenshuai.xi /// @ingroup GFX_MIRROR
1774*53ee8cc1Swenshuai.xi /// @param  isMirrorX           \b IN: Enable/Disable
1775*53ee8cc1Swenshuai.xi /// @param  isMirrorY           \b IN: Enable/Disable
1776*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1777*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1778*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1779*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetMirror(MS_BOOL isMirrorX, MS_BOOL isMirrorY);
1780*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1781*53ee8cc1Swenshuai.xi /// Set Dst mirror
1782*53ee8cc1Swenshuai.xi /// @ingroup GFX_MIRROR
1783*53ee8cc1Swenshuai.xi /// @param  isMirrorX           \b IN: Enable/Disable
1784*53ee8cc1Swenshuai.xi /// @param  isMirrorY           \b IN: Enable/Disable
1785*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1786*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1787*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1788*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetDstMirror(MS_BOOL isMirrorX, MS_BOOL isMirrorY);
1789*53ee8cc1Swenshuai.xi 
1790*53ee8cc1Swenshuai.xi //-----------------
1791*53ee8cc1Swenshuai.xi // GFX_ROTATE
1792*53ee8cc1Swenshuai.xi //-----------------
1793*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1794*53ee8cc1Swenshuai.xi /// Set rotation
1795*53ee8cc1Swenshuai.xi /// @ingroup GFX_ROTATE
1796*53ee8cc1Swenshuai.xi /// @param  angle               \b IN: angle
1797*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1798*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1799*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1800*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetRotate(GFX_RotateAngle angle);
1801*53ee8cc1Swenshuai.xi 
1802*53ee8cc1Swenshuai.xi //-----------------
1803*53ee8cc1Swenshuai.xi // GFX_OPTION
1804*53ee8cc1Swenshuai.xi //-----------------
1805*53ee8cc1Swenshuai.xi //-----------------
1806*53ee8cc1Swenshuai.xi // GFX_STRETCH
1807*53ee8cc1Swenshuai.xi //-----------------
1808*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1809*53ee8cc1Swenshuai.xi /// Enable Nearest mode
1810*53ee8cc1Swenshuai.xi /// @ingroup GFX_STRETCH
1811*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1812*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1813*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1814*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1815*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetNearestMode(MS_BOOL enable);
1816*53ee8cc1Swenshuai.xi //-----------------
1817*53ee8cc1Swenshuai.xi // GFX_WAIT_DONE
1818*53ee8cc1Swenshuai.xi //-----------------
1819*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1820*53ee8cc1Swenshuai.xi /// Set tag
1821*53ee8cc1Swenshuai.xi /// @ingroup GFX_WAIT_DONE
1822*53ee8cc1Swenshuai.xi /// @param  tagID                  \b IN: tag
1823*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1824*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1825*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1826*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetTAGID(MS_U16 tagID);
1827*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1828*53ee8cc1Swenshuai.xi /// wait for tag
1829*53ee8cc1Swenshuai.xi /// @ingroup GFX_WAIT_DONE
1830*53ee8cc1Swenshuai.xi /// @param  tagID               \b IN: tagID
1831*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1832*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1833*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1834*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_WaitForTAGID(MS_U16 tagID);
1835*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1836*53ee8cc1Swenshuai.xi /// polling for tag
1837*53ee8cc1Swenshuai.xi /// @ingroup GFX_WAIT_DONE
1838*53ee8cc1Swenshuai.xi /// @param  tagID               \b IN: tagID
1839*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1840*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1841*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1842*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_PollingTAGID(MS_U16 tagID);
1843*53ee8cc1Swenshuai.xi 
1844*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1845*53ee8cc1Swenshuai.xi /// Set next tag
1846*53ee8cc1Swenshuai.xi /// @ingroup GFX_WAIT_DONE
1847*53ee8cc1Swenshuai.xi /// @param  void
1848*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1849*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1850*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1851*53ee8cc1Swenshuai.xi DLL_PUBLIC extern MS_U16     MApi_GFX_SetNextTAGID(void);
1852*53ee8cc1Swenshuai.xi //-----------------
1853*53ee8cc1Swenshuai.xi // GFX_VCMQ
1854*53ee8cc1Swenshuai.xi //-----------------
1855*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1856*53ee8cc1Swenshuai.xi /// Enable GE virtual cmdq
1857*53ee8cc1Swenshuai.xi /// @ingroup GFX_VCMQ
1858*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
1859*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1860*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1861*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1862*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_EnableVCmdQueue(MS_U16 blEnable);
1863*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1864*53ee8cc1Swenshuai.xi /// Set GE virtual cmdq info
1865*53ee8cc1Swenshuai.xi /// @ingroup GFX_VCMQ
1866*53ee8cc1Swenshuai.xi /// @param  u32Addr             \b IN: vcmdq addr
1867*53ee8cc1Swenshuai.xi /// @param  enBufSize           \b IN: vcmdq size
1868*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1869*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1870*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1871*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
1872*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetVCmdBuffer(MS_PHYADDR u32Addr, GFX_VcmqBufSize enBufSize);
1873*53ee8cc1Swenshuai.xi #else
1874*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetVCmdBuffer(MS_PHY PhyAddr, GFX_VcmqBufSize enBufSize);
1875*53ee8cc1Swenshuai.xi #endif
1876*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1877*53ee8cc1Swenshuai.xi /// Set GE write queue threadhold to DRAM
1878*53ee8cc1Swenshuai.xi /// @ingroup GFX_VCMQ
1879*53ee8cc1Swenshuai.xi /// @param  u8W_Threshold       \b IN: Threshold
1880*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1881*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1882*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1883*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GE_SetVCmd_W_Thread(MS_U8 u8W_Threshold);
1884*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1885*53ee8cc1Swenshuai.xi /// Set GE read queue threadhold to DRAM
1886*53ee8cc1Swenshuai.xi /// @ingroup GFX_VCMQ
1887*53ee8cc1Swenshuai.xi /// @param  u8R_Threshold       \b IN: Threshold
1888*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1889*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1890*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1891*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GE_SetVCmd_R_Thread(MS_U8 u8R_Threshold);
1892*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1893*53ee8cc1Swenshuai.xi /// flush all ge queue
1894*53ee8cc1Swenshuai.xi /// @ingroup GFX_WAIT_DONE
1895*53ee8cc1Swenshuai.xi /// @param  void
1896*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1897*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1898*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1899*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_FlushQueue(void) ;
1900*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1901*53ee8cc1Swenshuai.xi /// MApi_GFX_PowerOn
1902*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
1903*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1904*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1905*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1906*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_PowerOn(void);
1907*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1908*53ee8cc1Swenshuai.xi /// MApi_GFX_PowerOff
1909*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
1910*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1911*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1912*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1913*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_PowerOff(void);
1914*53ee8cc1Swenshuai.xi //-----------------
1915*53ee8cc1Swenshuai.xi // GFX_POWER_STATE
1916*53ee8cc1Swenshuai.xi //-----------------
1917*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1918*53ee8cc1Swenshuai.xi /// Set GE suspend resume
1919*53ee8cc1Swenshuai.xi /// @ingroup GFX_POWER_STATE
1920*53ee8cc1Swenshuai.xi /// @param  u16PowerState       \b IN: suspend/resume
1921*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1922*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1923*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1924*53ee8cc1Swenshuai.xi DLL_PUBLIC extern MS_U32     MApi_GFX_SetPowerState(EN_POWER_MODE u16PowerState);
1925*53ee8cc1Swenshuai.xi 
1926*53ee8cc1Swenshuai.xi //-----------------
1927*53ee8cc1Swenshuai.xi // GFX_WRITE_PROTECT
1928*53ee8cc1Swenshuai.xi //-----------------
1929*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1930*53ee8cc1Swenshuai.xi /// Set GE write protect
1931*53ee8cc1Swenshuai.xi /// @ingroup GFX_WRITE_PROTECT
1932*53ee8cc1Swenshuai.xi /// @param  miu                 \b IN: miu
1933*53ee8cc1Swenshuai.xi /// @param  addr_low            \b IN: addr_low
1934*53ee8cc1Swenshuai.xi /// @param  addr_high           \b IN: addr_high
1935*53ee8cc1Swenshuai.xi /// @param  eWPType             \b IN: eWPType
1936*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1937*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1938*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1939*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
1940*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_WriteProtect(MS_U8 miu,MS_U32 addr_low,MS_U32 addr_high,GFX_WPType eWPType);
1941*53ee8cc1Swenshuai.xi #else
1942*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_WriteProtect(MS_U8 miu,MS_PHY addr_low,MS_PHY addr_high,GFX_WPType eWPType);
1943*53ee8cc1Swenshuai.xi #endif
1944*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1945*53ee8cc1Swenshuai.xi /// Set I8 palette
1946*53ee8cc1Swenshuai.xi /// @ingroup GFX_PALETTE
1947*53ee8cc1Swenshuai.xi /// @param  pPalArray           \b IN: color array
1948*53ee8cc1Swenshuai.xi /// @param  u32PalStart         \b IN: color index start
1949*53ee8cc1Swenshuai.xi /// @param  u32PalEnd           \b IN: color index end
1950*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1951*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1952*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetPaletteOpt( GFX_PaletteEntry *pPalArray, MS_U16 u32PalStart, MS_U16 u32PalEnd);
1953*53ee8cc1Swenshuai.xi 
1954*53ee8cc1Swenshuai.xi 
1955*53ee8cc1Swenshuai.xi 
1956*53ee8cc1Swenshuai.xi //-----------------
1957*53ee8cc1Swenshuai.xi // GFX_DRAW_MISC
1958*53ee8cc1Swenshuai.xi //-----------------
1959*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1960*53ee8cc1Swenshuai.xi /// MApi_GFX_DrawBitmap
1961*53ee8cc1Swenshuai.xi /// @ingroup GFX_DRAW_MISC
1962*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1963*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1964*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1965*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_DrawBitmap(MS_S32 handle, GFX_DrawBmpInfo *pbmpfmt);
1966*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1967*53ee8cc1Swenshuai.xi /// MApi_GFX_TextOut
1968*53ee8cc1Swenshuai.xi /// @ingroup GFX_DRAW_MISC
1969*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1970*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1971*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1972*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_TextOut(MS_S32 fhandle, MS_U8 *pindex, MS_U32 strwidth, GFX_TextOutInfo *pfmt);
1973*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1974*53ee8cc1Swenshuai.xi /// MApi_GFX_CharacterOut
1975*53ee8cc1Swenshuai.xi /// @ingroup GFX_DRAW_MISC
1976*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1977*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1978*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1979*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_CharacterOut(GFX_CharInfo*  pChar, GFX_TextOutInfo *pfmt);
1980*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1981*53ee8cc1Swenshuai.xi /// MApi_GFX_GetBitmapInfo
1982*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
1983*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1984*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1985*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1986*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetBitmapInfo(MS_S32 handle, GFX_BitmapInfo* pinfo);
1987*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1988*53ee8cc1Swenshuai.xi /// MApi_GFX_GetFrameBufferInfo
1989*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
1990*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1991*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1992*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1993*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetFrameBufferInfo(MS_U32 *width, MS_U32 *height, MS_U32 *pitch, MS_U32 *fbFmt, MS_PHY *addr);
1994*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1995*53ee8cc1Swenshuai.xi /// MApi_GFX_TrapezoidFill
1996*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
1997*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
1998*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
1999*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2000*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_TrapezoidFill(GFX_RectFillInfo *pGfxFillInfo);
2001*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2002*53ee8cc1Swenshuai.xi /// MApi_GFX_EnableTrapezoidAA
2003*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2004*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2005*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2006*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2007*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_EnableTrapezoidAA(MS_BOOL bEnable);
2008*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2009*53ee8cc1Swenshuai.xi /// MApi_GFX_EnableTrapSubPixCorr
2010*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2011*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2012*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2013*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2014*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_EnableTrapSubPixCorr(MS_BOOL bEnable);
2015*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2016*53ee8cc1Swenshuai.xi /// MApi_GFX_QueryTextDispLength
2017*53ee8cc1Swenshuai.xi /// @ingroup GFX_MISC_NOS
2018*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2019*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2020*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2021*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_QueryTextDispLength(MS_S32 fhandle, MS_U8 *pu8index, MS_U32 u32strwidth,
2022*53ee8cc1Swenshuai.xi                                                GFX_TextOutInfo *pfmt, MS_U32* pu32DispLength);
2023*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2024*53ee8cc1Swenshuai.xi /// Set alpha formular
2025*53ee8cc1Swenshuai.xi /// @ingroup GFX_ALPHA_BLENDING
2026*53ee8cc1Swenshuai.xi /// @param  eMode               \b IN: alpha blending formular
2027*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2028*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2029*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2030*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetAlphaSrcFrom(GFX_AlphaSrcFrom eMode);
2031*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2032*53ee8cc1Swenshuai.xi /// Set color formular
2033*53ee8cc1Swenshuai.xi /// @ingroup GFX_ALPHA_BLENDING
2034*53ee8cc1Swenshuai.xi /// @param  blendcoef           \b IN: color blending formular
2035*53ee8cc1Swenshuai.xi /// @param  blendfactor         \b IN: constant alpha
2036*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2037*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2038*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetAlphaBlending(GFX_BlendCoef blendcoef, MS_U8 blendfactor);
2039*53ee8cc1Swenshuai.xi //-----------------
2040*53ee8cc1Swenshuai.xi // GFX_DFB
2041*53ee8cc1Swenshuai.xi //-----------------
2042*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2043*53ee8cc1Swenshuai.xi /// Query DFB capability
2044*53ee8cc1Swenshuai.xi /// @ingroup GFX_DFB
2045*53ee8cc1Swenshuai.xi /// @param  pU16SupportedBldFlags   \b IN: DFB capability
2046*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS             - Success
2047*53ee8cc1Swenshuai.xi /// @return GFX_FAIL                - Failure
2048*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2049*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_QueryDFBBldCaps(MS_U16 *pU16SupportedBldFlags);
2050*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2051*53ee8cc1Swenshuai.xi /// MApi_GFX_SetDFBBldSrcColorMask
2052*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2053*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2054*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2055*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2056*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetDFBBldSrcColorMask(GFX_RgbColor gfxRgbColor);
2057*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2058*53ee8cc1Swenshuai.xi /// MApi_GFX_Line_Pattern_Reset
2059*53ee8cc1Swenshuai.xi /// @ingroup GFX_MISC_NOS
2060*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2061*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2062*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2063*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_Line_Pattern_Reset(void);
2064*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2065*53ee8cc1Swenshuai.xi /// MApi_GFX_Set_Line_Pattern
2066*53ee8cc1Swenshuai.xi /// @ingroup GFX_MISC_NOS
2067*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2068*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2069*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2070*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_Set_Line_Pattern(MS_BOOL enable, MS_U8 linePattern, MS_U8 repeatFactor);
2071*53ee8cc1Swenshuai.xi 
2072*53ee8cc1Swenshuai.xi //-----------------
2073*53ee8cc1Swenshuai.xi // GFX_DRAW_SETTING
2074*53ee8cc1Swenshuai.xi //-----------------
2075*53ee8cc1Swenshuai.xi //-----------------
2076*53ee8cc1Swenshuai.xi // GFX_BEGINE_END
2077*53ee8cc1Swenshuai.xi //-----------------
2078*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2079*53ee8cc1Swenshuai.xi /// Begine of draw.
2080*53ee8cc1Swenshuai.xi /// @ingroup GFX_LOCK_BEGINE_END
2081*53ee8cc1Swenshuai.xi /// @param  void
2082*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2083*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2084*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2085*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_BeginDraw(void);
2086*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2087*53ee8cc1Swenshuai.xi /// End of draw.
2088*53ee8cc1Swenshuai.xi /// @ingroup GFX_LOCK_BEGINE_END
2089*53ee8cc1Swenshuai.xi /// @param  void
2090*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2091*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2092*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2093*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_EndDraw(void);
2094*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2095*53ee8cc1Swenshuai.xi /// MApi_GFX_YUV_Get
2096*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2097*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2098*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2099*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2100*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_YUV_Get(GFX_YuvInfo* pYuvInfo);
2101*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2102*53ee8cc1Swenshuai.xi /// MApi_GFX_RectFrame
2103*53ee8cc1Swenshuai.xi /// @ingroup GFX_MISC_NOS
2104*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2105*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2106*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2107*53ee8cc1Swenshuai.xi DLL_PUBLIC extern void MApi_GFX_RectFrame(GFX_RectFillInfo *pblock, GFX_DrawLineInfo *plinefmt);
2108*53ee8cc1Swenshuai.xi //-----------------
2109*53ee8cc1Swenshuai.xi // GFX_R2Y
2110*53ee8cc1Swenshuai.xi //-----------------
2111*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2112*53ee8cc1Swenshuai.xi /// Set R2Y CSC
2113*53ee8cc1Swenshuai.xi /// @ingroup GFX_R2Y
2114*53ee8cc1Swenshuai.xi /// @param  mode                \b IN: mode
2115*53ee8cc1Swenshuai.xi /// @param  yuv_out_range       \b IN: dst YUV range
2116*53ee8cc1Swenshuai.xi /// @param  uv_in_range         \b IN: src UV range
2117*53ee8cc1Swenshuai.xi /// @param  srcfmt              \b IN: src YUV fmt
2118*53ee8cc1Swenshuai.xi /// @param  dstfmt              \b IN: dst YUV fmt
2119*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2120*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2121*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2122*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetDC_CSC_FMT(GFX_YUV_Rgb2Yuv mode, GFX_YUV_OutRange yuv_out_range, GFX_YUV_InRange uv_in_range, GFX_YUV_422 srcfmt, GFX_YUV_422 dstfmt);
2123*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2124*53ee8cc1Swenshuai.xi /// MApi_GFX_SetPatchMode
2125*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2126*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2127*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2128*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2129*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetPatchMode(MS_BOOL enable);
2130*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2131*53ee8cc1Swenshuai.xi /// Get buffer info
2132*53ee8cc1Swenshuai.xi /// @ingroup GFX_BUFFER_INFO
2133*53ee8cc1Swenshuai.xi /// @param  srcbufInfo          \b IN: Src buffer info
2134*53ee8cc1Swenshuai.xi /// @param  dstbufInfo          \b IN: Dst buffer info
2135*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2136*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2137*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2138*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetBufferInfo(PGFX_BufferInfo srcbufInfo, PGFX_BufferInfo dstbufInfo);
2139*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2140*53ee8cc1Swenshuai.xi /// Clear frame by 32 bits value
2141*53ee8cc1Swenshuai.xi /// @ingroup GFX_CLEAR
2142*53ee8cc1Swenshuai.xi /// @param  StrAddr             \b IN: addr
2143*53ee8cc1Swenshuai.xi /// @param  length              \b IN: len
2144*53ee8cc1Swenshuai.xi /// @param  ClearValue          \b IN: value
2145*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2146*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2147*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2148*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
2149*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_ClearFrameBufferByWord(MS_PHYADDR StrAddr, MS_U32 length, MS_U32 ClearValue);
2150*53ee8cc1Swenshuai.xi #else
2151*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_ClearFrameBufferByWord(MS_PHY StrAddr, MS_U32 length, MS_U32 ClearValue);
2152*53ee8cc1Swenshuai.xi #endif
2153*53ee8cc1Swenshuai.xi //-----------------
2154*53ee8cc1Swenshuai.xi // GFX_CLEAR
2155*53ee8cc1Swenshuai.xi //-----------------
2156*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2157*53ee8cc1Swenshuai.xi /// Clear frame by 8 bits value
2158*53ee8cc1Swenshuai.xi /// @ingroup GFX_CLEAR
2159*53ee8cc1Swenshuai.xi /// @param  StrAddr             \b IN: addr
2160*53ee8cc1Swenshuai.xi /// @param  length              \b IN: len
2161*53ee8cc1Swenshuai.xi /// @param  ClearValue          \b IN: value
2162*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2163*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2164*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2165*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
2166*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_ClearFrameBuffer(MS_PHYADDR StrAddr, MS_U32 length, MS_U8 ClearValue);
2167*53ee8cc1Swenshuai.xi #else
2168*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_ClearFrameBuffer(MS_PHY StrAddr, MS_U32 length, MS_U8 ClearValue);
2169*53ee8cc1Swenshuai.xi #endif
2170*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2171*53ee8cc1Swenshuai.xi /// Set alpha value in ARGB1555
2172*53ee8cc1Swenshuai.xi /// @ingroup GFX_ALPHA_BLENDING
2173*53ee8cc1Swenshuai.xi /// @param  coef                \b IN: alpha value
2174*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2175*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2176*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2177*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetAlpha_ARGB1555(MS_U8 coef);
2178*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2179*53ee8cc1Swenshuai.xi /// Get alpha value in ARGB1555
2180*53ee8cc1Swenshuai.xi /// @ingroup GFX_ALPHA_BLENDING
2181*53ee8cc1Swenshuai.xi /// @param  coef                \b IN: alpha value
2182*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2183*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2184*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2185*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetAlpha_ARGB1555(MS_U8* coef);
2186*53ee8cc1Swenshuai.xi //-----------------
2187*53ee8cc1Swenshuai.xi // GFX_CB
2188*53ee8cc1Swenshuai.xi //-----------------
2189*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2190*53ee8cc1Swenshuai.xi /// Get Font info call back.
2191*53ee8cc1Swenshuai.xi /// @ingroup GFX_CB
2192*53ee8cc1Swenshuai.xi /// @param  fpGFX_CB             \b IN: Get Font info call back
2193*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2194*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2195*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2196*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
2197*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_RegisterGetFontCB(MS_U32 (*fpGFX_CB)(MS_S8, GFX_FontInfo*)  );
2198*53ee8cc1Swenshuai.xi #else
2199*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_RegisterGetFontCB(MS_PHY (*fpGFX_CB)(MS_S8, GFX_FontInfo*)  );
2200*53ee8cc1Swenshuai.xi #endif
2201*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2202*53ee8cc1Swenshuai.xi /// Get BMP info call back.
2203*53ee8cc1Swenshuai.xi /// @ingroup GFX_CB
2204*53ee8cc1Swenshuai.xi /// @param  fpGFX_CB             \b IN: Get BMP info call back
2205*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2206*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2207*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2208*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
2209*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_RegisterGetBMPCB(MS_U32 (*fpGFX_CB)(MS_S16, GFX_BitmapInfo*)  );
2210*53ee8cc1Swenshuai.xi #else
2211*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_RegisterGetBMPCB(MS_PHY (*fpGFX_CB)(MS_S16, GFX_BitmapInfo*)  );
2212*53ee8cc1Swenshuai.xi #endif
2213*53ee8cc1Swenshuai.xi //-----------------
2214*53ee8cc1Swenshuai.xi // GFX_ALPHA_COMPARE
2215*53ee8cc1Swenshuai.xi //-----------------
2216*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2217*53ee8cc1Swenshuai.xi /// Set alpha compare info
2218*53ee8cc1Swenshuai.xi /// @ingroup GFX_ALPHA_COMPARE
2219*53ee8cc1Swenshuai.xi /// @param  enable              \b IN: Enable/Disable
2220*53ee8cc1Swenshuai.xi /// @param  eMode               \b IN: alpha compare operation
2221*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2222*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2223*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2224*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetAlphaCmp(MS_BOOL enable, GFX_ACmpOp eMode);
2225*53ee8cc1Swenshuai.xi //-----------------
2226*53ee8cc1Swenshuai.xi // GFX_MISC
2227*53ee8cc1Swenshuai.xi //-----------------
2228*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2229*53ee8cc1Swenshuai.xi /// Configure GFX DBG level
2230*53ee8cc1Swenshuai.xi /// @ingroup GFX_MISC
2231*53ee8cc1Swenshuai.xi /// @param  level               \b IN: level
2232*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2233*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2234*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2235*53ee8cc1Swenshuai.xi DLL_PUBLIC extern void MApi_GFX_SetDbgLevel(MS_U32 level);
2236*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2237*53ee8cc1Swenshuai.xi /// Set source color key edge stretch mode
2238*53ee8cc1Swenshuai.xi /// @ingroup GFX_STRETCH
2239*53ee8cc1Swenshuai.xi /// @param  type                \b IN: stretch mode
2240*53ee8cc1Swenshuai.xi /// @param  color               \b IN: customer color
2241*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2242*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2243*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2244*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetStrBltSckType(GFX_StretchCKType type, GFX_RgbColor *color);
2245*53ee8cc1Swenshuai.xi //-----------------
2246*53ee8cc1Swenshuai.xi // GFX_MISC_NOS
2247*53ee8cc1Swenshuai.xi //-----------------
2248*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2249*53ee8cc1Swenshuai.xi /// MApi_GFX_SetHK
2250*53ee8cc1Swenshuai.xi /// @ingroup GFX_MISC_NOS
2251*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2252*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2253*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2254*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetHK(MS_BOOL bIsHK) ;
2255*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2256*53ee8cc1Swenshuai.xi /// MApi_GFX_GetHK
2257*53ee8cc1Swenshuai.xi /// @ingroup GFX_MISC_NOS
2258*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2259*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2260*53ee8cc1Swenshuai.xi //-----------------------------------------------------------------------------------------------
2261*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetHK(MS_BOOL *bIsHK) ;
2262*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2263*53ee8cc1Swenshuai.xi /// MApi_GFX_DrawOval
2264*53ee8cc1Swenshuai.xi /// @ingroup GFX_DRAW_MISC
2265*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2266*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2267*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2268*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_DrawOval(GFX_OvalFillInfo *pOval);
2269*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2270*53ee8cc1Swenshuai.xi /// MApi_GFX_GetStatus
2271*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2272*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2273*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2274*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2275*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetStatus( MS_BOOL *pStatus );
2276*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2277*53ee8cc1Swenshuai.xi /// MApi_GFX_GetLibVer
2278*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2279*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2280*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2281*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2282*53ee8cc1Swenshuai.xi DLL_LOCAL extern GFX_Result MApi_GFX_GetLibVer(const MSIF_Version **ppVersion);
2283*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2284*53ee8cc1Swenshuai.xi /// Get GE alignment capability
2285*53ee8cc1Swenshuai.xi /// @ingroup GFX_CAPS
2286*53ee8cc1Swenshuai.xi /// @param  pAlignCapsInfo      \b IN: AlignCaps
2287*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2288*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2289*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2290*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_GetAlignCaps(GFX_FmtAlignCapsInfo* pAlignCapsInfo);
2291*53ee8cc1Swenshuai.xi /// msAPI_GE_ClearFrameBufferByWord
2292*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2293*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2294*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2295*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2296*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
2297*53ee8cc1Swenshuai.xi DLL_PUBLIC extern void msAPI_GE_ClearFrameBufferByWord (MS_PHYADDR StrAddr, MS_U32 length, MS_U32 ClearValue);
2298*53ee8cc1Swenshuai.xi #else
2299*53ee8cc1Swenshuai.xi DLL_PUBLIC extern void msAPI_GE_ClearFrameBufferByWord (MS_PHY StrAddr, MS_U32 length, MS_U32 ClearValue);
2300*53ee8cc1Swenshuai.xi #endif
2301*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2302*53ee8cc1Swenshuai.xi /// MDrv_GE_EnableAlphaBlending
2303*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2304*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2305*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2306*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2307*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MDrv_GE_EnableAlphaBlending(MS_BOOL enable);
2308*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2309*53ee8cc1Swenshuai.xi /// MDrv_GE_SetAlphaBlending
2310*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2311*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2312*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2313*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2314*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MDrv_GE_SetAlphaBlending(GFX_BlendCoef blendcoef, MS_U8 u8ConstantAlpha);
2315*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2316*53ee8cc1Swenshuai.xi /// MDrv_GE_PE_SetIntensity
2317*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2318*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2319*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2320*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2321*53ee8cc1Swenshuai.xi DLL_PUBLIC extern void MDrv_GE_PE_SetIntensity(MS_U8 id, GFX_Buffer_Format fmt, MS_U32* pcolor);
2322*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2323*53ee8cc1Swenshuai.xi /// MApi_GFX_SetTLBMode
2324*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2325*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2326*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2327*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2328*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetTLBMode(EN_GFX_TLB_Mode TLBmode);
2329*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2330*53ee8cc1Swenshuai.xi /// MApi_GFX_SetTLBBaseADDR
2331*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2332*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2333*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2334*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2335*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
2336*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetTLBBaseADDR(MS_PHYADDR u32TLBSrcMiuAddr,MS_PHYADDR u32TLBDstMiuAddr);
2337*53ee8cc1Swenshuai.xi #else
2338*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetTLBBaseADDR(MS_PHY phyTLBSrcMiuAddr,MS_PHY phyTLBDstMiuAddr);
2339*53ee8cc1Swenshuai.xi #endif
2340*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2341*53ee8cc1Swenshuai.xi /// MApi_GFX_SetTLBFlushTable
2342*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2343*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2344*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2345*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2346*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetTLBFlushTable(MS_BOOL enable);
2347*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2348*53ee8cc1Swenshuai.xi /// MApi_GFX_SetTLBTag
2349*53ee8cc1Swenshuai.xi /// @ingroup GFX_ToBeRemove
2350*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2351*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2352*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2353*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_SetTLBTag(MS_U16 tag);
2354*53ee8cc1Swenshuai.xi 
2355*53ee8cc1Swenshuai.xi 
2356*53ee8cc1Swenshuai.xi //-----------------
2357*53ee8cc1Swenshuai.xi // GFX_MISC_BOX
2358*53ee8cc1Swenshuai.xi //-----------------
2359*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2360*53ee8cc1Swenshuai.xi /// MApi_GFX_BitbltByTwoSourceBuffer
2361*53ee8cc1Swenshuai.xi /// @ingroup GFX_MISC_BOX
2362*53ee8cc1Swenshuai.xi /// @return GFX_SUCCESS         - Success
2363*53ee8cc1Swenshuai.xi /// @return GFX_FAIL            - Failure
2364*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2365*53ee8cc1Swenshuai.xi DLL_PUBLIC extern GFX_Result MApi_GFX_BitbltByTwoSourceBuffer(PGFX_BufferInfo dstbufInfo, GFX_DrawTwoSourceRect *pbmpfmt, MS_U32 drawflag);
2366*53ee8cc1Swenshuai.xi 
2367*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2368*53ee8cc1Swenshuai.xi /// Finalize GFX module.
2369*53ee8cc1Swenshuai.xi /// @ingroup GFX_INIT
2370*53ee8cc1Swenshuai.xi /// @param  void
2371*53ee8cc1Swenshuai.xi /// @return void
2372*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
2373*53ee8cc1Swenshuai.xi DLL_PUBLIC extern void MApi_GE_Exit(void);
2374*53ee8cc1Swenshuai.xi 
2375*53ee8cc1Swenshuai.xi 
2376*53ee8cc1Swenshuai.xi 
2377*53ee8cc1Swenshuai.xi #ifdef __cplusplus
2378*53ee8cc1Swenshuai.xi }
2379*53ee8cc1Swenshuai.xi #endif
2380*53ee8cc1Swenshuai.xi 
2381*53ee8cc1Swenshuai.xi #endif //_API_GFX_H_
2382*53ee8cc1Swenshuai.xi 
2383