-
Notifications
You must be signed in to change notification settings - Fork 5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow GLFW applications to to run on headless machines #482
Comments
GLFW doesn't provide much useful for a headless machine, does it? The only thing I can think of is timers, which could alternatively be provided by something like https://github.com/ThomasHabets/monotonic_clock |
It doesn't. But it's useful to be able to run apps that include GLFW in headless modes for reasons other than ability to use GLFW functionality. Consider the following practical situation. You have a multiplayer game. The server and client share a lot of common gameplay code. It's convenient to be able to produce a binary that can, depending on the parameters specified, act as a client, or a dedicated server, or a server with a display, or as both server and client in one (to allow offline play). It's useful to be able to simply avoid creating a window, but run the rest of the core gameplay/networking code as is, and have the application run correctly instead of crashing. It should return error if you try to create a window on a headless system and it fails, of course. |
Our application does all rendering off screen and serves the resultant images as streaming video. No user ever interacts with our application, which runs on a server that is headless. GLFW is useful because it provides a abstraction that hides cross platform differences in creating the OpenGL context for offscreen rendering. |
I was sure I'd written somewhere in the documentation that |
glfwInit() fails on a headless Win7 machine because it requires for there to be > 0 monitors. This issue is a request to remove that check.
The text was updated successfully, but these errors were encountered: