xref: /utopia/UTPA2-700.0.x/projects/tmplib/include/apiGFX_v2.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi 
2*53ee8cc1Swenshuai.xi typedef enum {
3*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_INIT           =0,
4*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_GET_INFO       ,
5*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_LINEDRAW       ,
6*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_RECTFILL       ,
7*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_BITBLT         ,
8*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_SET_ABL        ,
9*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_SET_CONFIG     ,
10*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_BITMAP         ,
11*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_FONT           ,
12*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_POWERSTATE     ,
13*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_CB             ,
14*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_MISC           ,
15*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_TWOSRCBITBLT   ,
16*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_TLB            ,
17*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_GET_CAPS       ,
18*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_DRAW_OVAL      ,
19*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_TRIFILL        ,
20*53ee8cc1Swenshuai.xi     MAPI_CMD_GFX_SPANFILL        ,
21*53ee8cc1Swenshuai.xi } eGFXIoctlOpt;
22*53ee8cc1Swenshuai.xi 
23*53ee8cc1Swenshuai.xi typedef enum
24*53ee8cc1Swenshuai.xi {
25*53ee8cc1Swenshuai.xi     E_GFX_GET_BUFFERINFO        =0,
26*53ee8cc1Swenshuai.xi     E_GFX_GET_TAGID             ,
27*53ee8cc1Swenshuai.xi     E_GFX_GET_NEXTTAGID         ,
28*53ee8cc1Swenshuai.xi     E_GFX_GET_CLIP              ,
29*53ee8cc1Swenshuai.xi     E_GFX_GET_INTENSITY         ,
30*53ee8cc1Swenshuai.xi     E_GFX_GET_DBGINFO           ,
31*53ee8cc1Swenshuai.xi }EN_GFX_GET_CONFIG;
32*53ee8cc1Swenshuai.xi 
33*53ee8cc1Swenshuai.xi typedef enum
34*53ee8cc1Swenshuai.xi {
35*53ee8cc1Swenshuai.xi     E_GFX_SET_POWERON           =0,
36*53ee8cc1Swenshuai.xi     E_GFX_SET_FLUSHQUEUE        ,
37*53ee8cc1Swenshuai.xi     E_GFX_SET_TAGID             ,
38*53ee8cc1Swenshuai.xi     E_GFX_SET_NEXTTAGID         ,
39*53ee8cc1Swenshuai.xi     E_GFX_SET_WAITFORTAGID      ,
40*53ee8cc1Swenshuai.xi     E_GFX_SET_ONEPIXELMODE      ,
41*53ee8cc1Swenshuai.xi     E_GFX_SET_DITHER            ,
42*53ee8cc1Swenshuai.xi     E_GFX_SET_VQ                ,
43*53ee8cc1Swenshuai.xi     E_GFX_SET_MIRROR            ,
44*53ee8cc1Swenshuai.xi     E_GFX_SET_DST_MIRROR        ,
45*53ee8cc1Swenshuai.xi     E_GFX_SET_ROTATE            ,
46*53ee8cc1Swenshuai.xi     E_GFX_SET_ITALIC            ,
47*53ee8cc1Swenshuai.xi     E_GFX_SET_NEARESTMODE       ,
48*53ee8cc1Swenshuai.xi     E_GFX_SET_PALETTEOPT        ,
49*53ee8cc1Swenshuai.xi     E_GFX_SET_CLIP              ,
50*53ee8cc1Swenshuai.xi     E_GFX_SET_WRITEPROTECT      ,
51*53ee8cc1Swenshuai.xi     E_GFX_SET_ALPHA_COMPARE     ,
52*53ee8cc1Swenshuai.xi     E_GFX_SET_CSC               ,
53*53ee8cc1Swenshuai.xi }EN_GFX_SET_CONFIG;
54*53ee8cc1Swenshuai.xi 
55*53ee8cc1Swenshuai.xi typedef enum
56*53ee8cc1Swenshuai.xi {
57*53ee8cc1Swenshuai.xi     E_GFX_SET_ABL               =0,
58*53ee8cc1Swenshuai.xi     E_GFX_SET_COLORKEY          ,
59*53ee8cc1Swenshuai.xi     E_GFX_SET_ROP               ,
60*53ee8cc1Swenshuai.xi     E_GFX_SET_DFB               ,
61*53ee8cc1Swenshuai.xi     E_GFX_SET_INTENSITY         ,
62*53ee8cc1Swenshuai.xi }EN_GFX_SET_ABL;
63*53ee8cc1Swenshuai.xi 
64*53ee8cc1Swenshuai.xi typedef enum
65*53ee8cc1Swenshuai.xi {
66*53ee8cc1Swenshuai.xi     E_SRC_COLORKEY              =0x1,
67*53ee8cc1Swenshuai.xi     E_DST_COLORKEY              =0x2,
68*53ee8cc1Swenshuai.xi }GFX_ColorKeyType;
69*53ee8cc1Swenshuai.xi 
70*53ee8cc1Swenshuai.xi typedef enum
71*53ee8cc1Swenshuai.xi {
72*53ee8cc1Swenshuai.xi     E_LOADTEXTOUT               =0x1,
73*53ee8cc1Swenshuai.xi     E_CHARACTEROUT              =0x2,
74*53ee8cc1Swenshuai.xi }GFX_TEXTTYPE;
75*53ee8cc1Swenshuai.xi 
76*53ee8cc1Swenshuai.xi typedef enum
77*53ee8cc1Swenshuai.xi {
78*53ee8cc1Swenshuai.xi     E_CB_GETFONT                =0x1,
79*53ee8cc1Swenshuai.xi     E_CB_GETBMP                 =0x2,
80*53ee8cc1Swenshuai.xi }EN_GFX_CB_MODE;
81*53ee8cc1Swenshuai.xi 
82*53ee8cc1Swenshuai.xi typedef enum
83*53ee8cc1Swenshuai.xi {
84*53ee8cc1Swenshuai.xi     E_MISC_EXIT                 =1,
85*53ee8cc1Swenshuai.xi     E_MISC_CLEAR_FRAME_BY_WORLD   ,
86*53ee8cc1Swenshuai.xi     E_MISC_CLEAR_FRAME            ,
87*53ee8cc1Swenshuai.xi     E_MISC_LINE_PATTERN_RESET     ,
88*53ee8cc1Swenshuai.xi     E_MISC_LINE_PATTERN           ,
89*53ee8cc1Swenshuai.xi     E_MISC_BEGINE_DRAW            ,
90*53ee8cc1Swenshuai.xi     E_MISC_END_DRAW               ,
91*53ee8cc1Swenshuai.xi     E_MISC_DEBUG_LEVEL            ,
92*53ee8cc1Swenshuai.xi     E_MISC_SET_HK                 ,
93*53ee8cc1Swenshuai.xi     E_MISC_GET_HK                 ,
94*53ee8cc1Swenshuai.xi     E_MISC_PATCH_MODE             ,
95*53ee8cc1Swenshuai.xi     E_MISC_STR_BLT_SCK_TYPE       ,
96*53ee8cc1Swenshuai.xi     E_MISC_SET_ALB_1555           ,
97*53ee8cc1Swenshuai.xi     E_MISC_GET_ALB_1555           ,
98*53ee8cc1Swenshuai.xi }EN_GFX_MISC_MODE;
99*53ee8cc1Swenshuai.xi 
100*53ee8cc1Swenshuai.xi typedef enum
101*53ee8cc1Swenshuai.xi {
102*53ee8cc1Swenshuai.xi     E_SET_PARA_0            =0x1,
103*53ee8cc1Swenshuai.xi     E_SET_PARA_1            =0x2,
104*53ee8cc1Swenshuai.xi     E_SET_PARA_2            =0x4,
105*53ee8cc1Swenshuai.xi     E_SET_PARA_3            =0x8,
106*53ee8cc1Swenshuai.xi     E_SET_PARA_4            =0x10,
107*53ee8cc1Swenshuai.xi }E_GFX_SET_PARA;
108*53ee8cc1Swenshuai.xi 
109*53ee8cc1Swenshuai.xi typedef struct
110*53ee8cc1Swenshuai.xi {
111*53ee8cc1Swenshuai.xi     GFX_BufferInfo*             pBufInfo;
112*53ee8cc1Swenshuai.xi     MS_U32                      u32OffsetByte;
113*53ee8cc1Swenshuai.xi }GFX_Src_BufferInfo, GFX_Dst_BufferInfo;
114*53ee8cc1Swenshuai.xi 
115*53ee8cc1Swenshuai.xi typedef struct _GFX_GET_BUFFERINFO
116*53ee8cc1Swenshuai.xi {
117*53ee8cc1Swenshuai.xi     GFX_Src_BufferInfo*         pSrcbufInfo;
118*53ee8cc1Swenshuai.xi     GFX_Dst_BufferInfo*         pDstbufInfo;
119*53ee8cc1Swenshuai.xi }GFX_Get_BufferInfo;
120*53ee8cc1Swenshuai.xi 
121*53ee8cc1Swenshuai.xi typedef struct
122*53ee8cc1Swenshuai.xi {
123*53ee8cc1Swenshuai.xi     MS_BOOL                     bEnable;
124*53ee8cc1Swenshuai.xi     GFX_ColorKeyMode            eOpMode;
125*53ee8cc1Swenshuai.xi     GFX_Buffer_Format           eFmt;
126*53ee8cc1Swenshuai.xi     void*                       pS_color;
127*53ee8cc1Swenshuai.xi     void*                       pE_color;
128*53ee8cc1Swenshuai.xi }GFX_Set_Src_ColorKey, GFX_Set_Dst_ColorKey;
129*53ee8cc1Swenshuai.xi 
130*53ee8cc1Swenshuai.xi typedef struct
131*53ee8cc1Swenshuai.xi {
132*53ee8cc1Swenshuai.xi     GFX_StretchCKType type;
133*53ee8cc1Swenshuai.xi     GFX_RgbColor     color;
134*53ee8cc1Swenshuai.xi }GFX_SetStrBltSckType;
135*53ee8cc1Swenshuai.xi 
136*53ee8cc1Swenshuai.xi /*=================================================================================================================
137*53ee8cc1Swenshuai.xi     GFX Init
138*53ee8cc1Swenshuai.xi =================================================================================================================*/
139*53ee8cc1Swenshuai.xi typedef struct
140*53ee8cc1Swenshuai.xi {
141*53ee8cc1Swenshuai.xi     MS_U32                          u32VCmdQSize;                       /// MIN:4K, MAX:512K, <MIN:Disable
142*53ee8cc1Swenshuai.xi     MS_PHY                          u32VCmdQAddr;                       //  8-byte aligned
143*53ee8cc1Swenshuai.xi     MS_BOOL                         bIsHK;                              /// Running as HK or Co-processor
144*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
145*53ee8cc1Swenshuai.xi }GFX_Init_Config;
146*53ee8cc1Swenshuai.xi 
147*53ee8cc1Swenshuai.xi /*=================================================================================================================
148*53ee8cc1Swenshuai.xi     GFX GetInfo
149*53ee8cc1Swenshuai.xi =================================================================================================================*/
150*53ee8cc1Swenshuai.xi typedef struct
151*53ee8cc1Swenshuai.xi {
152*53ee8cc1Swenshuai.xi     MS_U32                      u32Id;
153*53ee8cc1Swenshuai.xi     MS_U32*                     pColor;
154*53ee8cc1Swenshuai.xi }GFX_Get_Intensity;
155*53ee8cc1Swenshuai.xi 
156*53ee8cc1Swenshuai.xi typedef struct
157*53ee8cc1Swenshuai.xi {
158*53ee8cc1Swenshuai.xi     EN_GFX_CAPS                 eCapType;
159*53ee8cc1Swenshuai.xi     MS_U32*                     pRet;
160*53ee8cc1Swenshuai.xi     MS_U32                      Ret_Size;
161*53ee8cc1Swenshuai.xi }GFX_Get_CAPS;
162*53ee8cc1Swenshuai.xi 
163*53ee8cc1Swenshuai.xi typedef struct
164*53ee8cc1Swenshuai.xi {
165*53ee8cc1Swenshuai.xi     MS_BOOL                     bStepTagBefore;
166*53ee8cc1Swenshuai.xi     MS_U16*                     pTagID;
167*53ee8cc1Swenshuai.xi }GFX_Get_NextTagID;
168*53ee8cc1Swenshuai.xi 
169*53ee8cc1Swenshuai.xi /*=================================================================================================================
170*53ee8cc1Swenshuai.xi     GFX SetFunction
171*53ee8cc1Swenshuai.xi        *Rotate
172*53ee8cc1Swenshuai.xi        *ColorKey
173*53ee8cc1Swenshuai.xi =================================================================================================================*/
174*53ee8cc1Swenshuai.xi typedef struct
175*53ee8cc1Swenshuai.xi {
176*53ee8cc1Swenshuai.xi     MS_BOOL                     bEnable;
177*53ee8cc1Swenshuai.xi     GFX_BlendCoef               eABLCoef;
178*53ee8cc1Swenshuai.xi     GFX_AlphaSrcFrom            eDb_abl;
179*53ee8cc1Swenshuai.xi     MS_U8                       u8Alpha_Const;
180*53ee8cc1Swenshuai.xi }GFX_Set_ABL;
181*53ee8cc1Swenshuai.xi 
182*53ee8cc1Swenshuai.xi typedef struct _GFX_SET_COLORKEY
183*53ee8cc1Swenshuai.xi {
184*53ee8cc1Swenshuai.xi     MS_U32                      ColorKey_Type;
185*53ee8cc1Swenshuai.xi     GFX_Set_Src_ColorKey*       pSrcbufInfo;
186*53ee8cc1Swenshuai.xi     GFX_Set_Dst_ColorKey*       pDstbufInfo;
187*53ee8cc1Swenshuai.xi }GFX_Set_Colorkey;
188*53ee8cc1Swenshuai.xi 
189*53ee8cc1Swenshuai.xi typedef struct
190*53ee8cc1Swenshuai.xi {
191*53ee8cc1Swenshuai.xi     MS_BOOL                     bEnable;
192*53ee8cc1Swenshuai.xi     GFX_ROP2_Op                 eRopMode;
193*53ee8cc1Swenshuai.xi }GFX_Set_ROP;
194*53ee8cc1Swenshuai.xi 
195*53ee8cc1Swenshuai.xi typedef struct
196*53ee8cc1Swenshuai.xi {
197*53ee8cc1Swenshuai.xi     MS_BOOL                     bEnable;
198*53ee8cc1Swenshuai.xi     GFX_DFBBldOP                eSrcBldOP;
199*53ee8cc1Swenshuai.xi     GFX_DFBBldOP                eDstBldOP;
200*53ee8cc1Swenshuai.xi     GFX_RgbColor                sRGBColor;
201*53ee8cc1Swenshuai.xi     MS_U16                      u16DFBBldFlags;
202*53ee8cc1Swenshuai.xi }GFX_Set_DFB;
203*53ee8cc1Swenshuai.xi 
204*53ee8cc1Swenshuai.xi typedef struct
205*53ee8cc1Swenshuai.xi {
206*53ee8cc1Swenshuai.xi     MS_U32                      u32Id;
207*53ee8cc1Swenshuai.xi     GFX_Buffer_Format           eFmt;
208*53ee8cc1Swenshuai.xi     MS_U32*                     pColor;
209*53ee8cc1Swenshuai.xi }GFX_Set_Intensity;
210*53ee8cc1Swenshuai.xi 
211*53ee8cc1Swenshuai.xi 
212*53ee8cc1Swenshuai.xi 
213*53ee8cc1Swenshuai.xi /*=================================================================================================================
214*53ee8cc1Swenshuai.xi     GFX SetConfig
215*53ee8cc1Swenshuai.xi         *OnePixel
216*53ee8cc1Swenshuai.xi         *VQ
217*53ee8cc1Swenshuai.xi         *Clip
218*53ee8cc1Swenshuai.xi =================================================================================================================*/
219*53ee8cc1Swenshuai.xi typedef struct
220*53ee8cc1Swenshuai.xi {
221*53ee8cc1Swenshuai.xi     MS_BOOL                     bEnable;
222*53ee8cc1Swenshuai.xi     MS_PHY                      u32Addr;
223*53ee8cc1Swenshuai.xi     GFX_VcmqBufSize             enBufSize;
224*53ee8cc1Swenshuai.xi     MS_U8                       u8R_Threshold;
225*53ee8cc1Swenshuai.xi     MS_U8                       u8W_Threshold;
226*53ee8cc1Swenshuai.xi }GFX_Set_VQ;
227*53ee8cc1Swenshuai.xi 
228*53ee8cc1Swenshuai.xi typedef struct
229*53ee8cc1Swenshuai.xi {
230*53ee8cc1Swenshuai.xi     MS_BOOL                     bMirrorX;
231*53ee8cc1Swenshuai.xi     MS_BOOL                     bMirrorY;
232*53ee8cc1Swenshuai.xi }GFX_Set_Mirror;
233*53ee8cc1Swenshuai.xi 
234*53ee8cc1Swenshuai.xi typedef struct
235*53ee8cc1Swenshuai.xi {
236*53ee8cc1Swenshuai.xi     MS_BOOL                     bEnable;
237*53ee8cc1Swenshuai.xi     MS_U8                       u8Ini_line;
238*53ee8cc1Swenshuai.xi     MS_U8                       u8Ini_dis;
239*53ee8cc1Swenshuai.xi     MS_U8                       u8Delta;
240*53ee8cc1Swenshuai.xi }GFX_Set_Italic;
241*53ee8cc1Swenshuai.xi 
242*53ee8cc1Swenshuai.xi typedef struct
243*53ee8cc1Swenshuai.xi {
244*53ee8cc1Swenshuai.xi     MS_U8                       u8Miu;
245*53ee8cc1Swenshuai.xi     MS_PHY                      u32Addr_Low;
246*53ee8cc1Swenshuai.xi     MS_PHY                      u32Addr_High;
247*53ee8cc1Swenshuai.xi     GFX_WPType                  eWPType;
248*53ee8cc1Swenshuai.xi }GFX_Set_WriteProtect;
249*53ee8cc1Swenshuai.xi 
250*53ee8cc1Swenshuai.xi typedef struct
251*53ee8cc1Swenshuai.xi {
252*53ee8cc1Swenshuai.xi     MS_BOOL enable;
253*53ee8cc1Swenshuai.xi     GFX_ACmpOp eMode;
254*53ee8cc1Swenshuai.xi }GFX_Set_AlphaCompare;
255*53ee8cc1Swenshuai.xi 
256*53ee8cc1Swenshuai.xi typedef struct
257*53ee8cc1Swenshuai.xi {
258*53ee8cc1Swenshuai.xi     GFX_PaletteEntry*           pPalArray;
259*53ee8cc1Swenshuai.xi     MS_U16                      u32PalStart;
260*53ee8cc1Swenshuai.xi     MS_U16                      u32PalEnd;
261*53ee8cc1Swenshuai.xi }GFX_Set_PaletteOpt;
262*53ee8cc1Swenshuai.xi 
263*53ee8cc1Swenshuai.xi typedef struct
264*53ee8cc1Swenshuai.xi {
265*53ee8cc1Swenshuai.xi     GFX_YUV_Rgb2Yuv mode;
266*53ee8cc1Swenshuai.xi     GFX_YUV_OutRange yuv_out_range;
267*53ee8cc1Swenshuai.xi     GFX_YUV_InRange uv_in_range;
268*53ee8cc1Swenshuai.xi     GFX_YUV_422 srcfmt;
269*53ee8cc1Swenshuai.xi     GFX_YUV_422 dstfmt;
270*53ee8cc1Swenshuai.xi }GFX_Set_CSC;
271*53ee8cc1Swenshuai.xi 
272*53ee8cc1Swenshuai.xi typedef struct
273*53ee8cc1Swenshuai.xi {
274*53ee8cc1Swenshuai.xi    GFX_Point*                   pV0;
275*53ee8cc1Swenshuai.xi    GFX_Point*                   pV1;
276*53ee8cc1Swenshuai.xi }GFX_Set_Clip_Property, GFX_Get_Clip_Property;
277*53ee8cc1Swenshuai.xi 
278*53ee8cc1Swenshuai.xi typedef struct
279*53ee8cc1Swenshuai.xi {
280*53ee8cc1Swenshuai.xi     GFX_Dst_BufferInfo*         pDstbufInfo;
281*53ee8cc1Swenshuai.xi     GFX_RectFillInfo*           pRectFillInfo;
282*53ee8cc1Swenshuai.xi }GFX_Set_RectFillInfo;
283*53ee8cc1Swenshuai.xi 
284*53ee8cc1Swenshuai.xi typedef struct
285*53ee8cc1Swenshuai.xi {
286*53ee8cc1Swenshuai.xi     GFX_Dst_BufferInfo*         pDstbufInfo;
287*53ee8cc1Swenshuai.xi     GFX_TriFillInfo*           pTriFillInfo;
288*53ee8cc1Swenshuai.xi }GFX_Set_TriFillInfo;
289*53ee8cc1Swenshuai.xi 
290*53ee8cc1Swenshuai.xi typedef struct
291*53ee8cc1Swenshuai.xi {
292*53ee8cc1Swenshuai.xi     GFX_Dst_BufferInfo*         pDstbufInfo;
293*53ee8cc1Swenshuai.xi     GFX_SpanFillInfo*           pSpanFillInfo;
294*53ee8cc1Swenshuai.xi }GFX_Set_SpanFillInfo;
295*53ee8cc1Swenshuai.xi 
296*53ee8cc1Swenshuai.xi typedef struct
297*53ee8cc1Swenshuai.xi {
298*53ee8cc1Swenshuai.xi     GFX_Src_BufferInfo*         pSrcbufInfo;            ///Width/Height/Pitch/Colofmt
299*53ee8cc1Swenshuai.xi     GFX_Dst_BufferInfo*         pDstbufInfo;
300*53ee8cc1Swenshuai.xi     GFX_DrawRect*               pDrawRect;              ///Position
301*53ee8cc1Swenshuai.xi     GFX_ScaleInfo*              pScaleInfo;             ///ScaleInfo
302*53ee8cc1Swenshuai.xi     MS_U32                      u32DrawFlag;
303*53ee8cc1Swenshuai.xi     void*                       pIntensity;             ///I1/I2/I4
304*53ee8cc1Swenshuai.xi }GFX_BitBltInfo;
305*53ee8cc1Swenshuai.xi 
306*53ee8cc1Swenshuai.xi typedef struct
307*53ee8cc1Swenshuai.xi {
308*53ee8cc1Swenshuai.xi     GFX_Src_BufferInfo*         pSrcbufInfo_0;            ///Width/Height/Pitch/Colofmt
309*53ee8cc1Swenshuai.xi     GFX_Src_BufferInfo*         pSrcbufInfo_1;            ///Width/Height/Pitch/Colofmt
310*53ee8cc1Swenshuai.xi     GFX_Dst_BufferInfo*         pDstbufInfo;
311*53ee8cc1Swenshuai.xi     GFX_DrawTwoSourceRect*      pDrawTwoSrcRect;              ///Position
312*53ee8cc1Swenshuai.xi     MS_U32                      u32DrawFlag;
313*53ee8cc1Swenshuai.xi }GFX_TwoSrc_BitBltInfo;
314*53ee8cc1Swenshuai.xi 
315*53ee8cc1Swenshuai.xi typedef struct
316*53ee8cc1Swenshuai.xi {
317*53ee8cc1Swenshuai.xi     GFX_Src_BufferInfo*         pSrcbufInfo;            ///Width/Height/Pitch/Colofmt
318*53ee8cc1Swenshuai.xi     GFX_Dst_BufferInfo*         pDstbufInfo;
319*53ee8cc1Swenshuai.xi     MS_S32                      handle;
320*53ee8cc1Swenshuai.xi     GFX_DrawBmpInfo*            pBmpInfo;
321*53ee8cc1Swenshuai.xi }GFX_Bitmap;
322*53ee8cc1Swenshuai.xi 
323*53ee8cc1Swenshuai.xi typedef struct
324*53ee8cc1Swenshuai.xi {
325*53ee8cc1Swenshuai.xi     GFX_Src_BufferInfo*         pSrcbufInfo;            ///Width/Height/Pitch/Colofmt
326*53ee8cc1Swenshuai.xi     GFX_Dst_BufferInfo*         pDstbufInfo;
327*53ee8cc1Swenshuai.xi     MS_S32                      fHandle;
328*53ee8cc1Swenshuai.xi     MS_U32*                     pIndex;
329*53ee8cc1Swenshuai.xi     MS_U32                      u32StrWidth;
330*53ee8cc1Swenshuai.xi     GFX_TextOutInfo*            pTextInfo;
331*53ee8cc1Swenshuai.xi }GFX_TextOut;
332*53ee8cc1Swenshuai.xi 
333*53ee8cc1Swenshuai.xi typedef struct
334*53ee8cc1Swenshuai.xi {
335*53ee8cc1Swenshuai.xi     GFX_Src_BufferInfo*         pSrcbufInfo;            ///Width/Height/Pitch/Colofmt
336*53ee8cc1Swenshuai.xi     GFX_Dst_BufferInfo*         pDstbufInfo;
337*53ee8cc1Swenshuai.xi     GFX_CharInfo*               pChar;
338*53ee8cc1Swenshuai.xi     GFX_TextOutInfo*            pTextInfo;
339*53ee8cc1Swenshuai.xi }GFX_CharacterOut;
340*53ee8cc1Swenshuai.xi 
341*53ee8cc1Swenshuai.xi typedef struct
342*53ee8cc1Swenshuai.xi {
343*53ee8cc1Swenshuai.xi     MS_PHY StrAddr;
344*53ee8cc1Swenshuai.xi     MS_U32 length;
345*53ee8cc1Swenshuai.xi     MS_U32 ClearValue;
346*53ee8cc1Swenshuai.xi }GFX_ClearFrameBuffer;
347*53ee8cc1Swenshuai.xi 
348*53ee8cc1Swenshuai.xi typedef struct
349*53ee8cc1Swenshuai.xi {
350*53ee8cc1Swenshuai.xi     MS_BOOL enable;
351*53ee8cc1Swenshuai.xi     MS_U8 linePattern;
352*53ee8cc1Swenshuai.xi     MS_U8 repeatFactor;
353*53ee8cc1Swenshuai.xi }GFX_SetLinePattern;
354*53ee8cc1Swenshuai.xi 
355*53ee8cc1Swenshuai.xi typedef struct
356*53ee8cc1Swenshuai.xi {
357*53ee8cc1Swenshuai.xi     MS_PHY tlb_src_addr;
358*53ee8cc1Swenshuai.xi     MS_PHY tlb_dst_addr;
359*53ee8cc1Swenshuai.xi }GFX_SetTLB_Addr;
360*53ee8cc1Swenshuai.xi 
361*53ee8cc1Swenshuai.xi /*===================================================================================================================
362*53ee8cc1Swenshuai.xi      Input Strucure
363*53ee8cc1Swenshuai.xi ====================================================================================================================*/
364*53ee8cc1Swenshuai.xi typedef enum
365*53ee8cc1Swenshuai.xi {
366*53ee8cc1Swenshuai.xi     E_GFX_INIT_VER0             =0,
367*53ee8cc1Swenshuai.xi }EN_GFX_INIT_VER;
368*53ee8cc1Swenshuai.xi 
369*53ee8cc1Swenshuai.xi typedef enum
370*53ee8cc1Swenshuai.xi {
371*53ee8cc1Swenshuai.xi     E_GFX_GET_INFO_VER0         =0,
372*53ee8cc1Swenshuai.xi }EN_GFX_GET_INFO_VER;
373*53ee8cc1Swenshuai.xi 
374*53ee8cc1Swenshuai.xi typedef enum
375*53ee8cc1Swenshuai.xi {
376*53ee8cc1Swenshuai.xi     E_GFX_GET_CAPS_VER0         =0,
377*53ee8cc1Swenshuai.xi }EN_GFX_GET_CAPS_VER;
378*53ee8cc1Swenshuai.xi 
379*53ee8cc1Swenshuai.xi typedef enum
380*53ee8cc1Swenshuai.xi {
381*53ee8cc1Swenshuai.xi     E_GFX_LINEDRAW_VER0         =0,
382*53ee8cc1Swenshuai.xi }EN_GFX_LINEDRAW_VER;
383*53ee8cc1Swenshuai.xi 
384*53ee8cc1Swenshuai.xi typedef enum
385*53ee8cc1Swenshuai.xi {
386*53ee8cc1Swenshuai.xi     E_GFX_RECTFILL_VER0         =0,
387*53ee8cc1Swenshuai.xi }EN_GFX_RECTFILL_VER;
388*53ee8cc1Swenshuai.xi 
389*53ee8cc1Swenshuai.xi typedef enum
390*53ee8cc1Swenshuai.xi {
391*53ee8cc1Swenshuai.xi     E_GFX_TRIFILL_VER0         =0,
392*53ee8cc1Swenshuai.xi }EN_GFX_TRIFILL_VER;
393*53ee8cc1Swenshuai.xi 
394*53ee8cc1Swenshuai.xi typedef enum
395*53ee8cc1Swenshuai.xi {
396*53ee8cc1Swenshuai.xi     E_GFX_SPANFILL_VER0         =0,
397*53ee8cc1Swenshuai.xi }EN_GFX_SPANFILL_VER;
398*53ee8cc1Swenshuai.xi 
399*53ee8cc1Swenshuai.xi typedef enum
400*53ee8cc1Swenshuai.xi {
401*53ee8cc1Swenshuai.xi     E_GFX_BITBLT_VER0           =0,
402*53ee8cc1Swenshuai.xi }EN_GFX_BITBLT_VER;
403*53ee8cc1Swenshuai.xi 
404*53ee8cc1Swenshuai.xi typedef enum
405*53ee8cc1Swenshuai.xi {
406*53ee8cc1Swenshuai.xi     E_GFX_ABL_VER0              =0,
407*53ee8cc1Swenshuai.xi }EN_GFX_ABL_VER;
408*53ee8cc1Swenshuai.xi 
409*53ee8cc1Swenshuai.xi typedef enum
410*53ee8cc1Swenshuai.xi {
411*53ee8cc1Swenshuai.xi     E_GFX_SET_CONFIG_VER0       =0,
412*53ee8cc1Swenshuai.xi }EN_GFX_SET_CONFIG_VER;
413*53ee8cc1Swenshuai.xi 
414*53ee8cc1Swenshuai.xi typedef enum
415*53ee8cc1Swenshuai.xi {
416*53ee8cc1Swenshuai.xi     E_GFX_BITMAP_VER0           =0,
417*53ee8cc1Swenshuai.xi }EN_GFX_BITMAP_VER;
418*53ee8cc1Swenshuai.xi 
419*53ee8cc1Swenshuai.xi typedef enum
420*53ee8cc1Swenshuai.xi {
421*53ee8cc1Swenshuai.xi     E_GFX_TEXT_VER0             =0,
422*53ee8cc1Swenshuai.xi }EN_GFX_TEXTOUT_VER;
423*53ee8cc1Swenshuai.xi 
424*53ee8cc1Swenshuai.xi typedef enum
425*53ee8cc1Swenshuai.xi {
426*53ee8cc1Swenshuai.xi     E_GFX_POWERSTATE_VER0       =0,
427*53ee8cc1Swenshuai.xi }EN_GFX_POWERSTATE_VER;
428*53ee8cc1Swenshuai.xi 
429*53ee8cc1Swenshuai.xi typedef enum
430*53ee8cc1Swenshuai.xi {
431*53ee8cc1Swenshuai.xi     E_GFX_CB_VER0               =0,
432*53ee8cc1Swenshuai.xi }EN_GFX_CB_VER;
433*53ee8cc1Swenshuai.xi 
434*53ee8cc1Swenshuai.xi typedef enum
435*53ee8cc1Swenshuai.xi {
436*53ee8cc1Swenshuai.xi     E_GFX_MISC_VER0             =0,
437*53ee8cc1Swenshuai.xi }EN_GFX_MISC_VER;
438*53ee8cc1Swenshuai.xi 
439*53ee8cc1Swenshuai.xi typedef enum
440*53ee8cc1Swenshuai.xi {
441*53ee8cc1Swenshuai.xi     E_GFX_TLB_VER0              =0,
442*53ee8cc1Swenshuai.xi }EN_GFX_TLB_VER;
443*53ee8cc1Swenshuai.xi 
444*53ee8cc1Swenshuai.xi typedef enum
445*53ee8cc1Swenshuai.xi {
446*53ee8cc1Swenshuai.xi     E_GFX_DRAW_OVAL_VER0              =0,
447*53ee8cc1Swenshuai.xi }EN_GFX_DRAW_OVAL_VER;
448*53ee8cc1Swenshuai.xi 
449*53ee8cc1Swenshuai.xi typedef struct
450*53ee8cc1Swenshuai.xi {
451*53ee8cc1Swenshuai.xi     EN_GFX_INIT_VER             eVerType;
452*53ee8cc1Swenshuai.xi     GFX_Init_Config*            pGFX_Init;
453*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
454*53ee8cc1Swenshuai.xi }GFX_INIT_ARGS;
455*53ee8cc1Swenshuai.xi 
456*53ee8cc1Swenshuai.xi typedef struct
457*53ee8cc1Swenshuai.xi {
458*53ee8cc1Swenshuai.xi     EN_GFX_GET_INFO_VER         eVerType;
459*53ee8cc1Swenshuai.xi     EN_GFX_GET_CONFIG           eGFX_GetConfig;
460*53ee8cc1Swenshuai.xi     void*                       pGFX_GetInfo;
461*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
462*53ee8cc1Swenshuai.xi }GFX_GETINFO_ARGS;
463*53ee8cc1Swenshuai.xi 
464*53ee8cc1Swenshuai.xi typedef struct
465*53ee8cc1Swenshuai.xi {
466*53ee8cc1Swenshuai.xi     EN_GFX_GET_CAPS_VER         eVerType;
467*53ee8cc1Swenshuai.xi     EN_GFX_CAPS                 eCaps;
468*53ee8cc1Swenshuai.xi     void*                       pGFX_GetCaps;
469*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
470*53ee8cc1Swenshuai.xi }GFX_GETCAPS_ARGS;
471*53ee8cc1Swenshuai.xi 
472*53ee8cc1Swenshuai.xi typedef struct
473*53ee8cc1Swenshuai.xi {
474*53ee8cc1Swenshuai.xi     GFX_Dst_BufferInfo*         pDstbufInfo;
475*53ee8cc1Swenshuai.xi     GFX_DrawLineInfo*           pDrawLineInfo;
476*53ee8cc1Swenshuai.xi }GFX_Set_DrawLineInfo;
477*53ee8cc1Swenshuai.xi 
478*53ee8cc1Swenshuai.xi 
479*53ee8cc1Swenshuai.xi typedef struct
480*53ee8cc1Swenshuai.xi {
481*53ee8cc1Swenshuai.xi     EN_GFX_LINEDRAW_VER         eVerType;
482*53ee8cc1Swenshuai.xi     GFX_Set_DrawLineInfo*       pLineInfo;
483*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
484*53ee8cc1Swenshuai.xi }GFX_LINEDRAW_ARGS;
485*53ee8cc1Swenshuai.xi 
486*53ee8cc1Swenshuai.xi typedef struct
487*53ee8cc1Swenshuai.xi {
488*53ee8cc1Swenshuai.xi     EN_GFX_RECTFILL_VER         eVerType;
489*53ee8cc1Swenshuai.xi     GFX_Set_RectFillInfo*       pFillBlock;
490*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
491*53ee8cc1Swenshuai.xi }GFX_RECTFILL_ARGS;
492*53ee8cc1Swenshuai.xi 
493*53ee8cc1Swenshuai.xi typedef struct
494*53ee8cc1Swenshuai.xi {
495*53ee8cc1Swenshuai.xi     EN_GFX_TRIFILL_VER         eVerType;
496*53ee8cc1Swenshuai.xi     GFX_Set_TriFillInfo*       pFillBlock;
497*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
498*53ee8cc1Swenshuai.xi }GFX_TRIFILL_ARGS;
499*53ee8cc1Swenshuai.xi 
500*53ee8cc1Swenshuai.xi typedef struct
501*53ee8cc1Swenshuai.xi {
502*53ee8cc1Swenshuai.xi     EN_GFX_SPANFILL_VER         eVerType;
503*53ee8cc1Swenshuai.xi     GFX_Set_SpanFillInfo*       pFillBlock;
504*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
505*53ee8cc1Swenshuai.xi }GFX_SPANFILL_ARGS;
506*53ee8cc1Swenshuai.xi 
507*53ee8cc1Swenshuai.xi typedef struct
508*53ee8cc1Swenshuai.xi {
509*53ee8cc1Swenshuai.xi     EN_GFX_BITBLT_VER           eVerType;
510*53ee8cc1Swenshuai.xi     GFX_BitBltInfo*             pGFX_BitBlt;
511*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
512*53ee8cc1Swenshuai.xi }GFX_BITBLT_ARGS;
513*53ee8cc1Swenshuai.xi 
514*53ee8cc1Swenshuai.xi typedef struct
515*53ee8cc1Swenshuai.xi {
516*53ee8cc1Swenshuai.xi     EN_GFX_BITBLT_VER           eVerType;
517*53ee8cc1Swenshuai.xi     GFX_TwoSrc_BitBltInfo*      pGFX_TwoSrc_BitBlt;
518*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
519*53ee8cc1Swenshuai.xi }GFX_TWOSRC_BITBLT_ARGS;
520*53ee8cc1Swenshuai.xi 
521*53ee8cc1Swenshuai.xi typedef struct
522*53ee8cc1Swenshuai.xi {
523*53ee8cc1Swenshuai.xi     EN_GFX_ABL_VER              eVerType;
524*53ee8cc1Swenshuai.xi     EN_GFX_SET_ABL              eGFX_SetABL;
525*53ee8cc1Swenshuai.xi     void*                       pGFX_ABL;
526*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
527*53ee8cc1Swenshuai.xi }GFX_ABL_ARGS;
528*53ee8cc1Swenshuai.xi 
529*53ee8cc1Swenshuai.xi typedef struct
530*53ee8cc1Swenshuai.xi {
531*53ee8cc1Swenshuai.xi     EN_GFX_SET_CONFIG_VER       eVerType;
532*53ee8cc1Swenshuai.xi     EN_GFX_SET_CONFIG           eGFX_SetConfig;
533*53ee8cc1Swenshuai.xi     void*                       pGFX_ConfigInfo;
534*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
535*53ee8cc1Swenshuai.xi }GFX_SETCONFIG_ARGS;
536*53ee8cc1Swenshuai.xi 
537*53ee8cc1Swenshuai.xi typedef struct
538*53ee8cc1Swenshuai.xi {
539*53ee8cc1Swenshuai.xi     EN_GFX_BITMAP_VER           eVerType;
540*53ee8cc1Swenshuai.xi     GFX_Bitmap*                 pGFX_Bitmap;
541*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
542*53ee8cc1Swenshuai.xi }GFX_BITMAP_ARGS;
543*53ee8cc1Swenshuai.xi 
544*53ee8cc1Swenshuai.xi typedef struct
545*53ee8cc1Swenshuai.xi {
546*53ee8cc1Swenshuai.xi     EN_GFX_TEXTOUT_VER          eVerType;
547*53ee8cc1Swenshuai.xi     GFX_TEXTTYPE                eGFX_TextType;
548*53ee8cc1Swenshuai.xi     void*                       pGFX_TextOut;
549*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
550*53ee8cc1Swenshuai.xi }GFX_TEXTOUT_ARGS;
551*53ee8cc1Swenshuai.xi 
552*53ee8cc1Swenshuai.xi typedef struct
553*53ee8cc1Swenshuai.xi {
554*53ee8cc1Swenshuai.xi     EN_GFX_POWERSTATE_VER       eVerType;
555*53ee8cc1Swenshuai.xi     EN_POWER_MODE               eGFX_PowerStateType;
556*53ee8cc1Swenshuai.xi     void*                       pGFX_PowerState;
557*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
558*53ee8cc1Swenshuai.xi }GFX_POWERSTATE_ARGS;
559*53ee8cc1Swenshuai.xi 
560*53ee8cc1Swenshuai.xi typedef struct
561*53ee8cc1Swenshuai.xi {
562*53ee8cc1Swenshuai.xi     EN_GFX_CB_VER               eVerType;
563*53ee8cc1Swenshuai.xi     EN_GFX_CB_MODE              eGFX_CBType;
564*53ee8cc1Swenshuai.xi     void*                       pGFX_CBInfo;
565*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
566*53ee8cc1Swenshuai.xi }GFX_CB_ARGS;
567*53ee8cc1Swenshuai.xi 
568*53ee8cc1Swenshuai.xi typedef struct
569*53ee8cc1Swenshuai.xi {
570*53ee8cc1Swenshuai.xi     EN_GFX_MISC_VER             eVerType;
571*53ee8cc1Swenshuai.xi     EN_GFX_MISC_MODE            eGFX_MISCType;
572*53ee8cc1Swenshuai.xi     void*                       pGFX_Info;
573*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
574*53ee8cc1Swenshuai.xi }GFX_MISC_ARGS;
575*53ee8cc1Swenshuai.xi 
576*53ee8cc1Swenshuai.xi typedef enum
577*53ee8cc1Swenshuai.xi {
578*53ee8cc1Swenshuai.xi     E_GFX_TLB_SET_MODE,
579*53ee8cc1Swenshuai.xi     E_GFX_TLB_SET_ADDR,
580*53ee8cc1Swenshuai.xi     E_GFX_TLB_FLUSH_TABLE,
581*53ee8cc1Swenshuai.xi     E_GFX_TLB_TAG,
582*53ee8cc1Swenshuai.xi }EN_GFX_TLB_CMD;
583*53ee8cc1Swenshuai.xi 
584*53ee8cc1Swenshuai.xi typedef struct _GFX_TLB_ARGS
585*53ee8cc1Swenshuai.xi {
586*53ee8cc1Swenshuai.xi     EN_GFX_TLB_CMD              en_cmd;
587*53ee8cc1Swenshuai.xi     EN_GFX_TLB_VER              eVerType;
588*53ee8cc1Swenshuai.xi     EN_GFX_TLB_Mode             TLB_mode;
589*53ee8cc1Swenshuai.xi     void*                       psetting;
590*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
591*53ee8cc1Swenshuai.xi }GFX_TLB_ARGS, *PGFX_TLB_ARGS;
592*53ee8cc1Swenshuai.xi 
593*53ee8cc1Swenshuai.xi typedef struct
594*53ee8cc1Swenshuai.xi {
595*53ee8cc1Swenshuai.xi     EN_GFX_DRAW_OVAL_VER        eVerType;
596*53ee8cc1Swenshuai.xi     void*                       psetting;
597*53ee8cc1Swenshuai.xi     MS_U32                      u32Size;
598*53ee8cc1Swenshuai.xi }GFX_DRAW_OVAL_ARGS;
599*53ee8cc1Swenshuai.xi 
600*53ee8cc1Swenshuai.xi 
601