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