Yes... Capping the fps doesn't solve the problem. Uncapping doesn't solve the problem.
Originally Posted by Isaakske
I can't for the life of me figure out what exactly causes the problem.
My ingame FPS drops to 60 from 120 after a second or two delay of having players physically close to me (it seems) or having many ESPs on my screen at once. Upon certain conditions, there's another second or two delay and my fps goes back up to 120. It's a very dramatic change.
The problem doesn't seem to happen when I prevent the ESP from getting X/Y screen coordinates and just having the ESPs draw in the upper left hand corner. This is unrelated to the actual fetching of the coordinates, apparently.
Commenting these lines specifically stops the issue
Adding these lines in and still no issues, showing that it's not the fetching of the player variables that causes it.
// Set the X and Y location of the player's name.
//Canvas.SetLeft(playerText[player.ID], player.X + player.Width / 2 - playerText[player.ID].ActualWidth / 2);
//Canvas.SetTop(playerText[player.ID], player.Y - playerText[player.ID].ActualHeight);
Edit: added in your line functionality
double x = player.X + player.Width / 2 - playerText[player.ID].ActualWidth / 2;
double y = player.Y - playerText[player.ID].ActualHeight;
With only lines, it's significantly less laggy. I only get screen lag when a player gets close, not dependent on how many lines are on the screen. The problem persists even if the overlay isn't over MW3, just sitting in the background.
Edit: Added in a really shitty "radar" https://i50.tinypic.com/120m9sj.png.. Now, if only I knew how to find the map sizes so I could scale things on a radar image.
Another problem with the overlay is when you click, it creates lag because mouse clicks focus the overlay. The workaround is to set your fire/ironsights buttons to keyboard keys.