# Fullscreen window blinking

**URL:** <https://discourse.glfw.org/t/fullscreen-window-blinking/1538>\
**Category:** support\
**Created:** [April 15, 2020, 3:54pm UTC](https://discourse.glfw.org/t/fullscreen-window-blinking/1538 "2020-04-15T15:54:23Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![dougbinks](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.glfw.org/dougbinks/32/39_2.png) [@dougbinks](https://discourse.glfw.org/u/dougbinks)\
**Post date:** [April 29, 2020, 3:49pm UTC](https://discourse.glfw.org/t/fullscreen-window-blinking/1538/8 "2020-04-29T15:49:42Z")

</div>

> [@sdegrande](#):
>
> But that’s more or less a ‘trick’, right ?

I wouldn’t call it a ‘trick’ - it is a robust and workable approach.

I have submitted an issue for this:

> <https://github.com/glfw/glfw/issues/1687>
>
> The following thread on discourse discusses a need for multiple contexts for a w…indow:
> https://discourse.glfw.org/t/fullscreen-window-blinking/1538/4
> 
> I am unsure about the overall benefit of multiple contexts for OpenGL these days, and I think it's best to keep GLFW as lean as possible, however this is something which is currently not possible to do with GLFW without altering core GLFW code so I think it's reasonable to consider.
> 
> Potential approaches:
> 
> 1. Expose the required OS specific information via the GLFW native API, for example on Windows WGL requires the device context \`window-\>context.wgl.dc\` which is not currently exposed. Users could then write their own OS specific code to create contexts.
> 2. Add \`GLFWUserContext\* glfwCreateUserGLContext(GLFWwindow\* window)\` and supporting functions, see below. I have named these User Contexts to differentiate from the GLFW context created along with the window.
> 
> For 2 we would need
> \`\`\`
> // Create a new context for a window
> GLFWUserContext\* glfwCreateUserGLContext(GLFWwindow\* window);
> 
> // Delete a context
> void glfwDestroyUserContext(GLFWUserContext\* context);
> 
> // Make a context current
> void glfwMakeUserContextCurrent(GLFWUserContext\* context);
> 
> // Get current context - returns NULL if primary window context is current,
> // in which case glfwGetCurrentContext would return window, and
> // glfwGetCurrentContext will return NULL if a user context is current.
> GLFWUserContext\* glfwGetCurrentUserContext(void);
> \`\`\`
> 
> I can create the Windows versions of the API, and sdegrande can help with the GLX and potentially Mac.
> 
> This is potentially related to #1501

However I am unsure adding to the GLFW API for this is a good idea given that there are other, perhaps better, solutions.

---

_[View the full topic](https://discourse.glfw.org/t/fullscreen-window-blinking/1538)._
