📄 drvgop.h
字号:
U32 uARGB4444_R: 4;
/// A4 Reserved
U32 uARGB4444_reserved: 4;
/// Reserved
U32 uARGB4444_reserved1: 16;
}ARGB4444;
/// RGB555
struct
{
/// B5
U32 uRGB555_B: 5;
/// G5
U32 uRGB555_G: 5;
/// R5
U32 uRGB555_R: 5;
/// A4
/// Reserved
U32 RGB555_reserved: 1;
U32 RGB555_reserved1: 16;
}RGB555;
/// RGB565
struct
{
/// B5
U32 uRGB565_B: 5;
/// G5
U32 uRGB565_G: 6;
/// R5
U32 uRGB565_R: 5;
/// Reserved
U32 uGB565_reserved: 16;
}RGB565;
/// I8
struct
{
/// I8_Index
U32 uI8_Index: 8;
/// Reserved
U32 uI8_reserved: 8;
U32 uI8_reserved1: 16;
}I8;
///BLINK
struct
{
///BG Palette Index
U32 uBLINK_BG_Index: 5;
///FG Palette Index
U32 uBLINK_FG_Index: 5;
///Reserved
U32 uBLINK_reserved: 6;
U32 uBLINK_reserved1: 16;
}BLINK;
///ALPHA_BLINK
struct
{
///ALPHA_BLINK BG Palette Index
U32 uALPHABLINK_BG_Index: 3;
///ALPHA_BLINK FG Palette Index
U32 uALPHABLINK_FG_Index: 3;
///ALPHA_BLINK ALPHA
U32 uALPHABLINK_ALPHA: 4;
///Reserved
U32 uALPHABLINK_reserved: 6;
U32 uALPHABLINK_reserved1: 16;
}ALPHA_BLINK;
// 32-bit direct access.
#endif
U32 u32Data;
} GopTRSColorEntry;
/// GWIN Information
typedef struct
{
U16 u16DispVPixelStart; //!< unit: pix
U16 u16DispVPixelEnd; //!< unit: pix
U16 u16DispHPixelStart; //!< unit: pix
U16 u16DispHPixelEnd; //!< unit: pix
U32 u32DRAMRBlkStart; //!< unit: Byte
U16 u16RBlkHPixSize; //!< unit: pix
U16 u16RBlkVPixSize; //!< unit: pix
U16 u16RBlkHRblkSize; //!< unit: Byte
U16 u16WinX; //!< unit: pix
U16 u16WinY; //!< unit: pix
U32 u32scrX; //!< unit: pix
U32 u32scrY; //!< unit: pix
GOPColorType clrType; //!< color format of the buffer
U8 u8Enable;
} GOP_GWIN_INFO;
/// Dump Window Information
typedef struct
{
U16 u16VPixelStart; //!< unit: pix
U16 u16VPixelEnd; //!< unit: pix
U16 u16HPixelStart; //!< unit: pix
U16 u16HPixelEnd; //!< unit: pix
U32 u32TFDRAMAddr; //!< unit: Byte
U32 u32BFDRAMAddr; //!< unit: Byte
U16 u16DRAMJumpLen; //!< unit: Byte
U8 u8fmt; //!< DWIN format: 0 UV7Y8, 1 UV8Y8, 2 ARGB8888, 3 RGB565
} GOP_DWIN_INFO;
/// GWIN display property
typedef struct
{
U8 gId; ///< id
U16 StartX; ///< start x coordinate
U16 StartY; ///< start y coordinate
U16 Win_Width; ///< win width
U16 Win_Height; ///< win height
U16 FBOffset_X;///< frame buffer offset x
U16 FBOffset_Y;///< frame buffer offset y
U16 GOPWinWidth;
} GOP_GWIN_DISP_PROPERTY;
/// multi-window support
#define MAX_GWIN_SUPPORT 8
#define MAX_GWIN_FB_SUPPORT 16
#define MAX_GOP_SUPPORT 2
#define MAX_GOP_ALPHABLINK_INDEX 8
/// Frame buffer attributes for GWIN
typedef struct
{
U8 gWinId; ///< id
U8 enable:1; ///< 4bits enable
U8 allocated:1; ///< 4bits
U16 x0; ///< U16
U16 y0; ///< U16
U16 x1; ///< U16
U16 y1; ///< U16
U16 width; ///< U16
U16 height; ///< U16
U16 pitch; ///< U16
U16 fbFmt; ///< U16
U32 addr; ///< U32
U32 size; ///< U32
U8 next; ///< U8
U8 prev; ///< U8
} Gwin_FB_Attr;
typedef enum
{
MS_IP0_SEL_GOP0,
MS_IP0_SEL_GOP1,
MS_IP1_SEL_GOP0,
MS_IP1_SEL_GOP1,
MS_NIP_SEL_GOP0,
MS_NIP_SEL_GOP1
}MS_IPSEL_GOP;
/// Define scroll auto stop type.
typedef enum
{
/// Does not scroll auto stop.
GOP_SCROLL_AUTOSTOP_NONE = 0,
/// Scroll stop automatically on specified V offset.
GOP_SCROLL_AUTOSTOP_VR = 1,
/// Scroll stop automatically on specified H offset.
GOP_SCROLL_AUTOSTOP_HR = 2,
/// Scroll stop automatically on specified V offset or H offset.
GOP_SCROLL_AUTOSTOP_ALL = 3
} GopScrollAutoStopType;
#define GOP_DST_TYPE_VALIDBITS 2
extern void MDrv_GOP_Init();
// GWin
extern void MDrv_GOP_GWIN_Enable(U8 u8win, BOOLEAN bEnable);
extern BOOLEAN MDrv_GOP_GWIN_IsGWINEnabled(U8 u8win);
extern BOOLEAN MDrv_GOP_GWIN_IsEnabled(void);
extern void MDrv_GOP_GWIN_Reset();
extern void MDrv_GOP_GWIN_SetForceWrite(BOOLEAN bEnable);
extern void MDrv_GOP_GWIN_EnableProgressive(BOOLEAN bEnable);
extern void MDrv_GOP_GWIN_EnableHDup(BOOLEAN bEnable);
extern void MDrv_GOP_GWIN_EnableVDup(BOOLEAN bEnable);
extern void MDrv_GOP_GWIN_OutputColor(GOPOUTPUTCOLOR type);
//extern void MDrv_GOP_GWIN_OutputDest(GOPOUTPUTDEST type);
extern void MDrv_GOP_GWIN_SetTransClr_8888(U32 clr, U32 mask);
extern void MDrv_GOP_GWIN_SetTransClr(GOPTRANSCLRFMT fmt, U16 clr);
extern void MDrv_GOP_GWIN_EnableTransClr(GOPTRANSCLRFMT fmt, BOOLEAN bEnable);
extern void MDrv_GOP_GWIN_SetAlpha(U16 * u16GWin01Alpha, U16 * u16GWin23Alpha);
extern void MDrv_GOP_GWIN_GetAlpha(U16 * u16GWin01Alpha, U16 * u16GWin23Alpha);
extern void MDrv_GOP_GWIN_SetBlink(BOOLEAN bEnable, U8 u8rate);
#if 1
extern void MDrv_GOP_GWIN_SetScrollRate(U8 u8rate);
extern void MDrv_GOP_GWIN_SetHScroll(U8 u8win, GOPSCROLLTYPE type, BOOLEAN bEnable);
extern void MDrv_GOP_GWIN_SetVScroll(U8 u8win, GOPSCROLLTYPE type, BOOLEAN bEnable);
extern void MDrv_GOP_GWIN_Back2PrevWin();
extern void MDrv_GOP_GWIN_Swap(U8 gId0, U8 gId1);
extern void MDrv_GOP_ClearIntr(U8 u8mask);
extern void MDrv_GOP_EnableIntr(U8 u8mask, BOOLEAN bEnable);
extern U8 MDrv_GOP_GetIntrStatus();
extern U8 MDrv_GOP_GWIN_IsFBExist(U8 fbId);
#endif
extern void MDrv_GOP_GWIN_SetPalette();
extern void MDrv_GOP_GWIN_SetBlending(U8 u8win, BOOLEAN bEnable, U8 u8coef);
extern void MDrv_GOP_GWIN_SetWinInfo(U8 u8win, GOP_GWIN_INFO* pinfo);
extern void MDrv_GOP_GWIN_GetWinInfo(U8 u8win, GOP_GWIN_INFO* pinfo);
extern void MDrv_GOP_GWIN_SetDuplication(U8 hext, U8 vext);
extern void MDrv_GOP_GWIN_Extend(U8 hext, U8 vext);
extern void MDrv_GOP_GWIN_Hibernate();
extern void MDrv_GOP_GWIN_Wakeup();
// DWin
extern void MDrv_GOP_DWIN_SetForceWrite(BOOLEAN bEnable);
extern void MDrv_GOP_DWIN_EnableCaptureStream(BOOLEAN bEnable);
extern void MDrv_GOP_DWIN_CaptureOneFrame();
extern void MDrv_GOP_DWIN_SetWinInfo(GOP_DWIN_INFO* pinfo);
extern void MDrv_GOP_DWIN_GetWinInfo(GOP_DWIN_INFO* pinfo);
extern void MDrv_GOP_DWIN_EnableProgressive(BOOLEAN bEnable);
//extern void MDrv_GOP_DWIN_EnableRGB(BOOLEAN bEnable);
//extern void MDrv_GOP_DWIN_SelectSourceFmt(EN_GOP_DWIN_DATA_FMT enFmt);
extern void MDrv_GOP_DWIN_SelectSource(EN_GOP_DWIN_DATA_SRC enSrc);
extern void MDrv_GOP_DWIN_SelectSourceScanType(EN_GOP_DWIN_SCAN_TYPE enScan);
// GWin support for multiwin
extern void MDrv_GOP_GWIN_Init();
extern U8 MDrv_GOP_GWIN_CreateWin(U16 dispX, U16 dispY, U16 width, U16 height, U16 fbFmt);
extern void MDrv_GOP_GWIN_GetWinAttr(U8 gId, U16 *x0, U16 *y0, U16 *width, U16 *height, U16 *fbPitch, U16 *fbFmt, U32 *addr, U32 *size);
extern void MDrv_GOP_GWIN_DestroyWin(U8 gId);
extern U8 MDrv_GOP_GWIN_GetCurrentWinId();
extern void MDrv_GOP_GWIN_Switch2Win(U8 gId);
extern void MDrv_GOP_GWIN_Back2DefaultOSDWin();
extern U8 MDrv_GOP_GWIN_IsGwinExist(U8 gId);
extern void MDrv_GOP_GWIN_SetWinDispPosition(U8 gId, U16 dispX, U16 dispY);
extern void MDrv_GOP_GWIN_SetWinViewPosition(GOP_GWIN_DISP_PROPERTY WinProperty);
extern void MDrv_GOP_GWIN_SetWinProperty(GOP_GWIN_DISP_PROPERTY WinProperty);
extern void MDrv_GOP_GWIN_Resize(U8 gId, U16 width, U16 height, U8 colorindex, U16 *offsetY, FONTHANDLE CCFNTHDL);
// GWin Multiwin support for FB mgmt
extern U8 MDrv_GOP_GWIN_CreateFB(U8 fbId, U16 dispX, U16 dispY, U16 width, U16 height, U16 fbFmt);
extern void MDrv_GOP_GWIN_Switch2FB(U8 fbId);
extern U8 MDrv_GOP_GWIN_DestroyFB(U8 fbId);
extern void MDrv_GOP_GWIN_MapFB2Win(U8 fbId, U8 gwinId);
extern void MDrv_GOP_GWIN_GetFBInfo(U8 fbId, Gwin_FB_Attr *fbAttr);
extern void MDrv_GOP_GWIN_ReleaseWin(U8 gId);
// Interrupt
#define GOP_INTR_GWIN_VSYNC 0x1
#define GOP_INTR_DWIN_PROG 0x10
#define GOP_INTR_DWIN_TF 0x20
#define GOP_INTR_DWIN_BF 0x40
#define GOP_INTR_DWIN_VSYNC 0x80
// Gwin Testing
extern void MDrv_GOP_Tst_Init(U8 osdRtp, BOOLEAN bTst2Maria, BOOLEAN bTstClrEn, BOOLEAN bTstClrModeEn, U8 hDup, U8 vDup, U16 x0, U16 x1, U16 y0, U16 y1, U8 hext);
extern void MDrv_GOP_Tst_Set(GOP_TST_COLOR eClr, U8 stc, U8 hIncrSign, U8 hIncr, U8 hStep, U8 vIncrSign, U8 vIncr, U8 vStep);
extern void MDrv_GOP_Tst_Get(GOP_TST_COLOR eClr, U8 *stc, U8 *hIncrSign, U8 *hIncr, U8 *hStep, U8 *vIncrSign, U8 *vIncr, U8 *vStep);
//extern void MDrv_GOP_RGB_Data_Mode_Select(U8 rgb5541);
//extern void MDrv_GOP_Pallete_Data_Mode_Select(U8 argb3777);
INTERFACE BOOLEAN MDrv_GOP_DstPlane_Set(U8 u8GOP_num, GOPDstType eDstType);
INTERFACE void MDrv_Scaler_Set_GOPEnable(U8 gopNum, BOOLEAN bEnable);
INTERFACE void MDrv_Scaler_Set_GOPSel(MS_IPSEL_GOP ipSelGop);
INTERFACE void MDrv_ChipTop_SetGOPClk(U8 gopNum, GOPDstType eDstType);
INTERFACE void MDrv_GOP_GWIN_SetYUVOutput(void);
INTERFACE void MDrv_GOP_GWIN_SetRGBOutput(void);
INTERFACE void MDrv_GOP_GWIN_Enable_BGWIN(U8 bgwID, BOOLEAN bEnable);
INTERFACE void MDrv_GOP_GWIN_Set_BGWIN(U8 bgwID, U16 x0, U16 y0, U16 x1, U16 y1, U16 color);
INTERFACE void MDrv_GOP_GWIN_SetPaletteOpt( GopPaletteEntry *pPalArray, U16 u32PalStart, U16 u32PalEnd, GopPalType ePalType);
INTERFACE void MDrv_GOP_GWIN_SetWinFmt(U8 u8win, GOPColorType clrtype);
INTERFACE U8 MDrv_GOP_GWIN_BufFmtMap(U8 u8Type , U8 u8Fmt);
INTERFACE void MDrv_GOP_BANK_SEL(U8 u8bank, BOOLEAN force);
INTERFACE void MDrv_GOP_GWIN_EnableIntr(U16 u8mask, BOOLEAN bEnable);
INTERFACE void MDrv_GOP_GWIN_ClearIntr(U16 u8mask);
INTERFACE U16 MDrv_GOP_GWIN_GetIntrStatus();
INTERFACE void MDrv_GOP_DWIN_EnableIntr(U16 u8mask, BOOLEAN bEnable);
INTERFACE void MDrv_GOP_DWIN_ClearIntr(U16 u8mask);
INTERFACE void MDrv_GOP_DWIN_Set_CTRL0(U16 val, U16 mask);
INTERFACE U16 MDrv_GOP_DWIN_GetIntrStatus();
INTERFACE void MDrv_GOP_DWIN_SetDataFmt(EN_GOP_DWIN_DATA_FMT fmt) ;
INTERFACE void MDrv_GOP_DWIN_SetAlphaValue(U8 u8AlphaVal);
INTERFACE BOOLEAN MDrv_GOP_GWIN_Scroll_AutoStop_Enable( U8 u8Wid, GopScrollAutoStopType eScrollStopType, BOOLEAN bEnable);
INTERFACE U16 MDrv_GOP_CalcPitch(U8 fbFmt, U16 width);
INTERFACE U16 MDrv_GOP_GetBPP(U8 fbFmt);
INTERFACE U8 MDrv_GOP_Get_BANK();
INTERFACE void MDrv_GOP_GWIN_SetDecomp(U8 u8win, BOOLEAN bEnable);
INTERFACE U8 MDrv_GOP_GWIN_GetDecomp(U8 u8win);
INTERFACE void MDrv_GOP_GWIN_ReadPalette(U8 idx, U32* clr);
INTERFACE U8 MDrv_GOP_GWIN_IsFBExist(U8 fbId);
INTERFACE U16 MDrv_GOP_GWIN_GetMaxVEnd(BOOLEAN bActive);
INTERFACE U8 MDrv_GOP_GWIN_GetFBfromGWIN(U8 gwinID);
#undef INTERFACE
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -