static void makeContextCurrentGLX(_GLFWwindow* window) { if (window) { if (!glXMakeCurrent(_glfw.x11.display, window->context.glx.window, window->context.glx.handle)) { _glfwInputError(GLFW_PLATFORM_ERROR, "GLX: Failed to make context current"); return; } } else { if (!glXMakeCurrent(_glfw.x11.display, None, NULL)) { _glfwInputError(GLFW_PLATFORM_ERROR, "GLX: Failed to clear current context"); return; } } _glfwPlatformSetCurrentContext(window); }
static void makeContextCurrentOSMesa(_GLFWwindow* window) { if (window) { // Check to see if we need to allocate a new buffer if ((window->context.osmesa.buffer == NULL) || (window->osmesa.width != window->context.osmesa.width) || (window->osmesa.height != window->context.osmesa.height)) { free(window->context.osmesa.buffer); // Allocate the new buffer (width * height * 8-bit RGBA) window->context.osmesa.buffer = calloc(4, window->osmesa.width * window->osmesa.height); window->context.osmesa.width = window->osmesa.width; window->context.osmesa.height = window->osmesa.height; } if (!OSMesaMakeCurrent(window->context.osmesa.handle, window->context.osmesa.buffer, GL_UNSIGNED_BYTE, window->osmesa.width, window->osmesa.height)) { _glfwInputError(GLFW_PLATFORM_ERROR, "OSMesa: Failed to make context current"); return; } } _glfwPlatformSetCurrentContext(window); }
static void makeContextCurrent(_GLFWwindow* window) { if (window) { if (!eglMakeCurrent(_glfw.egl.display, window->context.egl.surface, window->context.egl.surface, window->context.egl.handle)) { _glfwInputError(GLFW_PLATFORM_ERROR, "EGL: Failed to make context current: %s", getErrorString(eglGetError())); return; } } else { if (!eglMakeCurrent(_glfw.egl.display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)) { _glfwInputError(GLFW_PLATFORM_ERROR, "EGL: Failed to clear current context: %s", getErrorString(eglGetError())); return; } } _glfwPlatformSetCurrentContext(window); }
void _glfwPlatformMakeContextCurrent(_GLFWwindow* window) { if (window) { glXMakeCurrent(_glfw.x11.display, window->context.glx.window, window->context.glx.handle); } else glXMakeCurrent(_glfw.x11.display, None, NULL); _glfwPlatformSetCurrentContext(window); }
static void makeContextCurrent(_GLFWwindow* window) { if (window) { if (wglMakeCurrent(window->context.wgl.dc, window->context.wgl.handle)) _glfwPlatformSetCurrentContext(window); else { _glfwInputError(GLFW_PLATFORM_ERROR, "WGL: Failed to make context current"); _glfwPlatformSetCurrentContext(NULL); } } else { if (!wglMakeCurrent(NULL, NULL)) { _glfwInputError(GLFW_PLATFORM_ERROR, "WGL: Failed to clear current context"); } _glfwPlatformSetCurrentContext(NULL); } }