⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drvgop.h

📁 mstar 776 开发的车载dvd
💻 H
📖 第 1 页 / 共 2 页
字号:
        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 + -