註冊爲S3E_SURFACE_SCREENSIZE回調,然後在屏幕尺寸/方向已經改變,你可以得到通知:
s3eSurfaceRegister(S3E_SURFACE_SCREENSIZE, (s3eCallback)ScreenSizeOrientationChanged);
void ScreenSizeOrientationChanged(s3eSurfaceOrientation *orien, void *pUserData)
{
s3eDebugTracePrintf("Orientation Changed: width=%d, height=%d, surfacewidth=%d, surfaceheight=%d, blitdirection=%s", orien->m_Width, orien->m_Height, Iw2DGetSurfaceWidth(), Iw2DGetSurfaceHeight(), S3E_SURFACE_BLIT_DIR_ROT180 ? "180" : "0");
CGame *pGame = (CGame *)pUserData;
if(pGame)
{
pGame->ReCalculateScreenSize(orien->m_Width, orien->m_Height);
}
}
s3eSurfaceUnRegister(S3E_SURFACE_SCREENSIZE, (s3eCallback)ScreenSizeOrientationChanged);
你會發現,GetSurfaceWidth /身高的方法仍然報告原來的方向值,所以使用在s3eSurfaceOrientation結構中傳遞的值
來源
2012-11-30 21:44:45
Dan