注册 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/Height 方法仍报告原始方向值,因此请使用在 s3eSurfaceOrientation 结构中传递的值