How does programs like Fraps or Dxtory get FPS?
I know that for example Fraps attach FRAPS.dll to other process, and then, as i understand, it's using game itself to draw the numbers just inside the game. But how Fraps know to which process need attach it's DLL? I mean, some time ago i've made simple OpenGL exercise which was only drawing couple of polygons, and FRAPS automatically detect my app and start showing FPS inside my just created app. So i can't understand next things:
- How does such programs can draw inside other apps?
- How it define that target program have frames at the first place, and which apps does'nt, so it start working only with proper apps.
- Where FPS variable of app is stored and how such programs find it so quickly, or it's scaling somehow FPS by itself?
Pls clarify me.