-
Notifications
You must be signed in to change notification settings - Fork 2
Description
So I see you mention it in your reddit post that your app cannot capture fullscreen programs unless the user is in borderless-fullscreen. Which is correct. The awt Robot class is incapable of interfacing with a direct X game while in fullscreen. Borderless-fullscreen works simply because the it behaves just like a normal window as opposed to fullscreen where capturing the pixels isn't as easy.
Now to get to my main point. The problem with running the game in borderless-fullscreen is that the framerate is capped at whatever your desktop framerate is. Now, you may ask why is this a problem? The problem is that windows forces your desktop framerate to be equal to that of your lowest framerate monitor which effectively means that anyone running a multi-monitor setup with a framerate greater than 60hz and a 60hz monitor is forced to play the game at 60hz if in borderless-fullscreen making that not an option for a lot of players.
What I propose to fix this is to either rewrite this entire program in c++ or c# (highly unlikely and a lot of effort) or to simply write a library in c++ or c# with screencapture capabilities and wrap said library with the JNI which is a lot less work than what it sounds like. Here is an example of what I am referring to: https://github.com/caoym/WinRobot. I haven't tested that library yet to see if it works but I'm going to investigate and see if I can use it in your app. If it doesn't work I will gladly fork your project and begin working on it myself.