📄 pdpal.h
字号:
// Power Management
PDP_ERROR PDP_ScreenPowerOff(PDPHANDLE pHandle,BOOL bOff);
PDP_ERROR PDP_PrePLLChange(PDPHANDLE pHandle);
PDP_ERROR PDP_PostPLLChange(PDPHANDLE pHandle);
// used exclusively by the HAL for Direct Draw overlay support
PDP_ERROR PDP_SetOverlayAttributes(PDPHANDLE pHandle,PPDP_OVERLAYATTRIBS psOverlayAttributes);
PDP_ERROR PDP_FlipOverlaySurface(PDPHANDLE pHandle,PPDP_OVERLAY psFlipTo);
#ifdef SUPPORT_OVERLAY
PDP_ERROR PDP_PrepareOverlayFlip(PDPHANDLE pHandle,PPDP_OVERLAY psFlipTo,
IMG_UINT32** ppui32OverlayConfig, IMG_UINT32* pui32OverlayConfigSize);
#endif
PDP_ERROR PDP_OverlayContrast(PDPHANDLE pHandle,PPDP_CONTRAST pContrast,BOOL bGet);
PDP_ERROR PDP_OverlayGamma(PDPHANDLE pHandle,PPDP_GAMMA pGamma,BOOL bGet);
PDP_ERROR PDP_OverlayBrightness(PDPHANDLE pHandle,PPDP_BRIGHTNESS pBrightness,BOOL bGet);
PDP_ERROR PDP_GetLineCount(PDPHANDLE pHandle,PDWORD pdwLineCount);
PDP_ERROR PDP_WaitVBlank(PDPHANDLE pHandle,DWORD dwFlags,PDWORD pdwStatus);
PDP_ERROR PDP_SetCursorRotation(PDPHANDLE pHandle, DWORD dwRotation);
PDP_ERROR PDP_SetColorspaceConversion(PDPHANDLE pHandle, PPDP_CSCCoeffs psCoeffs);
PDP_ERROR PDP_ScreenUpdate(PDPHANDLE pHandle);
PDP_ERROR PDP_CreateHandle(PDPHANDLE *ppHandle);
PDP_ERROR PDP_DestroyHandle(PDPHANDLE pHandle);
PDP_ERROR PDP_FlipDisplay(PDPHANDLE pHandle,PDWORD pdwBuffer,BOOL bImmediate);
PDP_ERROR PDP_EnumerateModeList(PDPHANDLE pHandle,PPDP_EnumerateModesList psModeEnum);
PDP_ERROR PDP_BacklightControl(PDPHANDLE pHandle,PDWORD pdwBrightness, BOOL bGet);
PDP_ERROR PDP_CreateHandleCEPCDac(PDPHANDLE *ppHandle);
PDP_ERROR PDP_CreateHandleJDisplay(PDPHANDLE *ppHandle);
PDP_ERROR PDP_Deinit(PDPHANDLE *ppHandle);
extern PDPHANDLE g_PDPHandle;
#ifdef __cplusplus
}
#endif
/********************************* Class Declarations ***********************/
#ifdef __cplusplus
#ifdef PDUMP
class PDPReg
{
volatile PDWORD m_pdwReg;
void CreateRegisterMapping(volatile PDWORD pdwRegBase,WORD wOffset);
WORD m_wOffset;
public:
PDPReg(volatile PDWORD pdwRegBase,WORD wOffset);
void PDPReg::operator=(const DWORD dwValue);
operator DWORD();
};
typedef PDPReg* PPDPReg;
#else
typedef volatile PDWORD PPDPReg;
#endif
/************************* PDP API interface class (abstract / pure virutal) */
class PDPApi
{
public:
// Function Protoyptes
// Basic funcions
virtual PDP_ERROR PDP_SetMode (PPDP_SETMODE psModeStruct, BOOL bGet)=0;
virtual PDP_ERROR PDP_Palette(PPDP_PALETTE psPalette,WORD Start,WORD Count, BOOL bGet)=0;
virtual PDP_ERROR PDP_CursorPos(PPDP_CURSORPOS psCursorPos, BOOL bGet)=0;
virtual PDP_ERROR PDP_CursorProperties(PPDP_CURSOR_SHAPEINFO pCursorShapeInfo, BOOL bGet)=0;
virtual PDP_ERROR PDP_Init()=0;
// Display Adjustment
virtual PDP_ERROR PDP_Contrast(PPDP_CONTRAST pContrast, BOOL bGet)=0;
virtual PDP_ERROR PDP_Gamma(PPDP_GAMMA pGamma, BOOL bGet)=0;
virtual PDP_ERROR PDP_Brightness(PPDP_BRIGHTNESS pBrightness, BOOL bGet)=0;
// Power Management
#ifdef SUPPORT_POWER_STATE
virtual void PDP_Power(PVR_POWER_STATE eState,DWORD dwLoss)=0;
virtual PDP_ERROR PDP_ScreenPowerOff(BOOL bOff)=0;
#endif
virtual PDP_ERROR PDP_PrePLLChange()=0;
virtual PDP_ERROR PDP_PostPLLChange()=0;
// used exclusively by the HAL for Direct Draw overlay support
virtual PDP_ERROR PDP_SetOverlayAttributes(PPDP_OVERLAYATTRIBS psOverlayAttributes)=0;
virtual PDP_ERROR PDP_FlipOverlaySurface(PPDP_OVERLAY psFlipTo)=0;
#ifdef SUPPORT_OVERLAY
virtual PDP_ERROR PDP_PrepareOverlayFlip(PPDP_OVERLAY psFlipTo, IMG_UINT32** ppui32OverlayConfig,
IMG_UINT32* pui32OverlayConfigSize) = 0;
#endif
virtual PDP_ERROR PDP_OverlayContrast(PPDP_CONTRAST pContrast,BOOL bGet)=0;
virtual PDP_ERROR PDP_OverlayGamma(PPDP_GAMMA pGamma,BOOL bGet)=0;
virtual PDP_ERROR PDP_OverlayBrightness(PPDP_BRIGHTNESS pBrightness,BOOL bGet)=0;
virtual PDP_ERROR PDP_GetLineCount(PDWORD pdwLineCount)=0;
virtual PDP_ERROR PDP_WaitVBlank(DWORD dwFlags,PDWORD pdwStatus)=0;
virtual PDP_ERROR PDP_FlipDisplay(PDWORD pdwBuffer,BOOL bImmediate)=0;
virtual PDP_ERROR PDP_SetCursorRotation(DWORD dwRotation)=0;
virtual PDP_ERROR PDP_SetColorspaceConversion(PPDP_CSCCoeffs psCoeffs)=0;
virtual PDP_ERROR PDP_ScreenUpdate()=0;
virtual PDP_ERROR PDP_EnumerateModeList(PPDP_EnumerateModesList psModeEnum)=0;
virtual PDP_ERROR PDP_BacklightControl(PDWORD pdwBrightness, BOOL bGet)=0;
virtual PDP_ERROR PDP_Deinit()=0;
virtual PDP_ERROR PDP_ActiveRectangle(PPDP_ACTIVERECT psActiveRect,BOOL bGet)=0;
virtual PDP_ERROR PDP_PixelClock(PDWORD pdwPixClock, BOOL bGet)=0;
virtual PDP_ERROR PDP_OutputMask(PDWORD pdwLowerPowerMask,PDWORD pdwFullPowerMask,BOOL bReset, BOOL bGet)=0;
virtual PDP_ERROR PDP_ReducedRefresh(PBYTE pbyUpdateRate,PBOOL pbSingleShot, BOOL bGet)=0;
};
#ifdef SUPPORT_PDP_DISPLAY
/******************************************************* Support PDP display */
/* max displayable size of the hardware cursor */
#define DeviceHWCursorSize 32
class PDPRegControl
{
public:
void Init( volatile PDWORD pdwRegBase , DWORD dwListPhysBase, DWORD dwListLinBase,WORD wSize) ;
void WriteReg(WORD wOffset,DWORD dwValue);
void WriteBlockingReg ( WORD wOffset , DWORD dwValue ) ;
DWORD ReadReg(WORD wOffset);
DWORD SendRegs();
DWORD AddReg(WORD wOffset,DWORD dwValue);
volatile PDWORD m_pdwRegBase;
PPDPReg m_pdwSTR1Size;
PPDPReg m_pdwSTR2Size;
PPDPReg m_pdwSTR1Blend;
PPDPReg m_pdwSTR2Blend;
PPDPReg m_pdwSTR1Mask;
PPDPReg m_pdwSTR2Mask;
PPDPReg m_pdwSTR1Base;
PPDPReg m_pdwSTR2Base;
PPDPReg m_pdwSTR2UBase;
PPDPReg m_pdwSTR2VBase;
PPDPReg m_pdwSTR1Start;
PPDPReg m_pdwSTR2Start;
PPDPReg m_pdwCurBase;
PPDPReg m_pdwCurSize;
PPDPReg m_pdwCurPos;
PPDPReg m_pdwCurBlend;
PPDPReg m_pdwCurMask;
PPDPReg m_pdwSyncCtrl;
PPDPReg m_pdwUpdateCtrl;
PPDPReg m_pdwHT1;
PPDPReg m_pdwHT2;
PPDPReg m_pdwHT3;
PPDPReg m_pdwVT1;
PPDPReg m_pdwVT2;
PPDPReg m_pdwVT3;
PPDPReg m_pdwVEvent;
PPDPReg m_pdwHDE;
PPDPReg m_pdwVDE;
PPDPReg m_pdwOutputMask;
PPDPReg m_pdwBorder;
PPDPReg m_pdwBackground;
PPDPReg m_pdwLineCount;
PPDPReg m_pdwVidClip;
PPDPReg m_pdwVScale;
PPDPReg m_pdwVInitial;
PPDPReg m_pdwVCoeff0;
PPDPReg m_pdwVCoeff1;
PPDPReg m_pdwVCoeff2;
PPDPReg m_pdwVCoeff3;
PPDPReg m_pdwVCoeff4;
PPDPReg m_pdwHScale;
PPDPReg m_pdwHCoeff0;
PPDPReg m_pdwHCoeff1;
PPDPReg m_pdwHCoeff2;
PPDPReg m_pdwHCoeff3;
PPDPReg m_pdwHCoeff4;
PPDPReg m_pdwHCoeff5;
PPDPReg m_pdwHCoeff6;
PPDPReg m_pdwHCoeff7;
PPDPReg m_pdwHCoeff8;
PPDPReg m_pdwScaleSize;
PPDPReg m_pdwVidGamma0;
PPDPReg m_pdwVidGamma1;
PPDPReg m_pdwVidGamma2;
PPDPReg m_pdwVidGamma3;
PPDPReg m_pdwVidGamma4;
PPDPReg m_pdwVidGamma5;
PPDPReg m_pdwVidGamma6;
PPDPReg m_pdwVidGamma7;
PPDPReg m_pdwVidGamma8;
PPDPReg m_pdwVidGamma9;
PPDPReg m_pdwVidGamma10;
PPDPReg m_pdwVidGamma11;
PPDPReg m_pdwVidGamma12;
PPDPReg m_pdwVidGamma13;
PPDPReg m_pdwVidGamma14;
PPDPReg m_pdwVidGamma15;
PPDPReg m_pdwVidGamma16;
PPDPReg m_pdwGamma0;
PPDPReg m_pdwGamma1;
PPDPReg m_pdwGamma2;
PPDPReg m_pdwGamma3;
PPDPReg m_pdwGamma4;
PPDPReg m_pdwGamma5;
PPDPReg m_pdwGamma6;
PPDPReg m_pdwGamma7;
PPDPReg m_pdwGamma8;
PPDPReg m_pdwGamma9;
PPDPReg m_pdwGamma10;
PPDPReg m_pdwGamma11;
PPDPReg m_pdwGamma12;
PPDPReg m_pdwGamma13;
PPDPReg m_pdwGamma14;
PPDPReg m_pdwGamma15;
PPDPReg m_pdwGamma16;
PPDPReg m_pdwCSC0;
PPDPReg m_pdwCSC1;
PPDPReg m_pdwCSC2;
PPDPReg m_pdwCSC3;
PPDPReg m_pdwCSC4;
PPDPReg m_pdwListControl;
PPDPReg m_pdwListStatus ;
PPDPReg m_pdwMemCtrl;
PPDPReg m_pdwPalette;
PPDPReg m_pdwIntStatus;
PPDPReg m_pdwIntEnable;
PPDPReg m_pdwIntControl;
PPDPReg m_pdwSignature;
PPDPReg m_pdwPDPId;
private:
PPDPReg CreateRegisterMapping(volatile PDWORD pdwRegBase,WORD wOffset);
PDWORD m_aListLoader;
int m_nBufferNumber;
int m_nIndex;
DWORD m_dwListPhysBase;
WORD m_wSize;
};
class PDPMarathon : 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_PrepareOverlayFlip(PPDP_OVERLAY psFlipTo, IMG_UINT32** ppui32OverlayConfig,
IMG_UINT32* pui32OverlayConfigSize);
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_Deinit();
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);
//Marathon specific functions - dual display
PDP_ERROR PDP_GetOtherPanelID(DWORD &dwPanelID);
PDP_ERROR PDP_EnableOtherPanel(BOOL bEnable, SYS_GIB_FORMAT enumGIBFormat);
PDP_ERROR PDP_SetPWMForOtherPanel(DWORD dwDutyCycle);
PDP_ERROR PDP_SwitchPanel();
PDP_ERROR PDP_ConfigureDisplaySystem(DRVESC_CONFIG_DISPLAY_SYSTEM *psDisplayConfig);
PDP_ERROR PDP_GetPanelRotation(PPDP_SETMODE psModeStruct,BOOL bInternal,PDWORD pdwRotation);
PDP_ERROR PDP_IsScreenDirty(BOOL *pbInternal);
private:
// Store the Internal members here.
PDP_SETMODE m_sModeStruct;
PDP_CURSORPOS m_sCursorPos;
// PDP_CURSOR_PROPERTIES m_sCursorProperties;
PVRSRV_DEV_DATA m_sDevData;
PVRSRV_MEM_INFO *m_pAllocMem;
PVRSRV_MEM_INFO *m_pLoaderMem;
IMG_BOOL m_bOverlayConfigMemAllocated; /* Shows whether overlay config buffers have been allocated */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -