135 lines
4.9 KiB
C
135 lines
4.9 KiB
C
|
/******************************************************************************\
|
|||
|
*
|
|||
|
* Copyright (c) 1996-1997 Microsoft Corporation.
|
|||
|
* Copyright (c) 1996-1997 Cirrus Logic, Inc.
|
|||
|
*
|
|||
|
* Module Name:
|
|||
|
*
|
|||
|
* O V E R L A Y . H
|
|||
|
*
|
|||
|
* This module contains common function prototypes and defines needed for
|
|||
|
* overlay support
|
|||
|
*
|
|||
|
* Revision History:
|
|||
|
*
|
|||
|
* tao1 10-22-96 Added direct draw support for CL-GD7555
|
|||
|
* myf1 03-12-97 Change new bandwidth check for CL-GD755X
|
|||
|
* myf2 03-31-97 Added direct draw support VPE
|
|||
|
* chu01 03-26-97 Bandwidth equation for the CL-GD5480
|
|||
|
* chu02 04-02-97 More overlay capabilities
|
|||
|
*
|
|||
|
\******************************************************************************/
|
|||
|
|
|||
|
|
|||
|
/* FOURCC definitions ------------------------------------*/
|
|||
|
|
|||
|
#define FOURCC_YUY2 '2YUY' // YUY2
|
|||
|
#define FOURCC_YUV422 'YVYU' // UYVY
|
|||
|
#define FOURCC_PACKJR 'RJLC' // CLJR
|
|||
|
#define FOURCC_YUVPLANAR 'LPLC' // CLPL
|
|||
|
#define FOURCC_YUV420 'LPLC' // CLPL
|
|||
|
|
|||
|
|
|||
|
/* surface flags -----------------------------------------*/
|
|||
|
|
|||
|
#define OVERLAY_FLG_BEGIN_ACCESS (DWORD)0x00000001
|
|||
|
#define OVERLAY_FLG_ENABLED (DWORD)0x00000002
|
|||
|
#define OVERLAY_FLG_CONVERT_PACKJR (DWORD)0x00000004
|
|||
|
#define OVERLAY_FLG_MUST_RASTER (DWORD)0x00000008
|
|||
|
#define OVERLAY_FLG_TWO_MEG (DWORD)0x00000010
|
|||
|
#define OVERLAY_FLG_CHECK (DWORD)0x00000020
|
|||
|
#define OVERLAY_FLG_COLOR_KEY (DWORD)0x00000040
|
|||
|
#define OVERLAY_FLG_INTERPOLATE (DWORD)0x00000080
|
|||
|
#define OVERLAY_FLG_OVERLAY (DWORD)0x00000100
|
|||
|
#define OVERLAY_FLG_YUV422 (DWORD)0x00000200
|
|||
|
#define OVERLAY_FLG_PACKJR (DWORD)0x00000400
|
|||
|
#define OVERLAY_FLG_USE_OFFSET (DWORD)0x00000800
|
|||
|
#define OVERLAY_FLG_YUVPLANAR (DWORD)0x00001000
|
|||
|
#define OVERLAY_FLG_SRC_COLOR_KEY (DWORD)0x00002000
|
|||
|
#define OVERLAY_FLG_DECIMATE (DWORD)0x00004000
|
|||
|
#define OVERLAY_FLG_CAPTURE (DWORD)0x00008000 //myf2, VPE
|
|||
|
|
|||
|
// chu02
|
|||
|
#define OVERLAY_FLG_DECIMATE4 (DWORD)0x00008000
|
|||
|
#define OVERLAY_FLG_YUY2 (DWORD)0x00010000
|
|||
|
#define OVERLAY_FLG_VW_PRIMARY (DWORD)0x00020000
|
|||
|
#define OVERLAY_FLG_VW_SECONDARY (DWORD)0x00040000
|
|||
|
#define OVERLAY_FLG_TWO_VIDEO (DWORD)0x00200000
|
|||
|
|
|||
|
/* display types (for portables) -------------------------*/
|
|||
|
|
|||
|
#define DTYPE_UNKNOWN (int)-1
|
|||
|
#define DTYPE_640_COLOR_SINGLE_STN 0
|
|||
|
#define DTYPE_640_MONO_DUAL_STN 1
|
|||
|
#define DTYPE_640_COLOR_DUAL_STN 2
|
|||
|
#define DTYPE_640_COLOR_SINGLE_TFT 3
|
|||
|
#define DTYPE_640_COLOR_DUAL_STN_SHARP 4
|
|||
|
#define DTYPE_800_COLOR_DUAL_STN 6
|
|||
|
#define DTYPE_800_COLOR_SINGLE_TFT 7
|
|||
|
#define DTYPE_CRT 32767
|
|||
|
|
|||
|
//myf32 #define MIN_OLAY_WIDTH 4 //minium overlay window width
|
|||
|
|
|||
|
#define OVERLAY_OLAY_SHOW 0x100 //overlay is hidden iff bit not set
|
|||
|
#define OVERLAY_OLAY_REENABLE 0x200 //overlay was fully clipped, need reenabling
|
|||
|
|
|||
|
|
|||
|
VOID GetFormatInfo(PDEV* ppdev, LPDDPIXELFORMAT lpFormat, LPDWORD lpFourcc,
|
|||
|
LPWORD lpBitCount);
|
|||
|
VOID RegInitVideo(PDEV* ppdev, PDD_SURFACE_LOCAL lpSurface);
|
|||
|
VOID DisableOverlay_544x(PDEV* ppdev);
|
|||
|
VOID EnableOverlay_544x(PDEV* ppdev);
|
|||
|
VOID RegMoveVideo(PDEV* ppdev, PDD_SURFACE_LOCAL lpSurface);
|
|||
|
VOID CalculateStretchCode (LONG srcLength, LONG dstLength, LPBYTE code);
|
|||
|
BYTE GetThresholdValue(VOID);
|
|||
|
BOOL MustLineReplicate (PDEV* ppdev, PDD_SURFACE_LOCAL lpSurface, WORD wVideoDepth);
|
|||
|
BOOL IsSufficientBandwidth(PDEV* ppdev, WORD wVideoDepth, LPRECTL lpSrc, LPRECTL lpDest, DWORD dwFlags);
|
|||
|
LONG GetVCLK(PDEV* ppdev);
|
|||
|
VOID EnableStartAddrDoubleBuffer(PDEV* ppdev);
|
|||
|
DWORD GetCurrentVLine(PDEV* ppdev);
|
|||
|
VOID ClearAltFIFOThreshold_544x(PDEV * ppdev);
|
|||
|
|
|||
|
// chu01
|
|||
|
BOOL Is5480SufficientBandwidth(PDEV* ppdev, WORD wVideoDepth, LPRECTL lpSrc, LPRECTL lpDest, DWORD dwFlags);
|
|||
|
|
|||
|
// curs //tao1
|
|||
|
typedef struct _BWREGS
|
|||
|
{
|
|||
|
BYTE bSR2F;
|
|||
|
BYTE bSR32;
|
|||
|
BYTE bSR34;
|
|||
|
BYTE bCR42;
|
|||
|
|
|||
|
BYTE bCR51;
|
|||
|
BYTE bCR5A;
|
|||
|
BYTE bCR5D;
|
|||
|
BYTE bCR5F;
|
|||
|
|
|||
|
}BWREGS, FAR *LPBWREGS;
|
|||
|
|
|||
|
BWREGS Regs; //myf33
|
|||
|
|
|||
|
//myf33 for panning scrolling enable & DirectDraw overlay use
|
|||
|
DWORD srcLeft_clip;
|
|||
|
DWORD srcTop_clip;
|
|||
|
BOOL bLeft_clip;
|
|||
|
BOOL bTop_clip;
|
|||
|
//myf33 end
|
|||
|
|
|||
|
VOID RegInit7555Video (PDEV *,PDD_SURFACE_LOCAL);
|
|||
|
VOID RegMove7555Video (PDEV *,PDD_SURFACE_LOCAL);
|
|||
|
VOID DisableVideoWindow (PDEV * );
|
|||
|
VOID EnableVideoWindow (PDEV * );
|
|||
|
VOID ClearAltFIFOThreshold (PDEV * );
|
|||
|
BOOL Is7555SufficientBandwidth(PDEV* ppdev, WORD wVideoDepth, LPRECTL lpSrc, LPRECTL lpDest, DWORD dwFlags);
|
|||
|
DWORD Get7555MCLK (PDEV *);
|
|||
|
BOOL IsDSTN(PDEV * );
|
|||
|
BOOL IsXGA (PDEV * );
|
|||
|
VOID PanOverlay1_Init(PDEV *,PDD_SURFACE_LOCAL, LPRECTL, LPRECTL, LPRECTL,
|
|||
|
DWORD, WORD); //myf33, DD init overlay data
|
|||
|
VOID PanOverlay7555 (PDEV *,LONG ,LONG); //myf33
|
|||
|
BOOL PanOverlay1_7555(PDEV *,LPRECTL); //myf33, PanOverlay7555 call
|
|||
|
|
|||
|
// end curs //tao1
|
|||
|
|