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

📄 pdpal.h

📁 Lido PXA270平台开发板的最新BSP,包括源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
	PVRSRV_MEM_INFO*	  m_apOverlayConfigMem[NUM_OVERLAY_CONFIG_BUFFERS];
	IMG_UINT32			  m_ui32OverlayConfigMemIndex; /* Index to the next available OverlayConfig buffer */

	PDP_CURSOR_SHAPEINFO  m_sCursorShapeInfo;
	PVOID				  m_pvCursorAddress;
	PDP_RELATIVETIMES 	  m_sRelative;
	PDP_TEMPCURSOR		  m_sTempCursor;
	DWORD				  m_dwCursorRotation;
	PDPRegControl	      m_cRegControl;
	
	PPDP_EnumTableEntry	  m_psModeList;
	WORD				  m_wModeCount;
	PDP_ACTIVERECT		  m_sActiveRect;

	DWORD				  m_dwPixClock;

	BOOL				  m_bPixelDouble;
	BOOL				  m_bLineDouble;

	DRVESC_CONFIG_DISPLAY_SYSTEM m_sDisplayConfig;

// Overlay control variables here.

	// Destination position
	int 			m_nOvlTop;
	int 			m_nOvlLeft;
	int 			m_nOvlBottom;
	int 			m_nOvlRight;
	BOOL			m_bDestValid;
	
	// Source position
	WORD			m_wOvlSrcTop;
	WORD			m_wOvlSrcLeft;
	WORD			m_wOvlSrcBottom;
	WORD			m_wOvlSrcRight;
	BOOL			m_bSrcValid;

	// Colorkey
	DWORD			m_dwOvlCKeyValue;
	BOOL			m_bCKeyOn;

	// Pixel Format
	PDP_OVLFORMAT	m_eOvlPixFmt;
	BOOL			m_bPixFmtValid;
					
	// Visibility
	BOOL			m_bOvlVisible;


	// Address
	BOOL			m_bAddressValid;
	PVOID			m_pvOvlBase;			// Base address of overlay in RGB mode, and address of Y plane in planar modes
	PVOID			m_pvOvlUBase;
	PVOID			m_pvOvlVBase;

	// Buffer Dimensions
	BOOL			m_bWHSValid;
	WORD			m_wWidth;				// Width of overlay data in pixels
	WORD			m_wHeight;			// Height of overlay data in lines
	WORD			m_wStride;			// Stride of overlay in pixels


	DWORD			m_dwOldOvlSrcHeight;	// Overlay source and destination width and height as used in the GetCoeffs call.
	DWORD			m_dwOldOvlSrcWidth;
	DWORD			m_dwOldOvlDestHeight;
	DWORD			m_dwOldOvlDestWidth;



	// Deinterlacing;
	PDP_DEINTERLACE m_DeInterlace;		// Can be either WEAVE, BOB_ODDD or BOB_EVEN

	DWORD			m_dwUpdateFields;	// This holds a list of all the members which have changed since
										// Update last occured

	PDP_CONTRAST	m_Contrast;
	PDP_BRIGHTNESS	m_Brightness;
	PDP_GAMMA		m_Gamma;

	PDP_CONTRAST	m_VidContrast;
	PDP_BRIGHTNESS	m_VidBrightness;
	PDP_GAMMA		m_VidGamma;

	BYTE			abyGammaRamp[17];	  	// The Gamma Ramp
	BYTE			abyVidGammaRamp[17];	// The Gamma Ramp
	PDP_PALETTE		m_asPalette[256];		// The Palette

	DWORD			m_dwPanel;				//Panel PDP is drivering
	DWORD			m_dwPanelLCDPort;		//LCD port panel is connected too
	DWORD			m_dwPWMPort;			//PWM port used with above panel

	DWORD			m_dwPanelOther;			//Other Panel in system
	DWORD			m_dwPanelLCDPortOther;	//LCD port of other panel
	DWORD			m_dwPWMPortOther;		//PWM port used with above panel

	DWORD			m_dwBacklight;
	DWORD			m_dwBacklightPeriod;

	DWORD			m_dwInternal;
	DWORD			m_dwExternal;

	PDP_DISPLAY_UPDATE	m_eDisplayUpdate;	// Display update frequency type;
	WORD			m_wUpdateWait;			// Number of frames between updates when in reduced mode.
	BOOL			m_bFullRateSyncs;		// Generate syncs at full rate or reduced rate
	BOOL			m_bFullRateInterrupts;	// Generate Interrupts at Full timing rate or reduced rate.
#ifdef SUPPORT_POWER_STATE
	PVR_POWER_STATE m_eLastState;
#endif
	BOOL			m_bUserOutputMask;		// The OutputMask control memebers.
	DWORD			m_dwUserLowPowerMask;
	DWORD			m_dwUserFullPowerMask;
	DWORD			m_dwDefaultLowPowerMask;
	DWORD			m_dwDefaultFullPowerMask;



	DWORD			m_dwStr1;
	DWORD			m_dwStr2;
	DWORD			m_dwStr3;
	DWORD			m_dwSync;


	// private functions
	PDP_ERROR   ApplyOverlayChanges(IMG_BOOL bUpdateOnVSync, IMG_UINT32** ppui32OverlayConfig, IMG_UINT32* pui32OverlayConfigSize);
	BOOL		OverlayFieldsValid();
	BOOL		OverlayFieldsInvalid();
	DWORD 		GetColorKeyValue();
	DWORD 		GetCurrentScanLine();
	void		ApplyDisplayAdjustment();
	void		ApplyVideoAdjustment();
	BYTE  		CalcGamma(int nIndex);
	BYTE  		CalcVidGamma(int nIndex);
	PDP_ERROR 	EncodeTempCursor(PPDP_CURSOR_SHAPEINFO pCursorShapeInfo);
	PDP_ERROR 	DecodeTempCursor(PDP_TEMPCURSOR sCursor);
	void 		ApplyRotation(PPDP_TEMPCURSOR psCursor);
	void		DumpRegisters(DWORD	dwFlags);
	void		DumpReg(DWORD dwRegister);
	PDP_ERROR	GetCoeffs(DWORD dwSrc,DWORD dwDest,DWORD CoeffBuffer[5],DWORD dwTaps);
	void		UpdateDisplay();
	PDP_ERROR	RegisterPrimarySurfaceInfo();

	void		GetPanelRegInfo(HKEY hConfig, TCHAR *szRegKey, BOOL bConnentedToPDP);
};

#endif /*#ifdef SUPPORT_PDP_DISPLAY*/


#ifdef SUPPORT_KYRO_DISPLAY
/****************************************************** Support Kyro Display */

/* max displayable size of the hardware cursor */ 
#define DeviceHWCursorSize		64

class CEPCDac : public PDPApi
{
public:

	 // Function Protoyptes
	// Basic funcions
	PDP_ERROR PDP_SetMode (PPDP_SETMODE psModeStruct, BOOL bGet);
	PDP_ERROR PDP_Palette(PPDP_PALETTE psPalette,WORD Start,WORD Count, BOOL bGet);
	PDP_ERROR PDP_CursorPos(PPDP_CURSORPOS psCursorPos, BOOL bGet);
	PDP_ERROR PDP_CursorProperties(PPDP_CURSOR_SHAPEINFO pCursorShapeInfo, BOOL bGet);
	PDP_ERROR PDP_Init();

	// Display Adjustment
	PDP_ERROR PDP_Contrast(PPDP_CONTRAST pContrast, BOOL bGet);
	PDP_ERROR PDP_Gamma(PPDP_GAMMA pGamma, BOOL bGet);
	PDP_ERROR PDP_Brightness(PPDP_BRIGHTNESS pBrightness, BOOL bGet);


	// Power Management
#ifdef SUPPORT_POWER_STATE
	void PDP_Power(PVR_POWER_STATE eState,DWORD dwLoss);
	PDP_ERROR PDP_ScreenPowerOff(BOOL bOff);
#endif
	PDP_ERROR PDP_PrePLLChange();
	PDP_ERROR PDP_PostPLLChange();

	// used exclusively by the HAL for Direct Draw overlay support
	PDP_ERROR PDP_SetOverlayAttributes(PPDP_OVERLAYATTRIBS psOverlayAttributes);
	PDP_ERROR PDP_FlipOverlaySurface(PPDP_OVERLAY psFlipTo);
	PDP_ERROR PDP_OverlayContrast(PPDP_CONTRAST pContrast,BOOL bGet);
	PDP_ERROR PDP_OverlayGamma(PPDP_GAMMA pGamma,BOOL bGet);
	PDP_ERROR PDP_OverlayBrightness(PPDP_BRIGHTNESS pBrightness,BOOL bGet);

	PDP_ERROR PDP_GetLineCount(PDWORD pdwLineCount);
	PDP_ERROR PDP_WaitVBlank(DWORD dwFlags,PDWORD pdwStatus);

	PDP_ERROR PDP_FlipDisplay(PDWORD pdwBuffer,BOOL bImmediate);
	PDP_ERROR PDP_SetCursorRotation(DWORD dwRotation);
	PDP_ERROR PDP_SetColorspaceConversion(PPDP_CSCCoeffs psCoeffs);
	PDP_ERROR PDP_ScreenUpdate();
	PDP_ERROR PDP_EnumerateModeList(PPDP_EnumerateModesList psModeEnum);
	PDP_ERROR PDP_BacklightControl(PDWORD pdwBrightness, BOOL bGet);
	PDP_ERROR PDP_ActiveRectangle(PPDP_ACTIVERECT psActiveRect,BOOL bGet);
	PDP_ERROR PDP_PixelClock(PDWORD pdwPixClock, BOOL bGet);
	PDP_ERROR PDP_ReducedRefresh(PBYTE pbyUpdateRate,PBOOL pbSingleShot, BOOL bGet);
	PDP_ERROR PDP_OutputMask(PDWORD pdwLowerPowerMask,PDWORD pdwFullPowerMask,BOOL bReset, BOOL bGet);
	PDP_ERROR PDP_Deinit();


private:
	// Store the Internal members here.
	void		WriteRegUlong(ULONG Offset,ULONG Value);
	PDP_ERROR	EncodeTempCursor(PPDP_CURSOR_SHAPEINFO pCursorShapeInfo);
	PDP_ERROR	DecodeTempCursor(PDP_TEMPCURSOR sCursor);
	void		ApplyRotation(PPDP_TEMPCURSOR psCursor);
	PDP_ERROR 	RegisterPrimarySurfaceInfo();


	PDP_SETMODE			  m_sModeStruct;
	PDP_CURSORPOS		  m_sCursorPos;
//	PDP_CURSOR_PROPERTIES m_sCursorProperties;
	PVRSRV_DEV_DATA		  m_sDevData;
	DWORD				  dwLineDouble;
	DWORD				  dwPixelDouble;
	ALLOC_CARDMEMOUT	  m_sAllocMem;
	PDP_CURSOR_SHAPEINFO  m_sCursorShapeInfo;
	PVOID m_pvCursorAddress;
	PDP_TEMPCURSOR		  m_sTempCursor;
	DWORD				  m_dwCursorRotation;

	PPDP_EnumTableEntry	  m_psModeList;
	WORD				  m_wModeCount;
 	PVR_POWER_STATE 	  m_eLastState;
	PDP_PALETTE			  m_asPalette[256];			// The Palette

};

class GPEDisplayPipe :  public CEPCDac{};

#endif /*#ifdef SUPPORT_KYRO_DISPLAY*/

#ifdef SUPPORT_J_DISPLAY
/********************************************************* Support J-Display */

/* max displayable size of the hardware cursor */ 
#define DeviceHWCursorSize		32

class JDisplayPipeline : public PDPApi
{
public:

	 // Function Protoyptes
	// Basic funcions
	PDP_ERROR PDP_SetMode (PPDP_SETMODE psModeStruct, BOOL bGet);
	PDP_ERROR PDP_Palette(PPDP_PALETTE psPalette,WORD Start,WORD Count, BOOL bGet);
	PDP_ERROR PDP_CursorPos(PPDP_CURSORPOS psCursorPos, BOOL bGet);
	PDP_ERROR PDP_CursorProperties(PPDP_CURSOR_SHAPEINFO pCursorShapeInfo, BOOL bGet);
	PDP_ERROR PDP_Init();

	// Display Adjustment
	PDP_ERROR PDP_Contrast(PPDP_CONTRAST pContrast, BOOL bGet);
	PDP_ERROR PDP_Gamma(PPDP_GAMMA pGamma, BOOL bGet);
	PDP_ERROR PDP_Brightness(PPDP_BRIGHTNESS pBrightness, BOOL bGet);

 	// Power Management
#ifdef SUPPORT_POWER_STATE
	void PDP_Power(PVR_POWER_STATE eState,DWORD dwLoss);
	PDP_ERROR PDP_ScreenPowerOff(BOOL bOff);
#endif
	PDP_ERROR PDP_PrePLLChange();
	PDP_ERROR PDP_PostPLLChange();

	// used exclusively by the HAL for Direct Draw overlay support
	PDP_ERROR PDP_SetOverlayAttributes(PPDP_OVERLAYATTRIBS psOverlayAttributes);
	PDP_ERROR PDP_FlipOverlaySurface(PPDP_OVERLAY psFlipTo);
	PDP_ERROR PDP_OverlayContrast(PPDP_CONTRAST pContrast,BOOL bGet);
	PDP_ERROR PDP_OverlayGamma(PPDP_GAMMA pGamma,BOOL bGet);
	PDP_ERROR PDP_OverlayBrightness(PPDP_BRIGHTNESS pBrightness,BOOL bGet);

	PDP_ERROR PDP_GetLineCount(PDWORD pdwLineCount);
	PDP_ERROR PDP_WaitVBlank(DWORD dwFlags,PDWORD pdwStatus);

	PDP_ERROR PDP_FlipDisplay(PDWORD pdwBuffer,BOOL bImmediate);
	PDP_ERROR PDP_SetCursorRotation(DWORD dwRotation);
	PDP_ERROR PDP_SetColorspaceConversion(PPDP_CSCCoeffs psCoeffs);
	PDP_ERROR PDP_ScreenUpdate();
	PDP_ERROR 	EncodeTempCursor(PPDP_CURSOR_SHAPEINFO pCursorShapeInfo);
	PDP_ERROR 	DecodeTempCursor(PDP_TEMPCURSOR sCursor);
	void 		ApplyRotation(PPDP_TEMPCURSOR psCursor);
	PDP_ERROR PDP_EnumerateModeList(PPDP_EnumerateModesList psModeEnum);
	PDP_ERROR PDP_BacklightControl(PDWORD pdwBrightness, BOOL bGet);
	PDP_ERROR PDP_ActiveRectangle(PPDP_ACTIVERECT psActiveRect,BOOL bGet);
	PDP_ERROR PDP_PixelClock(PDWORD pdwPixClock, BOOL bGet);
	PDP_ERROR PDP_ReducedRefresh(PBYTE pbyUpdateRate,PBOOL pbSingleShot, BOOL bGet);
	PDP_ERROR PDP_OutputMask(PDWORD pdwLowerPowerMask,PDWORD pdwFullPowerMask,BOOL bReset, BOOL bGet);
	PDP_ERROR PDP_Deinit();

private:

	DWORD GetCurrentScanLine();
	PDP_ERROR 	RegisterPrimarySurfaceInfo();

	
	// Store the Internal members here.
	void 	WriteRegUlong(ULONG Offset,ULONG Value);
	DWORD 	ReadRegUlong(ULONG Offset);

	PVRSRV_DEV_DATA		  m_sDevData;
	PDP_SETMODE			  m_sModeStruct;
	PDP_CURSORPOS		  m_sCursorPos;
//	PDP_CURSOR_PROPERTIES m_sCursorProperties;
	PDWORD				  m_RegisterBase;
	PDP_CURSOR_SHAPEINFO  m_sCursorShapeInfo;
	PDP_TEMPCURSOR		  m_sTempCursor;
	DWORD				  m_dwCursorRotation;

	PPDP_EnumTableEntry	  m_psModeList;
	WORD				  m_wModeCount;
	PDP_PALETTE			  m_asPalette[256];			// The Palette
};

class GPEDisplayPipe :  public JDisplayPipeline{};

#endif /* #ifdef SUPPORT_J_DISPLAY */




#ifdef SUPPORT_PDP_DISPLAY
	class GPEDisplayPipe :  public PDPMarathon{};
#endif


#endif /*_cplusplus*/

#endif /*_PDPAL*/






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -