C++如何检测DX或OGL游戏的帧率?

运行dx或者opengl游戏,打开fraps帧率测试软件,就能检测出所运行游戏的帧率,请问其中的原理是什么?

Nvidia 显卡是有API函数可以检测的。。

 NVAPI_INTERFACE NvAPI_GetInfoFrame  ( __in NvDisplayHandle  hNvDisplay,  
  __in NvU32  displayId,  
  __in NV_INFOFRAME_TYPE  type,  
  __out NV_INFOFRAME *  pInfoFrame  
 )