📄 pdpal.h
字号:
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 + -